首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果我们使用同步复位的异步复位块会发生什么?

如果我们使用同步复位的异步复位块会发生什么?
EN

Stack Overflow用户
提问于 2018-10-29 05:12:56
回答 1查看 282关注 0票数 0

考虑到我有一个普通的verilog模块,我想要导出到两种不同的设计--一种是同步复位,另一种是异步复位。

在这个公共模块中编写一个始终块的正确方法是什么,以便它在这两种设计中都能很好地工作?我想我们可以像这样使用异步复位块-

代码语言:javascript
复制
always @(posedge clk or negedge reset_) begin
  if(!reset_) temp <= 'd0;
  else <do something>
end

如果我使用同步重置,那么在异步重置设计中,如果时钟启动的时间比复位断言延迟得多,那么就会出现问题,这样就可以完全忽略所需的重置。

在同步重置中,我们知道clk的前缘和reset_的边界总是重合的,所以这有什么问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-29 09:33:02

你可以这样做:

代码语言:javascript
复制
always @(posedge clk or negedge async_reset) begin
  if(!async_reset) 
    temp <= 'd0;
  else 
    if (!sync_reset)
      temp <= 'd0;
    else
      <do something> 
end

然后将一个或另一个重置绑定到非活动状态(在本例中为1'b1)。如果你正在合成一个FPGA,我可以想象它在面积和速度上都不会花费多少钱。如果你在用集成电路合成器,我会检查合成器是怎么用的。

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

https://stackoverflow.com/questions/53039083

复制
相关文章

相似问题

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