在verilog中定义一个常数(用于合成 )

我正在为合成编写一些 Verilog 代码。我的块有一个 reg 类型 A,它必须始终具有相同的值。为了不出现语法错误,我写了以下内容:

我正在为合成编写一些 Verilog 代码。我的块有一个 reg 类型 A,它必须始终具有相同的值。为了不出现语法错误,我写了以下内容:

module dig_block ( OUT, OUTN, in , OUTlevelL, mode_1, mode_0 , rst);
    output [11:0] OUT, OUTN;
    input [11:0] in, OUTlevelL;
    input  mode_1, mode_0, rst;  
    reg [11:0] OUT, OUTN;
    reg [11:0] A;   
    integer B; 
    always @(ck or rst) 
    if(~rst)
        begin
            A =512;   
            B =in[10:0];
            case  ({mode_1, mode_0})  
            2'b00:  begin     
                    OUT=A-B;   
                    OUTN=~OUT;
                end
            default:   begin  
                OUT=OUTlevelL;
                OUTN=~OUT;
                end
            endcase
        end
    else
        begin  
            A =512;
            B =0;     
            OUT =0;
            OUTN=1;
        end 
endmodule

是否可以在“总是”之前定义 A?我不知道必须固定并且不是输入,也不是输出的数量的常见做法是什么。我不希望在合成时放置不必要的端口。非常感谢你的帮助!

4

您可以将其定义为 Local 参数。这将仅将其范围限制在此模块内。

module dig_block ( OUT, OUTN, in , OUTlevelL, mode_1, mode_0 , rst);
        output [11:0] OUT, OUTN;
        input [11:0] in, OUTlevelL;
        input  mode_1, mode_0, rst;  
        reg [11:0] OUT, OUTN;
        localparam [11:0] A=512; 

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(713)
如何在python中读取m4a文件
上一篇
Sage图斜率场和微分方程
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(88条)