ddlab
258 subscribers
29 photos
20 files
144 links
Лабораторія цифрового дизайну.
Цифрова схемотехніка, Verilog/VHDL українською.
Download Telegram
До попереднього посту.
Ось вам картинка, з дозволу компанії Intel.
Слава Україні!
Минулого тижня я розповідав про Coding Rules від Altera Intel. Тепер слід згадати і Xilinx AMD. У AMD так само є документ, що описує рекомендуємий стиль написання коду. Він не настільки докладний, як у Intel, хоча прикладів там більш ніж достаньо. Тобто більше коду, менше слів. Інколи це працює, інколи треба пояснювальну бригаду. І тоді лише до індусів. Але про них згодом.
Так от у цьому документі, який називається UG901 - Vivado Design Suite User Guide. Synthesis прикладів різних модулів багато і вони заходять далі, ніж Intel – є нерекурсивні цифрові фільтри, динамічні регістри зсуву. Тому в цей документ також раджу заглядати.
Він доступний або за посиланням на сайті AMD у двох варіантах:
Як документ – https://docs.xilinx.com/r/en-US/ug901-vivado-synthesis/HDL-Coding-Techniques
Як PDF - https://docs.xilinx.com/v/u/2019.2-English/ug901-vivado-synthesis
Також поклав його у теку з книгами тут: https://drive.google.com/file/d/1KLMH07I3fqHs6HpYVNI96_uUprCnpwq_/view?usp=drive_link
Також існує ZIP архив з прикладами, але скачати його я не зміг. Для скачування потрібна реєстрація і потім підтвердження інформації для скачування і на цьому етапі далі не пішло. Як буде ваша ласка – скажіть де можна.
#CodingRules
👍2
Слава Україні!
Новий навчальний рік почався і вже є декілька відео для обробки та завантаження на канал .
Сьогодні буде анонс найближчого відео – про часові параметри для статичного часового аналізу (statis timing analysis – STA). Відео на каналі буде вже на вихідних, а поки ось презентація, яку використовували: https://docs.google.com/presentation/d/1a1hsgjbJHstpmCU1g3tSs89vlxWQzTgR/edit?usp=drive_link&ouid=111792405508001907736&rtpof=true&sd=true
Загалом статичний часовий аналіз призначений для перевірки шляхів проходження сигналу і головна його ідея – розрахувати затримки сигналу при проходження через комбінаційну схему, регістри, лінії передачі даних. Якщо робити все це руками, то це задача, яку вирішити майже неможливо навіть для невеликого проекту. Раніше в радянській школі розробки цифрових систем цю задачу вирішували шляхом малювання часових діаграм з врахуванням затримок. Дуже кропітка та нудна робота. Особливо, коли це робиться на міліметровці і для великої схеми.
В сучасних системах проектування для statis timing analysis використовують спеціальне програмне забезпечення. У нашому випадку – вивчення цифрової схемотехніки на балі ПЛІС Intel FPGA ми використовуюємо інструмент, вбудований у пакет Quatrus – TimeQuest. TimeQuest використовує констрейни у вигляді Synopsys Design Constraint формат. Але про все це буде вже далі у наступній розповіді.
👍2
Доброго ранку!
Слава Україні!
Обіцяне відео про основні терміни при статичному часовому аналізі: https://youtu.be/AHtpI0960cE

З ним вийшла халепа, бо я переплутав і зробив інше відео, яке залив на канал, а потім згадав про обіцянку. Тому зараз основне відео з лекції, а потім воно буде порізано на частини і викладено в основний плейлист. А це переїде до студентського використання.

