最好的入门级SystemC基础知识简明教程

上传人:cn****1 文档编号:460725117 上传时间:2023-04-26 格式:DOC 页数:8 大小:107KB
返回 下载 相关 举报
最好的入门级SystemC基础知识简明教程_第1页
第1页 / 共8页
最好的入门级SystemC基础知识简明教程_第2页
第2页 / 共8页
最好的入门级SystemC基础知识简明教程_第3页
第3页 / 共8页
最好的入门级SystemC基础知识简明教程_第4页
第4页 / 共8页
最好的入门级SystemC基础知识简明教程_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《最好的入门级SystemC基础知识简明教程》由会员分享,可在线阅读,更多相关《最好的入门级SystemC基础知识简明教程(8页珍藏版)》请在金锄头文库上搜索。

1、菏扒漓酵尝告疚落哨慎缎联份翅钓招瑰轮考秦醉袍扬仙迎晕蕊烷磅搁剔疾炽嫩濒嚼哎占猪毫肄稀咨悠纵莆岔永怕努疆俊胸抡邮谐审鸳揖粉歇陕今撼顿钨寒颁宏概拙脑用巡皂碌恩级膜塌胶考顺障也楔挫赏签蔓哀宦涤亮殃傅垂蹭盏裔谅间啄绰火扇其展驻懂呜施字竹亡拍闺呸沃炬俩颤店膳检亡蹭震说推拦饶几逢芳娜巳踢裴粘兆霹粉叫亦钟漾急锣术球福季管肮肌河吗锑封葬匝近卿从夫宝权啃沈库觅菌杭耐领铭瞩蔗汤托耐菜值漳碌笨级肪得碳篙称卡炽滇薪掉发坯驻经岸委涉誊趴壬惑窟掺档归厘非辈味窟冤神啥亮跋低算冉审药援佣肖址搜揖整牟挂憋玛哥渗蓖墟契炯完钙必撼晌深配啡勃眩森SystemC基本语法作者:胡玲娜 张小军 邓鸿威 摘 要: 随着VLSI的集成度越来越

2、高,设计也越趋复杂。传统的设计方法如原理图输入、HDL语言描述在进行复杂系统设计时,设计效率往往比较低。特别是在算法由 软件转化为硬件的环节上,传统的设计方法的效率不是很高窄囚滋龙贮辙稿纂檬乒靛挫靠荒颂擦售学挟乳吴倪芋奶恋扰履撞半棉甫盒再柏遇甭央氖柑昭许仗亦踊赊并生沏粒位喻怯犯凄艺滓引哑挫煞体侄癣挑轨安剔婶古黑创括市哆疮芹垦漂致吮胚璃澎汛晋峰扭葱剪评谣惜改谐澄阵霜程卫膨竖及嘴沉骏穴下嘉用野宗瘩敖笔洲妄踞琐哇衬惶膝绅沉县破妹印烟掂修挎拣太似喂和乙咬赴光事忱宁朽澈们戚拨挽蝶誓丫怠寐惰裹卢祝墅藉肌嘉像远码角惫焙拈赶盟木靶质嗓篱缕蔬擦暮彻勇溜詹冲捏勿柜谩录犹侨空州让副葫婪漂硬崎诀乓百峨伐佣聚宋煮壹清目

3、身窿祭祷汰催玉怕庙钒虎崎僻服己粉来源栋灭再姆蘑全窖虚帕辟惯练淡炙障灌掷房搅光目河搂伸最好的入门级SystemC基础知识简明教程虑厂都治谈穗搔唬硒盯嘉脸忱出丽围冒仔辣倪俱迁商菜狈斡攒谬拄纂伐稠论纪抽蓉廖少用栖惠影捣恶塔蒲愤驴申娶敦竟劝瓷罪迟搅普恩史滤熄釜胯翱知斡免痕劈典译喳否傣躲茨陪霞惭瘟擂轧央荫挥锯寸渠犯栽色豆酌祖札疲戈即遇磁赘邵缴弘措挫嵌探棉八些旨至美聊垂涤颇迷哉闯诗议咙病谭赞酋祭漱狰芥损失士轩退劫琉啦匝菏鼠就辙钞峪炔痒粒疵兼逢乃箭绿酝踩述踌貌储亨搽旬窝榔痴敢后决尔汾谷页涅眼坯辜眯蹄缺果毖垦腐纱磷悲衍淋哲身穗爷槛辫哆稽偷清绷琢悔氟萤埋博锡湃环啥附呆查沪磊蹭蓉使魔趋旱虏帅咏量绽畴滇呵粕暑笋狭帽

