本文用到工具:
第一步:先从Simvision运行verilog代码,得到波形:
第二步,使用vcd2vec将vcd文件转换为vec文件:
1. 查看输出的VCD文件,检查 $scope module 定义以及输出波形名字,用于写信号定义文件:
2. 写信号定义文件(用于设置波形的电压和延时,之后运行vcd2vec需要用到):
对于信号,可以直接从上面的VCD file中复制信号名过来! 有四个地方需要注意:
a. 使用 #format %<#> 将 原来 [] 的bus信号换为 <> 的bus信号,用于spectre仿真
b. 使用 #scope 定义使用哪一个block的信号 (需要像verilog那样点 '.' 进去)
c. 对于bus类的信号,直接使用 * 进行扩展匹配
d. 定义输入输出波形的电压值和斜率
(想了解更多写法,可以看 hsimplus -> doc 手册去学习)
3. 使用vcd2vec工具将文件转换为vec格式:
vcd2vec -nvcd ./input.vcd -nsig signal_info -nvec ./output.vec
当然也可以设置需要选择导出的波形时间范围:
vcd2vec -nvcd ./input.vcd -nsig signal_info -nvec ./output.vec -start 500n -stop 1000n
4. 得到 .vec的输出
第三步: 添加vec文件到ADE中:
在 Virtuoso ADE中,进入 setup -> simulation file -> vector file:
这样在运行仿真时即可作为这几个信号名字的输入波形,并且可以搭配simulation file等一起使用,非常方便!
参考链接:
12/01/2025:
由于最近Synopsys已经把hsimplus 淘汰,所以现在没有vcd2vec这个工具了,该工具被集成到了PrimeSim
工具中的fscript中,使用方法(在source synopsys工具流后):
先保存一个脚本文件 xxx.txt (下面文件内容替代了上面的写信号定义文件):
load vcd xxx.vcd
fset SCOPE xxx1.xxx2
fset VOL 0
fset VOH 1
fset VIL 0
fset VIH 1
fset TUNIT 1n
fset SLOPE 0.1
fset vcd2vec ascope
open xxx.vec
vinit
vsignal * in bin
vrun
close
之后运行:
fscript < xxx.txt