FPGA开发最不理解的芯片设计中的操作
1、做芯片的仿真最后都不用图形界面
与刚开始做FPGA开发时都在图形界面下操作的仿真方法不同,做大规模芯片设计时的仿真常常不调用图形界面,都是采用命令行的形式做的仿真。
set PROJECT_PATH=%cd%::vsim -do sim.dovsim -c -do sim.do
脚本,是芯片设计人员必须要掌握的基本技能。在芯片设计的各个阶段,脚本的作用是非常巨大的。代码仿真,可以使用脚本来进行仿真环境的搭建,综合的约束文件,必须采用脚本来提前对综合过程中的各种要求进行说明,后端就更不用说了。因为整个芯片的设计流程,每个流程的所有中间信息都是靠文本来储存的,RTL代码,netlist,后端的颜色文件,流片用的GDSII等等,对文本进行随意的操作处理就是一名IC设计人员的基本技能。
如下图就是一个简单的采用NCVerilog进行仿真的脚本。
#!/bin/shecho "`include "../testcase166/$1.v"""" > testcase.vsed ""s//wave.shm//wave$1.shm/g"" ../testbench/testbench.v > testbench.tmpcp ../testbench/testbench.v ../testbench/testbench.bakcp testbench.tmp ../testbench/testbench.vrm -f testbench.tmpncverilog -f ../filelist/filelist.v +access+rwc -l ../log/log/$1.logmv ../testbench/testbench.bak ../testbench/testbench.vrm -f testcase~
而下图则是一个采用TCL语言描述的Design Complier综合脚本的开头部分。
sh dateremove_design -designs ###########################set library ###########################set search_path [list /tools/lib/smic25/feview_s/version1/STD/Synopsys /tools/lib/smic25/feview_s/version1/STD/Symbol/synopsys]set target_library { smic25_tt.db }set link_library { smic25_tt.db }set symbol_library { smic25.sdb }###########################Paths variables ########################### set main_dir ../.. set RTL_ROOT_PATH $main_dir/hdl set NETLIST_PATH $main_dir/sim/syn/netlist set RPT_PATH $main_dir/sim/syn/log set DB_PATH $main_dir/sim/syn/db set SDF_PATH $main_dir/sim/syn/sdf###########################void warning Info ###########################suppress_message VER-130suppress_message VER-129suppress_message VER-318suppress_message ELAB-311suppress_message VER-936#################################read&link&Check design#################################
2、做芯片的仿真最后都不看波形
在做芯片仿真时,无论是采用自己搭建的简单仿真环境还是UVM的仿真环境,最后的形式常常是把所有的testcase都集中到仿真环境中,只需敲一个命令,回车,所有的testcase就能够全部运行下去。而仿真过程的错误,也都被记录到log文件中,无论是运行的对与错,都可以在log文件中看到。如下图就是所有的testcase截图,每个case运行的结果也会保存到另外一个log目录下。
而FPGA开发人员,则不会去建立如此完善的仿真环境,往往是简单的搭建一个某种功能模式下的仿真环境仿一下过了,就上板了。
采用ModelSim单独仿真
1、整理RTL代码及仿真代码
如果要用ModelSim单独仿真,并且需要搭建类似于上面描述的采用脚本形式来仿真的仿真环境,那么第一步就需要从Vivado工程中把相应的Verilog代码整理出来。
在Vivado中也有类似于Quartus中的库文件,在Vivado工程目录下,如下图所示。
然后,整体拷贝ip文件夹到自己想搭建的modesim仿真环境目录下:
上图中rtl文件夹就是自己原来的设计文件,tb则是一些仿真用的.v文件。
2、编写脚本sim.do文件
vlib workvlog -f ./rtl.fvsim -novopt work.tb_crossbar_topdo wave.dorun 10us
void xiegang(char* s){ int i声明:本站部分文章内容及图片转载于互联 、内容不代表本站观点,如有内容涉及侵权,请您立即联系本站处理,非常感谢!