Quartus-ll 采用不同方法实现 D 触发器功能仿真及时序波形仿真
使用工具
Quartus-ll:Quartus II 13的安装
Modelsim:Modelsim SE的安装.
创建D触发器原理图并仿真
新建工程
【File】→【New Project Wizard…】
此处点击“next”
之后选择工程保存路径及工程名称,点击“next”
之后是添加已有工程设计文件,我们这里不需要进行添加,直接点击“next”
根据使用的fpga选择芯片
保持 Simulation 为 < None >,然后点击【Next >】
点击“finish”
创建原理图文件
【File】→【New…】。
选择【Block Diagram/Schematic File】,点击【OK】。
点击【插头图标】弹出工具窗口,搜索元件,然后在图纸上摆放:
4 个 nand2 与非门;
1 个 not 非门。
如下图所示(Ctrl + 滚轮,可放大缩小):
添加两个输入管脚和两个输出管脚,双击 Pin Name 即可修改管脚名。
完整图如下:
编译原理图文件
启动分析与综合
查看硬件电路图:点击【Tools】→【Netlist Viewers】→【RTL Viewer】。
结果如下
创建VMF文件
【File】→【New】,选择【University Program VWF】。
选择【Edit】→【Insert】→【Insert Node or Bus…】。
点击【Node Finder…】,然后点击【List】会罗列出四个管脚,点击【>>】选择全部,然后点击【OK】,自动补全了【Name】,然后点击【OK】。
编辑输入 CLK,产生时钟信号。
保存文件:【File】→【Save】。
波形仿真
点击【功能仿真按钮——Run Functional Simulation】
点击【功能仿真按钮——Run Functional Simulation】。
结果如下
调用D触发器并仿真
建立工程和原理图文件同上
编译原理图也同上
硬件电路图
波形仿真
时序仿真
用Verilog语言实现D触发器并仿真
编写Verilog文件
【File】→【New】→【Verilog HDL File】。
粘贴以下代码
//dwave是文件名
module dwave(d,clk,q);
input d;
input clk;
output q;
reg q;
always @ (posedge clk)//我们用正的时钟沿做它的敏感信号
begin
q <= d;//上升沿有效的时候,把d捕获到q
end
endmodule
打开 Modelsim 软件。
具体步骤如下:
在Quartus创建的工程文件夹下新建一个 tb 文件夹;
点击【File】→【Change Directory】选择 tb 文件夹;
创建新项目:【File】→【New】→【Project…】,编写工程名及选择路径;
添加现有文件:Add Existing File
找到刚刚 Quatrus 编译生成的 .v 文件,再点击【OK】。
再创建一个新的文件。
添加代码
//测试代码
`timescale 1ns / 1ns
module dwave_tb;
reg clk,d;
wire q;
dwave u1(.d(d),.clk(clk),.q(q));
initial
begin
clk = 1;
d <= 0;
forever
begin
#60 d <= 1;//人为生成毛刺
#22 d <= 0;
#2 d <= 1;
#2 d <= 0;
#16 d <= 0;//维持16ns的低电平,然后让它做周期性的循环
end
end
always #20 clk <= ~clk;//半周期为20ns,全周期为40ns的一个信号
endmodule
波形仿真
找到 wave_b.v 文件所在的工程(看路径),取消勾选,点击【OK】。
设置运行时长,再点击旁边的运行按钮,即可出现仿真效果图。