回到verilog中重置的初始声明

时间:2014-11-02 21:21:53

标签: verilog

我正在学习Verilog并且我想知道,如果重置,是否有回复初始声明的意思?类似下面的伪代码:

initial begin
    do initial stuff
end

always @(posedge clock) begin
    if(reset)
        go back to initial
    else 
        do stuff
    end
end

如果可能的话,输入的次数会少得多。

2 个答案:

答案 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)的电路。