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

Verilog. объединить 2 модуля

На первый взгляд:

Нет, так не выходит. Один бит вывести хочу. Пробовал "приведение типов" попытаться использовать, как-то так:

module    Library(input CLKIN, input ENABLE, output CLKOUT);
  Counter (.clk(CLKIN), .reset(0), .ena(ENABLE), .(bit') result(CLKOUT));

Ни хрена не выходит.

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


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

Ни хрена не выходит.

1. Верилог является языком чувствительным к регистру букв.

2. Вы нарушаете требования стандарта на инстанс компонентов.

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


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

1. Верилог является языком чувствительным к регистру букв.

2. Вы нарушаете требования стандарта на инстанс компонентов.

1. Я обозначаю прописными буквами имена цепей, выходящих наружу ПЛИС, остальные имена начинаю с прописной, дальше строчные. Логичный выбор. То, что написано внутри модуля counter, я оставил, как было у Altera.

2. Что я нарушаю, поясните. Использую экземпляр модуля. Вроде, сигналы названы правильно, поставлены в соответствии.

3. Как "выкрутиться" с подобным желанием - вывести на улицу, например, только старший разряд счетчика (вполне реальная задача - поделить входную частоту...)?

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


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

Всё, получилось! Дело было в "кривом" проекте. Фиттер помнил прежние установки, поэтому выводил наружу все выходы счетчика. Следующий код работает, как надо:

module  QuartusLibrary(input CLKIN, input ENABLE, output CLKOUT);
  wire [7:0] CntTmp;
  counter  Divider(.clk(CLKIN), .ena(ENABLE), .reset(0), .result(CntTmp));
  assign CLKOUT = CntTmp[7];
endmodule

module counter (clk, reset, result, ena);
  input clk;
  input reset;
  input ena;
  output [7:0] result;

  reg [7:0] result;

  always @(posedge clk or posedge reset)
  begin
    if (reset)
      result = 0;
    else if (ena)
      result = result + 1;
  end
endmodule

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


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

1. Я обозначаю прописными буквами имена цепей, выходящих наружу ПЛИС, остальные имена начинаю с прописной, дальше строчные. Логичный выбор. То, что написано внутри модуля counter, я оставил, как было у Altera.

2. Что я нарушаю, поясните. Использую экземпляр модуля. Вроде, сигналы названы правильно, поставлены в соответствии.

причем здесь цепи, у вас есть компонент counter а вы вставляли компонент Counter, к тому же еще не указали имя инстанса.

 

В последнем приведенном вами коде эти ошибки исправлены.

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


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

причем здесь цепи, у вас есть компонент counter а вы вставляли компонент Counter, к тому же еще не указали имя инстанса.

 

В последнем приведенном вами коде эти ошибки исправлены.

"Были демоны, этого мы не отрицаем! Но они... самоликвидировались!" :-)

(а проект, однако, запускался, помнил, собака, прежние установки)

Спасибо!

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


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

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

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

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

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

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

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

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

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

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