当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]基于SystemC的系统级芯片设计方法研究

摘 要:在分析当前系统级芯片设计方法的基础上,提出了目前新型系统级IC设计语言SystemC及其平台的设计思想及设计流程,并以具体项目RS编码器来实现和验证。实验结果表明,SystemC是一种很好的软硬件联合设计语言,它不仅可以帮助设计人员完成一个复杂的系统设计,还可以避免传统设计中的各种弊端,并提高设计效率。当然,如何更好地利用SystemC设计也将是EDA领域当前探索的一个重要方向。
关键词:SOC;SystemC;RS编码器;Verilog HDL

  随着集成电路制造技术的迅速发展,SOC设计已经成为当今集成电路设计的发展方向。SO C设计的复杂性对集成电路设计的各个层次,特别是对系统级芯片设计层次,带来了新挑战,原有的HDL难以满足新的设计要求。
  硬件设计领域有2种主要的设计语言:VHDL和Verilog HDL。而两种语言的标准不统一,导致软硬件设计工程师之间工作交流出现障碍,工作效率较低。因此,集成电路设计界一直在寻找一种能同时实现较高层次的软件和硬件描述的系统级设计语言。Synopsys公司与Coware公司针对各方对系统级设计语言的需求,合作开发了SystemC,他可以较好地实现软硬件的协同设计,是系统级芯片设计语言的发展趋势[1]。

1传统的系统级设计方法[1]
  在传统设计方法中,设计的系统级往往使用UML,SDL,C,C++等进行描述以实现各功能模块的算法,而在寄存器传输级使用硬件描述语言进行描述。最广泛使用的2种硬件描述语言是VHDL和Verilog HDL,传统的系统设计方法流程如图1所示。
从图中不难看出,传统的设计方法会出现如下弊端:

  首先,设计人员需要使用C/C++语言来建立系统级模型,并验证模型的正确性,在设计细化阶段,原始的C和C++描述必须手工转换为使用VHDL或Verilog HDL。在这个转换过程中会花费大量的时间,并产生一些错误。
  其次,当使用C语言描述的模块转换成HDL描述的模块之后,后者将会成为今后设计的焦点,而设计人员花费大量时间建立起来的C模型将再没有什么用处。
  再次,需要使用多个测试平台。因为在系统级建立起来的针对C语言描述的模块测试平台无法直接转换成针对HDL语言描述的模块所需要的测试平台。

2使用SystemC的必要性
  无论采用什么样的设计方法学,人们都需要对SOC时代的复杂电子系统进行描述,以选择合 适的系统架构,进行软硬件划分,算法仿真等等。描述的级别越低,细节问题就越突出,对实际系统的模仿就越精确,完成建模消耗的时间、仿真和验证时间就越长。相反,描述的抽象级别越高,完成建模需要的时间就越短,但对目标系统的描述也就越不精确。作为设计人员必须在速度和精确性之间做出选择。
  人们对系统级描述语言的要求是:高仿真速度以及建模效率、时序和行为可以分开建模、支持基于接口的设计、支持软硬件混合建模、支持从系统级到门级的无缝过渡、支持系统级调试和系统性能分析等。人们迫切需要一种语言单一地完成全部设计。这种语言必须能够用于描述各种不同的抽象级别(如系统级、寄存器传输级等),能够胜任软硬件的协同设计和验证,并且仿真速度要快。这就是所谓的系统级描述语言SLDL,而传统的硬件描述语言如VHDL和Verilog HDL都不能满足这些要求。
  SystemC就是目前这方面研究的最新、最好的成果,他扩展传统的软件语言C和C++并使他们支持硬件描述,所以可以很好地实现软硬件的协同设计,是系统级芯片设计语言的发展趋势。

