轉:VCS模擬vivado IP的方法
阿新 • • 發佈:2020-08-12
vivado中的模擬庫和模型與ISE中的是不一樣的,因此在vivado中使用VCS進行模擬的方法也與ISE中不一樣。
VCS可以通過兩種方法對XILINX的器件進行功能模擬和門級模擬,這兩種方法是 Precompiled(預編譯) Dynamic(動態呼叫)。
與ISE相比有以下不同:
- vivado現在UNISIM庫同時包含功能和時序模擬模型
- vivado引數xil_timing指示UNISIM模型是正常執行還是定時執行
- vivado包含用於對舊器件進行功能和時序模擬的重定位庫
- Vivado模擬不需要XilinxCoreLib。如果存在基於ISE的舊IP,則可以將其包括在內。
- AXI BFM是需要許可證的,使用需要單獨的編譯步驟。
- vivado的物理庫路徑跟ISE已不同,邏輯庫路徑相同
具體可以引數UG900
用於Verilog功能模擬的動態庫編譯
使用VCS的功能模擬命令
vcs -y $ XILINX_VIVADO / data / verilog / src / unisims \ -y $ XILINX_VIVADO / data / verilog / src / unimacro \ -y $ XILINX_VIVADO / data / verilog / src / retarget \ -y $ XILINX_VIVADO / ids_lite / ISE / verilog / src / XilinxCoreLib \ -f $ XILINX_VIVADO / data / secureip / secureip_cell.list.f \ -f $ XILINX_VIVADO / data / secureip / axi_bfm / axi_bfm_cell.list.f \ + incdir + $ XILINX_VIVADO / verilog / src + libext + .v \ $ XILINX_VIVADO / verilog / src / glbl.v \ + verilog2001ext + .vp -lca -Mupdate -R <testfixture> .v <design> .v
VCS選項說明:
-y:包括子目錄
-f:包括檔案列表
-R:編譯後自動更新模擬可執行檔案
- verilog2001ext + .vp:表示應將SecureIP視為verilog 2001語法
-lca:啟用SecureIP模型解密
-Mupdate:啟用增量編譯
庫注意事項:
unisims:Xilinx原始功能模型
unimacro:大型原語的巨集模型
retarget:用於較舊架構的unisim / simprim重定向庫
XilinxCoreLib:ISE傳統IP模型
vcs_secureip_cell.list:要包含的安全IP元件列表
axi_bfm_cell.list:可選的加密AXI BFM模型(需要許可證)
Verilog時序模擬的動態庫編譯
時序模擬是一個三步過程,包括:
- 生成模擬網表(timesim.v生成)
- 向網表註釋時間資訊(SDF檔案生成)
- 使用VCS分析,細化和模擬時序網表和SDF
Vivado中的時序網表/ SDF生成:
write_verilog -mode timesim -sdf_file <sdf_file> .sdf <sim_netlist> .v
write_sdf <sdf_file> .sdf
VCS中的時序模擬命令
vcs + compsdf -y $ XILINX_VIVADO / data / verilog / src / unisims \
$ XILINX_VIVADO / data / verilog / src / glbl.v \
-f $ XILINX_VIVADO / data / secureip / secureip_cell.list.f \
+ libext + .v + transport_int_delays + pulse_int_e / 0 + pulse_int_r / 0 \
-Mupdate -R <testfixture> .v <sim_netlist> .v
VCS選件說明:
-y:包括庫子目錄
+ compsdf:編譯SDF檔案並向後註釋時序資訊以進行設計
-Mupdate:啟用增量編譯
makefile加上-top glbl能解決可能遇到的glbl cross module reference error
轉自:https://blog.csdn.net/Shawge/article/details/107582479?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.add_param_isCf&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.add_param_isCf