我是靠谱客的博主 跳跃冬瓜,最近开发中收集的这篇文章主要介绍Quartus-ll 采用三种方法实现 D 触发器功能仿真及时序波形仿真详细步骤一、D触发器简介二、创建D触发器原理图并仿真三、调用D触发器并仿真四、用Verilog语言实现D触发器并仿真五、总结六、参考资料,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

  • 一、D触发器简介
  • 二、创建D触发器原理图并仿真
    • 2.1 新建工程
    • 2.2 创建原理图文件
    • 2.3 编译原理图文件
    • 2.4 创建 VWF 文件
    • 2.5 波形仿真
  • 三、调用D触发器并仿真
    • 3.1 新建工程
    • 3.2 创建原理图文件
    • 3.3 编译原理图文件
    • 3.4 创建 VWF 文件
    • 3.5 波形仿真
  • 四、用Verilog语言实现D触发器并仿真
    • 4.1 新建工程
    • 4.2 编写Verilog文件
    • 4.3 使用Modelsim手动仿真
    • 4.4 波形仿真
  • 五、总结
  • 六、参考资料

本文内容:
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】。
    在这里插入图片描述
  • 选择工程目录下的 ...simulationqsim 文件夹,然后点击【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值时序仿真出错及解决

最后

以上就是跳跃冬瓜为你收集整理的Quartus-ll 采用三种方法实现 D 触发器功能仿真及时序波形仿真详细步骤一、D触发器简介二、创建D触发器原理图并仿真三、调用D触发器并仿真四、用Verilog语言实现D触发器并仿真五、总结六、参考资料的全部内容,希望文章能够帮你解决Quartus-ll 采用三种方法实现 D 触发器功能仿真及时序波形仿真详细步骤一、D触发器简介二、创建D触发器原理图并仿真三、调用D触发器并仿真四、用Verilog语言实现D触发器并仿真五、总结六、参考资料所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部