1. 程式人生 > 實用技巧 >轉:VCS模擬vivado IP的方法

轉:VCS模擬vivado IP的方法

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