Demeny 0 9 ноября, 2006 Опубликовано 9 ноября, 2006 · Жалоба Начинаю осваивать VHDL и ПЛИС в Quartus 6.0. Написал простейшую схему entity Generator is port(clock inout std_logic); end Generator; architecture behavioral of Generator is begin process begin clock <= '0'; wait for 50 ns; clock <= not clock; end process; end behavioral; При компиляции Quartus ругается на оператор wait, что-то типа "для оператора wait необходимо ещё и указывать условие until ". То же самое происходит, если я беру, например, готовое ядро с opencores (я брал pci_core) - та же ошибка на оператор wait; Но ведь в VHDL синтаксисом предусмотрены конструкции wait; wait for ... ns; wait until ...; В чём тут проблема ? Где я ошибаюсь ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Postoroniy_V 0 9 ноября, 2006 Опубликовано 9 ноября, 2006 · Жалоба Начинаю осваивать VHDL и ПЛИС в Quartus 6.0. Написал простейшую схему entity Generator is port(clock inout std_logic); end Generator; architecture behavioral of Generator is begin process begin clock <= '0'; wait for 50 ns; clock <= not clock; end process; end behavioral; При компиляции Quartus ругается на оператор wait, что-то типа "для оператора wait необходимо ещё и указывать условие until ". То же самое происходит, если я беру, например, готовое ядро с opencores (я брал pci_core) - та же ошибка на оператор wait; Но ведь в VHDL синтаксисом предусмотрены конструкции wait; wait for ... ns; wait until ...; В чём тут проблема ? Где я ошибаюсь ? проблема в том что это конструкция не синтезируемая! и нужна для моделирования Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Demeny 0 9 ноября, 2006 Опубликовано 9 ноября, 2006 · Жалоба проблема в том что это конструкция не синтезируемая! и нужна для моделирования Это мне интуитивно понятно. Мы не можем синтезировать в логическую схему в "силиконе" произвольную временную задержку сигнала, так ? Тогда в связи с этим еще ряд вопросов. 1. Как же тогда синтезировать обычный генератор меандра , который я пытался сделать с помощью оператора "wait for ... ns" ? 2. Является ли конструкция "wait until ... " синтезируемой ? 3. Как мне "указать" Quartus-у, что я не собираюсь использовать entity Generator с конструкцией "wait ... ns" для синтеза и прошивки CPLD, а он мне нужен для моделирования в составе TestBench-а, ну например, для тестирования PCI-device ядра ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Postoroniy_V 0 9 ноября, 2006 Опубликовано 9 ноября, 2006 · Жалоба проблема в том что это конструкция не синтезируемая! и нужна для моделирования Это мне интуитивно понятно. Мы не можем синтезировать в логическую схему в "силиконе" произвольную временную задержку сигнала, так ? Тогда в связи с этим еще ряд вопросов. 1. Как же тогда синтезировать обычный генератор меандра , который я пытался сделать с помощью оператора "wait for ... ns" ? 2. Является ли конструкция "wait until ... " синтезируемой ? 3. Как мне "указать" Quartus-у, что я не собираюсь использовать entity Generator с конструкцией "wait ... ns" для синтеза и прошивки CPLD, а он мне нужен для моделирования в составе TestBench-а, ну например, для тестирования PCI-device ядра ? 1) 1 триггер (DFF) и есть генератор меандра, и не понятно зачем Вам нужно это синтезировать... подайте снаружи тактовую 2) читайте мануалы 3) видимо нужно про configuration Вам почитать тоесть см п.2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
klop 0 9 ноября, 2006 Опубликовано 9 ноября, 2006 · Жалоба 3. Как мне "указать" Quartus-у, что я не собираюсь использовать entity Generator с конструкцией "wait ... ns" для синтеза и прошивки CPLD, а он мне нужен для моделирования в составе TestBench-а, ну например, для тестирования PCI-device ядра ? Не знаю про Quartus знаю что для симуляции надо юзать симулятор (Aldec, ModelSim, NC-Sim ...) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Demeny 0 9 ноября, 2006 Опубликовано 9 ноября, 2006 · Жалоба 1) 1 триггер (DFF) и есть генератор меандра, и не понятно зачем Вам нужно это синтезировать... подайте снаружи тактовую Если снаружи идёт тактовая, то сгенерировать меандр также просто, как решить уравнение X=2 для всех X от -10 до 10. Вопрос был о другом. Как синтезировать "черный ящик" с единственным выходом, с которого идёт меандр (какой-то определённой частоты), не прибегая к оператору VHDL "wait for ... ns", который, как выяснилось, синтезу в логическую схему не подлежит. 2) читайте мануалы 3) видимо нужно про configuration Вам почитать тоесть см п.2 Читаю очень прилежно, например, начал с книги Сергиенко А. М. "VHDL для проектирования вычислительных устройств". С оператором wait понятно. Но прочитал про configuration страничку (с. 78) - и ни хрена не понял. Понятно только, что с помощью конфигурации мы можем для объектов назначать разные реализации (архитектуры). Но как указать компилятору, что данный объект (скажем, тестбенч) мы не собираемся синтезировать, а только симулировать им сигналы для другого объекта (который мы будем синтезировать и прошивать в ПЛИС) - мне совершенно непонятно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vetal 0 9 ноября, 2006 Опубликовано 9 ноября, 2006 · Жалоба (скажем, тестбенч) мы не собираемся синтезировать Просто не синтезируйте этот файл. Синтезируйте толлько те файлы, которые должны синтезироваться. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MurrVK 0 9 ноября, 2006 Опубликовано 9 ноября, 2006 · Жалоба Вопрос был о другом. Как синтезировать "черный ящик" с единственным выходом, с которого идёт меандр (какой-то определённой частоты), не прибегая к оператору VHDL "wait for ... ns", который, как выяснилось, синтезу в логическую схему не подлежит. :blink: :blink: :blink: Кто-то тут явно плохо читал мануалы. Если у вас такое получится, надо будет всем электрониксом скинуться и памятник вам поставить. Кроме шуток, если б вы изучили получше архитектуру плисины, то поняли бы, какую глупость написали. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ishergin 0 10 ноября, 2006 Опубликовано 10 ноября, 2006 · Жалоба ...Понятно только, что с помощью конфигурации мы можем для объектов назначать разные реализации (архитектуры). Но как указать компилятору, что данный объект (скажем, тестбенч) мы не собираемся синтезировать, а только симулировать им сигналы для другого объекта (который мы будем синтезировать и прошивать в ПЛИС) - мне совершенно непонятно. Вам уже ответили на этот вопрос :) возьмите нормальный симулятор Active HDL или ModelSim, у них есть примеры, разобраться несложно. :bb-offtopic: Murr Von Karter - с возвращением :cheers: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться