一、概述
我们在进行FPGA开发的过程之中,大部分情况下都是在进行仿真,从而验证代码实现结果的正确与否,这里我们引入了独立仿真和联合仿真进行一个简单介绍。
联合仿真:一般我们在进行仿真之前需要在相应的软件中建立相应的工程之后才能进行结果仿真(这里我们使用的Quartus和modelsim)。这是我们习惯上采用的方式。
独立仿真:顾名思义就是不依靠其他因素,对于代码进行直接仿真。
二、实现方式
联合仿真:这个仿真我们用的很多,这里就不做过多赘述。重点讲一下独立仿真
独立仿真:在进行独立仿真之前,我们需要再代码中编写一个.do文件,如下:
#在当前目录下生成物理工作库work
vlib work
#将物理工作库work映射到虚拟工作库work(第1个work为物理工作库 第2个work为虚拟工作库(在modelsim中))
vmap work work
#编译testbench文件
vlog xxxx_tb.v
#编译设计文件
vlog ../rtl/xxxx.v
vlog ../rtl/xxxx.v
#指定仿真顶层 modelsim2020用参数-voptargs=+acc modelsim altera用参数-novopt
vsim -novopt work.xxxx_tb
#添加波形
add wave -position insertpoint sim:/xxxx_tb/*
add wave -position insertpoint sim:/xxxx_tb/xxx/*
这里就是一个.do文件的基本模板,其中xxxx是模块名,xxxx_tb是测试文件,xxx是模块实例化的名字。
三、仿真操作
1、这里我们以modelsim仿真软件为例,打开modelsim软件,如图:
2、选中.do文件目录(这里我的目录是桌面/FPGA/f_adder/tb) ,根据自己.do文件所在目录选中就行:
3、选择好.do文件目录之后我们在Transcript窗口输入do f_adder_tb.do(这里是用户.do文件的名字) ,回车之后代码成功仿真,得到相应的波形图。
4、 Transcript窗口运行结果
5、最终得到的波形图
四、总结
这里我们通过得到的波形图和运用联合仿真的波形图是一致的,两者实现的结果都一样,只不过独立仿真更适用于代码结果的仿真。