FPGA/ПЛИС - Сдвиговый регистр или то, о чем не расскажут в видео для начинающих :: атрибуты синтеза

  Рет қаралды 7,975

FPGA Systems

FPGA Systems

Күн бұрын

SRL-Привет!
Сдвиговый регистр - это одна из наиболее часто применяемых конструкций в проектах на ПЛИС. В комментариях под прошлым видео вы проявили интерес к практическому воплощению сущностей различных ресурсов, имеющихся внутри ПЛИС. Сегодня мы уделим внимание тому, как можно и нужно писать VHDL и Verilog код для сдвиговых регистров, но при этом, чтобы синтезатор понял, что мы хотим реализовать сдвиговый регистр из нескольких триггеров или же задействовать для его реализации специальные ресурсы, такие SRL регистры.
Мы разберем случаи, в которых надо и не надо использовать аппаратные сдвиговые регистры, разберем тонкие моменты их имплементации. Мы затронем пересечение тактовых доменов и увидим, что в некоторых случаях правильно описанный сдвиговый регистр может стать причиной некорректного поведения схемы.
ВИДЕО ДЛЯ ВСЕХ!
#FPGA
IDE: #Vivado #Quartus
HDL #VHDL #VERILOG
--
Где почитать?
1. Для пользователей Xilinx Vivado
1.1 UG901 Vivado Design Suite Synthesis Guide
www.xilinx.com/support/docume...
1.2 Vivado Design SuiteTcl Command Reference Guide
www.xilinx.com/support/docume...
1.3 Vivado Design Suite 7 Series FPGA and Zynq-7000 SoC Libraries Guide
www.xilinx.com/support/docume...
2. Для пользователей Intel Quartus II
2.1 Intel Quartus Prime Software User Guides
www.intel.com/content/www/us/...
2.2 Verilog HDL Synthesis Attributes and Directives
www.intel.com/content/www/us/...
2.3 Quartus II Handbook Volume 1: Design and Synthesis
www.intel.com/content/dam/www...
--
Git репозиторий с исходниками видео
github.com/FPGA-Systems/fpga_...
--
Ссылка на стрим с 4 вариантами реализации SPI на сдвиговом регистре, конечном автомате, счетчике, памяти
1. ПЛИС и АЦП :: 1000 и 1 способ реализации SPI :: Часть 2
• ПЛИС и АЦП :: 1000 и 1...
2. Видео и файлы презентации
2.1 Интерфейсы :: SPI :: Часть 1:: Общие сведения
• Интерфейсы :: SPI :: Ч...
2.2 Интерфейсы :: SPI :: Часть 2 :: Варианты реализации
• Интерфейсы :: SPI :: Ч...
--
Скоро состоятся следующие мероприятия:
1. Вторая отечественна конференция FPGA разработчиков fpga-systems.ru/conference/20... Участие бесплатное
--
Присоединяйтесь к комьюнити FPGA/ПЛИС разработчиков
1. Наш телеграм чат t.me/fpgasystems @fpgasystems
2. Сайт проекта fpga-systems.ru
--
Стримы проходят каждую субботу в 8 вечера по Мск
1. Поддержка выхода новых обучающих видео и проекта fpga-susyems.ru
yoomoney.ru/to/4100110847722369
2. Поддержка стримов www.donationalerts.com/r/fpga...
--
Прочее
1. Сотрудничество, услуги, реклама, спонсорство fpga-systems.ru/services
2. Ваши предложения и вопросы направляйте на admin@fpga-systems.ru
--
Таймкоды:
00:00 FPGA-Привет!
0:05 Введение в тему
0:50 Что такое сдвиговый регистр?
2:24 О применении сдвиговых регистров
3:22 Примеры описания на VHDL и Verilog
4:00 Цели и задачи
4:25 Атрибуты в VHDL и Verilog
9:25 Возможности и опции синтеза в Vivado
10:59 Возможности и опции синтеза в Quartus
11:20 Сброс ломает всё
13:55 Практический кейс 1
14:49 Практический кейс 2
15:40 Итоги

