在WSL下使用makefile运行modelsim进行混合编译

modelsim的图像界面加载缓慢,实际上modelsim可以在纯命令行环境下仿真,使用-c参数:vsim -c。可以在WSL下用makefile运行Windows下的modelsim:

HDL_CODE      += .
HDL_CODE      += ../../rtl/
MODELSIM_ROOT := /mnt/e/exe/modeltech64_10.4/win64
TB := $(wildcard *tb*)
TB := $(basename $(TB))

MODELSIM :=$(MODELSIM_ROOT)/modelsim.exe
MVLIB := $(MODELSIM_ROOT)/vlib.exe
MVCOM := $(MODELSIM_ROOT)/vcom.exe
MVLOG := $(MODELSIM_ROOT)/vlog.exe
MVSIM := $(MODELSIM_ROOT)/vsim.exe
VHDL_CODE:=$(addsuffix /*.vhd , $(HDL_CODE))
VHDL_CODE:=$(wildcard $(VHDL_CODE))
VERILOG_CODE:=$(addsuffix /*.v , $(HDL_CODE))
VERILOG_CODE:=$(wildcard $(VERILOG_CODE))

simc:makework vhdl verilog
	$(MVSIM) -c -L work -voptargs=+acc $(TB) -do 'run -all' -do 'exit'

simg:makework vhdl verilog
	$(MVSIM) -L work -voptargs=+acc $(TB) -do 'add wave $(TB)/*' -do 'run -all'

vhdl:$(VHDL_CODE)
	$(MVCOM) -2008 -explicit $(VHDL_CODE)

verilog:$(VERILOG_CODE)
	$(MVLOG) $(VERILOG_CODE)

makework:
	$(MVLIB) work

clr:
	rm -rf vsim* transcript work/

.PONY: clr clean

使用make simc在纯命令行下仿真,如果需要同时导出波形文件,请在verilog TB中添加:

initial begin
    $dumpfile("wave.vcd");     // 波形文件名
    $dumpvars(0,tbv.u_module); // 抓取层级
end

使用make simg在图形界面仿真并显示波形,好处是可以看到实时波形。make simg和在图形界面运行.do文件进行编译无异。其中add wave $(TB)/*指定要看的层级。

vsim -civerilog的流程相似,都需要生成.vcd文件,再用gtkwave查看波形,比较繁琐,但对于小工程而言很方便。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值