代码编织梦想

本文内容:
1、在 Quartus-II 中自己用门电路设计一个D触发器,并进行仿真,时序波形验证;
2、在 Quartus-II 中直接调用一个D触发器电路,进行仿真,时序波形验证,与2做比较;
3、在 Quartus-II用Verilog语言写一个D触发器,进行仿真验证,与3做比较。

一、D触发器简介

  • D触发器是一个具有记忆功能的,具有两个稳定状态的信息存储器件,是构成多种时序电路的最基本逻辑单元,也是数字逻辑电路中一种重要的单元电路。
    在这里插入图片描述
  • D触发器(data flip-flop或delay flip-flop)由4个与非门组成,其中G1和G2构成基本RS触发器。

功能表:

DCLKQQN
0时钟上升沿01
1时钟上升沿10
×0last Qlast QN
×1last Qlast QN

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

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

2.1 新建工程

  • 【File】→【New Project Wizard…】。
    在这里插入图片描述
  • 点击【Next >】。
    在这里插入图片描述
  • 选择工程保存路径及工程名,然后点击【Next >】。
    在这里插入图片描述
  • 这里是添加已有的工程设计文件,不需要添加,点击【Next >】。
    在这里插入图片描述
  • 根据使用的 FPGA,进行选择芯片系列及类型,然后点击【Next >】。
    在这里插入图片描述
  • 保持 Simulation 为 < None >,然后点击【Next >】。
    在这里插入图片描述
  • 配置信息,点击【Finish】。
    在这里插入图片描述

2.2 创建原理图文件

  • 【File】→【New…】。
    在这里插入图片描述
  • 选择【Block Diagram/Schematic File】,点击【OK】。
    在这里插入图片描述
  • 点击【插头图标】弹出工具窗口,搜索元件,然后在图纸上摆放:
    • 4 个 nand2 与非门;
    • 1 个 not 非门。
  • 如下图所示(Ctrl + 滚轮,可放大缩小):
    在这里插入图片描述
  • 添加两个输入管脚和两个输出管脚,双击 Pin Name 即可修改管脚名。
    在这里插入图片描述
  • 鼠标左键按住连接管脚即可,完整图如下:
    在这里插入图片描述
  • 保存电路图。
    在这里插入图片描述

2.3 编译原理图文件

  • 启动分析与综合(全编译)。
    在这里插入图片描述
    在这里插入图片描述
  • 查看硬件电路图:点击【Tools】→【Netlist Viewers】→【RTL Viewer】。
    在这里插入图片描述
  • 结果如下:
    在这里插入图片描述

2.4 创建 VWF 文件

  • 点击【File】→【New】,选择【University Program VWF】。
    在这里插入图片描述
  • 选择【Edit】→【Insert】→【Insert Node or Bus…】。
    在这里插入图片描述
  • 点击【Node Finder…】,然后点击【List】会罗列出四个管脚,点击【>>】选择全部,然后点击【OK】,自动补全了【Name】,然后点击【OK】。
    在这里插入图片描述
    在这里插入图片描述
  • 编辑输入 CLK,产生时钟信号。
    在这里插入图片描述
  • 选中要修改的区域,然后双击,修改为 1 ,再点击【OK】即可。
    在这里插入图片描述
  • 保存文件:【File】→【Save】。
    在这里插入图片描述
    在这里插入图片描述

2.5 波形仿真

功能仿真:

  • 点击【功能仿真按钮——Run Functional Simulation】。
    在这里插入图片描述
  • 出现以下错误:
    在这里插入图片描述

解决方法:

  • 点击【Tools】→【Lauch Simulation Library Compiler】。
    在这里插入图片描述
  • 选择工程目录下的 ...\simulation\qsim 文件夹,然后点击【Start Compilation】。
    在这里插入图片描述
  • 无错误,然后点击【Close】关闭窗口。
    在这里插入图片描述
  • 点击【功能仿真按钮——Run Functional Simulation】。
    在这里插入图片描述
  • 仿真结果如下(延迟了半个时钟周期):
    在这里插入图片描述

时序仿真:

  • 主界面【Processing】→【Start】→【Start Fitter】。
    在这里插入图片描述
  • 点击【Start TimeQuest Timing Analyzer】。
    在这里插入图片描述
  • 返回 VMF 文件界面:点击【时序仿真按钮——Run Timing Simulation】。在这里插入图片描述
  • 仿真结果(延迟一个时钟周期):
    在这里插入图片描述

三、调用D触发器并仿真

3.1 新建工程

  • 同第二部分一样。

