▚ 01 ModelSim命令解说
- 📢 这些命令是 ModelSim 中常用的命令,用于创建库、编译源代码和启动仿真。
- 🔔 在使用这些命令之前,你需要在 ModelSim 的命令行界面或脚本中执行 vlib 命令来创建一个库,然后使用 vlog 命令编译源代码文件,并最后使用 vsim 命令启动仿真。
1.1 创建库(vlib)
- 🌹
vlib
:该命令用于创建一个新的库(library),用于组织和管理编译后的设计单元(如模块、包等)的文件夹。语法为:
vlib <library_name>
- 其中,
<library_name>
是将要创建的库的名称,使用该命令后,ModelSim会在当前目录下创建一个新的库文件夹。
1.2 编译源代码(vlog)
- 🎃
vlog
:该命令用于编译Verilog源代码文件,并将其转换为可在仿真中使用的模型。语法为:
vlog <source_files>
- 其中,
<source_files>
是指一个或多个需要编译的源代码文件的名称,vlog编译这些文件后,会生成相应的模型文件(比如.vst或.vdb文件),以便后续仿真使用。
1.3 启动仿真(vsim)
- 🎭
vsim
:该命令用于启动ModelSim的仿真环境,并加载指定的设计单元进行仿真。语法为:
vsim <entity_name>
- 其中,
<entity_name>
是指顶层设计单元(如模块或顶层模块实例)的名称。vsim命令将打开ModelSim的仿真窗口,并加载指定的设计单元,准备进行仿真。可在仿真窗口中设置仿真参数、运行仿真以及观察波形等。 - 其他参数:
-do
:用于指定执行一个或多个ModelSim命令的脚本文件;-c
:表示以命令行模式运行ModelSim,而不是启动图形用户界面。
▚ 02 举例说明
2.1 逐行命令执行
- 🎪 以【Four Bit Counter: https://github.com/hcysky/FPGA/tree/master/ModelSim/Counter】为例,此项目包括两个Verilog文件:counter.v 和 testbench.v
- 🎁 新建文件夹counter,并将上述两个文件存放在该文件夹中。然后,在当前文件夹counter下,打开
Git Bash
终端窗口,依次执行如下命令:
vlib work
vlog counter.v testbench.v
vsim -c -L work testbench -do "run -all; quit"
- 其中,一般情况下,会新建库名为
work
。 - vlog可一次编译所有的*.v文件。
- vsim中
-L work
:指定需要加载的库,其中work表示默认工作库;run -all; quit
,是在指定的脚本文件中,run -all
命令用于开始仿真并运行所有的测试向量,quit
命令用于在仿真完成后退出ModelSim。
2.2 Makefile脚本执行
2.2.1 Makefile类型1️⃣
- 🧀
Makefile
文件为:
run:
vlib work
vlog counter.v testbench.v
vsim -c -L work testbench -do "run -all; quit"
clean:
rm -rf work transcript vsim.wlf
- 在终端执行
make run
,会依次创建库、编译源代码和启动仿真;执行make clean
则会清除新产生的文件。
2.2.2 Makefile类型2️⃣
- 🍕
Makefile
文件为:
RTL=counter.v testbench.v
run: work compile sim
work:
vlib work
compile:
vlog ${RTL}
sim:
vsim -c -L work tb -do "run -all; quit"
clean:
rm -rf work transcript vsim.wlf
- 其中,
make work
,make compile
,make sim
依次对应于创建库、编译源代码和启动仿真;make run
,会依次创建库、编译源代码和启动仿真;执行make clean
则会清除新产生的文件。
2.2.3 Makefile类型3️⃣
- 🍟
Makefile
文件为:
run:
vlib work
vlog counter.v testbench.v
vsim -c -L work testbench -do "./run.do"
clean:
rm -rf work transcript vsim.wlf
- 🌭
run.do
文件为:
view wave
add wave *
run -all; quit
- 在终端执行
make run
,会依次创建库、编译源代码和启动仿真;run.do
为ModelSim命令的脚本文件;执行make clean
则会清除新产生的文件。