Allregia 9 29 ноября, 2010 Опубликовано 29 ноября, 2010 · Жалоба Есть простенкий проект - буквально пара двоичных счетчиков, регистров и немного вентилей. Планирую на 3-х вольтовой EPM3032А, БайтБластер уже спаял. Раньше с програмируемой логикой дел не имел, но слышал что простые вещи можно не писать программу на AHDL/VHDL а просто нарисовать схему, скомпилировать и прошить в альтерку. Пока Квартус не скачался, поставил MAX+, лицензию у альтеры получил, но что делать дальше - пока не разобрался. С ним даже какие-то примеры куцые идут, или это я баран. Но когда вызываю компилятор, кнопочка "старт" неактивная. Направьте на путь истинный, плииииз. Куда смотреть, чего читать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Serhiy_UA 1 29 ноября, 2010 Опубликовано 29 ноября, 2010 · Жалоба Русскоязычной Европе в помощь... 1.ZIP Quartus_Max.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Allregia 9 29 ноября, 2010 Опубликовано 29 ноября, 2010 · Жалоба Щiро дякую! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Allregia 9 30 ноября, 2010 Опубликовано 30 ноября, 2010 · Жалоба Рано я обрадовался :( Не, вчера все пошло - я просто не вьехал в несколько идиотский интерфейс и идеологию самой программы (мах+), в "проектами" она работает мягко говоря оригинально. Но не в этом дело, я сделал 99% того что мне надо было, но споткнулся на одной ерунде. понияю что вопросы детские, но если кому не лень - посмотрите пожалуйста, в аттаче все файлы проекта, а я пока словами опишу: -вход тактовой идет на один вход 2XOR -та-же тактовая идет на 5 подряд включенных инверторов (NOT) - с выхода 5-го инвертора сигнал идет на второй вход 2XOR, и для контрлля - на вход out1 - выход 2XOR идет на выход out. на out1 вижу задержанный клок, а на выходе out - по=стоянно висит 0 для проверки, параллельно 2XOR поставил 2AND, с выходом на out2 - там тоже постоянно висит 0. Что я "не так" делаю ? Думаю не надо обьяснять. что я хотел получить короткие импульсы от обоих фронтов клока (для чего неважно - это только фрагмент схемы). P.S. Соррри если не в том разделе, но в "начинающим" я раздела про ПЛИСы не нашел. dclk.rar Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
LV26 0 30 ноября, 2010 Опубликовано 30 ноября, 2010 · Жалоба Рано я обрадовался :( Не, вчера все пошло - я просто не вьехал в несколько идиотский интерфейс и идеологию самой программы (мах+), в "проектами" она работает мягко говоря оригинально. Но не в этом дело, я сделал 99% того что мне надо было, но споткнулся на одной ерунде. понияю что вопросы детские, но если кому не лень - посмотрите пожалуйста, в аттаче все файлы проекта, а я пока словами опишу: -вход тактовой идет на один вход 2XOR -та-же тактовая идет на 5 подряд включенных инверторов (NOT) - с выхода 5-го инвертора сигнал идет на второй вход 2XOR, и для контрлля - на вход out1 - выход 2XOR идет на выход out. на out1 вижу задержанный клок, а на выходе out - по=стоянно висит 0 для проверки, параллельно 2XOR поставил 2AND, с выходом на out2 - там тоже постоянно висит 0. Что я "не так" делаю ? Думаю не надо обьяснять. что я хотел получить короткие импульсы от обоих фронтов клока (для чего неважно - это только фрагмент схемы). P.S. Соррри если не в том разделе, но в "начинающим" я раздела про ПЛИСы не нашел. Дело не в CPLD или MAX+PLUS II... Дело в Вашем подходе к цифровой схемотехнике. И если в стиле "а-ля 74`" такие фокусы проходили, то в мире CPLD\FPGA это "дурной тон" (Я о способе выделения фронтов) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Allregia 9 30 ноября, 2010 Опубликовано 30 ноября, 2010 · Жалоба Дело не в CPLD или MAX+PLUS II... Дело в Вашем подходе к цифровой схемотехнике. И если в стиле "а-ля 74`" такие фокусы проходили, то в мире CPLD\FPGA это "дурной тон" (Я о способе выделения фронтов) Ну я как бы и не скрывал что в CPLD/FPGA я новичек :) Если такой вариант не подходит, подкажите "как надо" это делат с CPLD? Я волшебное слово знаю - пожалуйста. (и все же интересно, почему и такое не работает? может там как типа как в Си компиляторах - оптимизатор повыбрасывал с его точки хзрения лишнее?) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 30 ноября, 2010 Опубликовано 30 ноября, 2010 · Жалоба И если в стиле "а-ля 74`" такие фокусы проходили, то в мире CPLD\FPGA это "дурной тон" В эпоху 7400 это тоже считалось "дурным тоном" или "высшим пилотажем", смотря кто как оценивает. 2 Allregia Оптимизатор повыбрасывал, вы правы. Можете повыводить на выходы все свои сигналы, тогда они должны остаться. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Allregia 9 30 ноября, 2010 Опубликовано 30 ноября, 2010 · Жалоба В эпоху 7400 это тоже считалось "дурным тоном" или "высшим пилотажем", смотря кто как оценивает. Да нет, это как раз считалось вполне нормальным. "Дурным тоном" считалось - когда вместо цепочки инверторов ставили RC-цепочку, вот за это надо бить по рукам. 2 Allregia Оптимизатор повыбрасывал, вы правы. Можете повыводить на выходы все свои сигналы, тогда они должны остаться. ОК, так как все-таки "правильно" сделать в CPLD выделение фронта ? Частота клока относительно небольшая - 100-120кгц. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 30 ноября, 2010 Опубликовано 30 ноября, 2010 · Жалоба ОК, так как все-таки "правильно" сделать в CPLD выделение фронта ? Частота клока относительно небольшая - 100-120кгц. Все делать синхронным. Иметь в ПЛИС тактовый сигнал, частоты которого хватит для любых манипуляций со входными сигналами. Задержать сигнал на триггере, тактируемым этим тактовым сигналом (как и все остальные триггеры). Когда входной сигнал уже в 1, а на триггере еще 0 - вот и фронт. На входе для сигналов требуется ставить так называемые "синхронизаторы" на паре триггеров. Чтобы избежать метастабильных состояний, когда тактовый сигнал по времени совпадает с изменением входного. Издержки синхронного дизайна. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dvladim 0 30 ноября, 2010 Опубликовано 30 ноября, 2010 · Жалоба Да нет, это как раз считалось вполне нормальным. "Дурным тоном" считалось - когда вместо цепочки инверторов ставили RC-цепочку, вот за это надо бить по рукам. Готов поспорить. По температурной стабильности RC значительно более стабильна чем цепочка инверторов. И для ASIC это тоже справедливо. Вы бы объяснили более конкретно что вам нужно. А выделение фронта делается на 2-х разрядном сдвиговом регистре сравнением его с 2'b01 (или 2'b10 в зависимости от требуемого фронта), плюс еще регистр для подавления метастабильности. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Allregia 9 30 ноября, 2010 Опубликовано 30 ноября, 2010 · Жалоба Вы бы объяснили более конкретно что вам нужно. Мне нужно сформировать импульсы, длительностью не более 20нс, после обеих фронтов сигнала, который примерно меандр 100кгц. Можно и менее 20нс, эти импульсы будут исопльзоваться для сброса счетчика, находященося в той-же CPLD. А выделение фронта делается на 2-х разрядном сдвиговом регистре сравнением его с 2'b01 (или 2'b10 в зависимости от требуемого фронта), Зачем "2-х разрядном"? Нельзя 1-разрядным? Т.е. как тут выше советовали - задержать Д-триггером и потом сложить вход и выход триггера XORом ? плюс еще регистр для подавления метастабильности. Можно поподробнее - что такое "метастабильность и как ее подавлять? Я может и знаю о чем речь, но не знаю этого термина. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Serhiy_UA 1 1 декабря, 2010 Опубликовано 1 декабря, 2010 · Жалоба Мне нужно сформировать импульсы, длительностью не более 20нс, после обеих фронтов сигнала, который примерно меандр 100кгц. Можно и менее 20нс, эти импульсы будут исопльзоваться для сброса счетчика, находященося в той-же CPLD. Инверторы, коньюнкторы, исключающее ИЛИ и Ваш личный опыт, Вам и помогут. Изучение Altera Quartus II посмотрите в http://marsohod.org/index.php/aquartus2 Про верилог, который лучше схематики на все 100%, смотрите для начала в http://marsohod.org/index.php/component/tag/Verilog Да и просто, специально для начинающих и для Вас тоже, смотрите все в http://marsohod.org/index.php/howtostart Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EvgenyNik 0 1 декабря, 2010 Опубликовано 1 декабря, 2010 · Жалоба Я когда-то тоже начинал с маленьких CPLD. Собственно, и сейчас выше младшего Циклона3 не ушёл. Сначала в графике делал (а-ля 74хх), потом на AHDL перешёл... Так вот, когда я более-менее созрел до написания правильных синхронных проектов без всей этой комбинаторики на Искл.ИЛИ для пропуска или удвоения импульсов и т.д., то попробовал переписать часть своих старых поделок (кодовый замок, например, на EPM7032S) на верилоге без шаманских заморочек. И что вы думаете? Не влезло! :) Все эти триггеры, регистры синхронизаций, антидребезга и т.п. съедают поболее ячеек, чем комбинаторика. Allregia, Вы, как будто, не совсем сначала перекладываете решение задачи на ПЛМ. Вам надо выделить фронты для сброса счётчика. А счётчик что считает? Не эти же ли импульсы 100 кГц? Если эти, то нет необходимости в столь шустрых сбросах. Если не эти, то нужно синхронизировать сначала 2 сигнала, а потом уже управление им доверять. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 29 1 декабря, 2010 Опубликовано 1 декабря, 2010 · Жалоба И что вы думаете? Не влезло! :) Все эти триггеры, регистры синхронизаций, антидребезга и т.п. съедают поболее ячеек, чем комбинаторика. Естественно, это ж CPLD, там с триггерами напряжёнка. Зато многотермовой логики - навалом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dvladim 0 1 декабря, 2010 Опубликовано 1 декабря, 2010 · Жалоба Мне нужно сформировать импульсы, длительностью не более 20нс, после обеих фронтов сигнала, который примерно меандр 100кгц. Можно и менее 20нс, эти импульсы будут исопльзоваться для сброса счетчика, находященося в той-же CPLD. Нет, это ерунда какая-то. Переходите к нормальному синхронному дизайну, сброс будет шириной в такт и вопросов о длительности сигнала сброса возникать вообще не будет. Зачем "2-х разрядном"? Нельзя 1-разрядным? Т.е. как тут выше советовали - задержать Д-триггером и потом сложить вход и выход триггера XORом ? Можно поподробнее - что такое "метастабильность и как ее подавлять? Я может и знаю о чем речь, но не знаю этого термина. В поиск. Обсуждалось многократно. Так вот, когда я более-менее созрел до написания правильных синхронных проектов без всей этой комбинаторики на Искл.ИЛИ для пропуска или удвоения импульсов и т.д., то попробовал переписать часть своих старых поделок (кодовый замок, например, на EPM7032S) на верилоге без шаманских заморочек. И что вы думаете? Не влезло! :) Все эти триггеры, регистры синхронизаций, антидребезга и т.п. съедают поболее ячеек, чем комбинаторика. Если разработчик сознательно уходит от синхронного дизайна к асинхронному, то он точно знает что делает и чем ему это грозит. Он не будет спрашивать как сделать то или иное, а новичку лучше разобраться с нормальным синхронным дизайном, а уж потом заниматься с асинхронщиной. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться