C语言平台 缩短SoC前期设计时间

最新更新时间:2012-08-30来源: 电源技术关键字:C语言  缩短SoC  前期设计 手机看文章 扫描二维码
随时随地手机看文章

  在设计上能减少结构探索时间的C语言平台,在结构上如何以新思考突破?

  以往半导体业者大多使用FPGA(Field Programmable Gate Array)製作样品(Prototype),接着锁定几项晶片重要规格,依此找出最适合该晶片的结构,这种方式最大缺点是作业时间非常冗长。然而,C语言平台的设计方式则是,利用软体模拟分析检讨晶片结构,以往FPGA平台的样品,大约需要半年左右的结构探索时间,如果採用C语言平台的设计方式,只需要花费约2周~1个月的时间。

  目前开发最快的是日本冲电气,以ARM为基础的整合平台及设计环境可应用在晶圆专工的先进技术,根据冲电气的规划,在内部适用C语言平台设计技术的SoC,是使用了三种架构,分别是:「μPLAT」+软体、「μPLAT」+专用加速器度(accelerator)+软体、硬体连线(hard wired)电路。

  在「μPLAT」+软体的部份,传统FPGA也有支援此功能,因此IC设计公司可以利用IP来源业者的Process Core,再

以μPLAT为基础开发SoC,例如目前ARM已经将ProcESS Core,封装成软体提供客户使用。而关于「μPLAT」+专用加速器度(accelerator)+软体、硬体连线(hard wired)电路结构开发的晶片的部份,就是利用C语言平台设计方式使开发更效率化,此外,「μPLAT」+专用加速器度(accelerator)+软体中,专用加速器度还分成两种执行方式,分别是:将C语言资料转换成System C,再将SySTem C输入至动作合成工具内,最后嵌入硬体连线(hard wired)电路,以及,利用合成使Process Core特定化,接着在该Process Core进行C语言演算作业。采用第一种方式的合成动作方式,可以使晶片发挥低耗功化效果,第二种的特定化Process Core合成方式,以资源共用的观点而言确实相当有效,不过耗功上经常不如第一种的合成动作方式。

图说:半导体业者大多使用FPGA制作样品,依此找出最适合该晶片的结构,这种方式最大缺点是作业时间非常冗长。(School of Computer Science)

  C语言平台摆脱传统刻板观念

  关于C语言平台的SoC设计方式的流程是,首先需要从客户端接收要求,以SoC处理的「C语言/C++描述的演算」与该SoC使用方法的「use case」,并收取「演算(Algorithm)测试环境」然后再开始进行SoC开发作业。此时必需先检查收取的原始码(Source Code),确认是否适合动作合成或是组合软体,不适合的场合,则检讨原始码的修正进行架构探讨。由于该工程被赋予「高精度评估」的角色,因此已经摆脱传统「设计」的刻板印象,此时短期可量产的优先度比品质更高,例如1个月内完成探索的设计,只进行代表性项目的验证,如此就能够缩短探索工程的验证时间,至于验证品质则在探索之后的后段工程透过设计方式维持。

  结构探索工程又分成:结构草案的检讨,以及结构初期模型的制作与检验。结构草案的检讨是根据原始码的分析结果,决定使用「动作合成的硬体连接」,或是专用处理器。功能不太複杂的晶片,要求低制作成本与低耗功时,大多选择动作合成方式;要求相似功能进行复合性处理时,通常会选择专用处理器方式。决定基本方针后立即检讨包括,演算位元的宽度、并联处理电路的结构、动作频率、与软体的搭配等等问题,接着制作晶片的结构模型,再利用虚拟样品模拟器(virtual prototyping simulator)验证,模拟器除了晶片功能之外,还能够分析包含晶片外部的资料转送等系统整体与晶片的所有效能。

  采用C语言平台的设计方式,只需要花费2周~1个月的时间,就可以完成模拟分析检讨晶片的结构。(National Center for Ecological Analysis and Synthesis)

  目前在进行合成所面临的问题

  选择动作合成方式时会面临下列问题,分别是:演算转换至System C化的工程数减少、转换后以System C化为对象的高速化与高精度化等问题,因此System C化时演算部位必需以UnTImed模型封装,介面的部位则以定时模型封装,利用上述溷合封装追加埠,加上变数的有效位元长度设定等最低限度追加处理作业,就可以达成System C化目标。

  目前动作合成工具技术上还不成熟,若直接转换成System C,闸道(gate)规模与消费电流值会变大,为了达成System C化必需特别设置Guide Line。有关介面部分,就可以使用原先惯用的雏型,透过再利用方式有效减少工程数,如此一来数千行的演算,大约一周就能够转换成System C。

  有关专用处理器,利用一般的处理器制作工具,同样能够轻易进行最适化探索作业,进而使处理器的开发时间,从以往6个月压缩至2~3个月。实际开发时必需先进行Profiling描述、决定管线结构,再根据Profiling描述结果,对各SoC进行複合指令等,最佳指令追加作业,依此使参考用处理器达成SoC要求的最佳化目标,最后再利用指令设定,模拟分析估算成本、耗功等效能。

  结构探索作业结束后,再整合客户的要求规格,评估客户提出的规格时,此时为防与止晶片出现怪异现象,除了动作等级的System C之外,必需使用低抽象度RTL(Register TraNSfer Level)等级的设计资料。一旦取得客户的许可后就可以同时进行System C的硬体、软体设计。由于C语言平台设计方式使用了,C语言演算、System C模型和RTL模型等多种模型,因此必需维持模型之间的理论等价性,然而实际上「形式验证工具」还未达到实用阶段,必需使用一般理论模拟分析,验证上述设计资料的等价性,其中RTL等级的理论模拟分析非常耗时,因此它已经成为C语言平台设计有待克服的问题。

  目前动作合成工具技术上还不成熟,若直接转换成System C,Gate规模与消费电流值会变大。(IntercONnect Systems)

  C语言平台的设计的特色

  实际上利用C语言平台的设计方式方面,例如日本某业者,曾经开发以Pentium微处理器使用的压缩处理技术硬体化

