我想拥有一个带有异步复位信号的寄存器,如下所示:
always @(posedge clk or negedge rst_n)
begin
if(!rst_n)
out <= 1'b0
else
out <= in
end
我尝试过AsyncReset()
和withReset()
类。但是,生成的代码使用posege重置,并且AsyncReset()
的变量不接受!
。
是否有任何解决方法?
虽然您不能直接反转AsyncReset
类型(通常将逻辑应用于AsyncReset是很糟糕的,因为它可能会出现故障,但您可以将其转换为Bool然后返回:
val reset_n = (!reset.asBool).asAsyncReset
val reg = withReset(reset_n)(RegInit(0.U(8.W)))