verdi 加载 vhdl 和 verilog 混合 RTL 设计的方法
采用三步法完成混合语言 RTL 设计的加载。该方法可以解决 verdi 中无法跟踪 vhdl 和
verilog 混合信号驱动的问题。
在 verdiuserguideandtutorial 的 Launchingtechniques 一章的 Compilesourcecodeintoa
library 一节提到“Thismethodmustbeusedifyouhaveamixedlanguagedesign”,所以这是当
前加载 vhdl 和 verilog 混合语言设计的唯一的办法。
step1. 用 vhdlcom 将所有的 VHDLRTL 代码编译成库
1.1 将所有的 vhdl 文件放到 vhdl.f 文件中,如:
vhdl.f
‐‐‐‐‐‐‐‐‐
my_design.vhd
my_lib.vhd
tb_my_design.vhd
1.2 编译成库
vhdlcom‐fvhdl.f
编译完成后,在运行路径下可看到自动生成的一个库文件夹 work.lib++
注意:
a) 一般情况下 vhdlcom 命令不需要加其他参数。若出现 vhdl 版本问题,可考虑增
加‐vhdl08 等参数:vhdlcom‐vhdl08‐fverilog.f
b) 编译后的 log 为 vhdlcomLog/compiler.log
c)‐lib 参数可指定一个库名。不指定,则默认库命为 work。所有的生成的库的库名
都是自动附加了".lib++"后缀。对于混合仿真 vhdl 和 verilog 的库名要保持一致,否则可能出
现其中一个库无法识别的问题(verdi 版本为 2015,可能后续版本解决了该问题)。例:vhdlcom
‐libmylib‐fvhdl.f,生成 mylib.lib++库
step2. 用 vericom 将所有的 verilogRTL 代码编译成库
2.1
将所有的 verilog 文件放到 verilog.f 文件中,如:
verilog.f
‐‐‐‐‐‐‐‐‐
my_verilog_design.v
my_verilog_lib.v
tb_top_design.v
以上 tb_top_design 为顶层设计.
2.2 编译成库
vericom‐fverilog.f
编译完成后,可看到 work.lib++库中新增了 my_verilog_design.tdc 等库。
注意:
a) 一般情况下 vericom 命令不需要加其他参数。若出现 verilog 版本问题,可考虑
增加‐2001 等参数:vericom‐2001‐fverilog.f
b) 编译后的 log 为 vericomLog/compiler.log