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编译器识别。 |
没有回复内容