#ddLab_YouTube
👍1
Слава Україні!
Навчанням технічних спеціалістів займаються не тільки університети – компанії-виробники та дистриб’ютори займаються навчанням на семінарах, присвячених окремим темам. Є також різноманітні школи, які навчають якійсь професії. І якщо у нас в країні школі рідко піднімаються вище навчання початковим речам, то у світі є компанії, які навчають інженерів для переходу їх вище по кар’єрній драбині або опанування новим технологіям. Зазвичай такі компанії або працюють з групами інженерів на замовлення або проводять декілька денні тренінги за великі гроші. Тому дуже цікаво дивитись на їх активність та їх методи роботи.
Серед визнаних лідерів компаній, що навчають FPПФ FPGA дизайну та мовам опису апаратури – компанія Doulos: https://www.doulos.com/
Компанія вже більше 30 років навчає електроніці і її матеріали завжди корисно подивитись.
По-перше, це розділи сайту, присвячені різним тематикам цифрового дизайну:
ПЛІС - https://www.doulos.com/knowhow/fpga/
Verilog - https://www.doulos.com/knowhow/verilog/
SystemVerilog (тут більше про фреймворки для верифікації) - https://www.doulos.com/knowhow/systemverilog/
VHDL - https://www.doulos.com/knowhow/vhdl/
Формальна верифікація - https://www.doulos.com/knowhow/formal-verification/
Різні відео, оскільки їх не так багато - https://www.doulos.com/knowhow/video-gallery/ або так - https://www.youtube.com/@DoulosTraining
👍1🔥1
Слава Україні!
Сьогодні буде розповідь про використання ПЛІС у космосі.
Спочатку про дещо важливе щодо космічних застосувань. Не всі мікросхеми можуть літати в космос і виконувати там роботу. Для того, щоб мікросхема полетіла в космос вона повинна бути розроблена та виготовлена для польотів у космос – тобто бути space-grade FPGA. Перш за все це означає, що мікросхема повинна бути радіаційно стійкою (Radiation tolerant, Rad-tolerant) та радіаційно захищеною (Radiation hardened, Rad-hard).
Радіаційостійка електроніка (Rad-tolerant) менш чутлива до пошкодження внаслідок впливу радіації (наприклад, в аерокосмічній галузі та деяких промислових і медичних застосуваннях). Такі мікросхеми будуть стійкими до одноразових порущень (single-event upsets, SEUs) та інших проблем, викликаних іонізуючим випромінюванням.
Радіаційно-захищені пристрої (Rad-hard) розроблені та виготовлені таким чином, щоб витримувати навіть більшу кількість радіації.
Загалом про Rad-Hard та Rad-Tolerant мікросхеми можна почитати в статті Rad-Hard vs. Rad-Tolerant: A Guide to the Differences and Applications in Military Electronics https://militaryembedded.com/comms/satellites/rad-hard-vs-rad-tolerant-a-guide-to-the-differences-and-applications-in-military-electronics
Але повернемось до ПЛІС у космосі. І перш за все треба згадати про марсоходи – Spirit, Opportunity та Curiousity. Чомусь навіяло про Мета Деймона на Марсі.
Соьгодні буде про Spirit та його близнбка Opportunity. Spirit працював з 2004 до 2010, а Opportunity – з 2004 до 2018 року. В них використовувались ПЛІС двох виробників – Actel та Xilinx.
Загалом було виготовлено 4 ровери – 2 відправились на Марс, а 2 залишились на Землі у Пасадені.
В роверах використовувалось 38 мікросхем сімейства RTSX-A компанії Actel [https://semiwiki.com/john-east/275696-crashing-the-mars-rovers-actel-and-aerospace-corp/] Інше джерело каже про 28 мікросхем Actel, які використовувались у самому ровері та модулі для спуску [https://www.militaryaerospace.com/computers/article/16712733/fpga-processors-keep-mars-rovers-moving]
Окрім Actel у Spirit та Opportunity використовувались ПЛІС Xilinx - XQVR4000XL для контролю піротехніки при маневруванні модуля посадки та XQVR1000 на ровері для систем керування двигунами у колесах, маніпуляторах та камерах.

Далі буде.
Слава Україні!
Сьогодні хочу розповісти про дуже гарний курс архітектури комп’ютера, який викладає Onur Mutlu в університеті ETH Zurich.
Цей курс викладається на ЮТуб в реальному часі і станом на зараз ми маємо вже декілька ітерацій цього курсу. Фактично там є два курси та купа семінарів по різних архітектурах. Базовий курс - First Course in Computer Architecture & Digital Design. Наступний - Advanced Computer Architecture Courses. Далі вже йдуть варіації різних архітектур та систем пам’яті.
Базовий підручник – це Харріс і Харріс. І курс охоплює всі теми, які є в цій книзі: від логіки та простих цифрових пристроїв до побудови мікропроцесора. Курс викладається як записи трансляцій лекцій, плюс поруч іде стрічка коментарів, на які лектор реагує і щось коментує.
Сам лектор дуже енергійний і видно, що йому подобається курс. Розповідь цікава, прикладів дуже багато. Тому загальний висновок – 10 з 10. Курс класний та сучасний. Наполегливо рекомендую.
First Course in Computer Architecture & Digital Design у версії 2022-2023 років – https://www.youtube.com/playlist?list=PL5Q2soXY2Zi97Ya5DEUpMpO2bbAoaG7c6
First Course in Computer Architecture & Digital Design у версії 2021-2022 років - https://www.youtube.com/playlist?list=PL5Q2soXY2Zi-Mnk1PxjEIG32HAGILkTOF
#UniversityCourse
👍2
Слава Україні!
На минулому тижні я розповідав про компанію Doulos і ресурси, які вона пропонує на своєму сайті (https://t.me/ddlab_ua/38).
Сьогодні у нас книга, яку Doulos пропонує для вивчення SystemVerilog - SystemVerilog Golden reference guide.
Це скоріш довідник, яким зручно користуватись саме як довідником, але аж ніяк не книга для читання. Інформація структурована по ключовим словам по алфавіту, тому лише довідник. Але як довідник книга дуже гарна – окрім синтаксису та прикладів тут можна знайти правила використання елементів мови, поради по застосуванню та трюки при використанні (Gotcha).
Загалом книга утилітарна – довідник з простим форматуванням та оформленням. Води нема – лише потрібна інформація. Дуже раджу для використання.
Оцінка – 10 з 10.
Сама книга лежить тут: https://drive.google.com/file/d/1mCvvcfYJYGFEhrNnckR0EUyqeBzVKpsz/view?usp=sharing
#book
Слава Україні!
Сьогодні буде про Analog Devices.
Я думаю, що ви чули про компанію Analog Devices. Гарно, якісно і капець як дорого. Компанія випускає аналогові та аналого-цифрові мікросхеми різного типу. Ці мікросхеми використовуються у багатьох застосунках і для того, щоб полегшити страждання розробників Analog Devices зробила велику бібліотеку модулів та проектів на мовах опису апаратури Verilog та VHDL, а також Tcl скрипти для проектів на ПЛІС.
Сама бібліотека лежить тут: https://github.com/analogdevicesinc/hdl
Бібліотека організована по принципу каталога по роботі з окремими мікросхемами Analog Devices. Якщо ви використовували фірмові відлагоджувальні плати, наприклад, від Terasic, то там скоріш за все були мікросхеми Analog Devices. І саме для таких випадків бібліотека буде вкрай корисною. Окрім того ніхто не заважає подивитись на реалізації AXI інтерфейсу та те, як пишуть у великих компаніях.
А ось тут (ADI Reference Designs HDL User Guide) лежить відсортована бібліотека по відлагоджувальних платах та мікросхемах з лінками на гітхаб та документацію: https://wiki.analog.com/resources/fpga/docs/hdl
Загалом – дуже раджу витратити пару годин на читання та вивчення цього ресурсу.
#GitHub
🫡3
Слава Україні!
Сьогодні буде розповідь про книгу не по Verilog, а по VHDL. Загалом, літератури по VHDL дуже багато і дуже якісної, тому ми не можемо пройти повз неї і не поговорити про це.
Розпочнемо з дуже класної книги, яку раніше радили під час вивчення VHDL у Масачусетському технологічному на курсі Introduction to Digital Laboratory, про який я вже писав.

Це книга Volnei A. Pedroni “Csrcuit design with VHDL” видана у 2004 році видавництвом МІТ.

Загалом книга по VHDL, але орієнтована на розробку, тому велика кількість прикладів, перелік яких займає пару сторінок книги: різноманітні арифметичні пристрої, пам'ять, цифрові фільтри, кінцеві автомати та улюблений нами контролер світлофору.

Окремо є задачі, щоб було що пописати самостійно, пояснення прикладів, симуляція (хоча і не завжди).
Ми пам’ятаємо, що VHDL – це мова опису апаратури з жорстким дотриманням типів даних, тому всі ці розповіді про стандартні типи даних, підтипи та типи, що вводяться користувачем присутні. Чудові розповіді про перехід між integer та std_logic_vector присутні.

Загалом все рівно і якісно. Загальна оцінка 9,5 з 10. -0,5 бала, бо нема кольорових картинок. А у 2003 кольоровий друк вже був.

#book
Слава Україні!
На минулому тижні лабораторія «Лампа» Київського політехнічного інституту показала приклад бакалаврської кваліфікаційної роботи, яку написав студент Українського католицького університету Pavlo Hilei під керівництвом Oleg Farenyuk Керівництво розробкою апаратної частини на основі плати Arty A7-100T Єрген Короткий з кафедри КЕОА НТТУ «КПІ» - https://t.me/kpi_lampa/1336.
Чому я зупиняюсь на цій роботі – бо це, по-перше, приклад того, як треба робити гарну наукову роботу, по-друге, це приклад тісної співпраці двох університетів та двох різних спеціальностей, третє, в роботі використаний процесор RICS-V і останнє - ця робота зроблена в LaTeX.
Давайте подивимось на неї трошки ближче.
В роботі розробляється автоматичний класифікатор модуляції з апаратною акселерацією на FPGA. В якості апаратної платформи для обчислень використовуються Soft Core процесор RICS-V. В роботі використали ядро VexRiscv https://github.com/SpinalHDL/VexRiscv. Сам процесор RICS-V має безкоштовну ліцензію, тобто його можна використовувати для свої розробок. Написаний він на SpinalHDL, який набором бібліотек на мові Scala і з якого потім генеруються VHDL/Verilog файли https://github.com/SpinalHDL/SpinalHDL.
Павло зробив апаратний прискорювач обчислення операцій для нейронних мереж. Для цього використовувалось розширення команд процесора RICS-V CFU Playground https://github.com/google/CFU-Playground. Задача цього фреймворку – розширення команд софт-процесорів для використання їх у машинному навчанні. Така реалізація прискорила виконання задачі, але більш докладно про це напишуть трохи пізніше.
І останнє, що сподобалось – верстка в LaTeX. Використовувався один зі стандартних шаблонів, а сама робота була розділена на розділи. Фінішний PDF документ компілювався вже з декількох LaTeX документів і має верстку набагато кращу, ніж те, що ми зазвичай бачимо у студентських роботах.
Загалом, враження від роботи дуже гарне. Зрозуміло, що це не ординарна робота. Такі трапляються не часто і є прикладом того, що може зробити студент 4 курсу при наявності бажання та натхнення.
OpenAI, компанія, яка розробила ChatGPT розмірковує над створенням своїх власних мікросхем для систем штучного інтелекту задля зменшення дефіциту чипів.
І згадайте понеділковий пост про роботу бакалавра
Слава Україні!
Поки я їздив десь у світі було дуже багато різного, але тут ми говоримо про ПЛІС та цифрову схемотехніку, тож ось вам новина – Інтел вирішив виділити сегмент ПЛІС у окремий бізнес.
Чого це цікаво? Бо у 2015 році Інтел купив компанію Альтера, одного з двох найбільших гравців на ринку ПЛІС. І з того часу підрозділ Інтел, що відповідає за ПЛІС довго і важко там функціонував. ПЛІС Альтери почали випускатися рідше, у Інтела одночасно почались проблеми і він став згортати різні програми. Для нас це призвело до поступового згасання конкурсу студентських робіт на ПЛІС та відчутного зменшення академічної програми по ПЛІС.
В самому Інтелі кажуть, що таке рішення дозволить новій компанії динамічно розвиватися та бла-бла-бла. Подивимось, що буде далі. Але поки Intel FPGA/Altera відстають від AMD/Xilinx десь на 1,5 – 2 роки.
Ось лінк на повідомлення від самого Інтела – https://www.intel.com/content/www/us/en/newsroom/news/intel-oct-2023-news.html#gs.732pmf
Та коментарі на EEJornal - https://www.eejournal.com/article/intel-plans-to-spin-off-fpga-group-as-an-independent-company-nine-years-after-buying-altera
Ну, а коментар від Клайва Максфілда говорить сам за себе.
👍1
Слава Україні!
Сьогодні буде розповідь про прикольний Open-Source проект, який начебто не має жодного сенсу, але дуже красиво – це 3D модель інвертора, яку можна надрукувати на 3D принтері.
Історія почалась з того, що у Гугл у співпраці з фабрикою по виробництву мікросхем SkyWater Technology (https://www.skywatertechnology.com/) опублікував бібліотеку компонентів для виробництва мікросхем SKY130 - https://skywater-pdk.readthedocs.io/en/main/contents/libraries/foundry-provided.html та репозиторій бібліотеки https://github.com/google/skywater-pdk. Це біліотека компонентів для технології 130-180 нм. Тепер можна взяти цю бібліотеку, спеціалізований софт та розробити свою мікросхему. Про те як її потім зробити і не дуже дорого розкажу якось іншого разу. )))
Так ось, Thorsten Knoll вирішив взяти одну стандартну комірку та зробити її у пластику. Ось тут https://medium.com/@thorstenknoll/open-source-ic-cells-as-3d-prints-a-rough-how-to-guide-90a8bc8b3b57 є докладна розповідь про те, як це було зроблено.
Модель вийшла повністю масштабною. Для роботи взяли компонент з бібліотеки, конвертували його в формат, який підтримується принтером. В результаті отримали купу файлів, кожен з яких відповідає за різні етапи виробництва мікросхеми – підкладинку, дифузійні області, металізації, діелектрик. Далі все було надруковано в пластику різного кольору та зібрано докупи за допомогою клею. У твіттері автора проекту є фото процесу - https://twitter.com/mostlymoss/status/1503295377910476804/photo/1
Дуже цікаво, для розуміння того з чого складається мікросхема теж корисно. Користі – нуль. Дуже подобаються такі фанові проекти.
👍1
Слава Україні!
З сьогодні починаємо розповідати про викладачів та студентів Чернігівської політехніки, які знімають відео про електроніку та цифрові технології.
І розпочнемо зі свіжого відео нашого студента 5 курсу – Богдана Велігорського. https://www.youtube.com/@bogdan_veligorskyi
Почнемо з нього лише тому, що я пообіцяв йому про нього написати, якщо він буде робити україномовний контент. І оскільки контент виходить регулярно і українською – то час підтримати Богдана у його починаннях і як там кажуть: підписка, вподобайка та дзвіночок.
Для нас, хто читає про цифрову схемотехніку, як раз вийшло нове відео про перетворення двійкових чисел в десяткові і назад - https://www.youtube.com/watch?v=jg9bWkQoPv8
Дивимось, підписуємось і чекаємо нових відео. Успіхів Богдану!
#Наші
Слава Україні!
Деякий американський інженер радянського походження з дуууууже проросійською позицією вирішив написати про те, як виглядає ситуація в українських університетах з його точки зору. Одна з його тез, яка мене радує ну прям дуже сильно – це те, що українські вчені пишуть на російській, а потім, за допомогою гугло перекладача, отримують український текст. Як це йому спало на думку – для мене загадка, але, виявляється, є така думка. Сперечатись з такими людьми я не бачу сенсу, бо їх позиція формувалась десятиліттями і її змінити ми навряд чи зможемо. А загалом, за останніх пару тижнів представники американсько-канадійського громадянства з українськими коренями дуже сильно гонять на нашу освіту. Інших вони не чують і несуть на весь світ свої думки як ленін на броньовику.

А от щоб вам було не так сумно від таких думок – ось пара свіженьких (місячної давнини) відосіків про часовий аналіз. Кажу чесно – говорив те, що думав і перекладом з російської не користувався )))
Те, що сьогодні на відео - це частина лекції про часовий аналіз в цифрових системах і ми говоримо про те, скільки часу потрібно для проходження сигналу по різних лініях, які співвідношення між сигналами виникають. Говоримо про фронт запуску та фронт фіксації, час передвстановлення (setup time) та час утримання (hold time). Дуже важлива тема, без якої важко розробляти цифрові пристрої.
Для прихильників мови Verilog – нові відео скоро будуть. Вже за два-три тижні. Не більше.

