Verilog HDL设计不支持二维阵列。因此,您无法直接在Verilog HDL设计中使用二维数组输入实例化LPM函数。
LPM_AND , LPM_MUX , LPM_OR和LPM_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软件包括MUX和BUSMUX与一维数组操作,并且可以以Verilog HDL设计直接实例化的功能。 MUX功能实现一位宽N:1多路复用器, BUSMUX功能实现N位宽2:1多路复用器。
![]() |
您必须为AHDL或图形文件生成< 文件名 > .inc文件,以便Verilog HDL编译器识别。 |






没有回复内容