0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

时序逻辑电路设计之D触发器

CHANBAEK 来源:通信情报工学算法学习 作者:syu ikko 2023-05-22 16:54 次阅读

本文旨在总结近期复习的数字电路D触发器(边沿触发)的内容。

D触发器是一个具有 记忆功能 ,持有 两个稳定状态(0和1)信息存储器件,是数字电路初学者所能接触到最简单的 时序逻辑电路 , 也是多种时序逻辑的电路的基本逻辑单元。

边沿触发D触发器特点是可以在时钟脉冲到来时刻从一个状态翻转到另一个状态,其具有的存储特性也是时序逻辑的基本特征。

图片

其内部结构可以由3个RS锁存器构成

将其绘制成一个模型,最简单的如下图表示,D为数据输入端,clk为时钟输入端,Q为数据输出端口

图片

这种D触发器的功能也是相当简单的,就是当CLK上升沿到来时,Q的输出等于D,特征方程写为 Q=D* (没有任何控制输入的情况下)。 波形图如下所示:

图片

为了进一步具体得知其作用,接下来在FPGA开发板上展示其功能,使用的办卡为德致伦的genesys2,芯片为kintex-7系列的xc7k325tffg900-2。

为了更加全面一些,在此为D触发器增加复位功能(按下按钮回到初始状态),此时可以有两种复位D触发器,一种是同步复位,一种是异步复位。

同步复位:按钮按下,上升沿到来时刻复位,复位动作和系统时钟同步。

异步复位:按钮按下立刻复位,复位无需看系统时钟的脸色。

下面给出本设计的模块框图:

图片

说明一下各个端口的作用,sys_clk为时钟,sys_rst_n为复位,key_in为按键输入,即为触发器的D,led_out为输出,本demo会将其接到开发板的灯上,用灯的亮灭展示D触发器的效果。

首先展示同步D触发器的verilog代码和testbench以及仿真结果。

module flip_flop(


input wire sys_clk,
input wire sys_rst_n,
input wire key_in,


output reg led_out
    );


always@(posedge sys_clk)


