新浪博客

学习EDA工具使用(二)     VCS调用SDF延时文件仿真

2017-01-12 23:01阅读:

四、利用DC综合结果进行VCS仿真

4.1 简单介绍

使用SMIC 0.18um工艺库,综合生成syn.v网表文件和syn.sdf延时文件。用这两个东西去做VCS后仿真。
当然,因为DC综合得到的SDF文件,还没有包含布局布线(Place & Route)的信息,所以这个SDF延时文件是不精确的,只有利用ICC完成布局布线后得到的SDF文件,才是精确的模型,用来进行VCS后仿真。
不过,为了验证DC综合时候是没有做错的,可以先用这个不精确的SDF文件来VCS仿真。

4.2 实现流程

首先,修改testbench文件,加入$sdf_annotate()命令,用来将SDF文件载入到相应的instance
module fpu_top_tb
;
reg [`DATA_WIDTH-1:0] src1;
reg [`DATA_WIDTH-1:0] src2;
wire [`DATA_WIDTH-1:0] dst;
reg clock;
reg src_en;
wire dst_en;
reg [1:0] op;
always #10 clock <= ~clock;
fpu_top_rtl mdl_top(.src1(src1),.src2(src2),.dst(dst),.clock(clock),
.src_en(src_en),.dst_en(dst_en),.op(op));
integer i;
initial
begin
#0 clock = 0;
$sdf_annotate('syn.sdf',mdl_top); // 利用SDF文件,加入延时信息
$fsdbDumpfile('tb.fsdb'); // 调用verdiPLI接口,可以生成fsdb文件
$fsdbDumpvars; // 用来之后verdi调试和观察波形
for(i=0;i<</span>1000;i=i+1)
begin
// generate new data
#1000 {src1, src2} = {$random, $random, $random, $random};
// generate add : op and src_en
#20 op = 0; #20 src_en = 0; #20 src_en = 1; #20 src_en = 0;
// generate sub : op and src_en
#20 op = 1; #20 src_en = 0; #20 src_en = 1; #20 src_en = 0;
// generate mult : op and src_en
#20 op = 2; #20 src_en = 0; #20 src_en = 1; #20 src_en = 0;
// generate div : op and src_en
#20 op = 3; #20 src_en = 0; #20 src_en = 1; #20 src_en = 0;
$display('H / H = H',src1,src2,dst);
end
$finish; // 这个一定要有,不然VCS仿真就停不下来了
end
endmodule
然后修改VCS调用的命令tb_run.sh,主要是使用DC综合出来的syn.v网表和smic18.v模型,如下:
#!/bin/bash
export PLATFORM=LINUX64
export SRCDIR=../src
vcs -full64 -l vcs.run.log\
-notice\
-line -debug_all\
-P $NOVAS_HOME/share/PLI/VCS/$PLATFORM/novas.tab\
$NOVAS_HOME/share/PLI/VCS/$PLATFORM/pli.a\
$SRCDIR/fpu_top_tb.v ./syn.v ./smic18.v\
-timescale=1ns/10ps
./simv

4.3 实现效果展示


使用verdi查看波形,和DC综合以前的functional simulation结果作比较,有明显的差异。
学习EDA工具使用(二) <wbr> <wbr> <wbr> <wbr> <wbr>VCS调用SDF延时文件仿真
综合前仅仅是functional simulation,没有延时
学习EDA工具使用(二) <wbr> <wbr> <wbr> <wbr> <wbr>VCS调用SDF延时文件仿真
综合后的延时还是很明显的


而且偶尔会有timing violation出现。
学习EDA工具使用(二) <wbr> <wbr> <wbr> <wbr> <wbr>VCS调用SDF延时文件仿真

4.4 本章小结

总的来说还是比较顺利的,一天调试完了DC综合和VCS调用SDF文件的方案。
不过综合那里还有很大的坑要填,特别是input/output delaywire load model的选择等等。
另外,最好用PT(时序分析的EDA工具,SynopsysPrime Time)来做STA,得到的SDF文件会好一点。

最后,现在是用DC完成综合 & 时序分析,得到的SDF文件,仅仅包含SMIC工艺库元件本身的延时,没有考虑在芯片上(空间上位置不同导致连线长度差异)的延时情况。所以下一步就要进行P & R(布局布线,Place & Route),这样再得到SDF文件,里面的延时就会精确很多,这样再用VCS,才是真正的“后仿真”。

我的更多文章

下载客户端阅读体验更佳

APP专享