特色C语言平台 SoC设计最佳化

本文核心提示:在设计上能减少结构探索时间的c语言平台,在结构上如何以新思考突破?如何形成一个具有特色的c语言平台,是的soc设计达到最佳化呢?
以往半导体业者大多使用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的开发要求同时满足各式各样规格,然而同时满足高效能、低耗功、低制作成本的特性.

雷蛇推出一款名叫NariUltimate的游戏耳机 能把声音信号转换成节奏对应的震动反馈
LDO芯片温度对电源稳定性的影响
闪光继电器工作原理_闪光继电器怎么接线
腾讯的新动作接连不断,而且在粤港澳大湾区的表现尤为突出
芯片云上设计面临的挑战有哪些
特色C语言平台 SoC设计最佳化
12月面板价格仍然呈现上涨态势
安泰ATG-2032功率信号源产品资料
人工智能技术让我们的生活变得越来越便利快捷
LPWAN SOC无线通信芯片ASR6601介绍
移动四核处理器之三:高通APQ8064
厦门完成首例机器人手术!
巨景科技4Gb Memory SiP产品开始量产
实数DFT,复数DFT,FFT!FFT如何工作?
开关电源中常用的UC384系列芯片的区别解析
核酸脂质体纳米粒LNP的制备方法
openharmony移植实例
点联传感获天使轮投资,系COMS激光测量传感器研发商
iPhone行货降价 以旧换新最高可抵2100元
电容器的概念及其相关公式的详细介绍