首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Verilog函数应用

Verilog函数应用
EN

Stack Overflow用户
提问于 2018-03-23 15:16:53
回答 1查看 129关注 0票数 0

在下面的代码中使用ModelSim时,我会得到这个编译错误

接近“赋值”:语法错误、意外赋值、期望标识符或TYPE_IDENTIFIER或NETTYPE_IDENTIFIER。

代码语言:javascript
复制
`define WIDTH 8  

    module Parityfunc(input [`WIDTH-1:0] i_data, output o_parity_out, input parity_type);


    function parity (input [`WIDTH-1:0] data, input parity_type);
        begin
            if (parity_type)        // even parity
                parity <= ^data;
            else if (!parity_type)  // odd parity
                parity <= ~(^data);
        end 

    endfunction : 

        assign o_parity_out = parity(i_data, parity_type);

    endmodule // Parityfunc
EN

回答 1

Stack Overflow用户

发布于 2018-03-23 15:22:04

一种解决方案是在endfunction之后删除冒号。

代码语言:javascript
复制
`define WIDTH 8  

module Parityfunc(input [`WIDTH-1:0] i_data, output o_parity_out, input parity_type);


function parity (input [`WIDTH-1:0] data, input parity_type);
    begin
        if (parity_type)        // even parity
            parity <= ^data;
        else if (!parity_type)  // odd parity
            parity <= ~(^data);
    end 

endfunction

    assign o_parity_out = parity(i_data, parity_type);

endmodule // Parityfunc

另一个解决方案是在冒号后面添加函数名:

代码语言:javascript
复制
endfunction : parity

参见IEEE Std 1800-2012,13.4功能。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49452996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档