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

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

3天内不再提示

如何设计边沿采样的触发器呢?

冬至子 来源:Andy的ICer之路 作者:AndyICer 2023-06-05 16:27 次阅读

下降沿采样寄存器

01

在设计双边沿采样电路(Dual-edge triggered flip-flop)之前,先从单边沿采样电路设计(Edge capture register)开始。

题目:对于32位向量中的每个位,当输入信号从一个时钟周期的1变为下一个时钟周期的0时捕获。“捕获”表示在寄存器复位(同步复位)之前,输出将保持为1。

每个输出位的行为都类似于SR触发器:应在从1到0的跳变发生后的周期内将输出位设置(设置为1)。复位为高电平时,应在时钟的上升沿将输出位复位(清零)。如果以上两个事件同时发生,则复位优先。

在下面的示例波形中,为清楚起见,分别显示了reset,in [1]和out [1]。

图片

这里要注意的是,这题与专题十的边缘检测不一样,本题是边缘“捕获”,即捕获到下降沿之后要一直保持1,直到复位信号为1才变位0。

module top_module (
    input clk, 
    input reset, 
    input [31:0] in, 
    output [31:0] out 
); 
    reg[31:0] p1,in_last; 
    always@(posedge clk) begin 
        in_last <= in; 
        if(reset) 
            out <= 0; 
        else begin 
            p1 = in_last&~in; 
            if(p1!=0) 
                out <= p1|out; 
            else 
                out <= out; 
        end 
    end 
endmodule

第9行 in_last <= in ; 记录信号in上一个cycle的状态;

第13行 p1 = in_last&~ in ;检测下降沿,简答来说就是检测输入信号in由1变0。

第14-17行的mux是保持“捕获”or“未捕获”状态,**if(p1!=0)**表示有下降沿信号发生,**out <= p1|out; **表示继续更新置1的位数;else p1==0,则out保持原来的状态,即已经被捕获的位保持“1”状态、还未被捕获的位保持“0”状态。

正确的仿真波形如下图所示:

图片

这里有一个很重要的细节: 第十三行用的是阻塞赋值p1 = in_last&~in; 。即要等p1信号更新完毕之后才能进行if的判断,假如用非阻塞语句会导致out会晚一个周期才有反应,错误波形如下:

图片

双边沿采样触发器

02

题目:您熟悉在时钟的上升沿或时钟的下降沿触发的触发器。双沿触发触发器在时钟的两个边沿触发。但是,FPGA没有双沿触发触发器,因此始终不接受@(posedge clk或negedge clk)作为合法敏感性列表。

构建功能上类似于双沿触发触发器的电路:

图片

module top_module (
    input clk,
    input d,
    output q
);
    reg q1,q2;
    always@(posedge clk)begin
        q1 <= d;
    end

    always@(negedge clk)begin
        q2 <= d;
    end
    assign q = clk?q1:q2;

endmodule

还有一种可行的方案:

module top_module(
  input clk,
  input d,
  output q);

  reg p, n;

  // A positive-edge triggered flip-flop
    always @(posedge clk)
        p <= d ^ n;

    // A negative-edge triggered flip-flop
    always @(negedge clk)
        n <= d ^ p;

    // Why does this work? 
    // After posedge clk, p changes to d^n. Thus q = (p^n) = (d^n^n) = d.
    // After negedge clk, n changes to p^n. Thus q = (p^n) = (p^p^n) = d.
    // At each (positive or negative) clock edge, p and n FFs alternately
    // load a value that will cancel out the other and cause the new value of d to remain.
    assign q = p ^ n;   
endmodule
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA设计
    +关注

    关注

    9

    文章

    428

    浏览量

    26510
  • 寄存器
    +关注

    关注

    31

    文章

    5336

    浏览量

    120230
  • 采样电路
    +关注

    关注

    10

    文章

    65

    浏览量

    28297
  • SR触发器
    +关注

    关注

    0

    文章

    13

    浏览量

    12631
  • 状态机
    +关注

    关注

    2

    文章

    492

    浏览量

    27529
