首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我应该如何在Verilog中重置我的重置信号?

我应该如何在Verilog中重置我的重置信号?
EN

Stack Overflow用户
提问于 2015-06-05 23:36:46
回答 2查看 2.6K关注 0票数 0

我有两个always模块,一个用来计数已通过的能够异步复位的时钟周期数,另一个用来在某些输入信号的负沿触发复位信号。

代码语言:javascript
复制
always@(posedge clock or posedge reset)

begin: ClockCounter

if(reset == 1)
    begin
    clock_cnt = 1;  
    end
else
    begin
    clock_cnt = clock_cnt + 1;
    end
end

always@(negedge pulse_in)

begin: Receiver

negedge_cnt = negedge_cnt + 1;

reset = 1;

.......Code goes on

end
end module

我想要做的是,一旦clock_cnt复位到1,就将复位信号设为0,这样它就可以在下一个时钟周期中继续计数。如果我尝试在clock_cnt =1之后插入reset = 0;,我会遇到多个驱动器连接到同一信号的问题。有谁知道怎么做吗?

EN

回答 2

Stack Overflow用户

发布于 2015-06-06 00:08:22

除非有真正重要的原因,并且您已经保证了无故障的组合逻辑,否则您不应该使用异步重置来清除寄存器。典型的方法是使用同步清除信号,而不是使用异步复位。

下面是代码的样子:

代码语言:javascript
复制
always @(posedge clk or posedge reset) begin
  if (reset) begin // Note that you need to separate the asynchronous reset and synchronous clear logic (ie, dont do 'if (reset | clr)') 
    counter <= 1; // Use non-blocking assignment for clocked blocks
  end
  else begin
    if (clr) begin
      counter <= 1;
    end
    else begin
      counter <= counter + 1;
    end
  end
end

always @(posedge clk) begin // You need to synchronize your input pulse, Im assuming its synchronous to your clock, otherwise youll need a synchronizer
  if (prev_pulse_in & ~pulse_in) begin
    negedge_cnt <= negedge_cnt + 1;
    clr <= 1;
  end
  else begin
    clr <= 0;
  end
  prev_pulse_in <= pulse_in;
end
票数 0
EN

Stack Overflow用户

发布于 2015-06-06 02:18:18

我的解决方案是

代码语言:javascript
复制
always@(posedge clock or posedge reset)

begin: ClockCounter

if(reset == 1)
    begin
    clock_cnt = 1;
    reset_flag = 1;
    end
else
    begin
    clock_cnt = clock_cnt + 1;
    reset_flag = 0;
    end
end

always@(negedge pulse_in or posedge reset_flag)
begin

reset = 1;

if(reset_flag == 1)
reset = 0;
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30670520

复制
相关文章

相似问题

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