VCS简述
VCS是什么(What)
VCS全称verilog compile simulator,是Synopsys家的一款Verilog仿真工具。据S家官网描述,世界排名前20的半导体公司大部分都使用VCS。
VCS is a compiled code simulator. It enables you to analyze,
compile, and simulate Verilog, SystemVerilog, OpenVera and
SystemC design descriptions.
工作到现在一年多,虽然一直在用VCS,但并没有深入了解过其原理,也没有总结过它的各种仿真选项与仿真方式。
从本文开始,自己会陆续做一下总结~
为什么用VCS(Why)
没用过NCverilog等其它工具,所以我也不知道为什么用VCS哈哈哈😄
怎么用VCS仿真(How)
总的来说,用VCS仿真可以分为编译、仿真两部分。
- 对代码进行编译
简单说来,当我们有了设计好的Verilog以及相应的testbench后,用VCS编译这些代码,即可生成一个名字叫simv的可执行文件。
编译:TBD具体链接稍后贴上。 - 对具体用例进行仿真
在VCS对代码编译完成后,会生成一个名字叫simv的可执行文件。在对具体用例进行仿真时,调用simv并以-TESTNAME的方式传入用例名,就可以对不同用例进行仿真。
仿真:TBD具体链接稍后贴上。
VCS仿真原理——关于可执行文件simv
事实上,VCS会先将verilog/sv转换为C语言,然后再用gcc进行进一步处理,最终产生可执行文件simv。
而后面这个过程,参考C语言编译原理,可以描述为预处理、编译、汇编、链接等步骤。具体如下:
1. 预处理
展开代码中所有宏定义;处理条件编译ifdef等;处理头文件include等、删除注释。
2. 编译/汇编
对上一步输出的代码进行词法/语法/语义分析,经由汇编代码最终生成机器指令.o文件。
3. 链接
将各个模块之间相互引用的部分正确的衔接起来,生成可执行文件。
经过上述步骤后,原本给人看的代码,就变成了给机器看的可执行文件啦。