Quartus设计D触发器并进行仿真观察时序波形

目录

    • 一、学习D触发器
    • 二、门电路设计D触发器并仿真
      • 1、创建工程
      • 2、新建原理图文件
      • 3、编译
      • 4、仿真波形图
    • 三、调用D触发器并仿真
      • 1、创建工程
      • 2、新建文件
      • 3、编译
      • 4、仿真波形图
    • 四、用Verilog语言实现D触发器及时序仿真
      • 1、创建工程
      • 2、新建Verilog HDL 文件
      • 3、编译
      • 4、仿真波形图

一、学习D触发器

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

二、门电路设计D触发器并仿真

1、创建工程

1、File->New Project Wizard:
Quartus设计D触发器并进行仿真观察时序波形_第4张图片
点击Next
Quartus设计D触发器并进行仿真观察时序波形_第5张图片
设置工程的存储位置和项目名称
Quartus设计D触发器并进行仿真观察时序波形_第6张图片
Quartus设计D触发器并进行仿真观察时序波形_第7张图片
直接点击next:
Quartus设计D触发器并进行仿真观察时序波形_第8张图片
选择目标芯片:cycloneIVE系列的EP4CE11529C7
Quartus设计D触发器并进行仿真观察时序波形_第9张图片

Quartus设计D触发器并进行仿真观察时序波形_第10张图片
检查项目信息,点击finish
Quartus设计D触发器并进行仿真观察时序波形_第11张图片

2、新建原理图文件

打开QuartusII,选菜单“File”一“New”,在弹出的“New-”对话框中选择“ Design Files” 的原理图文件编辑输入项“Block block diagram/schematic File"按"OK"后将打开原理图编辑窗。
Quartus设计D触发器并进行仿真观察时序波形_第12张图片
点击按纽“ Symbol Tool”或直接双击原理图空白处,从“ Symbol”窗中选择
需要的符号,或者直接在“name”文本框中键入元件名
Quartus设计D触发器并进行仿真观察时序波形_第13张图片
Quartus设计D触发器并进行仿真观察时序波形_第14张图片
4 个 nand2 与非门,1 个 not 非门,2个输入管脚和2个输出管脚,并连线,最终如下图:
Quartus设计D触发器并进行仿真观察时序波形_第15张图片
保存

3、编译

进行编译,若无错误则可进行下一步,若有错进行原理图修改。
在这里插入图片描述
查看硬件电路图:点击【Tools】→【Netlist Viewers】→【RTL Viewer】。
Quartus设计D触发器并进行仿真观察时序波形_第16张图片
Quartus设计D触发器并进行仿真观察时序波形_第17张图片

4、仿真波形图

新建波形文件。如上面新建图形文件的方法,从“file”中选择“new”,然后从出现的对话框中选择“university program VWF”。点击“OK”。
Quartus设计D触发器并进行仿真观察时序波形_第18张图片
输入波形文件。在波形文件编辑器左端大片空白处双击,出现“insert node or bus”对话框,点击“node finder”按钮。如图。
Quartus设计D触发器并进行仿真观察时序波形_第19张图片
然后在随后出现的“node finder”对话框中点击“list”按钮,则半加器中所有的输入输出引脚全部出现在对话框左边。再在该界面上点击“>>”,则把左边所有的端口都选择到右边,进入波形,如图。
Quartus设计D触发器并进行仿真观察时序波形_第20张图片
点击两次“OK”后,出现如图的波形文件。
Quartus设计D触发器并进行仿真观察时序波形_第21张图片
Quartus设计D触发器并进行仿真观察时序波形_第22张图片
编辑输入CLK,产生时钟信号
Quartus设计D触发器并进行仿真观察时序波形_第23张图片
把输入D随便设置几个低电平和高电平
Quartus设计D触发器并进行仿真观察时序波形_第24张图片
保存文件:【File】→【Save】。
Quartus设计D触发器并进行仿真观察时序波形_第25张图片
功能仿真
点击功能仿真编译按钮:
在这里插入图片描述
仿真结果如下(延迟了半个时钟周期):
功能仿真图:
Quartus设计D触发器并进行仿真观察时序波形_第26张图片
时序仿真
仿真结果如下(延迟了1个时钟周期):
时序仿真图
Quartus设计D触发器并进行仿真观察时序波形_第27张图片

三、调用D触发器并仿真

1、创建工程

同上

2、新建文件

同上
这时,不再画D触发器的内部结构了,而是直接调用D触发器,元件名:dff
Quartus设计D触发器并进行仿真观察时序波形_第28张图片
再添加输入和输出管脚。最终原理图如下:
Quartus设计D触发器并进行仿真观察时序波形_第29张图片

3、编译

保存并编译,然后查看原理图:
Quartus设计D触发器并进行仿真观察时序波形_第30张图片

4、仿真波形图

具体步骤同上
功能仿真波形图(延时半个时钟周期):
Quartus设计D触发器并进行仿真观察时序波形_第31张图片
时序仿真波形图(延时一个时钟周期):
Quartus设计D触发器并进行仿真观察时序波形_第32张图片

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

1、创建工程

同上

2、新建Verilog HDL 文件

【File】→【New】→【Verilog HDL File】
Quartus设计D触发器并进行仿真观察时序波形_第33张图片
编写代码:`//dwave是文件名
module dwave(D,CLK,Q);
input D;
input CLK;
output Q;

reg Q;

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

endmodule

`

3、编译

保存文件并编译.
使用rtl viewer查看硬件电路图
硬件电路图
Quartus设计D触发器并进行仿真观察时序波形_第34张图片

4、仿真波形图

打开 Modelsim 软件。
具体步骤如下:
在Quartus创建的工程文件夹下新建一个 tb 文件夹;
点击【File】→【Change Directory】选择 tb 文件夹;
Quartus设计D触发器并进行仿真观察时序波形_第35张图片
Quartus设计D触发器并进行仿真观察时序波形_第36张图片
创建新项目:【File】→【New】→【Project…】,编写工程名及选择路径;
Quartus设计D触发器并进行仿真观察时序波形_第37张图片
Quartus设计D触发器并进行仿真观察时序波形_第38张图片
添加现有文件:Add Existing File
找到刚刚 Quatrus 编译生成的 .v 文件,再点击【OK】
Quartus设计D触发器并进行仿真观察时序波形_第39张图片

再创建一个新的文件
Quartus设计D触发器并进行仿真观察时序波形_第40张图片
Quartus设计D触发器并进行仿真观察时序波形_第41张图片
然后关闭添加文件窗口界面
再双击刚刚新建的 wave_d.v 文件,添加如下代码:


//测试代码
`timescale 1ns / 1ns

module dwave_tb;
    reg CLK,D;
    wire Q;

    dwave 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

然后保存,点击【编译】按钮,编译所有文件
Quartus设计D触发器并进行仿真观察时序波形_第42张图片
点击【Simulate】→【Start Simulation…】
Quartus设计D触发器并进行仿真观察时序波形_第43张图片
右键点击工程名,再点击【Add Wave】
Quartus设计D触发器并进行仿真观察时序波形_第44张图片
设置运行时长,再点击旁边的运行按钮,即可出现仿真效果图
在这里插入图片描述
总结:通过三种方式实现D触发器及时序仿真的过程,可以发现D触发器的基本功能是在复位信号为1的时候,CLK的上升沿会引起Q值的变化。三种方式来说,要想对结构有所了解,输入原理图会更好,对于元件比较多的来说,采用Verilog语言编程会更好。个人比较喜欢Verilog编程。

你可能感兴趣的:(fpga开发)