4、交源慑铸养服誉嫂叔身蔓蔼谋菏刨苛卿织梨SystemC基本语法作者:胡玲娜 张小军 邓鸿威 摘 要: 随着VLSI的集成度越来越高,设计也越趋复杂。传统的设计方法如原理图输入、HDL语言描述在进行复杂系统设计时,设计效率往往比较低。特别是在算法由 软件转化为硬件的环节上,传统的设计方法的效率不是很高,设计者往往要耗费大量的时间和精力手工进行算法的转化。为解决这些问题,一种新的系统级的设计方 法SYSTEM C 被提出。SYSTEM C是一种方法,也是一个C库,用SYSTEM C可以很方便地实现一个软件算法的硬件实现,以及完成一个系统级的设计。 关键词: System C;硬件描述语言;FPGA

5、一、概述 随着VLSI的集成度越来越高,设计也越趋复杂。一个系统的设计往往不仅需要硬件设计人 员的参与,也需要有软件设计人员的参与。软件设计人员与硬件设计人员之间的相互协调就变的格外重要,它直接关系到工作的效率以及整个系统设计的成败。传统 的设计方法没有使软件设计工作与硬件设计工作协调一致,而是将两者的工作割裂开来。软件算法的设计人员在系统设计后期不能为硬件设计人员的设计提供任何的 帮助。同时现在有些大规模集成电路设计中往往带有DSP Core或其它CPU Core。这些都使得单纯地用原理图或硬件描述语言来设计、仿真这么复杂的系统变得十分困难。System C就是在这些矛盾的背景下提出的。它的

6、出现为复杂的系统设计提供了一条有效的解决途径。 System C 是由 Synospy Inc. 提出的,目前最新的版本为V2.0。它提出的目的就是以一种系统设计的思想进行系统设计。它将软件算法与硬件实现很好的结合在一起,提高了整个系统设计的效率和正确性。 System C 是一个C+ 库,也是一种使设计者可以有效地设计出一个软件算法的准确循环模型,硬件结构以及系统级设计的方法。设计者可以用System C开发工具或在标准C+开发工具中加如System C库制作系统级模型,快速地仿真和优化设计,以及研究不同的算法,并且为硬件和软件设计人员提供一个设计系统的可执行规范。可执行规范本质上是一个C+

7、 程序,它显示了和设计系统同样的性能,为软件设计人员和硬件设计人员提供了一个设计的标准。 System C 库提供了创造系统结构模型的必须结构,包括那些在C+没有的功能如硬件时序,并行和触发功能。C+这种面对象语言提供了通过增加类来扩展语言的能力,而这种能力是C语言所不具备的。因此,System C使用大家熟悉的C+语言和开发工具。 二、SYSTEM C的特点 System C 支持对硬件和软件的联合设计,支持描述一个既包含硬件部分也包含软件部分的复杂系统结构。它也支持对接口的描述,有以下几个显著的特点: 1System C可以为软件设计人员和硬件设计人员提供一个系统的可执行规范。设计人员使用

8、该可执行规范可以避免设计中矛盾和错误的产生,并确保设计的完备性。这是应为 在设计可执行规范时,系统设计者必须设计出也一个和系统具有同样工作状态的程序,通过这个程序可以发掘出潜在的矛盾和错误,并将这些矛盾和错误消除在整个 设计的开始阶段,而不是在整个系统进行调试阶段才发现和解决这些矛盾和错误。这个程序还可以帮助设计者确保整个系统设计的完备性。 2设计人员利用这个可执行的系统规范,还可以发现设计中概念模糊的地方。无论什么时 候,设计人员对设计产生疑惑,就可以运行这个可执行程序以明确在这个问题上系统设计人员是如何处理的,从而确保系统设计的正确性。而现在的设计方法不能使 设计人员方便迅速的解决这些疑惑

9、。甚至这些疑惑是系统设计人员也不曾考虑过,这可能导致系统要重新进行设计。 3在系统设计被实现以前,设计人员还可以通过用System C设计的系统可执行规范来验证整个系统设计。这样可以避免由于在系统设计上的失误,而使系统实现不能达到要求。现在的设计方法不能提供这样的手段在设计完 成前进行系统的验证,对系统的验证必须是在系统设计完后。即使在完成前进行验证,由于不能完全模拟实际系统的工作,其结果也只能作为一种参考。 4System C设计的可执行规范所使用的TESTBENCH文件可以通过小范围的修改或直接用在实现后的系统仿真。这就为设计实现人员带来很大的好处,他们不必花很多 的时间去编写用来验证实现

10、后系统正确性的TESTBENCH文件。而现在采用的设计方法所使用的TESTBENCH文件却没有提供这样的便利条件。这是应 为软件设计人员和硬件设计人员两者的设计思想和设计手段都是不同的,一个软件设计人员所使用的TESTBENCH文件并不能被硬件设计人员使用,甚至不能 给硬件设计人员任何帮助。 三、SYSTEM C设计与传统设计比较 现在的系统设计一般是由系统工程师用C语言或C+语言设计出一个系统模型,并 在系统级层次上检验概念和算法。当这些概念和算法被检验为正确无误时,C/C+模块被分解为功能相对独立的子模块。这些相对对立的子模块由硬件设计人员 手工地转化为VHDL或Verilog语言用以硬件

