RobFPGA 27 4 февраля, 2020 Опубликовано 4 февраля, 2020 · Жалоба Приветствую! "И опыт, сын ошибок трудных ..." Описываем нужный функционал RS триггера на Verilog (* keep_hierarchy="yes" *) module RS ( output bit q, input wire r, // input wire s // ); always @(r, s) begin case ({r, s}) 2'b01 : q <= 1'b0; 2'b10 : q <= 1'b1; default : q <= q; endcase end endmodule И пробуем синтезировать его в синтезаторе для выбранной FPGA. Смотрим что в итоге получается (Vivado 19.2, Virtex Ultrascale) : Как видно для создания RS защелки используется встроенный триггер в режиме latch + LE. Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 5 4 февраля, 2020 Опубликовано 4 февраля, 2020 · Жалоба 1 hour ago, Strob said: Если не использовать синхронные конструкции, то результат будет асинхронным. Другое дело, что verilog все же позволяет абстрагироваться от деталей реализации, сконцентрировавшись на описании поведения схемы. Т.е. при правильном описании, работа схемы не будет отличаться от эталона, вне зависимости от наличия тех или иных компонентов на кристалле. основная проблема в этой асинхронщине - гонки. и большинство "научных" статей опирается на то, что в реализации асинхронных элементов будет какой-то путь длиннее, а какой-то короче, что достаточно сложно обеспечить в ПЛИС так же использование языков высокого уровня вряд ли возможно (есть подходы, когда заменяют после синтеза триггера на какие-то асинхронные ячейки с памятью, но это не труЪ путь), синтез будет выкидывать всю "научную новизну" из описания, так как с его точки зрения это избыточная логика, которую можно выкинуть Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Strob 0 4 февраля, 2020 Опубликовано 4 февраля, 2020 · Жалоба 30 minutes ago, yes said: синтез будет выкидывать всю "научную новизну" из описания, так как с его точки зрения это избыточная логика, которую можно выкинуть Для таких случаев есть fpga editor в ise. Можно контролировать все... Вообще все. Мне пришлось в нем плотно сидеть вручную рисуя hard macro. Очень "интересный" опыт. Крайне НЕ рекомендую... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 4 февраля, 2020 Опубликовано 4 февраля, 2020 · Жалоба 4 hours ago, KA3AKOB said: Реализация схем аналогичных тем, что когда-то паялись на 133 серии. Но уже на новой технологической основе и новыми средствами проектирования. Не надо этого делать. Схемы на 133 серии отличались очень демократичным отношением к глитчам, т.к. их быстродействие (а точнее 'медленнодействие') было такое, что все эти глитчи счастливо проглатывались. На FPGA этот номер не пройдёт - они все иголки вылавливают на ура, а 'припаять кондюк на ножку' (любимый способ подавления слишком толстых иголок) там тоже не пройдёт. FPGA сапры тут тоже не помогут - не расчитанны они на такие методы проектирования. Если я правильно помню, тут уже кто рассказывал страшилку о переводе аэродрома из 155 серии на FPGA - после прямого переноса получили абсолютно точную, и так же абсолютно неработающую копию Закончилось созданием с нуля синхронного дизайна по спекам исходного аэродрома. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KA3AKOB 0 4 февраля, 2020 Опубликовано 4 февраля, 2020 · Жалоба 2 часа назад, prostoRoman сказал: Считаю Ваш вопрос нужно разделить на две части: 1. Академический: Можно ли сделать RS-триггер на одной логической ячейке современной ПЛИС. Я думаю да. Но в этом вопросе я новичок. 2. Прикладной: исходите из своей задачи и ресурсов. В самом общем смысле и в самом грубом приближении, даже при таком расточительном подходе что я предлагаю*, даже (лучшая) отечественная ПЛИС 5578ТС064, аналог "морально взрослой" (устаревшей?) EP3C55 ф. Altera с 55 тысячами вентилей (4 вх. LUT + D-триггер) заменит порядка 1000 корпусов м/с стандартной логики. НО, если Вы сможете на языке высокого уровня описать решение Вашей задачи (если для этого достаточно исходных данных), то среда разработки "соптимизирует" количество логики ещё раз в 10 (имхо). Ну и степень интеграции, с точки зрения замены рассыпухи на стандартной логике, сегодня совершенно точно не проблема для ПЛИС. У меня на готовой плате в конструктиве достаточно древний FPGA с 456 ячейками, приходится экономить эти самые ячейки. Но, в общем Вы правы, очень уж большой разницы в процентах использования ячеек не будет. Но у меня именно академический интерес. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 168 4 февраля, 2020 Опубликовано 4 февраля, 2020 · Жалоба 1 час назад, xvr сказал: Не надо этого делать А стробированием? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
prostoRoman 0 4 февраля, 2020 Опубликовано 4 февраля, 2020 (изменено) · Жалоба 54 minutes ago, KA3AKOB said: У меня на готовой плате в конструктиве достаточно древний FPGA с 456 ячейками, приходится экономить эти самые ячейки. Но, в общем Вы правы, очень уж большой разницы в процентах использования ячеек не будет. Но у меня именно академический интерес. Это Вы, конечно, в жёстких условиях оказались) Я свой первый проект строил на 5576ХС2 (аналог EPF8282А) с 208 LE. Заменил примерно 50 корпусов логики 1554 @48МГц. Как раз, кстати, более половины корпусов - RS-триггреы. Поделюсь опытом, кстати. Это был мой первый проект на ПЛИС, первый код. Изначально были мысли "перерисовать схему" в MAX+plusII но недружелюбность графического интерфейса меня убила на финальной стадии. Да и в целом, будучи программистом, я понимал, что рисование не правильный путь. Тогда я выяснил для себя все требования к девайсу, придумал основную концепцию и начал писать код на Verilog (даже не помню ориентируясь на что, видимо на примеры из Интернета). В итоге всё-провсё до первого результата у меня заняло дня три. Потом исследование и отладка, но суть уже была ясна. Рисование логической схемы я забыл как страшный сон!! Итого строк 200 кода, примерно 10 входных и 20 выходных сигналов. Концептуально схема от оригинала отличается дико, я бы сказал. Т.е. даже близко не 1 в 1. Изменено 4 февраля, 2020 пользователем prostoRoman Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexRayne 7 4 февраля, 2020 Опубликовано 4 февраля, 2020 · Жалоба 43 минуты назад, KA3AKOB сказал: Но у меня именно академический интерес. Увлечение асинхронщиной на плисе у меня кончилось после того как я сравнил асинхронный и синхронный проекты, простенькие: Асинхронщину очень тяжело отлаживать, гонки убивают всякие гарантии. и даже если будет создан дизайн, его надо обконстрейнивать во всех местах, иначе при разводке на другом кристале все развалится. асинхронщина, ради гонок, требует усложнения дизайна, и посему расзодует сильно больше ячеек. за счет большего количества логики, весь дизайн получается медленнее. а учитывая, то как ведется анализ времянок - тактовые частоты предельные получаются ниже плинтуса. Вобчем посое пары асинхронных дизайнов, быстро приходит просветление - зачем народ синхонку придумал, и парится с разведением глобального клока. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Yuri124 1 4 февраля, 2020 Опубликовано 4 февраля, 2020 · Жалоба 44 minutes ago, AlexRayne said: парится с разведением глобального клока это можно отдать на откуп синтезатору, главное - изначально этот клок подать на нужные ноги микросхемы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Avex 1 4 февраля, 2020 Опубликовано 4 февраля, 2020 (изменено) · Жалоба @KA3AKOB Я на прошлой странице привел ссылку на статьи Лемберского. Чем гадать, почитайте сначала, как другие асинхронные схемы на плис делают. Изменено 4 февраля, 2020 пользователем Aleх Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexRayne 7 5 февраля, 2020 Опубликовано 5 февраля, 2020 · Жалоба 22 часа назад, Yuri124 сказал: это можно отдать на откуп синтезатору, главное - изначально этот клок подать на нужные ноги микросхемы. Я к тому проглобальный клок завел, что одним из важнейших преимуществ асинхронщины считается как раз ненужность глобального клока. В синхронных микрухах - он главная головная боль, и расход энергии/тепловыделение. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Yuri124 1 5 февраля, 2020 Опубликовано 5 февраля, 2020 · Жалоба 1 minute ago, AlexRayne said: В синхронных микрухах - он главная головная боль, и расход энергии/тепловыделение Можете пояснить насчет "головной боли"? В FPGA и CPLD есть же ресурсы трассировки как раз для глобальных клоков. Насчет тепловыделения - оно же за счет перезаряда емкостей происходит, если логические уровни постоянные - то переключения логики (записи в триггеры противоположного уровня) не происходит, греются только те цепи, которые переключаются - т.е. только клоковые цепи. Зато голова не болит, что в случае вычисления какой-нибудь сложной логической функции, из которой формируется сигнал CLK какого-нибудь триггера, не появится иголка, которая запишет в этот триггер что-то ненужное или преждевременное. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 168 5 февраля, 2020 Опубликовано 5 февраля, 2020 · Жалоба У автора сугубо организационные проблемы — он почему-то вынужден экономить блоки, т.е. ему изначально что-то жабоудушенное припаяли и ничего другого не ожидается. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexRayne 7 5 февраля, 2020 Опубликовано 5 февраля, 2020 · Жалоба 1 час назад, Yuri124 сказал: Можете пояснить насчет "головной боли"? Я о том что в железе микрух больших - плисы, процессоры, и проч., сигнал слока занимает много места, ведется толстыми проводами, пересекает весь кристалл, надо обеспечивать его синхронность и качество по всей длине, которая самая большая, посое проводов питания. На эту цепь чтавятся множества сильных буферов. Причем жтот сигнал работает всегда - даже если схемв ничего не делает. Посему эта цепь обоадает максимальным тепловыделением из всех. АМД экпериментировала с резонансной технологией клока, и сумели разогнать свой камень до 5ггц, за счет того что тепловыделение кристала на треть снизили. Ну и далтше можно продолжать. Это я о основных мотиваторах современных для перехода на асинхронные дизайны. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Enthusiast 0 5 февраля, 2020 Опубликовано 5 февраля, 2020 · Жалоба On 2/3/2020 at 7:46 PM, Strob said: А в чем смысл? Борьба за минимальные задержки? Или перенос старых схем на новое железо? Если делать синхронным лишь ввод и вывод сигналов из микросхемы, а внутреннюю асинхронную логику работы алгоритма разбить на малые части, которые взаимодействуют лишь с ближайшими "соседями", то вполне возможно значительно повысить скорость вычислений, одновременно снижая выделение тепла микросхемой, на сегодняшних техпроцессах изготовления микросхем, например, в решении задач "глубокого" обучения. Предлагаю посмотреть часовой доклад стартапера в Стенфорде об этом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться