目录
实验目的:
1.在 Quartus-II 中自己用门电路设计一个D触发器,并进行仿真,时序波形验证。
2.在 Quartus-II 中直接调用一个D触发器电路,进行仿真,时序波形验证,与1做比较;
3.在 Quartus-II用Verilog语言写一个D触发器,进行仿真验证,与2做比较;
实验环境:Quartus-II安装
参考资料:使用
一、设计D触发器
1.新建工程
找到File——》new project W…——》next
然后进行以下操作,其余全是next
这里不用选,直接next
2.创建原理图
先点击File——》new
然后如下
电路图如下
然后点击左上角的保存按钮保存。
3.编译原理图
启动编译,无错误后
查看硬件电路图:点击Tools——》Netlist Viewers——》RTL Viewer
4.创建VWF文件
点击File——》new——》University Program VWF
点击Edit——》Insert——》Insert Node or Bus…
然后按照以下操作
设置完成后保存文件,File——》Save
5.波形仿真
回到主界面,先将Modelism添加到编译器中
回到主界面,让编译器编译
无错误后
为了同后面对比,这里吧D输入调成一样的
功能仿真
时序仿真
需要一下操作
到主界面点击
然后到VMF中,
二、调用D触发器电路
1.新建工程
新建工程和上面的一样。
2.创建原理图
步骤一样,在选择器件时,直接选择D触发器。
搜索dff
,调用D触发器。
原理图如下
3.编译原理图
步骤一样,编译后查看一下原理图。
4.创建VWF文件
更上面步骤一样。
5.波形仿真
依然和上面一样。
功能仿真
时序仿真
三、用Verilog语言写D触发器
1.新建工程
依然和前面的一样
2.写Verilog文件
写入以下代码
//dwave是工程文件名,需要根据工程名来改变
module dwave(d,clk,q);
input d;
input clk;
output q;
reg q;
always @ (posedge clk)//我们用正的时钟沿做它的敏感信号
begin
q <= d;//上升沿有效的时候,把d捕获到q
end
endmodule
然后编译并保存
3.Modelism手动仿真
- 在刚刚创建的Quartus工程下创建tb文件夹
- 打开Modelism软件
- 点击File——》Change Directory——》选择tb文件夹
- File——》New——》Project
①添加现存文件
②创建新文件
将之前Quartus编译得到文件加入到工程里面。
新建文件dwave_b.v
代码如下
//测试代码
`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
编译它们。
4.波形仿真
开始仿真
右键点击工程名,添加波形
设置好时间为1ms,点击旁边的按钮
会出现和上面差不多的波形。
我这出现了些错误,正在寻求解决
Error loading design