【问题标题】:Function in verilogverilog 中的函数
【发布时间】:2021-11-06 05:05:12
【问题描述】:

我在 ModelSim 中使用下面的代码作为函数,它引发了“全局声明在 Verilog 2001 语法中是非法的”的错误。谁能帮我解决这个问题?

function [24:0] shiftright(input [24:0] in);
integer i;
begin
if (in)
for (i=0; i<25; i=i+1) begin
    if (i == 24) shiftright[i]<= 0;
    else shiftright[i] <= in[i+1];
end
end
endfunction

【问题讨论】:

    标签: verilog


    【解决方案1】:

    您在module 声明之外编写了函数。所有声明都必须在 Verilog 中的模块内。 SystemVerilog 确实允许模块之外的变量、函数和许多其他东西。

    此外,您不能对函数的返回值使用非阻塞赋值。

    【讨论】:

      猜你喜欢
      • 2012-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多