通过 .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