Quartus II实现D触发器及时序仿真

一、软件准备

Quartus II 18.1
Modelsim
破解说明
cycloneⅣ器件包请各位自己寻找Quartus Ⅱ18.1 cyconeⅣ的,阿里云盘暂不支持分享此类文件

二、认识D触发器

D触发器是一个具有记忆功能的,具有两个稳定状态的信息存储器件,是构成多种时序电路的最基本逻辑单元,也是数字逻辑电路中一种重要的单元电路。
因此,D触发器在数字系统和计算机中有着广泛的应用。触发器具有两个稳定状态,即"0"和"1",在一定的外界信号作用下,可以从一个稳定状态翻转到另一个稳定状态。
D触发器有集成触发器和门电路组成的触发器。触发方式有电平触发和边沿触发两种,前者在CP(时钟脉冲)=1时即可触发,后者多在CP的前沿(正跳变0→1)触发。
D触发器的次态取决于触发前D端的状态,即次态=D。因此,它具有置0、置1两种功能。
对于边沿D触发器,由于在CP=1期间电路具有维持阻塞作用,所以在CP=1期间,D端的数据状态变化,不会影响触发器的输出状态。
D触发器应用很广,可用做数字信号的寄存,移位寄存,分频和波形发生器等等。
在这里插入图片描述
方程
在这里插入图片描述
功能表
在这里插入图片描述
时序图
在这里插入图片描述

三、创建D触发器原理图并仿真

2.1 创建工程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
直接next在这里插入图片描述
选择目标芯片:cycloneIV E系列的EP4CE115F29C7
在这里插入图片描述
直接next
在这里插入图片描述

finish
在这里插入图片描述

2.2 新建原理图文件

打开QuartusII,选菜单“File”一“New”,在弹出的“New-”对话框中选择“ Design Files” 的原理图文件编辑输入项“Block block diagram/schematic File"按"OK"后将打开原理图编辑窗。

在这里插入图片描述
在这里插入图片描述
点击按纽“ Symbol Tool”或直接双击原理图空白处,从“ Symbol”窗中选择
需要的符号,或者直接在“name”文本框中键入元件名
在这里插入图片描述

在这里插入图片描述
4 个 nand2 与非门,1 个 not 非门,2个输入管脚和2个输出管脚,并连线,最终如下图:
在这里插入图片描述
双击输入输出管脚将其名称改为D、clk、Q、Q1(屏幕分辨率问题,博主的截图可能显示不全)

保存文件
在这里插入图片描述

2.3 编译

进行编译,若无错误则可进行下一步,若有错进行原理图修改。
在这里插入图片描述
编译成功
在这里插入图片描述
查看硬件电路图:点击【Tools】→【Netlist Viewers】→【RTL Viewer】。
如图所示:
在这里插入图片描述

2.4仿真波形图

新建波形文件 选择“university program VWF”。
在这里插入图片描述
输入波形文件。在波形文件编辑器左端大片空白处双击,出现“insert node or bus”对话框,点击“node finder”按钮。
在这里插入图片描述
然后在随后出现的“node finder”对话框中点击“list”按钮,则半加器中所有的输入输出引脚全部出现在对话框左边。再在该界面上点击“>>”,则把左边所有的端口都选择到右边,进入波形.
在这里插入图片描述
在这里插入图片描述
编辑输入CLK,产生时钟信号
在这里插入图片描述
输入D设置低电平和高电平
首先选中一段D的波形,然后点击如图按钮即可
在这里插入图片描述
在这里插入图片描述
保存文件

2.5 功能仿真

点击功能仿真编译按钮:

在这里插入图片描述
在这里插入图片描述
可以看出D发生变化时,Q总是延迟到下一个时钟上升沿才开始变化

2.6 时序仿真

点击时序仿真按钮
在这里插入图片描述

此时会产生报错
在这里插入图片描述
进行相关设置:
在这里插入图片描述
未产生报错
在这里插入图片描述
此时再点击时序仿真按钮
在这里插入图片描述
可以看出输出变化延时了一个时钟周期

三、 调用D触发器并仿真

3.1 创建工程

与上面创建工程一致
注意工程名不能与用到的器件名相同,如dff等。

3.2 新建原理图文件

方法同新建原理图文件一致
直接调用dff模块
在这里插入图片描述
加上输入输出(记得改名字)
在这里插入图片描述

3.3 编译

保存编译并查看原理图
在这里插入图片描述
在这里插入图片描述

3.4 仿真调控

具体步骤与上述仿真相同
设计波形如下
在这里插入图片描述
功能仿真:
在这里插入图片描述
依旧在下个时钟上升沿输出发生变化

时序仿真
在这里插入图片描述
输出依旧延时一个时钟周期

四、用Verilog语言实现D触发器及时序仿真

4.1 创建工程

与上面创建工程一致

4.2 新建Verilog HDL 文件

在这里插入图片描述
添加以下代码

module Dwave3 (D,CLK,Q);
    input D;
    input CLK;
    output reg Q;
    always @ (posedge CLK)//我们用正的时钟沿做它的敏感信号
    begin
        Q <= D;//上升沿有效的时候,把d捕获到q
    end
endmodule

注意顶层模块名字必须和文件名相同 否则会产生报错 因为博主的模块名为Dwave3

编译运行
在这里插入图片描述
原理图如下:
在这里插入图片描述

4.3 仿真

功能仿真:
在这里插入图片描述
输出在下个时钟上升沿开始变化

时序仿真:
在这里插入图片描述
输出延时一个时钟周期

五、 总结

本次实验分别采用设计电路,调用触发器以及Verilog语言编写三种方式实现了D触发器,帮助我加深了对D触发器的理解,同时也算是Verilog语言的入门练习并且学会了Quartus Ⅱ和Modelsim的初步使用。

六、参考资料

https://blog.csdn.net/weixin_46129506/article/details/123443865
https://blog.csdn.net/jynyyhd/article/details/127773217

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值