if (sys_rst_n == 1'b0)
    led_out <= 1'b0;


else
    led_out <= key_in;

endmodule


————————————————————testbench——————————————————————————————————
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: 
// Engineer: 
// 
// Create Date: 2023/01/21 20:02:21
// Design Name: 
// Module Name: tb_flip_flop
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//////////////////////////////////////////////////////////////////////////////////




module tb_flip_flop(


    );
    reg sys_clk;
    reg sys_rst_n;
    reg key_in;


    wire led_out;


    initial begin
        sys_clk = 1'b1; //时钟信号初始化为1


        sys_rst_n <= 1'b0; //复位信号初始化,因为低电平有效,所以为0
        key_in    <= 1'b0; //输入信号的初始化

        #20


        sys_rst_n <= 1'b1; //20ns后,复位信号释放,因为低电平复位,所以变成高电平开始工作。


        #210
        sys_rst_n <= 1'b0;


        #40
        sys_rst_n <= 1'b1; //复位40ns再次释放


    end


always #10 sys_clk = ~sys_clk;


always #20 key_in <= {$random}%2; //20ns产生一次随机数,比时钟周期大,利于波形观察


flip_flop flip_flop_inst


(
    .sys_clk(sys_clk),
    .sys_rst_n(sys_rst_n),
    .key_in(key_in),


    .led_out(led_out)
);


endmodule

仿真结果跑500ns:

图片

可以发现,尽管系统已经处于复位释放的状态(复位键为高电平),时钟,数据和上升沿也都到来,但是输出会在时钟的下一拍进行变化。 **即:当时钟和信号在同一时刻变化时,我们以时钟的上升沿前一时刻采集的输入信号为依据来产生输出信号。 **

下面是异步D触发器的代码,区别是增加了复位下降沿到来时刻的敏感性(always语句),testbench和同步D触发器的一致。

module flip_flop(


input wire sys_clk,
input wire sys_rst_n,
input wire key_in,


output reg led_out
    );


always@(posedge sys_clk or negedge sys_rst_n)


if (sys_rst_n == 1'b0)
    led_out <= 1'b0;


else
    led_out <= key_in;

endmodule

图片

可以观察到复位下降沿到来时刻,输出即刻置为0,经过综合之后的RTL电路如图所示,和设计(异步D触发器电路,同步D触发器电路多一个MUX模块)的差不多。

图片

然后分配管脚。

此次实验中出现的一个问题是,此次使用的FPGA已经没有单端口时钟输出,所以需要调用PLL的IP核合成输出一个单端口的时钟信号,这个准备下一篇再说。

实验设备(谢谢老板买的高级货,可惜许可证快到期了):

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 时钟
    +关注

    关注

    10

    文章

    1479

    浏览量

    130306
  • D触发器
    +关注

    关注

    2

    文章

    147

    浏览量

    47381
  • 数字电路
    +关注

    关注

    192

    文章

    1396

    浏览量

    79750
  • 触发器
    +关注

    关注

    14

    文章

    1677

    浏览量

    60404
  • 时序逻辑电路

    关注

    2

    文章

    78

    浏览量

    16402
收藏 人收藏

    评论

    相关推荐

    时序逻辑电路有哪些(三款时序逻辑电路的设计)

    在数字电路中,凡是任一时刻的稳定输出不仅决定于该时刻的输入,而且还和电路原来状态有关者都叫时序逻辑电路时序
    发表于 01-31 09:27 5.4w次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>逻辑电路</b>有哪些(三款<b class='flag-5'>时序</b><b class='flag-5'>逻辑电路</b>的设计)

    时序逻辑电路设计

    时序逻辑电路设计6.1 基本D触发器的设计6.2 JK触发器6.3 带异步复位/置位端的使能T触发器
    发表于 03-20 10:04

    时序逻辑电路实验

    时序逻辑电路一、实验目的   1.掌握D、JK触发器逻辑功能和使用   2.掌握中规模集成计数
    发表于 09-16 15:08

    时序逻辑电路的概述和触发器

    的对象就是触发器。 描述时序电路时通常使用状态表和状态图,我们分析时序电路的方法通常是比较相邻的两种状态(即现态和次态)。 例 1:列出下表所示时序电路
    发表于 08-23 10:36

    请问D触发器结构的五分频逻辑电路怎么实现?

    D触发器结构的五分频逻辑电路
    发表于 09-11 11:29

    请问怎样去设计多输入时序逻辑电路

    多输入时序电路的基本原理是什么?基于数据选择D触发器的多输入时序逻辑电路设计
    发表于 04-29 07:04

    触发器时序逻辑电路

    一、基本要求1、理解R-S触发器、J-K触发器和D触发器逻辑功能;2、掌握触发器构成的时序电路
    发表于 08-26 11:40 57次下载

    时序逻辑电路实例解析

    时序逻辑电路实例解析 一、触发器 1、电位触发方式触发器
    发表于 04-15 13:46 5106次阅读

    基于D触发器和数据选择器的多输入时序网络的电路设计

      在SSI时序逻辑电路设计中,遵循的设计准则是:在保证所设计的时序逻辑电路具有正确功能的前提下,触发器的激励函数应最小化,从而简化
    发表于 08-13 09:22 2900次阅读
    基于D<b class='flag-5'>触发器</b>和数据选择器的多输入<b class='flag-5'>时序</b>网络的<b class='flag-5'>电路设计</b>

    时序逻辑电路分为几类

    时序逻辑电路是由组合逻辑电路与记忆电路(又称存储电路) 组合而成的。 常见时序
    的头像 发表于 02-26 15:25 5w次阅读

    时序逻辑电路的分析方法

    将驱动方程代入相应触发器的特性方程中,便得到该触发器的次态方程。时序逻辑电路的状态方程由各触发器次态的
    的头像 发表于 02-28 14:06 2.4w次阅读

    时序逻辑电路的分析方法

      时序逻辑电路分析和设计的基础是组合逻辑电路触发器,所以想要分析和设计,前提就是必须熟练掌握各种常见的组合逻辑电路
    的头像 发表于 05-22 18:24 2156次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>逻辑电路</b>的分析方法

    D触发器与Latch锁存器电路设计

    D触发器,是时序逻辑电路中必备的一个基本单元,学好 D 触发器,是学好时序逻辑电路的前提条件,其
    的头像 发表于 10-09 17:26 1494次阅读
    D<b class='flag-5'>触发器</b>与Latch锁存器<b class='flag-5'>电路设计</b>

    FPGA学习-时序逻辑电路

    时序逻辑电路 一 : 触发器 1:D 触发器时序逻辑电路最小单元 。 (1):D
    的头像 发表于 11-02 12:00 394次阅读
    FPGA学习-<b class='flag-5'>时序</b><b class='flag-5'>逻辑电路</b>

    时序逻辑电路有哪些 时序逻辑电路和组合逻辑电路区别

    产生相应的输出信号。本文将详细介绍时序逻辑电路的分类、基本原理、设计方法以及与组合逻辑电路的区别。 一、时序逻辑电路的分类
    的头像 发表于 02-06 11:18 1037次阅读