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

    文章

    425

    浏览量

    26273
  • 寄存器
    +关注

    关注

    30

    文章

    5032

    浏览量

    117741
  • 采样电路
    +关注

    关注

    10

    文章

    63

    浏览量

    28163
  • SR触发器
    +关注

    关注

    0

    文章

    11

    浏览量

    12545
  • 状态机
    +关注

    关注

    2

    文章

    486

    浏览量

    27182
收藏 人收藏

    评论

    相关推荐

    请问电平触发器边沿触发器符号是什么?

    电平触发器边沿触发器符号
    发表于 10-18 09:01

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

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

    D触发器,D触发器是什么意思

    D触发器,D触发器是什么意思   边沿D 触发器:  电平触发的主从触发器工作时,必须在正跳沿
    发表于 03-08 13:53 4461次阅读

    边沿触发SR触发器

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

    一种单锁存器CMOS三值D型边沿触发器设计

    一种单锁存器CMOS三值D型边沿触发器设计
    发表于 01-17 19:54 25次下载

    jk边沿触发器工作原理

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

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

    边沿触发器,指的是接收时钟脉冲CP 的某一约定跳变(正跳变或负跳变)来到时的输入数据。在CP=l 及CP=0 期间以及CP非约定跳变到来时,触发器不接收数据的触发器。具有下列特点的
    发表于 01-31 09:02 7w次阅读
    什么是<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 2.9w次阅读
    常用<b class='flag-5'>边沿</b><b class='flag-5'>触发器</b>电路结构和工作原理

    边沿触发器怎么看

    触发器分为电平触发边沿触发两类。电平触发触发器原理较简单,学习
    发表于 01-31 10:26 5897次阅读
    <b class='flag-5'>边沿</b><b class='flag-5'>触发器</b>怎么看

    边沿触发器波形图

    主从触发器可以有效克服钟控触发器的空翻现象,但主从触发器还存在一次翻转现象,降低了抗干扰能力。边沿触发器:只有在CP的上升沿(前沿)或下降沿
    发表于 01-31 10:38 2.4w次阅读
    <b class='flag-5'>边沿</b><b class='flag-5'>触发器</b>波形图

    脉冲和边沿触发器区别

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

    D触发器原理:钟控D触发器边沿D触发器

    在分析维持-阻塞边沿D触发器的工作原理之前,让我们先来看看 R0的复位功能 、S0的置位功能是如何实现的吧。
    的头像 发表于 10-18 11:26 2.2w次阅读
    D<b class='flag-5'>触发器</b>原理:钟控D<b class='flag-5'>触发器</b>和<b class='flag-5'>边沿</b>D<b class='flag-5'>触发器</b>

    八路D型触发器;正边沿触发;三态-74ALVC574

    八路D型触发器;正边沿触发;三态-74ALVC574
    发表于 02-16 20:36 0次下载
    八路D型<b class='flag-5'>触发器</b>;正<b class='flag-5'>边沿</b><b class='flag-5'>触发</b>;三态-74ALVC574

    一文详解边沿触发器

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

    脉冲触发器边沿触发器的区别在于什么

    脉冲触发器边沿触发器是数字电路中常用的存储器元件。它们都是根据输入信号的变化状态进行触发,并且可以实现特定的功能。然而,它们在触发方式、
    的头像 发表于 02-06 13:45 1227次阅读