Часовий аналіз. Основні поняття. Частина 1 - https://youtu.be/LzS1_aZDqxE
Часовий аналіз. Основні поняття. Частина 2 - https://youtu.be/mS8QqIOtix8
Презентація: https://docs.google.com/presentation/d/1c0b7SVpS2nGymZvzJidTmjYaP1YprVGr/edit?usp=sharing&ouid=111792405508001907736&rtpof=true&sd=true

P.S. До речі, якщо хтось таки знає людей, які спочатку пишуть російською, а потім перекладають на українську гуглом – покажіть їх – бо прямо дуже цікаво.
P.S.2 Я тут згадав, що чув таку думку (про написання текстів російською а потім переклад гуглоперекладачем) в одного з російських пропагандистів. Так що все стає на місце.

#ddLab_YouTube
Слава Україні!
Сьогодні не про ПЛІС, але гарне та корисне.
Мейкерська спільнота України вивісила інструкцію Міча Альтмана про паяння. Такий собі гарний комікс, в якому з картинками (все як ми любимо) розповідаються основи паяння.
Сама інструкція українською тут: https://makerua.org/soldering-is-easy-ua/?fbclid=IwAR2yyn5_ZGOkzBlOWvXoi6ghT4gB919dq3tCloNy2EVyDxBWAAi73uP7oaw
Качайте та читайте.

#book