收藏 人收藏

    评论

    相关推荐

    CMOS触发器在CP边沿的工作特性研究

    CMOS触发器在CP边沿的工作特性研究  对时钟脉冲(简称CP)边沿时间的要求,是触发器品质评价的重要指标之一。触发器只有在CP
    发表于 10-17 08:52 1965次阅读
    CMOS<b class='flag-5'>触发器</b>在CP<b class='flag-5'>边沿</b>的工作特性研究

    边沿触发SR触发器

    可以将电平触发器转换成更为灵活的边沿触发器(采用时间控制方法)。边沿触发器只在上升沿或下降沿处对输入采样
    发表于 08-10 11:10 6407次阅读
    <b class='flag-5'>边沿</b><b class='flag-5'>触发</b>SR<b class='flag-5'>触发器</b>

    jk边沿触发器工作原理

    本文开始介绍了JK触发器工作特性与边沿JK触发器的特点,其次介绍了边沿JK触发器工作原理与特点,最后介绍了集成
    发表于 01-30 17:17 3.7w次阅读
    jk<b class='flag-5'>边沿</b><b class='flag-5'>触发器</b>工作原理

    什么是边沿触发器_边沿D触发器介绍

    边沿触发器,指的是接收时钟脉冲CP 的某一约定跳变(正跳变或负跳变)来到时的输入数据。在CP=l 及CP=0 期间以及CP非约定跳变到来时,触发器不接收数据的触发器。具有下列特点的
    发表于 01-31 09:02 7.2w次阅读
    什么是<b class='flag-5'>边沿</b><b class='flag-5'>触发器</b>_<b class='flag-5'>边沿</b>D<b class='flag-5'>触发器</b>介绍

    常用边沿触发器电路结构和工作原理

    边沿触发器只在时钟脉冲CP上升沿或下降沿时刻接收输入信号,电路状态才发生翻转,从而提高了触发器工作的可靠性和抗干扰能力,它没有空翻现象。边沿触发器
    发表于 01-31 09:17 3.1w次阅读
    常用<b class='flag-5'>边沿</b><b class='flag-5'>触发器</b>电路结构和工作原理

    脉冲和边沿触发器区别

    脉冲通常是指电子技术中经常运用的一种象脉搏似的短暂起伏的电冲击(电压或电流)。主要特性有波形、幅度、宽度和重复频率。具有下列特点的触发器称为边沿触发方式触发器,简称
    发表于 01-31 13:41 5.4w次阅读
    脉冲和<b class='flag-5'>边沿</b><b class='flag-5'>触发器</b>区别

    一文详解边沿触发器

    在时钟为稳定的0或1期间,输入信号都不能进入触发器,触发器的新状态仅决定于时钟脉冲有效边沿到达前一瞬间以及到达后极短一段时间内的输入信号. 边沿触发
    的头像 发表于 03-16 15:35 1.1w次阅读
    一文详解<b class='flag-5'>边沿</b><b class='flag-5'>触发器</b>

    边沿触发器的状态变化由什么控制

    边沿触发器(Edge-Triggered Flip-Flop)是一种数字逻辑电路,其状态变化由输入信号的边沿控制,即由输入信号从低电平变为高电平或从高电平变为低电平的瞬间触发
    的头像 发表于 08-09 17:29 580次阅读

    边沿触发器和主从触发器的区别是什么

    边沿触发器和主从触发器是数字电路中两种常见的触发器类型,它们在设计和应用上有着明显的区别。 触发器的基本概念
    的头像 发表于 08-09 17:33 882次阅读

    边沿触发器的动作特点是什么?

    边沿触发器是一种数字逻辑电路,其动作特点主要体现在以下几个方面: 触发方式:边沿触发器的动作是由输入信号的
    的头像 发表于 08-09 18:17 899次阅读

    边沿触发器的类型有哪些

    边沿触发器(Edge Triggered Flip-Flop)是一种数字电路中的基本存储单元,它能够存储一位二进制信息。边沿触发器的特点是只有在时钟信号的上升沿或下降沿到来时才能改变输
    的头像 发表于 08-11 09:07 690次阅读

    边沿触发器应具备的条件有哪些

    边沿触发器(Edge-triggered flip-flop)是一种数字电路元件,它在数字逻辑设计中扮演着重要的角色。边沿触发器在接收到输入信号的上升沿或下降沿时,会改变其输出状态。
    的头像 发表于 08-11 09:09 536次阅读

    主从触发器边沿触发器的特点及应用

    在数字电路设计中,触发器是一种非常重要的基本逻辑元件,用于存储一位二进制信息。触发器的种类繁多,但主要分为两大类:主从触发器(Master-Slave Flip-Flop)和边沿
    的头像 发表于 08-11 09:35 2036次阅读

    同步触发器边沿触发器的区别

    同步触发器边沿触发器是数字电路中两种常见的触发器类型,它们在触发方式、工作原理、性能特点以及应用场景等方面存在显著的差异。
    的头像 发表于 08-12 11:26 1354次阅读

    主从触发器边沿触发器的区别

    主从触发器边沿触发器是数字电路设计中常用的两种触发器类型,它们在触发机制、动作特点、应用场景等方面存在显著的区别。以下是对两者区别的详细阐
    的头像 发表于 08-12 14:50 1932次阅读