Алексей Б. 0 9 апреля, 2010 Опубликовано 9 апреля, 2010 · Жалоба Добрый день! подскажите пожалуйста как решить проблему записи из разных блоков в один регистр: always @ (posedge pkt) begin startPkt <= 1; end always @ (posedge clk) begin StartPkt< = 0; end как выполнить нечно подобное? компилятор (quartus) ругается на любые присвоения в разных always-блоках в один и тот же регистр.. до этого програмировал только для контроллеров и без подобной операции не знаю куда деваться... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
lexus.mephi 0 9 апреля, 2010 Опубликовано 9 апреля, 2010 · Жалоба Добрый день! подскажите пожалуйста как решить проблему записи из разных блоков в один регистр: always @ (posedge pkt) begin startPkt <= 1; end always @ (posedge clk) begin StartPkt< = 0; end как выполнить нечно подобное? компилятор (quartus) ругается на любые присвоения в разных always-блоках в один и тот же регистр.. до этого програмировал только для контроллеров и без подобной операции не знаю куда деваться... Это одно из основных правил Verilog'a - все присваивания сигналу должны происходить в одном always блоке. Попробуйте так: always @ (posedge clk) begin if (pkt) StartPkt <= 1; else StartPkt< = 0; end Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Алексей Б. 0 9 апреля, 2010 Опубликовано 9 апреля, 2010 · Жалоба пасибо, подумаю как с этой стороны подойти... и все таки, неужели не бывает потребности в нечто подобном? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 17 9 апреля, 2010 Опубликовано 9 апреля, 2010 · Жалоба пасибо, подумаю как с этой стороны подойти... А по-другому никак. В FPGA нет триггеров с двумя тактовыми входами. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 9 апреля, 2010 Опубликовано 9 апреля, 2010 · Жалоба пасибо, подумаю как с этой стороны подойти... и все таки, неужели не бывает потребности в нечто подобном? Загляните в рядом стоящую ветку "Профессия RTL-дизайнер не имеет будущего". Если дочитаете до конца, наступит просветление :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Des333 0 9 апреля, 2010 Опубликовано 9 апреля, 2010 · Жалоба Загляните в рядом стоящую ветку "Профессия RTL-дизайнер не имеет будущего. Если дочитаете до конца, наступит просветление :) Если автор прочитает ее всю до конца - думаю, он уйдет обратно в программирование контроллеров. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 9 апреля, 2010 Опубликовано 9 апреля, 2010 · Жалоба Если автор прочитает ее всю до конца - думаю, он уйдет обратно в программирование контроллеров. :bb-offtopic: Небось, не уйдет! Ступившему на эту дорогу, обратного пути нет. Как в мафии. :rolleyes: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Serhiy_UA 1 9 апреля, 2010 Опубликовано 9 апреля, 2010 · Жалоба подскажите пожалуйста как решить проблему записи из разных блоков в один регистр: Очень похоже на RS-триггер, функционально. Тогда так: module rs(Set, Res, out1, out0); input Set, Res; output out1, out0; assign out0 = !(Res & out1); assign out1 = !(Set & out0); endmodule но здесь установка спадом с 1 в 0. Если фронтом с 0 в 1, то инвертировать входы Set, Res. Поменяйте только названия сигналов на свои. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Алексей Б. 0 9 апреля, 2010 Опубликовано 9 апреля, 2010 (изменено) · Жалоба из той ветки пока прочитал только первые две и последнюю страницу - мне до тех вещей - как до Луны... понял только общий смысл обсуждаемой темы.. ) не в тему конечно, но вопрос короткий: qurtus больно серый - поставил active-hdl - он повеселее будет, но в нем не выбрать MAX3000.. это с чем связано? по мелочам actel не разменивается?.. Изменено 9 апреля, 2010 пользователем Алексей Б. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 35 9 апреля, 2010 Опубликовано 9 апреля, 2010 · Жалоба Приветствую! То что хотел автор в начале должно выглядет так ... reg StartPkt; always @ (posedge clk or posedge pkt) begin if (pkt) StartPkt <= 1; else StartPkt <= 0; end ... Получится регистр с асинхронной установкой в 1 по сигналу pkt и синхронной установкой в 0 по clk. Основная сложность для классического программиста при начале работы с Verilog и VHDL это то что это не языки програмирования а языки описания структуры и поведения цифровой схемы. Различные действия описанные в Verilog могут и происходят в одно и тоже физическое время, в отличии от классических языков програмирования. Quartus и Aldec немного разной ориентации программы. Aldec предназначен для ввода и серьезного моделирования работы цифровых схем (не важно каких производителей). Quartus - для ввода, (простого моделирования) синтеза и генерации прошивки для кристаллов Altera. Успехов! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Des333 0 9 апреля, 2010 Опубликовано 9 апреля, 2010 · Жалоба Приветствую! То что хотел автор в начале должно выглядет так ... Пока автор совсем не разбирается в "теме", достаточно сложно сказать, что он хотел, во-первых. А, во-вторых, далеко не факт, что то, что хотел автор, вообще стоит реализовывать. :) Автору советую для начала полистать книжки и посмотреть простые примеры. После этого, если что непонятно - искать на форуме, и, если все еще непонятно, спрашивать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 9 апреля, 2010 Опубликовано 9 апреля, 2010 · Жалоба из той ветки пока прочитал только первые две и последнюю страницу - мне до тех вещей - как до Луны... понял только общий смысл обсуждаемой темы.. ) Середину почитайте! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Алексей Б. 0 10 апреля, 2010 Опубликовано 10 апреля, 2010 · Жалоба всем спасибо! справочники я просматриваю параллельно с попытками сворганить прошивку. ) не уверен что делаю правильно, но знаю что хочу получить. to RobFPGA: спасибо, значит мыслю в нужном направлении! как раз такой вариант реализации я сейчас и пробую! цитата: "Aldec предназначен для ввода и серьезного моделирования работы цифровых схем (не важно каких производителей)." - не совсем понял почему серьезного моделерования.. у меня сложилось впечатление, что он сам по себе может только функциональный анализ (т.е. без реальных задержек), а чтобы он делал анализ более менее реальной прошивки (timing analys, кажется это называется, после "заливки" в кристалл) нужно подключать quartus,xilinx и т.п. и компилить в них, а он потом просто отрисует что получилось.. может я конечно не прав потому что только сейчас буду пытаться разобраться с active-ом.. :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Builder 1 10 апреля, 2010 Опубликовано 10 апреля, 2010 · Жалоба цитата: "Aldec предназначен для ввода и серьезного моделирования работы цифровых схем (не важно каких производителей)." - не совсем понял почему серьезного моделерования.. у меня сложилось впечатление, что он сам по себе может только функциональный анализ (т.е. без реальных задержек), а чтобы он делал анализ более менее реальной прошивки (timing analys, кажется это называется, после "заливки" в кристалл) нужно подключать quartus,xilinx и т.п. и компилить в них, а он потом просто отрисует что получилось.. может я конечно не прав потому что только сейчас буду пытаться разобраться с active-ом.. :)Имеется ввиду то, что обычно сначала всё пишется и симулируется на функциональном уровне. При этом могут использоваться (у меня почти всегда они есть) констурукции кода, не синтезируемые, например работа с файлом. Наиболее часто, судя по постам тут, используют или Active HDL или ModelSim (поройтесь в архивах, их много сравнивали). Синтез и времянка делается после или паралельно (переодически запускаем синтез) с написанием кода. При этом практика показывает, что если код функционально написан корректно (нет потыток сделать типа того, что вы хотели), то симуляции с учётом времянки делать не требуется, достаточно отчёта синтезатора, что все ограничения выполнены. В самом квартусе симулятор достаточно слабый, в нём можно делать только самый примитив, я например его только пару раз попробовал, когда пересаживался в MAX+II и больше не запускаю, нет необходимости. Это если кратко. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sazh 8 10 апреля, 2010 Опубликовано 10 апреля, 2010 · Жалоба В самом квартусе симулятор достаточно слабый, в нём можно делать только самый примитив, я например его только пару раз попробовал, когда пересаживался в MAX+II и больше не запускаю, нет необходимости. его слабость только в том, что он текстовое входное воздействие при моделировании не поддерживает. А будущего у него нет. Не выгодно и затратно. Скорее всего в последующих версиях моделирования в квартусе не станет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться