原创 SystemC小结

2009-12-6 21:51 3927 2 2 分类: FPGA/CPLD

一、SystemC的好处和历史
1.
ModelSim下用SystemC做设计验证方法与示例:


SystemC作为一种系统级设计与验证语言,非常适合做复杂IC的验证,而不是用于RTL描述。很多人问我如何将SystemC综合和编译为可以下载的CPLD/FPGA的比特文件或者综合为ASIC网表,我的回答是用SystemC做RTL设计还为时过早。


可以想象将来可能将SystemC的行为级的描述综合为网表,即所谓高层次综合,这是一个很美好的未来,但未来不是现在。Verilog/SystemVerilog依然是最好的RTL设计语言,未来的RTL设计属于SystemVerilog。关于SystemC和SystemVerilog在设计中的地位问题,我认为在验证方面,SystemC有明显的优势。如果你设计纯粹的ASIC,那么用SystemVerilog可能就足够了。但是在很多场合,软硬件同时存在,SystemC的代码很多部分可以直接用于设计软件,这个是很明显的优势。



大家同时也可以看到,现在在ModelSim等仿真软件中,SystemC使用起来跟Verilog/VHDL一样,非常方便。举一个例子,我们假如想做DVB-S2的LDPC,我们一定会先用C++(M atlab也可以)写仿真程序,验证算法的正确性。然后假设我们已经确定了目标ASIC的架构,打算用Verilog做RTL设计。



现在既然C++代码的验证部分可以几乎不加改变的用于基于SystemC的验证模块的设计,我们为什么还要费力的用SystemVerilog重新写一遍验证代码呢?


Modelsim中,测试模块module_test可以用systemC编写,注意使用export module,让其他语言可见该模块
这样就可以用systemC编写测试模块test.h、test.cpp,然后在tb.v中调用test。

in a word,systemC可以同verilog进行接口。


2. systemC可以方便的和matlab进行接口(例子在《systemc片上系统设计》第九章》 (还没有试验过?)

运用Matlab进行systemc模块的验证:


a. 将matlab作为systemc验证程序的计算引擎,在systemc中直接调用、运行和关闭matlab,matlab的命令和函数在systemc的环境中运行;


b. 将matlab作为验证IO,matlab和systemc验证程序独立的运行,通过mat文件交换数据。

3. 开放性和广泛的支持, C++的人可以很容易掌握。


   抽象描述能力:在系统级和交易级建模的最佳语言,同时很好地支持寄存器传输级设计和验证;
   仿真速度:systemc描述的系统是可执行的文件,仿真速度远远大于逐行解释的硬件描述语言。


二、SystemC学习资源


1. systemc的官方网站   www.systemc.org

pdf:
OSCI. SystemC User Guide.
OSCI. SystemC Functional Specification.
OSCI.SystemC Language Reference Manual.

libraray:
Core SystemC Language and Examples   update to 2.2 (2006.7)
Master Slave Library  
SCV - SystemC Verification Library   
Synthesizable_Subset  
TLM_Transaction_Level_Modeling_Library


2. 周祖成systemc课件,还包含systemc core library 2.0.1   ftp://59.66.122.77


3. 《SystemC片上系统设计》 陈曦、徐宁仪 2003.10


4. download的一些pdf,html
   ieee standard for systemc 1666-2005.pdf from ieee.org


5. IEEE上关于SystemC的文章 from ieee.org (?)


6. example @ systemc core library (good example for junior)
   src of the book 《片上系统》


三、开发环境


SystemC开发工具已经覆盖系统设计到RTL设计、综合到验证的全部集成电路设计前端。


1. visual C++ 6.0 or 7.1 编译systemC设计

systemC程序生成波形文件vcd;
利用modelsim查看波形文件(vcd2wlf *.vcd *.wlf; open *.wlf)。
   (微机版推荐使用)


2. modelsim 6.0d 直接编译modelsim (不大好用,有时候编译有问题?)


3. linux下运用gcc编译,modelsim查看波形(但rhel as 3 x86_64不兼容?)


4. SystemC_win编译和仿真systemc,可直接看波形,集成度高(没用过?)


5. 若用visual C编译,可以用免费波形察看工具 WaveViewer,可直接察看vcd格式文件(没用过?)
  

搜索方法 keyword:vcd viewer@google
  
6. 综合工具


7. others


AccurateC --SystemC语法和设计规则检查   ?
A|RT Builder--SystemC到HDL的转换         ?
MaxSim--SOC建模和验证工具                ?
NC-SystemC--仿真器                       ?
Cynthesizer/SystemC Compiler--SystemC综合器           ?
Synopsys和XILINX联合开发Virtex II FPGA的系统设计工具,本质上等于CCSS+FPGA Compiler II+现有FPGA 布局布线工具           ?
Visual Elite/SPW4.8/Cocentric System Studio/C-Bridge……                   ?


四、已学习的内容


1. 寄存器传输级systemC设计
2. systemc与传统硬件描述语言


五、待学习的内容


1. 书上
system C基本语法
systemc行为建模
master-slave通信库
tlm设计实例--片上总线
基于systemc的验证方法学

systemc与matlab通信
  

2. example 的细节
this is important!!
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
2
关闭 站长推荐上一条 /3 下一条