3.2 创建原理图文件

  • 同第二部分一样。
  • 这时,不再画D触发器的内部结构了,而是直接调用D触发器,元件名:dff
    在这里插入图片描述
  • 再添加输入和输出管脚。
    在这里插入图片描述

3.3 编译原理图文件

  • 同第二部分方法一样。
  • 先编译,再查看硬件电路图。
    在这里插入图片描述

3.4 创建 VWF 文件

  • 方法同第二部分一样,

3.5 波形仿真

  • 方法同第二部分一样,先编译一下,让它报错,再用解决方法。
  • 功能仿真(只有半个时钟周期的延迟):
    在这里插入图片描述
  • 时序仿真(有一个时钟周期的延迟):
    在这里插入图片描述
  • 相较于第二部分,来说,使用现有的D触发器会更加方便,绘图少,但是对于D触发器的内部结构来说不太清楚,最后仿真出来的结果也是一样的。

四、用Verilog语言实现D触发器并仿真

4.1 新建工程

  • 方法同上。

4.2 编写Verilog文件

  • 【File】→【New】→【Verilog HDL File】。
    在这里插入图片描述
  • 复制粘贴如下代码:
//dwave是文件名
module dwave(d,clk,q);
    input d;
    input clk;
    output q;

    reg q;

    always @ (posedge clk)//我们用正的时钟沿做它的敏感信号
    begin
        q <= d;//上升沿有效的时候,把d捕获到q
    end
endmodule
  • 保存文件并编译。
    在这里插入图片描述

4.3 使用Modelsim手动仿真

  • 打开 Modelsim 软件。
  • 具体步骤如下:
  • 在Quartus创建的工程文件夹下新建一个 tb 文件夹;
  • 点击【File】→【Change Directory】选择 tb 文件夹;
  • 创建新项目:【File】→【New】→【Project…】,编写工程名及选择路径;
    在这里插入图片描述
  • 添加现有文件:Add Existing File。
    在这里插入图片描述
  • 找到刚刚 Quatrus 编译生成的 .v 文件,再点击【OK】。
    在这里插入图片描述
  • 再创建一个新的文件。
    在这里插入图片描述
  • 然后关闭添加文件窗口界面。
  • 再双击刚刚新建的 wave_b.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
  • 然后保存。
  • 点击【编译】按钮,编译所有文件。
    在这里插入图片描述

4.4 波形仿真

  • 点击【Simulate】→【Start Simulation…】。
    在这里插入图片描述
  • 找到 wave_b.v 文件所在的工程(看路径),取消勾选,点击【OK】。
    在这里插入图片描述
  • 右键点击工程名,再点击【Add Wave】。
    在这里插入图片描述
  • 设置运行时长,再点击旁边的运行按钮,即可出现仿真效果图。
    在这里插入图片描述
  • 相较于第三部分的步骤,这个部分用到了 Modelsim 软件,我个人觉得吧,这个软件略微麻烦了一点点,但也还好,最后出来的仿真效果也是和前面两个部分的相差无几。

五、总结

  • 就我个人来说,使用 Quartus 与 Modelsim 软件来仿真电路,确实挺方便的,但是对于一窍不懂 Verilog 语言的人来说,使用原理图仿真会方便得多,如果对 Verilog 语言较懂的人来说,当遇到复杂繁杂的电路图时,会更加的方便。

六、参考资料

[1] Quartus-II13.1三种方式实现D触发器及时序仿真
[2] D触发器_百度baike
[3] quartus值时序仿真出错及解决

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ssj925319/article/details/115355019

verilog hdl语言设计实现d触发器+计数器_小太阳zzzzz的博客-爱代码爱编程

