FPGA跨时钟域处理的注意事项

可编程逻辑

1360人已加入

描述

1、跨时钟域之间不能存在组合逻辑。 跨时钟域本身就容易产生亚稳态,如果在跨时钟域之间存在组合逻辑会大大增加竞争冒险出现的概率。 这一点在实际设计中通常会因为粗心而导致设计异常,如下边代码中的S_clr_flag_a_all信号,就是在扩展时不小心使用了组合逻辑,这种情况下由于竞争冒险,会导致跨时钟域后的b信号出现一个clk的异常电平。

信号

此时的跨时钟域电路为:

信号

正确的处理方法是使用时序逻辑进行扩展:

信号

正确的电路为:

信号

2、跨时钟域信号要集中在一个位置跨时钟域,然后再使用,不能分别跨时钟域处理。

如下图,a时钟域的a信号要在b信号内的b和b2两个位置使用,正确的处理如下:

信号

错误的处理方式如下,这种处理方式下,由于b和b2分别做的跨时钟域,由于时钟抖动、走线路径的原因,会导致b和b2不同步,如果该信号是一个关键的控制信号,会导致系统异常,要注意避免这种情况的发生。

信号

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分