首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >由于(基本)计数器(FPGA)中的传播延迟,XOR输出1

由于(基本)计数器(FPGA)中的传播延迟,XOR输出1
EN

Stack Overflow用户
提问于 2013-10-05 09:02:59
回答 2查看 505关注 0票数 0

我有一个基本的计数器示例,计数器是6位宽的。

代码语言:javascript
复制
reg[5:0] currcounterval_reg;
always @(posedge clk_g0)
    currcounterval_reg <= currcounterval_reg+ 1'b1; 

计数器没有复位,输出连接到主板引脚。当我运行电路时,我看到信号的开关,如附件(硬件运行) o/p所示。在附件的屏幕截图中,如果你看一下计数器,在7(7)之后,我应该得到‘8’...但它首先切换到'12‘,因为位2比其他位晚到0。我在下游有一个异或门,用来比较两个计数器的o/p。如何避免陷入这个问题?

无论我为约束做什么,它都不会消失。请帮助我一些策略,以消除切换。

如果你有更多的问题,请随时问我。

您可以在此处找到我的波形http://i.imgur.com/btEMiFD.png?1

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2013-10-05 11:34:47

我猜这是一个不适当的约束问题。但是尝试显式地连接一个同步计数器来解决这个问题。

代码语言:javascript
复制
    reg[5:0] counter;
    always @(posedge clk_g0)
    begin
        counter[0] <= ~counter[0] ;
        counter[1] <= (counter[0]    ) ? ~counter[1] : counter[1];
        counter[2] <= (&counter[1:0] ) ? ~counter[2] : counter[2];
        counter[3] <= (&counter[2:0] ) ? ~counter[3] : counter[3];
        counter[4] <= (&counter[3:0] ) ? ~counter[4] : counter[4];
        counter[5] <= (&counter[4:0] ) ? ~counter[5] : counter[5];
    end
票数 2
EN

Stack Overflow用户

发布于 2013-10-05 20:53:10

您需要使XOR输出同步。异或输出应转到FF的D输入,该FF在递增计数器的同一上升沿上计时。将FF的Q输出带到FPGA引脚,而不是XOR输出。

您不应该尝试匹配两个计数器的组合逻辑延迟和路由延迟。从两个计数器到XOR门的延迟路径几乎肯定是不同的,所以快速的XOR (就像在Virtex 7上)会产生毛刺。在一个好的同步设计中,这并不重要,因为您只关心组合逻辑输出在下一个时钟边沿之前是否有效。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19192907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档