目录

  • 一、D触发器简介
  • 1、简介
  • 2、时序图
  • 二、创建D触发器原理图仿真
  • 1、工程创建
  • 2、新建原理图
  • 3、编译
  • 4、波形图仿真
  • 5、功能仿真
  • 6、时序仿真
  • 三、调用D触发器仿真
  • 1、创建工程
  • 2、新建原理图
  • 3、编译
  • 4、波形图仿真
  • 四、Verilog实现D触发器仿真
  • 1、新建工程
  • 2、新建Verilog HDL 文件
  • 3、编译
  • 4、波形图仿真
  • 五、总结
  • 六、参考


一、D触发器简介

1、简介

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

2、时序图

触发器监控ddl d触发器连接_触发器

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

1、工程创建

创建新项目

触发器监控ddl d触发器连接_触发器_02


设置储存位置及文件名

触发器监控ddl d触发器连接_原理图_03


芯片:cycloneIVE系列的EP4CE115F29C7

触发器监控ddl d触发器连接_fpga开发_04

中间省略步骤选择next或者finish,没有特殊设置

2、新建原理图

原理图编辑窗口

触发器监控ddl d触发器连接_触发器_05


触发器监控ddl d触发器连接_原理图_06

元件设置

三种选择方法:

  1. 点击按纽“ Symbol Tool
  2. 双击原理图空白处,从“ Symbol”窗中选择需要的符号
  3. 直接在“name”文本框中键入元件名

触发器监控ddl d触发器连接_Verilog_07


添加元件

输入:

  • nand2:生成两输入与非门(4个)
  • not:生成非门(1个)
  • input:生成输入(2个)
  • output:生成输出(2个)

触发器监控ddl d触发器连接_触发器监控ddl_08

注意此处大写命名输入为D和CLK,输出为Q和Q1

元件链接

1、可通过Ctrl+加鼠标滚轮放大方便链接
2、链接完成后另存为已有的db文件夹
3、链接完成无X标识

触发器监控ddl d触发器连接_Verilog_09

3、编译

编译

触发器监控ddl d触发器连接_Verilog_10


硬件电路图查看

触发器监控ddl d触发器连接_触发器监控ddl_11


触发器监控ddl d触发器连接_fpga开发_12

4、波形图仿真

新建波形文件

打开方法与新建图形相同

触发器监控ddl d触发器连接_原理图_13

输入波形文件

波形文件编辑器左端大片空白处双击点击“node finder”按钮

触发器监控ddl d触发器连接_触发器监控ddl_14


进入波形文件

点击list按钮,则半加器中所有的输入输出引脚全部出现在对话框左边。

再在该界面上点击>>,则把左边所有的端口都选择到右边

触发器监控ddl d触发器连接_fpga开发_15


点击两次OK进入波形

触发器监控ddl d触发器连接_原理图_16


编辑波形

编辑CLK,产生时钟信号

触发器监控ddl d触发器连接_Verilog_17


输入D设置低电平和高电平

选中D随意长度随意段数进行变化

触发器监控ddl d触发器连接_原理图_18

注意保存文件使用默认路径

5、功能仿真

仿真设置

触发器监控ddl d触发器连接_Verilog_19


触发器监控ddl d触发器连接_原理图_20

触发器监控ddl d触发器连接_原理图_21


功能仿真

触发器监控ddl d触发器连接_触发器_22


**结果分析:**每次D输入发生变化时,在下一个上升沿Q输出会跟着发生变化

6、时序仿真

开启时序仿真

触发器监控ddl d触发器连接_Verilog_23


触发器监控ddl d触发器连接_触发器监控ddl_24


VMF界面,点击时序仿真按钮

触发器监控ddl d触发器连接_原理图_25


结果分析: 输出变化延迟了一个时钟

三、调用D触发器仿真

1、创建工程

与前文新建工程相同

2、新建原理图

与前文新建原理图相同

直接应用dff模块

触发器监控ddl d触发器连接_fpga开发_26


设计的原理图

触发器监控ddl d触发器连接_原理图_27

3、编译

保存并进行编译

触发器监控ddl d触发器连接_触发器监控ddl_28


查看电路图

触发器监控ddl d触发器连接_原理图_29

4、波形图仿真

与前文波形图仿真相同

触发器监控ddl d触发器连接_触发器_30


时序仿真

触发器监控ddl d触发器连接_原理图_31


结果分析: 延后一个时钟周期

功能仿真:

触发器监控ddl d触发器连接_fpga开发_32


结果分析: 在下个上升沿输出改变

四、Verilog实现D触发器仿真

1、新建工程

与前文新建工程相同

2、新建Verilog HDL 文件

与前文新建相似

代码编写:

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

触发器监控ddl d触发器连接_Verilog_33

注意代码中模块名与文件名相同

3、编译

保存并编译

触发器监控ddl d触发器连接_原理图_34


查看电路图

触发器监控ddl d触发器连接_触发器_35

4、波形图仿真

与前文波形图仿真相同

触发器监控ddl d触发器连接_原理图_36

功能仿真:

触发器监控ddl d触发器连接_原理图_37


结果分析: D输入发生变化时,在下一个上升沿Q输出会跟着发生变化

时序仿真:

触发器监控ddl d触发器连接_fpga开发_38


结果分析: 输出变化延迟了一个时钟

五、总结

  • 第一种设计D触发器实现,了解了触发器内部原理以及内部的结果
  • 第二种调用D触发器,方便实现需求功能,但原理了解不足
  • 第三种通过Verilog编程实现,是通过软件编程实现,也了解了原理
  • 本次验证了三种方式实现触发器并实现仿真