首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FPGA有效(A)同步重置

FPGA有效(A)同步重置
EN

Stack Overflow用户
提问于 2010-12-14 17:24:44
回答 3查看 3K关注 0票数 4

我记得不久前读到过,异步或同步复位在FPGA中的实现效率更高,因为触发器已经有一个,但另一个需要额外的逻辑。

有人知道这是哪条路吗?Xilinx,Altera,其他的也是这样吗?

在学习时,我习惯于为每个FSM添加异步清除和同步重置,以防万一。这样做有什么好处吗?

感谢您的反馈!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-12-14 18:09:30

那么,您最好的选择是查阅您的特定FPGA供应商的文档和白皮书。在我工作过的大多数专业设计团队中,我们都使用异步重置来维护最大的控制。然而,在同步和异步重置之间的选择实际上取决于您的设计和应用程序。

顺便说一句,你可能会发现来自Sunburst Design的this paper on the topic of resets很有趣。虽然它主要涉及ASIC设计和Verilog,但对于理解一般的重置决策来说,它是一篇有用的论文。

票数 2
EN

Stack Overflow用户

发布于 2010-12-14 19:44:18

直接回答这个问题-现在大多数FPGA都可以在触发器中进行同步或异步复位。在添加异步清除和同步休息方面,我不确定您从中获得了什么-添加您的设计功能所需的信号(可能包括一些flops的完全不重置...)

一些进一步的建议。如果使用异步重置,则在取消断言时要非常小心。如果你的设备在这个“慢”的网络上有很大的偏差,你可能会发现一些flops在不同的时钟周期重置。混乱随之而来!

为了避免这种情况,我倾向于创建一个顶层模块,它接收你的外部(可能非常异步的)复位信号,使其与时钟同步,并将其作为同步复位馈送给所有你想要复位的flops (在该时钟域中-你可能需要不止一个)。然后,时序分析器会告诉你设备的偏差是否太大,这样你就可以确保所有的东西都立即从重置中出来。

Xilinx have a whitepaper,但它也同样适用于其他FPGA。

对于某些应用程序,您可能需要在IOs上进行异步断言重置,以确保某些外部设备按您所需的方式工作,但仍会同步取消断言。

(PS。当您提到FPGA时,如果您不知道,有一个与可编程逻辑相关的堆栈交换建议,您可能会对此感兴趣http://area51.stackexchange.com/proposals/20632/)

票数 6
EN

Stack Overflow用户

发布于 2010-12-22 08:13:24

Xilinx的官方定位是使用同步重置。它在这个whitepaper中解释过,也在上面的帖子中提到。源代码附带的所有Xilinx IP核心,例如内存控制器,都使用同步重置。

我的团队对不同的设计进行了实验,发现使用同步重置在提高逻辑利用率方面的优势可以忽略不计。

使用异步重置的最大优势是更快的构建运行时间,这对于大型设计来说是非常重要的。原因是异步重置路径不包含在同步定时约束中(如果需要,您可以通过添加单独的约束来覆盖它们)。

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

https://stackoverflow.com/questions/4437596

复制
相关文章

相似问题

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