我正在学习Verilog并且我想知道,如果重置,是否有回复初始声明的意思?类似下面的伪代码:
initial begin
do initial stuff
end
always @(posedge clock) begin
if(reset)
go back to initial
else
do stuff
end
end
如果可能的话,输入的次数会少得多。
答案 0 :(得分:1)
我能想到的一种方法是使用ROM并在复位时再次使用存储的值。
答案 1 :(得分:0)
您可以使用任务:
task init_stuff;
begin
/* do initial stuff */
end
endtask
initial begin
init_stuff;
end
always @(posedge clock) begin
if(reset) begin
init_stuff;
end else begin
/* do stuff */
end
end
但是,对于可合成代码,您应该非常小心“初始”。根据您的目标架构,它只能用于初始化ROM(ASIC),或者可能会创建一个具有非常灵敏的上电复位行为和其他奇怪现象(FPGA)的电路。