的SoC,使其具备MPEG-4单压缩功能,基于资料处理并联化对降低动作频率非常有效等考虑,因此使用动作合成方式使SoC整体达成的硬体连线化目的。由于在结构探索工程中已经针对并联处理段数,等相异多结构进行评估,因此检验结果与实际晶片的量测结果几乎完全相同,证实C语言平台设计方式可以实现高精度的结构探索目的。

  另外,也有业者在开发应用在行动电话的长时间MP3音乐播放晶片,同样具备MPEG-4单压缩功能时,设计上被要求尽量降低耗功,因此设计人员决定採用动作合成方式,使SoC整体达成的硬体连线化目的。此外,该业者为了减少耗功与晶片面积,因此进行演算处理位元宽度最佳化设计,就展开调查各处理作业的资源消耗量,与演算位元宽度的关係,依此制作演算位元宽度、建立调整方桉、进行音质检验、决定位元宽度,根据实测结果证实传统同等级SoC的耗功为60mW,可以降至7mW。

  东芝成立小组导入C语言设计平台

  目前可以感受到,随着半导体制程的微细化,SoC的开发时间越来越长,在此同时短交期、低成本的要求依然没变,因此大幅提高SoC的设计效率,成为开发SoC时非常重要的课题。以往SoC大多利用高抽象度动level设计硬体,设计资料使用C语言平台描述,如此就能够在SoC样品晶片完成前,开始进行软体验证、修正作业。

  所以,东芝在2005年就成立「R-CUBE」小组专研新晶片的前期设计规划,来因应此一变化,R-CUBE高阶设计环境主要是由,软、硬体协调验证环境、结构探索环境、高阶验证环境、高阶合成环境,和整体验证环境等等,5个次环境构成。

  实际的想法是,设计流程中最初会使用结构探索环境,此时规格书中会将所有功能当作ANSIC语言/C++演算描述,并将该演算分成实现软硬体两大单元。至于分割的妥当性则利用效能分析工具验证,如果验证无误就进入下个阶段。此时设计流程可分成, 软、硬体协调验证,以及硬体的执行(ImplementATIon)两大部份,软、硬体协调验证环境会整合了可以实现硬体部份的C语言平台描述,以及微处理器核心的C语言平台描述,并製作SoC整体的硬体模型。上述验证会先确认软、硬体之间的介面是否有不妥,接着进行软体整体的验证与修正作业,由于此时要求实机的1/10~1/100左右的模拟分析速度,因此硬体的模式必需使用高抽象度C语言平台进行描述。

