Quartus moldelsim联合仿真
步骤与设置
1.先在某目录下把装说明、代码的文件夹建好,方便管理和查询;
2.新建工程——New Project Wizard——目录选择自己新建的文件夹装工程文件——顶层文件名: (第三个) 通过顶层文件能通过代码找到该顶层文件下的所有元件,模块名,不是文件名
第二个是工程名
——next——选芯片Cylone IV E——参数设置(选择Verilog语言)——完成
3.新建代码文件
将代码敲入,如果已经用别的编辑器写好了代码的,可以三步添加
直接在files三个点添加。
4.编译,可以先查看是否有语法错误,然后再编译。(这里是一个寄存器的加法程序)
编译成功后会出现这个界面,有逻辑门占用空间,io口使用情况,引脚使用情况。
5.得到编译文件。首先如下操作得到编译文件模板。
生成.vt文件,VHDL语言是.vht文件,根据该目录用文本编辑器打开这个文件,自己加入激励等信息(需要自己进行编辑,具体编辑我还不熟悉?),保存。本算例程序编译文件内容如下。
`timescale 1 ps/ 1 ps
module test_vlg_tst();
// constants
// general purpose registers
reg eachvec;
// test vector input registers
reg [7:0] a;
reg [7:0] b;
// wires
wire [8:0] out;
// assign statements (if any)
test i1 (
// port map - connection between master ports and signals/registers
.a(a),
.b(b),
.out(out)
);
initial
begin
// code that executes only once
// insert code here --> begin
a = 8'd 3;
b = 8'd 4;
# 100_000;
a = 8'd 13;
b = 8'd 14;
# 100_000;
a = 8'd 23;
b = 8'd 24;
# 100_000;
$stop;
end
endmodule
6.设置仿真参数,将编译文件加载到仿真设置中。
我这里已经加载进去了,文件名称参见原自动生成的文件模版。
7.启动moldelsim进行联合仿真。(软件中是RTL Simulation,真正的逻辑仿真,给个输入,得到一个输出,看电路逻辑是否正确。还有个Gate Level Simulation 就是指有时延的仿真,即时序仿真,给个输入,由于存在时延,输出不会立即发生变化,而是最后才变化。这里我们选择RTL)
将输入改成无符号数,加法正确。
输入和输出同时,无时延,但真的是这样吗?
另外再试一下时序仿真
从波形可以很清楚的看到有时延,输出和输入并不是同时的。