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 Итоги
Огромная благодарность автору, продолжайте в том же духе!) По поводу шаблонов, в Quartus они тоже есть: Edit -> insert Template... . Ну это так, мало ли кому пригодится)
Молодец! Тема интересная и актуальная. Может имеет смысл в отдельном видео показать все( или основные) настройки синтеза Вивады и Квартуса , к чему они приводят и где задокументированы? В этот раз свет и постановка камеры лучше. Можно на небольшой штатив или тросик камеру прямо перед монитором установить. И жестов добавить. Ты же на курсах и конференциях очень интересно и живо всегда объясняешь.
Хорошо бы разобрать примеры перевода между тактовыми доменами как вверх, так и вниз. Вниз было бы особенно интересно, как обеспечить прохождение событий. Разобрать указанные случаи, когда синтезатор что-то такое выкинул.
Да, тема это интересная, но требует очень долгой подготовки. Там очень просто ввести в заблуждение и натворить дел. Но стоит подумать над тем, чтобы такое видео сделать. Спасибо за идею.
Обнуляет последний регистр, а не весь сдвиговый регистр потому как его последующие выходные значения не влияют на дальнейшее поведение схемы на следующих тактах. В случае со сбросом в единицу это не так, и программа "понимая" это синтезирует схему в виде цепочки триггеров.
Здравствуйте. Спасибо за интересную информацию. На Альтере Циклон 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).
Подростком я начал читать УГ гайды от xilinxa. Атрофировались ноги , голова распухла на 8 размеров, шеи больше нет … шли годы, гайды множились быстрее чем мы могли их листать
Да, гайдов у ксая много, но они потрясающе сделаны, особенно те, которые касаются методологий проектирования. Так што читать там не перечитать, но понимать што где находится все же стоит. В этом видео я специально сделал на это упор
Это очень крутой и полезный материал. После универского курса цифровой электроники, который идёт без привязки к конкретному железу и аппаратным возможностям, понимаешь всю свою беспомощность в получении реальных качественных конфигураций. Хотелось бы знать о всех подводных камнях проектирования. Вы оказываете услуги по обучению разработке конфигураций на таком продвинутом уровне?
Я только начинаю осваивать ПЛИС. И не очень понял первый пример. Что увеличивается при аппаратом сдвиговом регистре? И почему нет такого при построении без него?
По-моему, примеры с задержкой сигнала неработоспособны: 1-й сигнал будет задержан, а остальные нет: все биты со временем станут равны последним id. - Нет?
Михаил, у меня начался в вузе предмет на котором мы делаем лабораторные работы в vivado на vhdl на платах artix 7. Я плохо понимаю эти лабораторные и делаю по интуиции. Хочу разобраться в предмете и в лабораторных. Нам дают краткие "лекции" в виде пдф файлов там всё очень сжато и непонятно. Посоветуйте что можно почитать на эту тему, может есть какие-нибудь понятные учебники? Желательно на русском языке. Раньше программировал только на c, c++, pascal, а тут ничего непонятно.
щас отметил для себя две крайности: либо использовать кучу регистров, либо использовать один сдвиговый регистр. Причем куча регистров обеспечит лучшие тайминги, а сдвиговый регистр обеспечит экономию места. правильно ли я это понял? хотя кажется что проект занимающий меньше места лучше себя покажет по таймингам.
Здесь надо смотреть предметно в зависимости от проекта и задачи. Если все хорошо по таймингам, то можно экономить ресурсы, если же вы пытаетесь свести тайминги с помощью регистров, то надо запрещать упаковку, про что я собственно и говорил а видео со случаем 1. Кстати, на последнем стриме как раз авто упаковка и вылезла
@@FPGASystems а почему куча триггеров обеспечит лучшие тайминги? Я был уверен, что аппаратные блоки намного лучше, они оптимизированы под максимально возможную рабочую частоту ПЛИС, разве нет? Понимаю, если например используется аппаратный блок DSP или блок умножителя - в настройках можно регистров добавить между lut- ами блока. Но тут просто набор регистров...
какая область видимосьи атрибута, который мы прописываем в модуле. как она растраивается? можно ли сделать, чтобы атрибут на использование SRL действовал вниз по иерархии?
Честно говоря, я это не проверял. Но по моему область действия конкретный модуль. Прописать атрибуты в иерархии можно через тикль команды set_property BLOCK_SYNTH . См подробнее в UG901
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 Итоги
Интересная рубрика. Ждем продолжения!
Спасибо, будем стараться. К сожалению, со временем не так чтобы его много
Камент для продвижения в тренды!
Спасибо, одобряю.
За видео моргнул несколько раз :)
Простите, вероятно это сбой в системе моргания, мы обязательно исправим это недаразумение в следующем релизе
Понравился подход с акцентом на важном! Спасибо!
Огромная благодарность автору, продолжайте в том же духе!)
По поводу шаблонов, в Quartus они тоже есть: Edit -> insert Template... . Ну это так, мало ли кому пригодится)
Спасибо за отзыв и дополнение
Мощно! Брутально! Митолл (железо в смысле)!😅
Хех, спасибо
Посмотреть не успеваю, но одобряю! Молодец!
Хах, спасибо
Ай как же я благодарен Миша тебе 🤝. Надо быстрее платку заканчивать .
Спасибо, а что за плата? Что то собственное на ПЛИС?
@@FPGASystems отладочная под свои хотелки ...
@@motoday3580 о, это круто, как сделаешь напиши статью обзорную на fpga-systems.ru, или спаяй мне тоже, на стриме поиграемся )
@@FPGASystems договорились сделаем 🤝.
Спасибо! Этих тонкостей и не хватало.
Рад, что видео оказалось полезным. Если есть еще какие-либо пробелы в понимании проектирования на FPGA, пиши, попробуем сделать ролик
Михаил,спасибо большое! Ждём новых выпусков!)
Молодец!
Тема интересная и актуальная.
Может имеет смысл в отдельном видео показать все( или основные) настройки синтеза Вивады и Квартуса , к чему они приводят и где задокументированы?
В этот раз свет и постановка камеры лучше. Можно на небольшой штатив или тросик камеру прямо перед монитором установить.
И жестов добавить. Ты же на курсах и конференциях очень интересно и живо всегда объясняешь.
Спасибо за отзыв. Наверное разбирать настройки имеет смысл на стримах
Круто получилось! Если продолжение будет в том же духе, то это будет лучший цикл на русском языке.
Спасибо, крайне польщен
Миша, это все легко. Давай лучше про оптимизацию дизайна по частоте/ресурсам и отладку слаков
Принято. Выйдет следующим.
@@FPGASystems Ждёмс-ждемс!
спасибо - мозг вытек через уши
слабак
Хорошо бы разобрать примеры перевода между тактовыми доменами как вверх, так и вниз. Вниз было бы особенно интересно, как обеспечить прохождение событий. Разобрать указанные случаи, когда синтезатор что-то такое выкинул.
Да, тема это интересная, но требует очень долгой подготовки. Там очень просто ввести в заблуждение и натворить дел. Но стоит подумать над тем, чтобы такое видео сделать. Спасибо за идею.
Обнуляет последний регистр, а не весь сдвиговый регистр потому как его последующие выходные значения не влияют на дальнейшее поведение схемы на следующих тактах. В случае со сбросом в единицу это не так, и программа "понимая" это синтезирует схему в виде цепочки триггеров.
Огонь!
Спасибо. Рад стараться
Здравствуйте. Спасибо за интересную информацию. На Альтере Циклон 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).
Подростком я начал читать УГ гайды от xilinxa. Атрофировались ноги , голова распухла на 8 размеров, шеи больше нет … шли годы, гайды множились быстрее чем мы могли их листать
Да, гайдов у ксая много, но они потрясающе сделаны, особенно те, которые касаются методологий проектирования. Так што читать там не перечитать, но понимать што где находится все же стоит. В этом видео я специально сделал на это упор
Это очень крутой и полезный материал. После универского курса цифровой электроники, который идёт без привязки к конкретному железу и аппаратным возможностям, понимаешь всю свою беспомощность в получении реальных качественных конфигураций. Хотелось бы знать о всех подводных камнях проектирования.
Вы оказываете услуги по обучению разработке конфигураций на таком продвинутом уровне?
Спасибо за отзыв. Я иногда читаю курсы в тренинг центре xilinx plis2.ru
Я только начинаю осваивать ПЛИС. И не очень понял первый пример. Что увеличивается при аппаратом сдвиговом регистре? И почему нет такого при построении без него?
Ты говоришь про первый Кейс в конце видео?
По-моему, примеры с задержкой сигнала неработоспособны: 1-й сигнал будет задержан, а остальные нет: все биты со временем станут равны последним id. - Нет?
По счётчикам тоже было бы интересно. А то один раз cnt
Хм, похоже на то, што писано было што то не корректно или тот случай, когда поведенческое моделирование не совпадает с пост синтез
В топ ютюба!
Будем стараться.
Благодарю
don't read :)
"Откроем Квартус и увидим что-то странное" - это моя
постоянная мысль после перехода с проектов в Vivado
Не хотел ввести в заблуждение, но неоднозначность полученных результатов в квартусе меня несколько напрягла
@@FPGASystems всё так. Работая в квартусе фпгашник не имеет права расслабляться :)
Михаил, у меня начался в вузе предмет на котором мы делаем лабораторные работы в vivado на vhdl на платах artix 7. Я плохо понимаю эти лабораторные и делаю по интуиции. Хочу разобраться в предмете и в лабораторных. Нам дают краткие "лекции" в виде пдф файлов там всё очень сжато и непонятно. Посоветуйте что можно почитать на эту тему, может есть какие-нибудь понятные учебники? Желательно на русском языке. Раньше программировал только на c, c++, pascal, а тут ничего непонятно.
ну с плисами не все так очевидно как с плюсами... велкам к нам в телегу @fpgasystems
t.me/fpgasystems
Привет , ну как успехи в вузе ?)
Расскажи , как все прошло?)
@@rohullahabdul9408 номано)) всё стало понятно
@@davidichstream5112 какие можешь дать рекомендаций для обучения ?)
щас отметил для себя две крайности: либо использовать кучу регистров, либо использовать один сдвиговый регистр. Причем куча регистров обеспечит лучшие тайминги, а сдвиговый регистр обеспечит экономию места. правильно ли я это понял? хотя кажется что проект занимающий меньше места лучше себя покажет по таймингам.
Здесь надо смотреть предметно в зависимости от проекта и задачи. Если все хорошо по таймингам, то можно экономить ресурсы, если же вы пытаетесь свести тайминги с помощью регистров, то надо запрещать упаковку, про что я собственно и говорил а видео со случаем 1. Кстати, на последнем стриме как раз авто упаковка и вылезла
@@FPGASystems а почему куча триггеров обеспечит лучшие тайминги? Я был уверен, что аппаратные блоки намного лучше, они оптимизированы под максимально возможную рабочую частоту ПЛИС, разве нет?
Понимаю, если например используется аппаратный блок DSP или блок умножителя - в настройках можно регистров добавить между lut- ами блока. Но тут просто набор регистров...
@@tainted_channel это верно для случая, когда физически элементы в ходе размещения и трассировки оказались далеко друг от друга
какая область видимосьи атрибута, который мы прописываем в модуле. как она растраивается? можно ли сделать, чтобы атрибут на использование SRL действовал вниз по иерархии?
Честно говоря, я это не проверял. Но по моему область действия конкретный модуль. Прописать атрибуты в иерархии можно через тикль команды set_property BLOCK_SYNTH . См подробнее в UG901
А что глазки то бегают? Всё ещё кринжово.
Ох уж эта молодежь
@@FPGASystems
Ты сам молодёжь