Пікірлер: 66
@VitWar
@VitWar 3 жыл бұрын
Камент для продвижения в тренды!
@FPGASystems
@FPGASystems 3 жыл бұрын
Спасибо, одобряю.
@zatochiSiberian
@zatochiSiberian 15 күн бұрын
Благодарю
@user-ey4qp4mq4q
@user-ey4qp4mq4q 3 жыл бұрын
Интересная рубрика. Ждем продолжения!
@FPGASystems
@FPGASystems 3 жыл бұрын
Спасибо, будем стараться. К сожалению, со временем не так чтобы его много
@FPGASystems
@FPGASystems 3 жыл бұрын
00:00 FPGA-Привет! 0:05 Введение в тему 0:50 Что такое сдвиговый регистр? 2:24 О применении сдвиговых регистров 3:22 Примеры описания на VHDL и Verilog 4:00 Цели и задачи 4:25 Атрибуты в VHDL и Verilog 9:25 Возможности и опции синтеза в Vivado 10:59 Возможности и опции синтеза в Quartus 11:20 Сброс ломает всё 13:55 Практический кейс 1 14:49 Практический кейс 2 15:40 Итоги
@user-xi8dv4xz2f
@user-xi8dv4xz2f 2 ай бұрын
спасибо - мозг вытек через уши
@user-sq7pt2ns6t
@user-sq7pt2ns6t 3 жыл бұрын
Михаил,спасибо большое! Ждём новых выпусков!)
@Ada_Lovelace_Only
@Ada_Lovelace_Only 2 ай бұрын
За видео моргнул несколько раз :)
@FPGASystems
@FPGASystems 2 ай бұрын
Простите, вероятно это сбой в системе моргания, мы обязательно исправим это недаразумение в следующем релизе
@user-ko2th7mx2n
@user-ko2th7mx2n 3 жыл бұрын
Огонь!
@FPGASystems
@FPGASystems 3 жыл бұрын
Спасибо. Рад стараться
@aliaksei.makarau
@aliaksei.makarau 3 жыл бұрын
Мощно! Брутально! Митолл (железо в смысле)!😅
@FPGASystems
@FPGASystems 3 жыл бұрын
Хех, спасибо
@Aleksey_Derov
@Aleksey_Derov 3 жыл бұрын
Спасибо! Этих тонкостей и не хватало.
@FPGASystems
@FPGASystems 3 жыл бұрын
Рад, что видео оказалось полезным. Если есть еще какие-либо пробелы в понимании проектирования на FPGA, пиши, попробуем сделать ролик
@michzouthins1657
@michzouthins1657 3 жыл бұрын
Понравился подход с акцентом на важном! Спасибо!
@michzouthins1657
@michzouthins1657 3 жыл бұрын
Посмотреть не успеваю, но одобряю! Молодец!
@FPGASystems
@FPGASystems 3 жыл бұрын
Хах, спасибо
@nivigo7530
@nivigo7530 3 жыл бұрын
Огромная благодарность автору, продолжайте в том же духе!) По поводу шаблонов, в Quartus они тоже есть: Edit -> insert Template... . Ну это так, мало ли кому пригодится)
@FPGASystems
@FPGASystems 3 жыл бұрын
Спасибо за отзыв и дополнение
@motoday3580
@motoday3580 3 жыл бұрын
Ай как же я благодарен Миша тебе 🤝. Надо быстрее платку заканчивать .
@FPGASystems
@FPGASystems 3 жыл бұрын
Спасибо, а что за плата? Что то собственное на ПЛИС?
@motoday3580
@motoday3580 3 жыл бұрын
@@FPGASystems отладочная под свои хотелки ...
@FPGASystems
@FPGASystems 3 жыл бұрын
@@motoday3580 о, это круто, как сделаешь напиши статью обзорную на fpga-systems.ru, или спаяй мне тоже, на стриме поиграемся )
@motoday3580
@motoday3580 3 жыл бұрын
@@FPGASystems договорились сделаем 🤝.
@user-cd1ny6qg3r
@user-cd1ny6qg3r 3 жыл бұрын
Миша, это все легко. Давай лучше про оптимизацию дизайна по частоте/ресурсам и отладку слаков
@FPGASystems
@FPGASystems 3 жыл бұрын
Принято. Выйдет следующим.
@user-cd1ny6qg3r
@user-cd1ny6qg3r 3 жыл бұрын
@@FPGASystems Ждёмс-ждемс!
@user-um8be7cf6p
@user-um8be7cf6p 3 жыл бұрын
В топ ютюба!
@FPGASystems
@FPGASystems 3 жыл бұрын
Будем стараться.
@user-kj9lz1re1d
@user-kj9lz1re1d 3 жыл бұрын
Круто получилось! Если продолжение будет в том же духе, то это будет лучший цикл на русском языке.
@FPGASystems
@FPGASystems 3 жыл бұрын
Спасибо, крайне польщен
@SergeyChurayev
@SergeyChurayev 3 жыл бұрын
Обнуляет последний регистр, а не весь сдвиговый регистр потому как его последующие выходные значения не влияют на дальнейшее поведение схемы на следующих тактах. В случае со сбросом в единицу это не так, и программа "понимая" это синтезирует схему в виде цепочки триггеров.
@lohmatiy1986
@lohmatiy1986 3 жыл бұрын
Молодец! Тема интересная и актуальная. Может имеет смысл в отдельном видео показать все( или основные) настройки синтеза Вивады и Квартуса , к чему они приводят и где задокументированы? В этот раз свет и постановка камеры лучше. Можно на небольшой штатив или тросик камеру прямо перед монитором установить. И жестов добавить. Ты же на курсах и конференциях очень интересно и живо всегда объясняешь.
@FPGASystems
@FPGASystems 3 жыл бұрын
Спасибо за отзыв. Наверное разбирать настройки имеет смысл на стримах
@user-tg6yo7io2y
@user-tg6yo7io2y 3 ай бұрын
По-моему, примеры с задержкой сигнала неработоспособны: 1-й сигнал будет задержан, а остальные нет: все биты со временем станут равны последним id. - Нет?
@DimaDanilovA
@DimaDanilovA 3 жыл бұрын
Хорошо бы разобрать примеры перевода между тактовыми доменами как вверх, так и вниз. Вниз было бы особенно интересно, как обеспечить прохождение событий. Разобрать указанные случаи, когда синтезатор что-то такое выкинул.
@FPGASystems
@FPGASystems 3 жыл бұрын
Да, тема это интересная, но требует очень долгой подготовки. Там очень просто ввести в заблуждение и натворить дел. Но стоит подумать над тем, чтобы такое видео сделать. Спасибо за идею.
@russianultraviolet4441
@russianultraviolet4441 Жыл бұрын
Здравствуйте. Спасибо за интересную информацию. На Альтере Циклон 4 должно работать в квартусе (verilog)? Параметры настроек пытался менять,. но что-то цепь регистров в один так и не свернул... - Добавлено. О... как-то работает, но так как хотел не работает. работает если через регистр пропускается только однобитный сигнал, т.е. (* altera_attribute = "-name AUTO_SHIFT_REGISTER_RECOGNITION ON"*) reg [N-1:0] shift_array ; - такое работает. Но хотелось, чтоб работало по многобитным сигналам, например вот так: (* altera_attribute = "-name AUTO_SHIFT_REGISTER_RECOGNITION ON"*) reg [11:0] shift_array [N-1:0] ; т.е. мне надо сдвинуть во времени , допустим, 12-битный сигнал с АЦП на много тактов, и в такой записи уже не работает. Если знаете как сделать, чтоб свернуть в один SLR регистр многобитное число, пж подскажите. Конечно можно разбить 12-битный сигнал на 12 битов и для каждого бита сделать SLR.... При этом если делать с одним битом, то в RTL диаграмме действительно получилось свернутое отображение (не такое как в данном видео), но потом я не смог вернуть, чтоб изображение стало развернутым опять. Даже когда задал OFF вместо ON в назначении атрибута. Странно, что еще количество сэкономленных регистров (согласно отчету компилятора) было 65 при длине цепочки из регистров в 72... Чудеса. При экономии триггеров добавилось вместо этого количество использованных битов памяти ( на 70).
@liliansirbu840
@liliansirbu840 Жыл бұрын
don't read :)
@Erepbbabl
@Erepbbabl 3 жыл бұрын
Это очень крутой и полезный материал. После универского курса цифровой электроники, который идёт без привязки к конкретному железу и аппаратным возможностям, понимаешь всю свою беспомощность в получении реальных качественных конфигураций. Хотелось бы знать о всех подводных камнях проектирования. Вы оказываете услуги по обучению разработке конфигураций на таком продвинутом уровне?
@FPGASystems
@FPGASystems 3 жыл бұрын
Спасибо за отзыв. Я иногда читаю курсы в тренинг центре xilinx plis2.ru
@f40MAN
@f40MAN 3 жыл бұрын
По счётчикам тоже было бы интересно. А то один раз cnt
@FPGASystems
@FPGASystems 3 жыл бұрын
Хм, похоже на то, што писано было што то не корректно или тот случай, когда поведенческое моделирование не совпадает с пост синтез
@andreivaims8073
@andreivaims8073 3 жыл бұрын
"Откроем Квартус и увидим что-то странное" - это моя постоянная мысль после перехода с проектов в Vivado
@FPGASystems
@FPGASystems 3 жыл бұрын
Не хотел ввести в заблуждение, но неоднозначность полученных результатов в квартусе меня несколько напрягла
@andreivaims8073
@andreivaims8073 3 жыл бұрын
@@FPGASystems всё так. Работая в квартусе фпгашник не имеет права расслабляться :)
@user-zh1wz1rh6x
@user-zh1wz1rh6x 3 жыл бұрын
Я только начинаю осваивать ПЛИС. И не очень понял первый пример. Что увеличивается при аппаратом сдвиговом регистре? И почему нет такого при построении без него?
@FPGASystems
@FPGASystems 3 жыл бұрын
Ты говоришь про первый Кейс в конце видео?
@davidichstream5112
@davidichstream5112 2 жыл бұрын
Михаил, у меня начался в вузе предмет на котором мы делаем лабораторные работы в vivado на vhdl на платах artix 7. Я плохо понимаю эти лабораторные и делаю по интуиции. Хочу разобраться в предмете и в лабораторных. Нам дают краткие "лекции" в виде пдф файлов там всё очень сжато и непонятно. Посоветуйте что можно почитать на эту тему, может есть какие-нибудь понятные учебники? Желательно на русском языке. Раньше программировал только на c, c++, pascal, а тут ничего непонятно.
@FPGASystems
@FPGASystems 2 жыл бұрын
ну с плисами не все так очевидно как с плюсами... велкам к нам в телегу @fpgasystems t.me/fpgasystems
@rohullahabdul9408
@rohullahabdul9408 2 жыл бұрын
Привет , ну как успехи в вузе ?)
@rohullahabdul9408
@rohullahabdul9408 2 жыл бұрын
Расскажи , как все прошло?)
@davidichstream5112
@davidichstream5112 2 жыл бұрын
@@rohullahabdul9408 номано)) всё стало понятно
@rohullahabdul9408
@rohullahabdul9408 2 жыл бұрын
@@davidichstream5112 какие можешь дать рекомендаций для обучения ?)
@vladimirmelnikov2542
@vladimirmelnikov2542 2 жыл бұрын
какая область видимосьи атрибута, который мы прописываем в модуле. как она растраивается? можно ли сделать, чтобы атрибут на использование SRL действовал вниз по иерархии?
@FPGASystems
@FPGASystems 2 жыл бұрын
Честно говоря, я это не проверял. Но по моему область действия конкретный модуль. Прописать атрибуты в иерархии можно через тикль команды set_property BLOCK_SYNTH . См подробнее в UG901
@1234mifa
@1234mifa 3 жыл бұрын
щас отметил для себя две крайности: либо использовать кучу регистров, либо использовать один сдвиговый регистр. Причем куча регистров обеспечит лучшие тайминги, а сдвиговый регистр обеспечит экономию места. правильно ли я это понял? хотя кажется что проект занимающий меньше места лучше себя покажет по таймингам.
@FPGASystems
@FPGASystems 3 жыл бұрын
Здесь надо смотреть предметно в зависимости от проекта и задачи. Если все хорошо по таймингам, то можно экономить ресурсы, если же вы пытаетесь свести тайминги с помощью регистров, то надо запрещать упаковку, про что я собственно и говорил а видео со случаем 1. Кстати, на последнем стриме как раз авто упаковка и вылезла
@tainted_channel
@tainted_channel 3 жыл бұрын
@@FPGASystems а почему куча триггеров обеспечит лучшие тайминги? Я был уверен, что аппаратные блоки намного лучше, они оптимизированы под максимально возможную рабочую частоту ПЛИС, разве нет? Понимаю, если например используется аппаратный блок DSP или блок умножителя - в настройках можно регистров добавить между lut- ами блока. Но тут просто набор регистров...
@FPGASystems
@FPGASystems 3 жыл бұрын
@@tainted_channel это верно для случая, когда физически элементы в ходе размещения и трассировки оказались далеко друг от друга
@user-if2uf2zd8x
@user-if2uf2zd8x 3 жыл бұрын
А что глазки то бегают? Всё ещё кринжово.
@FPGASystems
@FPGASystems 3 жыл бұрын
Ох уж эта молодежь
@user-hn4ef7ek4n
@user-hn4ef7ek4n Жыл бұрын
@@FPGASystems Ты сам молодёжь
Лекция №1 "Что умеют FPGA и зачем они нужны?"
1:09:25
НТЦ Метротек
Рет қаралды 33 М.
A pack of chips with a surprise 🤣😍❤️ #demariki
00:14
Demariki
Рет қаралды 55 МЛН
Дибала против вратаря Легенды
00:33
Mr. Oleynik
Рет қаралды 3,7 МЛН
Пробую самое сладкое вещество во Вселенной
00:41
FPGA (ПЛИС) - Особенности синхронизации
33:31
ПЛИСоводство
Рет қаралды 2,6 М.
2. Выбор конкретной FPGA из большого разнообразия
18:39
Страничка инженера
Рет қаралды 20 М.
Redis за 20 минут
23:22
suchkov tech
Рет қаралды 104 М.
#miniphone
0:16
Miniphone
Рет қаралды 3,6 МЛН