我可以直接在Verilog HDL设计中使用二维数组输入实例化参数化模块(LPM)函数库吗?-Altera-Intel社区-FPGA CPLD-ChipDebug

我可以直接在Verilog HDL设计中使用二维数组输入实例化参数化模块(LPM)函数库吗?

Verilog HDL设计不支持二维阵列。因此,您无法直接在Verilog HDL设计中使用二维数组输入实例化LPM函数。 LPM_ANDLPM_MUXLPM_ORLPM_XOR函数都具有二维阵列输入。

使用这些功能之一在一个的Verilog HDL设计文件,创建一个较低的水平的Altera®硬件问题描述语言(AHDL)或图形设计实现该功能。以下是使用AHDL文件实例化LPM的设计流程示例:

包括“lpm_mux.inc”;

SUBDESIGN lpm_muxa

(

data_inone [7..0],data_intwo [7..0],data_inthree [7..0], 

    data_infour [7..0]:INPUT;

选择[1..0]:INPUT;

data_out [7..0]:OUTPUT;

)

变量

muxgate:LPM_MUX,(LPM_WIDTH = 8,LPM_SIZE = 4,LPM_WIDTHS = 2);

开始

muxgate.sel [] =选择[];

muxgate.data [0] [] = data_inone [];

muxgate.data [1] [] = data_intwo [];

muxgate.data [2] [] = data_inthree [];

muxgate.data [3] [] = data_infour [];

DATA_OUT [] = muxgate.result [];

结束;

然后,您可以在Verilog HDL设计文件中实例化此文件:

 module check_lpmmux(in_one,in_two,in_three,in_four,select,out);

//港口宣言

输入[7:0] in_one,in_two,in_three,in_four;

输入[1:0]选择;

输出[7:0];

lpm_muxa u1(.data_inone(in_one [7:0]),. data_intwo(in_two [7:0]), 

      .data_inthree(in_three [7:0]),. data_infour(in_four [7:0]), 

      .select(选择[1:0]),. data_ out(out));

endmodule

该MAX + PLUS®II软件包括MUXBUSMUX与一维数组操作,并且可以以Verilog HDL设计直接实例化的功能。 MUX功能实现一位宽N:1多路复用器, BUSMUX功能实现N位宽2:1多路复用器。

您必须为AHDL或图形文件生成< 文件名 > .inc文件,以便Verilog HDL编译器识别。
请登录后发表评论

    没有回复内容