图说:冲电气採用「μPLAT」+软体的合成动作方式,可以使晶片发挥低耗功化效果。(Tanner Research)

  在硬体的执行设计方式方面,首先以人工方式将硬体的演算C语言平台转换成System C,再使用高阶验证环境验证此System C的描述,该环境包含多种工具,例如,利用形态检查器验证System C描述意义的工具,以及是否已经成为高阶合成用资料的工具等等。高阶验证环境还包含东芝开发的可以检查验证进度(coverage)的工具, 它可以防止遗漏检查,进行Line Coverage)、分岐含盖范围、条件含盖范围等检查,经过验证的System C的描述,再利用高阶合成环境转换成RTL描述。

  目前高阶合成工具无法以一次的合成作业,获得令人满意的高品质输出,必需对C语言平台描述进行修正,并作反覆数次的高阶合成动作。如果晶片已经备妥全模组的RTL描述,就利用整体验证环境进行晶片整体验证作业,在该环境下使用理论模拟器(Emulator)与硬体加速器(accelerator)等验证专用电脑,再以时脉循环(clock cycle)的时序(timing)精度验证SoC整体,若验证没有异常就结束高阶设计作业,接下来的晶片设计则与传统RTL设计完全相同。

  整体开发时间只有传统的1/3左右

  在实际设计例子上,东芝所开发的液晶电视用SoC,就此採用这样的架构平台开发设计,此晶片有三个设计作业适合上述设计环境,分别是,统一平台的开发、减少开发软体的TAT(Turn Around Time),以及使用高阶合成获得的RTL描述。

  在统一平台的开发部分,由于晶片目标是广用衍生型的SoC,并且主要诉求是开发容易,因此必需将共通部位定义成统一平台,此时最重要的是On Chip汇流排的结构,与记忆体次系统的定义,设计人员利用上述环境,讨论出如何能够定义成最适宜的统一平台。

  具体步骤首先检查汇流排的存取流通量(Throughput)、延迟、仲裁(Arbitration)功能、汇流排的扩充性(Scalability),接着利用C语言平台描述进行效能模拟分析,再透过

定性优劣比较作定量性分析,透过该分析就能够定义最适当的统一平台。

  在减少开发软体的TAT,由于是以广用SoC为目标,所以必需充分应用软、硬体协验证,因此在样品晶片完成前,就需要成功验证大部份的软体,因此从样品晶片公佈,一直到发佈软体工具为止,整个的开发时间只有传统的1/3左右,主要原因是Stream data能够使用协调验证所致。

  此外即使使用应用协调验证环境,并不表示如此一来就不需要进行样品晶片的实机验证,因为C语言平台描述的精度还有无法验证Bug,例如记忆体初期化与电晶体的初期化设定错误,以及有关插入时序的不协调,一般协调验证都无法检查。

  在高阶合成取得RTL的描述部分,这颗晶片的MPEG2解码器后处理部分,非常适合使用高阶合成,尤其是将动作频率高达266Mhz的后处理方块,当作82K闸道(gate)规模的电路合成,可以获得媲美人工设计的结果。至于软、硬体协调验证使用的硬体部位C语言平台描述,就可以利用这颗晶片的C语言平台描述作基础,只改写变更部分即可。

  IC设计业者已经开始建立C语言设计平台

  目前许多IC设计公司已经开始建立C语言平台设计技术,应用在半导体晶片的设计,该技术除了能够使晶片架构在短时内进行比较、检讨作业,同时还可以应用在各种SoC(System On a Chip)结构的最佳化设计。以行动电话的语音处理晶片为例,C语言平台设计技术可以使晶片的耗功降至1/10,预定今后2~3年内,市场上将会有20~30%的SoC,是採用C语言平台设计技术。所以,通常SoC的开发要求同时满足各式各样规格,然而同时满足高效能、低耗功、低制作成本的特性.

关键字:C语言  缩短SoC  前期设计 编辑:探路者 引用地址:C语言平台 缩短SoC前期设计时间

上一篇:一种数字化小功率金卤灯电子镇流器的研究
下一篇:低噪声300mA低压降稳压器

推荐阅读最新更新时间:2023-10-17 15:02

