установка режима вывода одного устройства в качестве входа другого устройства в Verilog - PullRequest
0 голосов
/ 04 октября 2019

Я хочу, чтобы значение параметра reg модуля использовалось как вход другого модуля. Как я могу это сделать? следующий код показывает ошибки, когда я пытаюсь подключить выход 3-битного upcounter к декодеру 3to8

module combouno(clk,enb,rest,dec);
input clk,enb,rest;
output reg [7:0]dec;
 wire [2:0]Q;
thrbitup uno(clk,Q,enb,rest);   
egtbtdec dec1(Q,dec);
endmodule
module thrbitup(clkk,q,en,res);
input clkk,en,res;
output reg [2:0]q;
always@(posedge clkk,negedge res)

if(res==0)
q<=0;

else if(en)
q<=q+1;


endmodule

module egtbtdec(x,y);
input [2:0]x;
output reg [7:0]y;

always@(x)
begin
case(x)
3'b000 : y=8'b00000001;
3'b001 : y=8'b00000010;
3'b010 : y=8'b00000100;
3'b011 : y=8'b00001000;
3'b100 : y=8'b00010000;
3'b101 : y=8'b00100000;
3'b110 : y=8'b01000000;
3'b111 : y=8'b10000000;
endcase
end 
endmodule

ошибка выглядит следующим образом Ошибка (10663): Ошибка подключения к порту HDL Verilog на combouno.v (6): выходной или входной порт "y" должен быть подключен к выражению структурной сети

1 Ответ

0 голосов
/ 04 октября 2019

Ваш порт должен быть только 'reg' в том месте, где вы назначаете значения.

Любые другие порты в иерархии, которые передают этот сигнал, не должны знать, был ли исходный порт регистром или проводом. ,

Таким образом, удалите регистр в модуле верхнего уровня:

module combouno(clk,enb,rest,dec);
input clk,enb,rest;
output [7:0]dec;

В любом случае, лучше переключиться на стиль порта ANSI:

module combouno
   (
   input clk,enb,rest, 
   output [7:0]dec  
   );

Также проверьте на вводошибки: вы используете 'res' и 'rest'.

...