FPGA寄存器打拍

编程入门 行业动态 更新时间:2024-10-09 22:18:23

FPGA<a href=https://www.elefans.com/category/jswz/34/1768029.html style=寄存器打拍"/>

FPGA寄存器打拍

关于FPGA中“打一拍”的含义,我们可以理解为把某个信号延迟了一个时钟周期,推而广之:“打两拍”就是延迟两个时钟周期,“打n拍”就是延迟n个时钟周期。

     “打一拍”的目的很简单,就是为了FPGA中时序的正确性!!!!(了保证FPGA输入输出接口的时序,一般会要求将输入管脚首先打一拍再使用,输出接口也要打一拍再输出FPGA。将信号打一拍的方法是将信号通过一次寄存器,而且必须在IOB里面的寄存器中打一拍。因为,从FPGA的PAD到IOB里面的寄存器是有专用布线资源的,而到内部其他寄存器没有专用的布线资源。使用IOB里面的寄存器可以保证每次实现的结果都一样,使用内部其他寄存器就无法保证每次用的都是同一个寄存器且采用同样的布线。同时,为了使用输入输出延迟功能(Input / Output delay),也必须要求信号使用IOB里面的寄存器。)

        “打一拍”具体是怎么通过FPGA实现的呢?如下


always @ (posedge Clk) //对输入信号打三拍
begin
inputs_reg1 <= inputs;
inputs_reg2 <= inputs_reg1;
inputs_reg3 <= inputs_reg2;
if (inputs_reg2 == 1'b1 && inputs_reg3 == 1'b0)
begin
...
end
...
end


当然,打一拍也是有一定原则的,不是想打就打的

1.全局时钟的跳变沿最可靠。
2.来自异步时钟域的输入需要寄存一次以同步化,再寄存一次以减少亚稳态带来的影响。
3.不需要用到跳变沿的来自同一时钟域的输入,没有必要对信号进行寄存。
4.需要用到跳变沿的来自同一时钟域的输入,寄存一次即可。
5.需要用到跳变沿的来自不同时钟域的输入,需要用到3个触发器,前两个用以同步,第3个触发器的输出和第2个的输出经过逻辑门来判断跳变沿。
--------------------- 
作者:qq_33586509 
来源:CSDN 
原文: 
版权声明:本文为博主原创文章,转载请附上博文链接!

更多推荐

FPGA寄存器打拍

本文发布于:2024-02-13 15:34:02,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1759094.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:寄存器   FPGA

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!