1.makefile的目标任务的梳理:
(1)目标:生成波形文件 依赖:waveform.vcd 文件
(2)目标:生成waveform.vcd 依赖:./obj_dir/V$(MODULE)
(3)目标:生成./obj_dir/V$(MODULE) 依赖:.sv 文件 .cpp文件
(4)目标: clean (清除obj_dir 文件以及波形文件.vcd)
2.makefile代码如下:
MODULE=ALU (设计文件的文件名)
waves: waveform.vcd
@echo “~~~”WAVES
gtkwave waveform.vcd
waveform.vcd: ./obj_dir/V$(MODULE)
@echo“~~~”SIMULATION
./obj_dir/V$(MODULE) +verilator+rand+reset+2
./obj_dir/V$(MODULE): $(MODULE).sv tb_$(MODULE).cpp
@echo“~~~”VERILATING
verilator -Wall --trace --x-assign unique --x-initial unique -cc $(MODULE).sv --exe tb_$(MODULE).cpp
@echo“~~~”BUILDING SIM
make -C obj_dir -f V$(MODULE).mk V$(MODULE)
clean:
rm -rf ./obj_dir
rm -rf waveform.vcd
3. makefile 的命令解读
(1)verilator -Wall --trace --x-assign unique --x-initial unique -cc $(MODULE).sv --exe tb_$(MODULE).cpp
Wall : 使能产生警告
cc : 将.sv文件转为C++文件
exe : 指定C++的测试文件
目的:生成obj_dir 文件夹
(2)make -C obj_dir -f V$(MODULE).mk V$(MODULE)
目的:将.mk文件转为可执行的文件
(3)./obj_dir/V$(MODULE) +verilator+rand+reset+2
目的:执行生成的可执行文件
(4)gtkwave waveform.vcd
目的:将程序执行之后生成的波形文件打开
Makefile在Verilog仿真中的应用
该Makefile主要用于Verilog设计的仿真流程管理。它首先定义了ALU设计模块,然后设置了一系列目标:生成waveform.vcd波形文件,这依赖于通过Verilator编译的模拟器。Verilator将Verilog代码转换为C++,并编译生成可执行文件。最后,清理目标用于删除obj_dir目录和波形文件。整个过程包括编译、模拟和显示波形的步骤。
1040

被折叠的 条评论
为什么被折叠?



