function - Verilog 函数 - 无法找出我的错误

标签 function compiler-errors syntax-error verilog system-verilog

我尝试在 Modelsim 中编译此代码并不断收到错误消息:

** Error: (vlog-13069) q3.sv(2): near "Dividerr": 
syntax error, unexpected IDENTIFIER, expecting ';' or '('.

错误是引用我的代码的第 2 行。我不确定我做错了什么。有人可以启发我或强调我在这里缺少的东西吗?我想编译这个模块并能够为它编写一个测试台并最终进行模拟,但是这个错误让我很困惑。我习惯了verilog,但不是systemverilog,我觉得它很容易解决。

这是代码:
module integerDiv#(parameter width=16)();
    function Divider Divide;
        input [width-1:0] A, B;
        reg signed [width-1:0] D;
        reg [width-1:0] Result, Remainder;
        integer i;
        divider.Result_ = {width{1'b0}};
        for (i=width-1; i>=0; i=i-1) begin
            Result = (divider.Result_ << 1 ) + A[i];
            Remainder = divider.Result_<<1;
            Remainder = {Remainder[width-1:1], A[i]};
            D = Remainder - B;
            if ( D < 0 ) begin
                divider.D_[i] = 1'b0;
                divider.Result_ = Result;
            end else begin
                divider.D_[i] = 1'b1; 
                divider.Result_ = D;
            end
        end
    endfunction
endmodule

最佳答案

您尚未定义返回类型,或者您可能需要从 package 导入定义.此外,您将类型名称与函数体内的函数名称混合在一起。

关于function - Verilog 函数 - 无法找出我的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49724372/

相关文章:

Javascript if 函数检查

javascript - 如何使用 FP 的 compose() javascript 将两个函数组合成一个函数?

c - stdio.h 文件错误?

oracle - 我在:下面给出的Oracle软件包代码中没有收到错误

php - INSERT上的“Function name must be a string”-mysqli PHP

解决 R 函数中的 nrow/length(list) 错误

r - 比较字符串与 R 中的逻辑运算符

c - 当找不到匹配的函数时,c 编译器会做什么

c++ - 如何使主函数可以访问函数中的变量?

c++ - 在启用自动(基于扩展)选项的情况下,IAR 无法正确编译 C++ 文件