51单片机C语言学习笔记6:51单片机C语言头文件及其使用
很多初学单片机者往往对C51的头文件感到很神秘,而为什么要那样写,甚至有的初学者喜欢问,P1口的P为什么要大写,不大写行不行呢?其实这个是在头文件中用sfr定义的,现在定义好了的是这样的 sfr P1 = 0x90; 也就是说,到底大写,还是小写,就是在这里面决定的。这就说明,如果你要用小写,就得在头文件中改为小写。其实它都是为了编程序方便才这样写的,在程序编译时,就会变成相应的地址(如P1就变成了0x90)。 下面是一个标准的C51头文件REG52.H: (此文件一般在C:KEILC51INC下 ,INC文件夹根目录里有不少头文件,并且里面还有很多以公司分类的文件夹,里面也都是相关产
[单片机]
单片机C语言求平方根函数
在单片机中要开平方.可以用到下面算法: 算法1: 本算法只采用移位、加减法、判断和循环实现,因为它不需要浮点运算,也不需要乘除运算,因此可以很方便地运用到各种芯片上去。 我们先来看看10进制下是如何手工计算开方的。 先看下面两个算式, x = 10*p + q (1) 公式(1)左右平方之后得: x^2 = 100*p^2 + 20pq + q^2 (2) 现在假设我们知道x^2和p,希望求出q来,求出了q也就求出了x^2的开方x了。 我们把公式(2)改写为如下格式: q = (x^2 - 100*p^2)/(20*p+q) (3)
[单片机]
9种简单的数字滤波算法(C语言源程序)
假定从8位AD中读取数据(如果是更高位的AD可定义数据类型为int),子程序为get_ad(); 1、限副滤波 /* A值可根据实际情况调整 value为有效值,new_value为当前采样值 滤波程序返回有效的实际值 */ #define A 10 char value; char filter() { char new_value; new_value = get_ad(); if ( ( new_value - value A ) || ( value - new_value A ) return value; return new_value; } 2、中位值滤波法 /* N值可根据实
[单片机]
ARM-bootloader-C语言环境设计
一、栈初始化 1、概念解析 1.1栈 栈是一种具有后进先出性质的数据组织方式,也就是说后存放的先取出,先存放的后取出。栈底是第一个进栈的数据所处的位置,栈顶是最后进栈数据所处的位置。 1.2满栈和空栈 根据SP指针指向的位置,栈可以分为满栈和空栈。 1、满栈:当堆栈指针SP总是指向最后压入堆栈的数据 2、空栈:当堆栈指针SP总是指向下一个将要放入数据的空位置 ARM采用的是满栈 1.3、升/降栈 1、升栈:随着数据的入栈,SP指针从低地址- 高地址移动 2、降栈:随着数据的入栈,SP指针从高地址- 低地址移动 ARM采用的是降栈。有时候我们会说ARM采用的是满降栈。 1.4、栈帧
[单片机]
ARM-bootloader-<font color='red'>C语言</font>环境<font color='red'>设计</font>
基于C语言在FPGA上实现DSP的解决方案
硬件设计者已经开始在高性能DSP的设计中采用FPGA技术,因为它可以提供比基于PC或者单片机的解决方法快上10-100倍的运算量。以前,对硬件设计不熟悉的软件开发者们很难发挥出FPGA的优势,而如今基于C语言的方法可以让软件开发者毫不费力的将FPGA的优势发挥得淋漓尽致。这些基于C语言的开发工具可以比基于HDL语言的硬件设计更节省设计时间,同时不需要太多的硬件知识。由于具有这些优势,FPGA技术不仅可使这些器件作为I/O器件的前端,FPGA还可实现大量的高带宽和运算密集型应用的实时处理。此外,FPGA还可很紧密地与板上存储器结合,并在一块电路板上集成多个器件。更好的是,FPGA电路板可通过新兴的串口通讯标准进行通讯,如Ra
[嵌入式]
基于<font color='red'>C语言</font>在FPGA上实现DSP的解决方案
MSP430 学习 基本数据类型浅谈!
IAR 编译器支持基本的C语言的数据格式 打开IAR 点击 HELP- c/c++compiler user guide里面有基本的数据类型 1 整型 2 浮点数据 3 指针类型 4 基本的数据类型就在这里面如果需要查看其他的数据,请打开手册自行查看 用户指导手册 芯片管脚手册 推荐教学视频 https://www.bilibili.com/video/BV1cE411Z79d?from=search&seid=15656799615629348503 https://www.bilibili.com/video/BV1rE41167yG?from=search&seid=6968580456886645765 MSP4
[单片机]
MSP430 学习 基本数据类型浅谈!
温感器ds18B20的C语言代码
/*温感器 采用天祥温度转换模块算法 程序完整版本的下载地址: http://www.51hei.com/f/ds1820pIC.rar */ #include pic.h __CONFIG(0X3B31); #define uint unsigned int #define uchar unsigned char #define DQ RC1 #define DQ_DIR TRISC1 #define DQ_HIGH() TRISC1=1 #define DQ_LOW() DQ=0;TRISC1=0 unsigned char shi; //整数十位 unsigned char ge;
[单片机]
S3C2440的中断的那些事儿(二) C语言部分讲解
1 void init_irq( ) 2 { 3 // S2,S3对应的2根引脚设为中断引脚 EINT0,ENT2 4 GPFCON &= ~(GPF0_msk | GPF2_msk); 5 GPFCON |= GPF0_eint | GPF2_eint; 6 7 // S4对应的引脚设为中断引脚EINT11 8 GPGCON &= ~GPG3_msk; 9 GPGCON |= GPG3_eint; 10 11 // 对于EINT11,需要在EINTMASK寄存器中使能它 12 EINTMASK &= ~(1 11); 13 14 /* 15 * 设定优先级:
[单片机]
小广播
最新电源管理文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved