Quartus-II13.1三种方式实现D触发器及时序仿真

文章目录

  • 一、认识D触发器
    • (一)D触发器结构
    • (二)D触发器的波形图
  • 二、Quartus-II输入原理图及时序仿真
    • (一)创建工程
    • (二)创建方框文件
    • (三)编译原理图文件
    • (四)创建vwm格式波形文件
    • (五)时序波形仿真
  • 三、Quartus-II调用D触发器及时序仿真
    • (一)创建工程
    • (二)创建方框文件
    • (三)编译原理图文件
    • (四)创建vwm格式波形文件及时序仿真
  • 四、Quartus-II用Verilog语言实现D触发器及时序仿真
    • (一)创建工程
    • (二)编写Verilog文件
    • (三)查看生成的电路图
    • (四)利用Verilog语言编写测试代码实现时序仿真
  • 参考资料

一、认识D触发器

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

(一)D触发器结构

在这里插入图片描述
从图中可以发现D触发器有四个管脚,分别是输入信号D,输出信号Q,时钟信号CLK以及复位信号RESET。
其功能是当RESET为低电平(0),Q处于低电平状态;当RESET为高电平(1),通过观察CLK状态,当CLK信号由0变1(上升沿)的时候,若D为低电平,Q就为低电平,若D为高电平,Q就为高电平。

(二)D触发器的波形图

理想状态
在这里插入图片描述
初始状态:
设置复位信号(rst_n)为1,d为0,q为1
变化过程:
rst_n为0的时候,q的值始终为0;rst_n为1的时候,当clk由0变为1,q的值根据d值而发生变化(值同)
实际状态
在这里插入图片描述
q值发生变化的时候,存在一定的延时(上升沿的时候q的值为变化之前的值)

二、Quartus-II输入原理图及时序仿真

(一)创建工程

File->New Project Wizard
在这里插入图片描述
填写工程名称
在这里插入图片描述
根据使用的FPGA,进行选择芯片系列及类型
在这里插入图片描述
直接Next
在这里插入图片描述
完成工程创建,点击Finish
在这里插入图片描述

(二)创建方框文件

选择New
在这里插入图片描述
选择Block Diagram/Schematic File
在这里插入图片描述
选择nand2,二个输入的与非门,依次添加四个and2和一个非门not
在这里插入图片描述
添加完成
在这里插入图片描述
选择连线工具
在这里插入图片描述
连线效果
在这里插入图片描述
保存电路图
在这里插入图片描述

(三)编译原理图文件

启动分析与综合(全编译)
rtl viewer,查看硬件电路图
在这里插入图片描述
硬件电路图
在这里插入图片描述

(四)创建vwm格式波形文件

选择VWF
在这里插入图片描述
选择Edit->Insert->Insert Node or Bus
在这里插入图片描述
添加Node or Bus
在这里插入图片描述
添加效果
在这里插入图片描述
编辑输入Clk,产生时钟信号
在这里插入图片描述
鼠标选择D,Q信号Q_n,,进行编辑
在这里插入图片描述

(五)时序波形仿真

功能仿真后的波形,满足D latch的时序(全编译后,也可以运行时序仿真)
出现下图错误
在这里插入图片描述
解决方法
选择tools->Launch Simulation Library Compiler
在这里插入图片描述
在这里插入图片描述
返回vwm文件中,点击时序仿真,仿真结果如下
在这里插入图片描述

三、Quartus-II调用D触发器及时序仿真

(一)创建工程

方法同上

(二)创建方框文件

调用D触发器
在这里插入图片描述
添加完成效果
在这里插入图片描述

(三)编译原理图文件

启动分析与综合(全编译),使用rtl viewer查看硬件电路图
硬件电路图
在这里插入图片描述

(四)创建vwm格式波形文件及时序仿真

创建文件方法同上
编辑好的波形
在这里插入图片描述
功能仿真结果
在这里插入图片描述
时序仿真结果
在这里插入图片描述
通过功能仿真和时序仿真的结果对比可以发现,时序仿真存在时延,更加和实际结果相匹配。

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

(一)创建工程

方法同上

(二)编写Verilog文件

创建Verilog文件
点击File->New,选中Verilog
在这里插入图片描述
代码如下

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

保存文件并编译

(三)查看生成的电路图

使用rtl viewer查看硬件电路图
硬件电路图
在这里插入图片描述

(四)利用Verilog语言编写测试代码实现时序仿真

具体仿真过程,参考链接:
https://blog.csdn.net/qq_43279579/article/details/115176423
测试代码

//测试代码
`timescale 1ns / 1nsmodule dwave_tb;reg clk,d;wire q;dwave u1(.d(d),.clk(clk),.q(q));initialbeginclk = 1;d <= 0;foreverbegin#60 d <= 1;//人为生成毛刺 #22 d <= 0;#2  d <= 1;#2  d <= 0;#16 d <= 0;//维持16ns的低电平,然后让它做周期性的循环endendalways #20 clk <= ~clk;//半周期为20ns,全周期为40ns的一个信号
endmodule

仿真效果
在这里插入图片描述
通过三种方式实现D触发器及时序仿真的过程,可以发现D触发器的基本功能是在复位信号为1的时候,CLK的上升沿会引起Q值的变化。由此,可以得出次态方程为 Q n + 1 = D \color{red}{Q_{n+1}=D} Qn+1=D。三种方式来说对于输入原理图可以更加清楚D触发器的结构,直接调用实际上就是不用自己了解D触发器的组成,Verilog语言实现会要求对语言有所掌握。三种方式来说,要想对结构有所了解,输入原理图会更好,对于元件比较多的来说,采用Verilog语言编程会更好。

参考资料

Quartus II自带仿真工具的使用
Quartus-II输入原理图及仿真步骤.docx
通过仿真和综合认识D触发器(Verilog HDL语言描述D触发器)


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部