3SystemC简介
  1999年9月,微电子业内的一些一流的EDA公司、IP提供商、半导体制造商及系统和内嵌式软件设计公司联合创建了开放SystemC创始会组织(Open SystemC Intitiative,OSCI),并推出了基于C++的系统级设计语言SystemC。OSCI是一个非盈利性组织,他负责维护和发展SystemC。SystemC是完全免费的,这使得EDA供应商能够充分自由地了解SystemC库的源代码以优化他们的各种解释工具;包括Synopsys,Cadence,Frontier Design,ARM,Eri ssion,Lucent,Sony,TI等核心成员。目前已经有50多个著名的微电子公司支持该标准[2]。
  SystemC本质上是在C++的基础上添加的硬件扩展库和仿真核,这使得SystemC可以建模不同抽象级别的(包括软件和硬件的)复杂电子系统。他既可以描述纯功能模型和系统体系结构,也可以描述软硬件的具体实现。SystemC源代码可以使用任何标准C++编译环境进行编译,生成可执行文件;可以使用综合工具(如Synopsys SystemC Compiler)将SystemC的寄存器传输级描述综合为Verilog HDL或者VHDL的代码用于FPGA设计,也可以综合为EDIF网表用于A SIC设计[3]。
  SystemC具有所有硬件描述语言所共有的基本特征,包括模块、进程、端口和信号等。不同的是,在SystemC中时钟被单独定义为一个特殊的信号,这大大简化了时钟信号的定义,SystemC还支持具有任意相位关系的多个时钟。在SystemC中使用了sc_set_tim e_resoluti on()和sc_set_default_time_unit()来定义时间分辨率和时间单位,这与Ve rilog HDL的timescale语法在功能上是等效的。
  为了支持寄存器传输级的并行描述,SystemC还采用了与传统硬件描述语言基本相同的调度模型基于Δ(delta)延迟。一个Δ周期包括求值和更新2个阶段,在一个时间点上,这样的Δ周期会出现直到再求值前后的结果不再发生变化。而在宏观上,时间并没有前进。SystemC 2.01调度模型中,在初始化阶段(相当于时间0点),所有进程包括方法进程和线程都将执行一次。不同的是,在SystemC中,所有的信号和变量的初始化工作在构造函数中进行,他比其他函数先执行,避免了像Verilog HDL中由于初始化顺序不同引起的不同仿真器仿真结果的不一致。
  为了支持进程同步和通信细化,SystemC支持用户自定义的接口,端口和通道。接口是方法的集合,但不具体实现这些方法,在C++语法中,他们都是纯虚函数。通道具体实现一个或者多个接口。端口定义了他能够连接的具体的接口类型,只能被用于连接实现了该类型接口的通道。在有些情况下,进程可以直接读写通道而不必通过端口,而其他情况下则必须通过端口进程才能读写通道。
  在SystemC中,进程只调用通道提供的接口方法。虽然接口方法是在通道中实现的,然而他是在进程上下文中被执行的。这被称作接口方法调用(InterfaceMethodCall,IMC),接口方法调用和支持不同抽象级别的混合建模是通信细化的基础。

4基于SystemC的设计思想和设计流程
  用SystemC可以在抽象层次的不同级描述系统。在系统最高层的系统级可以用C/C++描述系统的功能和算法。在系统的硬件实现部分可以在行为级到RTL级用SystemC 的类来描述,系统的软件部分自然可以用C/C++语言描述。而且,系统的不同部分可以在不同的抽象层次描述,这些描述在系统仿真时可以协同工作。并且,用SystemC不但可以描述要开发的系统本身,还可以描述系统的测试平台Testbench,以提供测试信号用于系统的仿真。
  SystemC由一组描述类的头文件和一个包含仿真核的连接库Link Library所组成,在用户的建模描述程序中必须包括相应的头文件,然后可以用通常的C++编译器编译该程序。在连接Link时要调用SystemC的连接库产生可执行的系统仿真程序。利用SystemC建模的思想如图2所示。

  基于SystemC的设计流程与以前的设计流程的本质区别在于,使用一种语言就可以完成从系统到RTL、从软件到硬件的全部设计,整个设计的软硬件可以协同设计和仿真,恰好弥补了传统设计方法中的这些不足。
  基于SystemC的设计流程如图3所示。

