Jump to content

    
Sign in to follow this  
3FoH9l

Вопрос студента по Verilog

Recommended Posts

Запутался в типах данных. Подскажите пожалуйста.

 

Есть иерархия модулей. module_top_tb -> module_top -> module_1.

module module1
(

    ...
    output reg [7:0] Reg1
);

reg [9:0] rxReg = 10'h000;

always @(posedge rx_en) begin Reg1[7:0] <= Reg2[8:1]; end

endmodule

При симуляции просматриваю Reg1 - данные из Reg2 там присутствуют. По фронту обновляются.

В следующем модуле я пытаюсь объединить несколько модулей и вывести Reg1 в модуль выше.

module module_top

(

    ...
    output [7:0] reg_updoad_data_o
);

module1 module1_1
(
    ...
    .Reg1  ( reg_upload_data_o  )
);

endmodule

И при симуляции получаю ошибку: "Port size (8) does not match connection size (1) for port 'Reg1'". Соответственно это Z состояние.

Подскажите пожалуйста, в чем ошибка?

Share this post


Link to post
Share on other sites

у вас не объявлен

reg_upload_data_o

Он виден только внутри module_top.

Но если вы создадите wire [7:0] upload_data, и подключите его к выходам модулей, то получите другую ошибку - соединение двух выходов.

 

Share this post


Link to post
Share on other sites

Приветствую!

  "reg_upload_data_o" и "reg_updoad_data_o" как бы не одно и тоже  :biggrin:

Соответственно  по умолчанию создается однобитный wire reg_upload_data_o. 

Чтобы такого не было - добавляйте в начало файла `default_nettype none чтобы необъявленные переменные не создавались автоматом.

Удачи! Rob.

 

 

Share this post


Link to post
Share on other sites
3 часа назад, RobFPGA сказал:

Приветствую!

  "reg_upload_data_o" и "reg_updoad_data_o" как бы не одно и тоже  :biggrin:

Соответственно  по умолчанию создается однобитный wire reg_upload_data_o. 

Чтобы такого не было - добавляйте в начало файла `default_nettype none чтобы необъявленные переменные не создавались автоматом.

Удачи! Rob.

 

 

Огромное спасибо и за решение проблемы, и за новую системную функцию.

Кстати немного затрудняюсь в их поиске. Есть ли авторские материалы по этой теме? Или только документацию читать?

Share this post


Link to post
Share on other sites

Приветствую!

1 hour ago, 3FoH9l said:

Кстати немного затрудняюсь в их поиске. Есть ли авторские материалы по этой теме? Или только документацию читать?

Ищите по словам verilog compiler directive. Вот как пример  . Ну спецификации на язык и доки на используемые tools конечно же читать.

Удачи! Rob.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this