使用异步边沿触发复位合成计数器

时间:2015-04-29 18:06:40

标签: verilog fpga

我想通过异步边沿触发复位来合成时钟计数器:计数器在每clk个上升沿递增,并在0的上升沿复位为rst信号。

计数器重置为0必须是边沿触发的,因为rst信号可能无限期保持高位。

以下是我所拥有的:

module clk_counter(input clk, input rst, output reg [7:0] count);

always @ (posedge rst) begin
    count <= 0;
end

always @ (posedge clk) begin
    if(count < 255) begin
        count <= count + 1;
    end
end

endmodule

我无法综合实施,因为count是&#34; 连接到多个驱动程序&#34;根据我的合成器吐出的错误信息。我怀疑这是由于设计中的竞争条件:如果countrst同时上升,则clk的值不确定。

我相信如果有一种方法可以在典型计数器递增之前优先处理边沿触发的复位操作,则可以解决竞争条件。

有没有办法在两个边缘触发的操作之间划分优先级?

0 个答案:

没有答案