5应用实例
  下面给出一个基于SystemC设计的实例:RS(15,9)的设计详细地说明整个设计流程。
  
RS(Reed-Solomon)[4]纠错码是目前最有效、应用最广泛的差错控制编码之一,是一类具有很强纠错能力的多进制的线性分组码,RS(15,9)码编码器,主要应用于移动通信系统的差错控制,由于该编码器小巧、灵活,纠错性能好,对于移动通信系统可靠性的提高、复杂度的降低有至关重要的作用[5]。整个系统如图4所示。

  整个设计从用SystemC为整个系统建模开始,同时为模块建立Testbench。然后使用VC ++6.0和Modelsim进行功能仿真,接着在SystemC可综合子集的范围内对代码进行约束,使用支持SystemC的综合工具SCC(SystemC Compiler)完成综合,SystemC的综合实际上还是靠综合HDL语言文件得到的网表,而SCC这个工具是SystemC和HDL之间的一个桥梁,因此对于SystemC的综合首先是将SystemC描述的RTL级电路通过SCC综合,综合的结果是生成相应的Verilog文件,在这个转变过程中,模块的整体结构被保存,如每一个sc _module被转换成独立的Verilog模块,并存放在module_namev文件中;每一个进程(SC_METHOD)被转换成带进程名的always块;变量和端口也以同样的名字在Verilog文件中生成。因此,后续流程就与传统设计语言设计的FPGA流程连接上了。
  本文选用Xilinx的SPARTAN2系列的FPGA XC2S50PQ28对本设计进行验证。软件平台主要使用的是Xilinx的集成开发环境ISE。其中第三方工具使用了综合工具FPGA CompilerⅡ,布局布线工具选用的是ISE中的Webpack suite。
  把前面用SystemC Compiler综合生成的Verilog文件倒入ISE中,调用FCⅡ(FPGA Compiler Ⅱ),对代码加约束,包括时间约束、引脚约束、时钟频率等,进行逻辑综合和优化,得到的网表可以以EDIF格式输出,并与布局布线工具(webpack suite)接口,完成布局布线操作。布局布线完成后会产生一个布局布线后的网表文件、标准延迟文件(SDF)和一个后缀名位b it的二进制配置文件,其中SDF包含从布线之后提取出来的逻辑单元和连线的时序信息。然后连接好下载电路,运行下载配置文件,实现对FPGA的配置,配置采用的是EDA实验板O PEN FPGA4.0。把ISE生成的配置文件bit文件烧录到FPGA XC2S50上完成。整个实现流程如图5所示。

  从对FPGA XC2S50中消耗的逻辑资源分析可以看到,系统的等效门为1 124个门。
  值得注意的是,在整个设计过程中,测试平台一直没有改变,这样在设计被不断完善的过程中,保证不引入新的设计错误而始终符合设计要求。

6结语
  本文针对目前业界比较热门的新型系统设计语言SystemC的设计方法进行了深入研究,并结合具体实例开发提出了一套完整的采用SystemC及其平台设计的思路和方法。实验结果证明这套方法的可行性。由于目前如何采用SystemC进行设计还没有一个完全的设计规范流程,因此,如何将本文中的设计思路和流程完善使之更为通用,仍需进一步深入研究。我们相信基于SystemC的设计必将成为IC设计领域系统级设计的最佳标准之一。

参考文献

[1]Synopsys Inc.SystemC version1.0 User′s Guide.http://www.systemC.org.
[2]Synopsys Inc.SystemC version2.0 User′s Guide.http://www.systemC.org.
[3]Synopsys Inc.Functional Specification for SystemC 2.http://www.systemc.org. ?
[4]Berlekamp Elwnr.Bitserial ReedSolomon encoders[J].IEEE Transon Information Theory,1982,IT28(6):869-873.
[5]Kwon S,Shin H.An Areaefficient VLSI Architecture of Reedsolo mon Decoder/Encoder ro Digital VCRS[J]. IEEE Trans. Consumer Electronics,199 7,43(4):1 019-1 027.

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