Разработка, производство и продажа радиоэлектронной аппаратуры
|
Требуется программист в Зеленограде - обработка данных с датчиков; ColdFire; 40 тыс.
e-mail: jobsmp@pochta.ru
|
Правильное связывание модулей? "port has no driver" несмотря на явное описание вывода
Отправлено
ПЛИС 26 января 2008 г. 01:01
Допустим в основном модуле прописаны input, output и т.п.
Во вспомогательном часть их формируется, но есть подозрение (по предупреждениям), что их надо как-то иначе указывать.
Допустим:
module test (sel1, sel2, input1, input2, input3, input4, output1);
input sel1, sel2;
input input1, input2, input3, input4;
output [3:0] output1;
// ... мега процессинг
endmodule
module submodule ();
reg [3:0] _output1;
wire [1:0] selector;
wire sel1, sel2;
wire input1, input2, input3, input4; //если закомментируем, станут неопределенными - ошибка
// wire [1:0] output1; комментируем иначе станет 'локальным', не связанным с описанием в главном модуле
assign selector=sel1+sel2;
always @*
case (selector)
2'b00 : _output1=input1+input2+input3+input4;
2'b01 : _output1=input2+input3+input4+input1;
2'b10 : _output1=input3+input4+input1+input2;
2'b11 : _output1=input4+input1+input2+input3;
endcase
assign output1=_output1;
endmodule
Компилируется правильно, хоть и с неприятными предупреждениями:
output [3] output1 port has no driver
output [2] output1 port has no driver
output [1] output1 port has no driver
output [0] output1 port has no driver
с указанием на строку описания "output [3:0] output1;" в основном модуле.
Как же нет дривера, когда вот он "assign output1=_output1;" и описан в головном модуле?
Что то не так...
Фсё лепить в один модуль?
Составить ответ | Вернуться на конференцию
Ответы