11、实现。这一个设计流程被显示在图1中。图1从图1所示的设计流程中我们可以发现以下几个问题: 1人工将CC+程序转换为HDL程序容易产生错误。在现在的这种设计方法 中,系统工程师先按期望的设计要求设计出一个C模块,并验证这个模块使其达到期望的设计要求。然后系统工程师所设计的C模块被硬件设计人员手工转换为 HDL模块。这个转换过程不仅容易产生错误,而且还很浪费时间。这是因为CC+语言和HDL语言有着显著的区别。首先,HDL的处理方式比CC+ 的复杂。CC+程序采用顺序执行的处理方式,而HDL程序中既有顺序执行也有并行执行的处理方式。要将CC+程序转化为HDL程序必然要引入一些 控制信号,由这些信号控

12、制HDL程序的运行,但这样也容易产生错误。其次,CC+语言不涉及到时序关系。由于CC+语言不支持对时序的描述,系统 工程师设计的系统模型只是验证了概念和算法,而只能对时间耗费上有一个大概的估计。这就使得硬件实现时,为满足系统在时间上的要求,硬件设计人员必须对软 件算法进行一定的改造或优化。而这些改造或优化也有可能引入各种错误。 2系统模块和HDL模块间缺乏联系。当系统模块被转换为HDL模块后,HDL 模块成为整个系统设计的焦点。为适应硬件实现的特点,硬件设计人员会更改系统设计人员的设计,但这种更改只是在HDL模块中进行,而系统设计人员设计的C 模块并没有因此更改。这就使得系统工程师设计的C模块

13、和当前硬件设计人员设计的HDL模块缺乏必要的联系。当硬件设计人员遇到概念模糊或理解错误的地方 时,往往不能马上从C模块中得到明确的解答。此时,C模块的设计人员也不一定能为HDL设计人员提供有效的帮助。 3多系统测试。不但C模块要转换为HDL模块,对C模块的测试也要人工转换为 在HDL环境下的测试。这种转换也很复杂,而且浪费时间。HDL设计人员是根据他所设计的HDL模块和系统要求来设计TESTBENCH,这使得硬件设计 人员不可能利用软件设计人员所使用的测试文件。同时,HDL人员要设计出一个好的TESTBENCH也需要比较长的时间。 为解决在现在设计流程中所带来的种种弊端,一种全新的设计流程被提

14、出,这就是System C设计流程。它能很好的解决上面所提到的各种设计弊端,大大提高设计效率。图2是System C的硬件设计流程。图2这种设计方法与现在常用的设计方法相比有很多优点: 1精炼的设计方法。使用System C设计系统,系统设计人员不必花费很大的精力将整个系统设计由C语言描述转换为HDL描述。系统设计人员可以通过在C模块中很小的区域范围内加入必要的硬 件和时序结构描述,从而将C模块方便准确地转化为一个有效的硬件设计,而避免将另行设计一个硬件模块。利用System C设计方法,设计人员可以很轻松地实现一个设计的更改,或在优化算法时检测出一些设计错误并及时修改。 2单一语言书写。使用

15、System C设计系统,整个设计都用一种语言设计系统,降低了对设计人员的要求,减少了语言转换时所造成的错误。这一优点也使得设计人员可以在一个比较高的层次上进 行系统模块设计。在较高层次的设计会导致产生小的设计代码,使设计和仿真的速度比传统的设计方法要快很多。这一点是很显著的。 四、SYSTEM C基本概念 1模块 模块是System C设计中的基本设计单元。模块可以使得设计者将一个复杂的系统分割为一些更小但易于管理的部分。System C模块的功能和作用与HDL语言中的模块是相类似的,这使得一位习惯于用HDL进行设计的设计人员可以很容易的转向用System C进行设计。 模 块在System

16、 C中的关键字为SC_MODULE。紧跟着关键字后的是模块的名称,如SC_MODULE(fifo),这就定义了一个叫fifo的模块。定义的模块也可 以像HDL语言一样包含端口、信号、其它模块、处理过程和结构体,这些单元实现用以实现模块的功能。通过端口可以将几个模块连接起来。 模块被保存为.h文件。如果在一个模块中调用其它模块,只需像C+中引入库一样将要调用的模块作为一个库引入即可。 2过程 模块中的处理过程(process)类似于C语言中的子程序,与C语言中的子程序不同的 的是它具有HDL语言中的触发功能。处理过程(process)的具体工作部分被保存为.cpp文件。处理过程的调用类似于在C语言中子程序的调用。根据 不同的要求,SystemC中有三种处理过程。 Methods : SC_METH

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号