Перейти к содержанию
    

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

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

 

Есть иерархия модулей. 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 состояние.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

reg_upload_data_o

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

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

Удачи! Rob.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 часа назад, RobFPGA сказал:

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

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

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

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

Удачи! Rob.

 

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

1 hour ago, 3FoH9l said:

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

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

Удачи! Rob.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...