文章目录
实验环境
Quartus 18.1
Modelsim
一、软件安装
Quartus 18.1 安装教程
Modelsim SE版本的安装
二、认识D触发器
D触发器是一个具有记忆功能的,具有两个稳定状态的信息存储器件,是构成多种时序电路的最基本逻辑单元,也是数字逻辑电路中一种重要的单元电路。因此,D触发器在数字系统和计算机中有着广泛的应用。触发器具有两个稳定状态,即"0"和"1",在一定的外界信号作用下,可以从一个稳定状态翻转到另一个稳定状态。
D触发器有集成触发器和门电路组成的触发器。触发方式有电平触发和边沿触发两种,前者在CP(时钟脉冲)=1时即可触发,后者多在CP的前沿(正跳变0→1)触发。
D触发器的次态取决于触发前D端的状态,即次态=D。因此,它具有置0、置1两种功能。
对于边沿D触发器,由于在CP=1期间电路具有维持阻塞作用,所以在CP=1期间,D端的数据状态变化,不会影响触发器的输出状态。
D触发器应用很广,可用做数字信号的寄存,移位寄存,分频和波形发生器等等。
1)功能表
D | CLK | Q | QN |
---|---|---|---|
0 | 时钟上升沿 | 0 | 1 |
1 | 时钟上升沿 | 1 | 0 |
x | 0 | lastQ | lastQN |
x | 1 | lastQ | lastQN |
2)方程
Qn+1=D
3)时序图
4)D触发器控制电路图
三、创建D触发器原理图仿真
1.创建工程
点击File->New Project Wizard
点击Next
选择项目位置,输入项目名称,再点击next
选择空项目,点击next
点击next
选择目标芯片:cycloneIVE系列的EP4CE115F29C7,点击next
EDA Tool Setting设置,点击next
检查项目信息,点击finish
2.新建原理图文件
点击New->Block Digram->ok
点击按纽“ Symbol Tool”或直接双击原理图空白处,从“ Symbol”窗中选择
需要的符号,或者直接在“name”文本框中键入元件名
输入输出管脚在从“ Symbol”窗中选择
4 个 nand2 与非门,1 个 not 非门,2个输入管脚和2个输出管脚,并连线,最终如下图:
点击保存
3.编译
进行编译,若无错误则可进行下一步,若有错进行原理图修改。
如果出现Error (119013): Current license file does not support the EP4CE115F29C7 device.错误需要注意一下软件破解是否出现问题
查看硬件电路图:点击【Tools】→【Netlist Viewers】→【RTL Viewer】。
4.仿真波形图
新建波形文件。如上面新建图形文件的方法,从“file”中选择“new”,然后从出现的对话框中选择“university program VWF”。点击“OK”。
输入波形文件。在波形文件编辑器左端大片空白处双击,出现“insert node or bus”对话框,点击“node finder”按钮。如图。
然后在随后出现的“node finder”对话框中点击“list”按钮,则半加器中所有的输入输出引脚全部出现在对话框左边。再在该界面上点击“>>”,则把左边所有的端口都选择到右边,进入波形,如图。
点击两次“OK”后,出现如图的波形文件。
点击编辑输入CLK,产生时钟信号
把输入D随便设置几个低电平和高电平
保存文件:【File】→【Save】。
点击功能仿真编译按钮:
四、调用D触发器系统框架并仿真
1.创建工程
和上面创建工程一样: 工程创建
2.新建原理图文件
方法同三、2.新建原理图文件
这时,不再画D触发器的内部结构了,而是直接调用D触发器,元件名:dff
这是系统自带的D触发器
再添加输入和输出管脚。最终原理图如下:
3.编译
方法同三、3.编译
保存并编译,然后查看原理图:
4.仿真波形图
方法同三、4.仿真波形图
五、用Verilog语言实现D触发器及时序仿真
1.创建工程
和上面创建工程一样: 工程创建
2.新建Verilog HDL 文件
【File】→【New】→【Verilog HDL File】
编写代码:
module dwave_v (CLK,D,Q); //输入端口列表
input CLK; //输入时钟信号
input D; //输入D
output Q; //输出Q
reg Q; //寄存器类型
always @(posedge CLK) begin //时钟上升沿有效
Q<=D; //非阻塞赋值,即always语句运行完后赋值
end
endmodule
3.编译
使用rtl viewer查看硬件电路图
硬件电路图
4.仿真波形图
方法1,同三、4.仿真波形图
方法2,使用Modelsim进行手动波形仿真
打开 Modelsim 软件。
具体步骤如下:
在Quartus创建的工程文件夹下新建一个 tb 文件夹;
点击【File】→【Change Directory】选择 tb 文件夹;
创建新项目:【File】→【New】→【Project…】,编写工程名及选择路径;
添加现有文件:Add Existing File
找到刚刚 Quatrus 编译生成的 .v 文件,再点击【OK】
再创建一个新的文件
然后关闭添加文件窗口界面
再双击刚刚新建的 wave_td.v 文件,添加如下代码:
//测试代码
`timescale 1ns / 1ns
module dwave_tb;
reg CLK,D;
wire Q;
dwave_v 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
然后保存,点击【编译】按钮,编译所有文件
点击【Simulate】→【Start Simulation…】
找到 wave_td.v 文件所在的工程(看路径),点击【OK】
右键点击工程名,再点击【Add Wave】
设置运行时长,再点击旁边的运行按钮,即可出现仿真效果图
六、总结
三种方式D触发器调用对比:1.通过创建原理图,D触发器可以由4个与非门,一个非门,仿真出来,第一种方法更贴近原理组成,对D触发器原理机制有深入了解 2.通过软件给的D触发器框架,可以很快仿真出D触发器,电路也比较精简,调用D触发器最方便 3.通过硬件语言verilog方式来描述D触发器,主要站在D触发器功能实现,来进行编写代码,更贴近应用层面。