分别采用结构描述和行为描述方式设计一个基本的D触发器,在此基础上,采用结构描述的方式,用8个D触发器构成一个8位移位寄存器。进行功能仿真,查看结果,把上述内容整理到实验报告。(1)行为描述:单个D触发器 功能代码: module shiyan31(q,d,clk); input d,clk; output q; reg q; always @(p

ue4 创建自定义资源,导入与重新导入自定义资源_sork的博客-爱代码爱编程

首先定义我们自己的资源类型: UCLASS() class TESTSLATE_API UMyObject : public UObject {        GENERATED_BODY() public: UPROPERTY(EditAnywhere) int A; };   之后,我们需要最重要的一个类:UFactory, 该

用D触发器和门电路设计一个用来控制红绿两个发光二极管亮灭的时序逻辑电路-爱代码爱编程

 题目要求: 用D触发器和门电路设计一个时序逻辑电路, 用来控制红绿两个发光二极管(低电平驱动), 要求让红色管亮2个周期, 绿色管亮3个周期, 如图示(本文底部), 写出具体的设计步骤, 并绘制逻辑图. 分析:         本题实际上是要求读者先设计一个同步5进制计数电路, 而后再将电路的5个有效状态对应红绿两个发光二极管的亮灭. 根据题目要求中

d触发器q端的输出波形_05.SR锁存器基础知识和波形图分析-爱代码爱编程

时序逻辑电路工作特点是任意时刻的输入状态不仅与该当前的输入信号有关,而且与此前电路的状态有关。即具有记忆功能 锁存器和触发器是构成时序逻辑电路存储电路的基本逻辑单元。 SR锁存器 具有记忆1位二进制数据的功能 SR锁存器类型: 1.或非门组成的SR锁存器(对高电平敏感) 或非门 逻辑状态分析:Q与非Q是互补状态 case1:

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

文章目录 一、认识D触发器(一)D触发器结构(二)D触发器的波形图二、Quartus-II输入原理图及时序仿真(一)创建工程(二)创建方框文件(三)编译原理图文件(四)创建vwm格式波形文件(五)时序波形仿真三、Quartus-II调用D触发器及时序仿真(一)创建工程(二)创建方框文件(三)编译原理图文件(四)创建vwm格式波形文件及时序仿真四、Q

Quartus使用基础——D触发器仿真与时序波形验证-爱代码爱编程

Quartus使用基础——D触发器仿真与时序波形验证 一、D触发器——门电路设计1.1 新建文件夹1.2 创建工程1.3 门电路设计D触发器1.4 创建VWF文件:时序仿真二、D触发器——直接调用2.1 新建文件夹&同1.12.2 创建工程&同1.22.3 直接调用D触发器2.4 创建VWF文件:时序仿真&同1.4三、D触发

quartus调用&设计D触发器——仿真&时序波验证-爱代码爱编程

quartus调用&设计D触发器——仿真&时序波验证 目录一、认识D触发器1、结构2、特征二、设计D触发器及时序验证1、创建工程2、创建方框文件3、编译原理图文件4、创建vwm波形文件5、时序波形仿真三、调用D触发器及时序验证1、创建方框文件2、编译原理图3、创建vwm波形文件及仿真四、verilog语言实现D触发器及时序验证1、编

【Quartus-ll 】 D 触发器功能仿真及时序波形仿真的三种实现方式-爱代码爱编程

文章目录 一、创建原理图并仿真1、创建一个新工程2、创建原理图文件3、编译原理图4、创建VWF文件5、波形仿真二、调用D触发器进行仿真三、用Verilog语言实现并仿真四、总结 一、创建原理图并仿真 1、创建一个新工程 全部默认即可,除了选择开发板的型号 按照你手里的型号选择即可。 2、创建原理图文件 【File】→【New…】,选择B

【嵌入式】Quartus-II实现D触发器-爱代码爱编程

目录 一、实验准备二、什么是D触发器三、Quartus-II设计D触发器1、创建工程2、创建波形文件3、编译原理图文件4、创建 VWF 文件5、波形仿真四、Quartus-II调用D触发器1、创建工程2、创建波形文件3、编译原理图文件4、创建VWF文件5、波形仿真五、参考 一、实验准备 实验目的 1.在 Quartus-II 中自己用

Quartus-II实现D触发器的三种方式-爱代码爱编程

文章目录 一、认识D触发器二、在Quartus-II中自己用门电路设计一个D触发器及仿真三、在Quartus-II中直接调用一个D触发器及仿真四、在Quartus-II中用Verilog语言写一个D触发器及仿真五、参考 一、认识D触发器 D触发器是一个具有记忆功能的,具有两个稳定状态的信息存储器件,是构成多种时序电路的基本逻辑单元,也是数字逻

Quartus II 实现D触发器及时序仿真-爱代码爱编程

目录 一、D触发器简介(一)D触发器概念:(二)D触发器的结构(三)D触发器波形图二、输入原理图及时序仿真(一)创建工程(二)创建框图文件(三)编译(四)创建波形文件三、调用D触发器及时序仿真(一)创建工程(二)创建框图文件(三)编译(四)创建波形文件四、用`Verilog`语言实现D触发器及时序仿真(一)新建工程(二)编写`Verilog`文件(

QUartus-II三种方式实现D触发器及时仿真-爱代码爱编程

Quartus输入原理图及时序仿真 创建工程 ①File - New Project Wizard ②天天写工程名称还有所在位置 ③选择芯片 ④点击next ⑤点击finish 创建方框文件 ①选择New ②选择Block Diagram/Schematic File ③选择nand2,2个输入的与非门,再添加四个and 和一个非门not ④添加