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

2007-12-23 21:09 1901 2 2 分类: MCU/ 嵌入式
在设计上能减少结构探索时间的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合成方式,以资源共用的观点而言确实相当有效,不过耗功上经常不如第一种的合成动作方式。

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语言平台设计有待克服的问题。

pld_075131_1f.jpg

目前动作合成工具技术上还不成熟,若直接转换成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语言平台进行描述。

pld_075131_2f.jpg

图说:冲电气採用「μ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的开发要求同时满足各式各样规格,然而同时满足高效能、低耗功、低制作成本的特性。

来源:嵌入式在线

文章评论0条评论)

登录后参与讨论
我要评论
0
2
关闭 站长推荐上一条 /2 下一条