2015-02-05 1 views
0

Если я посылаю некоторые параметры любого модуля в Verilog как:Передача массива в названном порту подключения

SUM(.a(a), .b(b), .out(out)); 

Это будет работать нормально. Что делать, если я хочу передать массив в качестве ввода или вывести массивы в качестве вывода? Например:

integer a=10; 
    integer b=20; 
    integer c[2:0]={2,4,6}; 
    integer d=0; 

any module(.input1(a), .input2(b), .input3(c),.....) 

Но это даст ошибку, которая «не может напрямую обращаться к памяти c».

Итак, как я могу отправить или получить массив в именованном портовом соединении?

+2

Показать объявления 'a',' b' и 'c'. И модуль. Минимальный, но полный код примера будет хорошим. –

+0

Чтобы быть понятным, когда вы говорите «отправка некоторых параметров», вы фактически говорите о подключении входов. Параметры - это константы в verilog, а входные порты описывают физические соединения. – Morgan

ответ

0

Входы могут быть массивами из SystemVerilog 2009. Verilog 1995, 2001 и 2005 не поддерживают порты массива.

module dut(
    input [7:0] a [3:0] 
); 

endmodule 
Смежные вопросы