博客
关于我
quartus调用&设计D触发器——仿真&时序波验证
阅读量:535 次
发布时间:2019-03-09

本文共 2030 字,大约阅读时间需要 6 分钟。

quartus调用&设计D触发器——仿真&时序波验证

目录

1、 在 Quartus-II 中自己用门电路设计一个D触发器,并进行仿真,时序波形验证;

2、在 Quartus-II 中直接调用一个D触发器电路,进行仿真,时序波形验证,与2做比较;
3、在 Quartus-II用Verilog语言写一个D触发器,进行仿真验证

一、认识D触发器

D触发器是一个具有记忆功能的,具有两个稳定状态的信息存储器件,是构成多种时序电路的最基本逻辑单元,也是数字逻辑电路中一种重要的单元电路。

D触发器在时钟脉冲CP的前沿(正跳变0→1)发生翻转,触发器的次态取决于CP的脉冲上升沿到来之前D端的状态,即次态=D。因此,它具有置0、置1两种功能。由于在CP=1期间电路具有维持阻塞作用,所以在CP=1期间,D端的数据状态变化,不会影响触发器的输出状态。
D触发器应用很广,可用做数字信号的寄存,移位寄存,分频和波形发生器等。

1、结构

D触发器(data flip-flop或delay flip-flop)由4个与非门组成,其中G1和G2构成基本RS触发器。电平触发的主从触发器工作时,必须在正跳沿前加入输入信号。如果在CP高电平期间输入端出现干扰信号,那么就有可能使触发器的状态出错。而边沿触发器允许在CP触发沿来到前一瞬间加入输入信号。这样,输入端受干扰的时间大大缩短,受干扰的可能性就降低了。边沿D触发器也称为维持-阻塞边沿D触发器。边沿D触发器可由两个D触发器串联而成,但第一个D触发器的CP需要用非门反向。

2、特征

功能表

在这里插入图片描述
时序图
在这里插入图片描述

这里就是对D触发器的一个简单介绍,有关更多D触发器的认识,大家可以参考下面链接;

.

二、设计D触发器及时序验证

1、创建工程

file—>new project wizard

在这里插入图片描述
编辑工程名称,后面点击next
在这里插入图片描述
选择合适的芯片及其系列
在这里插入图片描述

直接next

在这里插入图片描述
工程创建完成,点击finish
在这里插入图片描述

2、创建方框文件

点击new

在这里插入图片描述
选择红色方框的署名
在这里插入图片描述
按图示选择
在这里插入图片描述
选择nand2,两个输入的与非门,依次添加4个nand2和一个非门not
在这里插入图片描述
添加完成后如图
在这里插入图片描述
选择连线工具
在这里插入图片描述
连线效果如图(双击鼠标可以更改引脚名称)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210331223257691.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1FXRVJUWXp4dw==,size_16,color_FFFFFF,t_70
保存电路图
在这里插入图片描述

3、编译原理图文件

编译电路图

在这里插入图片描述
编译界面
在这里插入图片描述
rtl viewer,查看硬件电路图
在这里插入图片描述
电路图
在这里插入图片描述

4、创建vwm波形文件

选择图示vwm

在这里插入图片描述
操作如图
在这里插入图片描述
添加node or bus
在这里插入图片描述
效果展示
在这里插入图片描述
编辑输入信号clk,产生时钟信号
在这里插入图片描述
鼠标选择D,Q信号Q_n,进行编辑(鼠标左键选中 双击改值)
在这里插入图片描述

5、时序波形仿真

编译

在这里插入图片描述

出现报错

在这里插入图片描述
连接modelsim
在这里插入图片描述
在这里插入图片描述
报错解决方法
在这里插入图片描述
在这里插入图片描述
结果如图
在这里插入图片描述
仿真结果
在这里插入图片描述

三、调用D触发器及时序验证

1、创建方框文件

创建工程方法同上

调用D触发器
在这里插入图片描述
连线补引脚,效果如图(Ctrl+鼠标滚轮可以对触发器引脚等进行缩放)
在这里插入图片描述

2、编译原理图

查看硬件图

在这里插入图片描述
编译
在这里插入图片描述

3、创建vwm波形文件及仿真

波形

在这里插入图片描述
时序仿真结果
在这里插入图片描述

四、verilog语言实现D触发器及时序验证

1、编写verilog文件

首先创建工程,方法同上

创建Verilog文件,点击file—new
在这里插入图片描述
粘贴如下代码

//demo是文件名module demo(d,clk,q);    input d;    input clk;    output q;    reg q;    always @ (posedge clk)//我们用正的时钟沿做它的敏感信号    begin        q <= d;//上升沿有效的时候,把d捕获到q    endendmodule

在这里插入图片描述

保存并编译
在这里插入图片描述

2、查看生成的电路图

在这里插入图片描述

3、测试时序仿真

代码如下

//测试代码`timescale 1ns / 1nsmodule demo_tb;    reg clk,d;    wire q;    demo 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

保存并编译

在这里插入图片描述
仿真效果图
在这里插入图片描述

五、总结与参考资料

1、总结

D触发器及时序仿真的过程,可以发现D触发器的基本功能是在复位信号为1的时候,CLK的上升沿会引起Q值的变化。由此,可以得出次态方程为 Q n + 1 = D

2、参考资料

.

.
.

转载地址:http://hgmiz.baihongyu.com/

你可能感兴趣的文章
Mysql Innodb 锁机制
查看>>
MySQL InnoDB中意向锁的作用及原理探
查看>>
MySQL InnoDB事务隔离级别与锁机制深入解析
查看>>
Mysql InnoDB存储引擎 —— 数据页
查看>>
Mysql InnoDB存储引擎中的checkpoint技术
查看>>
Mysql InnoDB存储引擎中缓冲池Buffer Pool、Redo Log、Bin Log、Undo Log、Channge Buffer
查看>>
MySQL InnoDB引擎的锁机制详解
查看>>
Mysql INNODB引擎行锁的3种算法 Record Lock Next-Key Lock Grap Lock
查看>>
mysql InnoDB数据存储引擎 的B+树索引原理
查看>>
mysql innodb通过使用mvcc来实现可重复读
查看>>
mysql insert update 同时执行_MySQL进阶三板斧(三)看清“触发器 (Trigger)”的真实面目...
查看>>
mysql interval显示条件值_MySQL INTERVAL关键字可以使用哪些不同的单位值?
查看>>
Mysql join原理
查看>>
MySQL Join算法与调优白皮书(二)
查看>>
Mysql order by与limit混用陷阱
查看>>
Mysql order by与limit混用陷阱
查看>>
mysql order by多个字段排序
查看>>
MySQL Order By实现原理分析和Filesort优化
查看>>
mysql problems
查看>>
mysql replace first,MySQL中处理各种重复的一些方法
查看>>