小编Geo*_*ler的帖子

Always_comb 中的 SystemVerilog“if”语句“不是纯粹的组合逻辑”错误

我很困惑!并且有点沮丧。我花了相当多的时间在 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 会表现得很奇怪。它会破坏代码,或者会与退出代码 …

if-statement system-verilog

4
推荐指数
1
解决办法
2万
查看次数

标签 统计

if-statement ×1

system-verilog ×1