博客
关于我
quartus调用&设计D触发器——仿真&时序波验证
阅读量:535 次
发布时间:2019-03-09

本文共 1573 字,大约阅读时间需要 5 分钟。

Quartus 中设计并验证 D 触发器

D 触发器是一种常用的数字电路元件,具有记忆功能,能够在特定时机捕获输入信号。它广泛应用于寄存器、移位等场景。本文将详细介绍如何在 Quartus 中设计和验证 D 触发器,并探讨不同方法的对比。

D 触发器的基础知识

D 触发器主要由两个稳定状态存储器组成,能够存储两个二进制状态(通常为 0 或 1)。其工作原理是,在正跳变(时钟脉冲creasing edge)发生时,触发器的输出(Q)会根据输入信号(D)的状态进行更新。具体而言:

  • 当输入信号在时钟脉冲前沿上升沿(transition edge)时,触发器的输出 Q 会被设置为 D 的值。
  • 在任意时钟脉冲的高电平水平(clock high level),触发器保持阻塞状态,不受输入信号干扰。

D 触发器有边沿触发和非边沿触发两种形式。边沿触发允许在极短时间内输入信号被接受,从而减少电涌和干扰对输出的影响。

在 Quartus 中设计 D 触发器

1. 工程创建

  • 新建项目

    进入 Quartus II,选择 File > New Project Wizard,填写项目名称并完成向导步骤。选择合适的芯片系列和包装。

  • 框文件设计

    点击 New,选择 nand2 电路模块。添加两个 nand2 coincidence 和一个 not 基本可以构成一个简单的 D 触发器。

  • 布局实现

    使用画布工具,连接各个模块输入和输出引脚,确保电路逻辑符合 D 触发器的结构。

  • 编译和验证

    保存并编译电路图,通过 RTL Viewer 检查硬件实现是否正确。

  • 2. 时序波形仿真

  • 创建时序波形文件

    使用 Wave forms 模型,添加必要的时钟信号(如 clk)和输入信号(如 d)。确保时序波形的周期和宽度符合设计需求。

  • 编译并运行仿真

    选择Simulate信号并运行仿真,观察触发器输出 Q 的波形。

  • 3. 调用预留 D 触发器

    直接调用 Quartus 中提供的 D 触发器模块进行仿真,观察输出波形是否与自定义设计一致。分析两种方法的结果差异,理解其实现方式和参数设置的影响。

    Verilog 实现

    1. Verilog 语言代码编写

    使用 Quartus 的 Verilog 设计工具,编写 D 触发器的功能性代码:

    module demo(d, clk, q);    input d, clk;    output q;    reg q;        always @ (posedge clk) {        q <= d;    }endmodule

    2. 仿真验证

    编写测试 benches,生成可观测的时钟和输入信号,比如:

    timescale 1ns / 1ns;module demo_tb;    reg clk, d;    wire q;    demo u1 (d, clk, q);    initial begin        clk = 1;        d = 0;        #60 d = 1; // 产生毛刺        #22 d = 0;        #2  d = 1;        #2  d = 0;        #16 d = 0;        repeat(100000) {            #20 clk = ~clk; // 偶频信号        }    endendmodule

    观察仿真结果,确认触发器输出 q 的波形与输入信号 d 和时钟相符。

    总结与参考资料

    通过上述步骤,可以在 Quartus 中成功设计和验证 D 触发器。D 触发器的功能可以表示为:

    • Q_n+1 = D * upprush

    理解其逻辑,能够为多种数字电路设计提供基础支持。

    转载地址:http://hgmiz.baihongyu.com/

    你可能感兴趣的文章
    python基于flask搭建http服务(一)—— 实现数据查询和Excel导出
    查看>>
    Python块键盘/鼠标输入
    查看>>
    python在心理学研究中的应用有哪些_心理学在线研究可用平台简介和应用进展
    查看>>
    python系列【仅供参考】:python tornado 集成redis消息订阅的异步任务之后tornado主程序无法启动,解决方案
    查看>>
    python在使用HTMLTestRunner时,报告为空,错误提示<_io.TextIOWrapper name='<stderr>' mode='w' encoding='utf_8'>...
    查看>>
    python在gpu上运行_【python】python开启GPU加速
    查看>>
    Python在def函数中使用for循环
    查看>>
    Python在def函数中使用for循环
    查看>>
    Python在Conda环境中,但在Windows虚拟环境中没有激活
    查看>>
    python系列【仅供参考】:python pip 错误 ModuleNotFoundError: No module named pip._internal 解决办法
    查看>>
    python图像条状状噪声,使用PYTHON PIL从验证码图像中删除背景嘈杂的线条
    查看>>
    Python图像处理:从内存加载jpeg
    查看>>
    python固定后缀(名物化词汇)词频统计:抽取+统计+可视化
    查看>>
    python商品评论数据采集与分析可视化系统 Flask框架 requests爬虫 NLP情感分析 毕业设计 源码
    查看>>
    python商品数据分析可视化系统(带爬虫)京东销售数据分析 计算机毕业设计 源码下载
    查看>>
    python商品库存管理系统 django框架 商品网站 MySQL数据库 源码下载 计算机毕业设计
    查看>>
    Python哪个版本最稳定好用2023.10.19
    查看>>
    Python和黑客技术的渊源
    查看>>
    Python和RF编写接口自动化
    查看>>
    Python和RF编写web自动化
    查看>>