我很困惑!并且有点沮丧。我花了相当多的时间在 Modelsim 中研究一些 SystemVerilog。我已经达到了可以在我的硬件上测试它的某个阶段,但是在 Quartus 中编译不成功。我确实知道这可能会发生,但在这种情况下我的错误似乎没有意义。
下面的代码位于always_comb 块内。当我编译时,出现以下错误:
Error (10166): SystemVerilog RTL Coding error at fifo_interface.sv(80): always_comb construct does not infer purely combinational logic.
Run Code Online (Sandbox Code Playgroud)
我实在不明白这个。这是代码,它只是一个复用器。
always_comb
if(fifo_select == 0)
begin
fifo0_data_in = data_in;
fifo0_in_clk = in_clk;
fifo0_in_dn = in_dn;
in_rdy = fifo0_in_rdy;
fifo1_in_clk = 0; //Prevent 'in_clk' entering fifo1
end
else
begin
if(fifo_select == 1)
begin
fifo1_data_in = data_in;
fifo1_in_dn = in_dn;
fifo1_in_clk = in_clk;
in_rdy = fifo1_in_rdy;
fifo0_in_clk = 0; //Prevent 'in_clk' entering fifo0
end
end
end
Run Code Online (Sandbox Code Playgroud)
当我将块更改为“始终”时,Modelsim 会表现得很奇怪。它会破坏代码,或者会与退出代码 …