通过 .do 文件在 modelsim 中使用 xilinx 内核
using xilinx cores in modelsim via .do file
工具版本:
Modelsim PE 10.4a student edition
Xilinx ISE 14.7
我正在尝试使用来自 xilinxcorelib_ver 和 unisims_ver 的 xilinx 内核进行模拟,但我看到了这个错误:
Error: (vsim-3033) ../rtl/verilog/RdidTopLevel.v(72): Instantiation of 'bufg'
failed. The design unit was not found.
这是我的 .do 文件:
vlib ./work
vmap -modelsim_quiet xilinxcorelib_ver
C:/Modeltech_pe_edu_10.4a/xilinxcorelib/xilinxcorelib_ver
vmap -modelsim_quiet unisims_ver
C:/Modeltech_pe_edu_10.4a/xilinxcorelib/unisims_ver
set top_level spi_rdid_tb
vsim -novopt $top_level
vsim -lib unisims_ver
我正在像这样实例化 bufg:
BUFG bufg(.I(clkNoBuf), .O(clk));
我到底做错了什么?我希望能够映射 compxlib 创建的源目录并将其包含在我的设计中,以便我可以使用简单的 .do 文件从任何地方进行模拟。在过去的几个小时里,我环顾四周,似乎找不到任何有用的东西。
编辑:当我 运行 这样做时,modelsim 中的 GUI 将这些库映射到所有编译源,但我的设计仍然看不到它们。
我明白了我的错误,解释后参考模板。对于任何想知道如何让 compxlib 使用第 1 步中的自动化脚本的人:
确保 compxlib.exe 所在的核心 bin 目录的路径(注意:这是针对 Xilinx,但 Altera/Intel 可能类似)
C:\Xilinx\*Tool\*version\ISE_DS\ISE\bin
一旦您的系统引用了您的 bin 目录,运行 来自 terminal/command 行的以下内容。这会将您的 ModelSim 版本、所有体系结构和语言的核心编译到您想要的目录:
>>> compxlib -s mti_pe -arch all -l all -w -lib all -dir
c:/Modeltech_pe_edu_10.4a /xilinxcorelib
从 .do/.tcl 脚本执行以下操作:
# 0) Create work directory for modelsim
vlib ./work
# 1) map core libs
vmap -modelsim_quiet xilinxcorelib_ver
C:/Modeltech_pe_edu_10.4a/xilinxcorelib/xilinxcorelib_ver
vmap -modelsim_quiet unisims_ver
C:/Modeltech_pe_edu_10.4a/xilinxcorelib/unisims_ver
# 2) Compile files in use order
# vcom -93 -work work dirToSrc/file.vhd
# vlog ../rtl/verilog/*.v
# 3) use specific top level
set top_level spi_rdid_tb
# vsim -novopt $top_level # use this line instead of next if no core lib
vsim -novopt -L unisims_ver work.$top_level
# 4) the rest of your tb stuff for automation
工具版本:
Modelsim PE 10.4a student edition
Xilinx ISE 14.7
我正在尝试使用来自 xilinxcorelib_ver 和 unisims_ver 的 xilinx 内核进行模拟,但我看到了这个错误:
Error: (vsim-3033) ../rtl/verilog/RdidTopLevel.v(72): Instantiation of 'bufg'
failed. The design unit was not found.
这是我的 .do 文件:
vlib ./work
vmap -modelsim_quiet xilinxcorelib_ver
C:/Modeltech_pe_edu_10.4a/xilinxcorelib/xilinxcorelib_ver
vmap -modelsim_quiet unisims_ver
C:/Modeltech_pe_edu_10.4a/xilinxcorelib/unisims_ver
set top_level spi_rdid_tb
vsim -novopt $top_level
vsim -lib unisims_ver
我正在像这样实例化 bufg:
BUFG bufg(.I(clkNoBuf), .O(clk));
我到底做错了什么?我希望能够映射 compxlib 创建的源目录并将其包含在我的设计中,以便我可以使用简单的 .do 文件从任何地方进行模拟。在过去的几个小时里,我环顾四周,似乎找不到任何有用的东西。
编辑:当我 运行 这样做时,modelsim 中的 GUI 将这些库映射到所有编译源,但我的设计仍然看不到它们。
我明白了我的错误,解释后参考模板。对于任何想知道如何让 compxlib 使用第 1 步中的自动化脚本的人:
确保 compxlib.exe 所在的核心 bin 目录的路径(注意:这是针对 Xilinx,但 Altera/Intel 可能类似)
C:\Xilinx\*Tool\*version\ISE_DS\ISE\bin
一旦您的系统引用了您的 bin 目录,运行 来自 terminal/command 行的以下内容。这会将您的 ModelSim 版本、所有体系结构和语言的核心编译到您想要的目录:
>>> compxlib -s mti_pe -arch all -l all -w -lib all -dir
c:/Modeltech_pe_edu_10.4a /xilinxcorelib
从 .do/.tcl 脚本执行以下操作:
# 0) Create work directory for modelsim
vlib ./work
# 1) map core libs
vmap -modelsim_quiet xilinxcorelib_ver
C:/Modeltech_pe_edu_10.4a/xilinxcorelib/xilinxcorelib_ver
vmap -modelsim_quiet unisims_ver
C:/Modeltech_pe_edu_10.4a/xilinxcorelib/unisims_ver
# 2) Compile files in use order
# vcom -93 -work work dirToSrc/file.vhd
# vlog ../rtl/verilog/*.v
# 3) use specific top level
set top_level spi_rdid_tb
# vsim -novopt $top_level # use this line instead of next if no core lib
vsim -novopt -L unisims_ver work.$top_level
# 4) the rest of your tb stuff for automation