ViKo 1 18 февраля, 2010 Опубликовано 18 февраля, 2010 · Жалоба На первый взгляд: Нет, так не выходит. Один бит вывести хочу. Пробовал "приведение типов" попытаться использовать, как-то так: module Library(input CLKIN, input ENABLE, output CLKOUT); Counter (.clk(CLKIN), .reset(0), .ena(ENABLE), .(bit') result(CLKOUT)); Ни хрена не выходит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 18 февраля, 2010 Опубликовано 18 февраля, 2010 · Жалоба Ни хрена не выходит. 1. Верилог является языком чувствительным к регистру букв. 2. Вы нарушаете требования стандарта на инстанс компонентов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 18 февраля, 2010 Опубликовано 18 февраля, 2010 · Жалоба 1. Верилог является языком чувствительным к регистру букв. 2. Вы нарушаете требования стандарта на инстанс компонентов. 1. Я обозначаю прописными буквами имена цепей, выходящих наружу ПЛИС, остальные имена начинаю с прописной, дальше строчные. Логичный выбор. То, что написано внутри модуля counter, я оставил, как было у Altera. 2. Что я нарушаю, поясните. Использую экземпляр модуля. Вроде, сигналы названы правильно, поставлены в соответствии. 3. Как "выкрутиться" с подобным желанием - вывести на улицу, например, только старший разряд счетчика (вполне реальная задача - поделить входную частоту...)? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 18 февраля, 2010 Опубликовано 18 февраля, 2010 · Жалоба Всё, получилось! Дело было в "кривом" проекте. Фиттер помнил прежние установки, поэтому выводил наружу все выходы счетчика. Следующий код работает, как надо: 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 19 февраля, 2010 Опубликовано 19 февраля, 2010 · Жалоба 1. Я обозначаю прописными буквами имена цепей, выходящих наружу ПЛИС, остальные имена начинаю с прописной, дальше строчные. Логичный выбор. То, что написано внутри модуля counter, я оставил, как было у Altera. 2. Что я нарушаю, поясните. Использую экземпляр модуля. Вроде, сигналы названы правильно, поставлены в соответствии. причем здесь цепи, у вас есть компонент counter а вы вставляли компонент Counter, к тому же еще не указали имя инстанса. В последнем приведенном вами коде эти ошибки исправлены. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 19 февраля, 2010 Опубликовано 19 февраля, 2010 · Жалоба причем здесь цепи, у вас есть компонент counter а вы вставляли компонент Counter, к тому же еще не указали имя инстанса. В последнем приведенном вами коде эти ошибки исправлены. "Были демоны, этого мы не отрицаем! Но они... самоликвидировались!" :-) (а проект, однако, запускался, помнил, собака, прежние установки) Спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться