Лабораторія “Лампа” розповсюджує дуже класні матеріали, поміж них – списки літератури. Оскільки Фейсбук – річ ефемерна, з дозволу автора, дублюю в себе. Текст далі – належить “Відкритій лабораторії електроніки Lampa”.
Всі права в авторів і вся вдячність – їм же!
Продовжуємо серію дописів про опанування напрямку проектування мікрочіпів. Сьогодні мова йтиме про джерела для вивчення цифрового дизайну (RTL дизайну), який полягає в описі логіки роботи цифрової частини чіпа з використанням мов опису апаратури різного ступеня абстракції. Опис аналогової частини - окрема складна історія, про яку іншим разом)
Згадані нижче джерела можуть бути, як важливі, що мають бути вивчені в першу чергу, так і ресурси довідкового характеру (які теж важливі, але не першочергові для опанування). Ступінь важливості джерела будемо вказувати окремо.
В джерелах будемо вказувати лише назви. Всі джерела досить не складно купляються на ebay/amazon, або знаходяться і викачуються з інтернету. Якщо вже ніяк не виходить отримати джерело самостійно, пишіть в наш тг чат (@lampa_chat), допоможемо.
Буде лонгрід)
Отже, поїхали!
-
David Harris, Sarah Harris “Digital Design and Computer Architecture”. Українською мовою “Цифрова схемотехніка та архітектура комп’ютера” авторства Девіда та Сари Харрісів (з спільного прізвища не складно здогадатися, що це подружжя), які спершу працювали в індустрії (Intel, Hewlett-Packard, Nvidia), а зараз вже тривалий час викладають в Harvey Mudd College (один з найтоповіших навчальних закладів США).
За нашою оцінкою це найкраща книга з якої варто починати вивчення цифрових обчислювальних систем. База потрібна досить невелика (бажано університетські курси математики/фізики).
В книзі описані основи дискретної математики (наприклад логічні функції, їх оптимізація, цифрові скінченні автомати), системи числення, основи фізики в предметній області (як представляються логічні 0 та 1 в чіпі, від чого залежить затримка сигналу логічним елементом, від чого залежить споживана потужність, тощо), основи роботи польових транзисторів та побудови логічних елементів на комплементарних польових транзисторах, далі базові компоненти з яких складаються цифрові схеми (дешифратори, мультиплексори, тригери, тощо), гонки, синхронні логічні схеми, метастабільність, синхронізатори. Непогано описано основи мов опису апаратури Verilog та VHDL. Розглянуто принципи побудови арифметичних блоків для чисел, як в цілочисельному представленні, так і в представленні з плаваючою комою. Розглядаються принципи побудови підсистеми пам’яті, зокрема робота кеш пам’яті. Автори показують чим відрізняється архітектура процесора від мікроархітектури. Докладно розглядаються різні архітектури (існують видання книги для архітектур MIPS, ARM, RISC-V), системи команд асемблера, схеми адресації, тощо. Пояснюють, як код на С перетворюється в код на асемблері, а код на асемблері в машинний код, як працює лінкер, що таке стек, як виконуються виклики функцій, як ті чи інші шматки коду С перетворюються в асемблер. Розглядаються різні способи реалізації процесора: однотактна, багатотактна, конвеєрна мікроархітектури. Наводиться приклад реалізації конвеєрного процесора, до якого можна написати програму на асемблері (яка використовує реалізовані інструкції), скомпілити рідним асемблером і запустити на FPGA. Пояснюється, як процесор обмінюється інформацією з зовнішнім світом (підсистема введення-виведення).
От прям практично всі важливі напрямки розглянуті в книзі і при цьому розглянуті інформативно, доступно, компактно, з гарними ілюстраціями.
Є переклад другого видання для MIPS архітектури російською мовою. Радимо читати в оригіналі англійською, але якщо з іноземною зовсім складно, можна розглянути цей варіант.
До кожного видання є слайди лекцій та набір лабораторних робіт, що включає створення цифрових схем на Verilog/VHDL від простих елементів до конвеєрного процесора і написання програм для такого процесора. Наприклад: Digital Design and Computer Architecture ARM Edition, Digital Design and Computer Architecture, 2nd Edition та https://pages.hmc.edu/harris/ddca/ddcarv.html. Лаби пропонується виконувати на FPGA Altera/Intel (плата DE-2).
Враховуючи вище написане вважаємо, що курс на базі книги Харрісів повинен викладатися в кожному пристойному технічному університеті України на спеціальностях, які так чи інакше стосуються обчислювальних систем. Банально тому, що він якісно зроблений і має все необхідне для проведення занять. Не потрібно витрачати багато часу і ресурсів на винахід власного велосипеду (який зазвичай виходить значно нижчої якості), бери, користуйся. Так, переклад книги українською потребує багато ресурсів, однак лаби і слайди лекцій можуть бути перекладені досить просто силами університетів.
-
John F. Wakerly “Digital Design: Principles and Practices”. Є переклад російською дуже старого видання Уэйкерли Д. “Проектирование цифровых устройств”.
Якщо коротко, книга фокусується на тих же темах, що і книга Харісів, за виключенням процесорів, однак теми розглядаються суттєво глибше. Не факт, що варто читати з першої до останньої сторінки, але у якості довідника дуже ок. Також одна з улюблених книг.
-
Якщо захочете детальніше розібратися з проектуванням процесорів радимо книги David A. Patterson, John L. Hennessy “Computer Organization and Design: The Hardware/Software Interface” (є видання, як на базі MIPS, так і на базі RISC-V архітектур), а також John L. Hennessy “Computer Architecture: A Quantitative Approach”. Це must read класика. Також рекомендуємо курс “Computer Architecture” від Прінстонського університету на Coursera, що створений на основі згаданих книг.
В книгах і курсі розглядаються advanced теми проектування процесорів (питання мікроархітектур): суперскалярність (зокрема, позачергове виконання інструкцій), VLIW, прогнозування переходів в програмах, побудова багаторівневих кешів, багатопоточність, захист памʼяті, віртуальна пам’ять, тощо.
-
Чудовий плейліст з описом створення процесора з дискретних мікросхем на макетній платі…
Це не основне джерело, але може бути корисно для розуміння, як воно все працює на низькому рівні. Плюс просто гарно зроблені відео, може бути цікаво подивитись для фану)
-
Про те, як почати працювати з мікросхемами програмованої логіки (FPGA) від Intel/Altera радимо наше відео.
Також радимо плейліст на каналі Сергія Іванця з Чернігівської Політехніки, де багато коротких відео по роботі з FPGA…
-
Початківцям в FPGA радимо курс наших лабораторних робіт з цифрової схемотехніки, в яких розглядаються, як основи, так і складніші речі на зразок SPI приймача, цифрових FM/AM передавачів, створення звуку за допомогою PWM і т.д.
-
Steve Kilts “Advanced FPGA Design: Architecture, Implementation, and Optimization” Класика для розробників FPGA. Передбачається, що вже є база в предметній області отримана, наприклад з книги Харрісів.
Проблема багатьох книг і курсів з цифрового дизайну полягає в тому, що там наводять примітивні приклади на зразок лічильника, а як створювати складніші системи не пояснюють. В цій книзі такої проблеми немає) На прикладах AES шифратора, SPDIF протоколу, CORDIC алгоритму, Floating Point Unit, автор пояснює, як правильно робити FPGA дизайн для оптимізації по апаратним витратам, чи потужності, чи продуктивності обчислень, як правильно перетинати області що тактуються від різних тактових сигналів, як правильно робити скидання (ресети), нюанси кодінг стайлу, аналізу таймінгів і ще багато цікавого.
-
Parhami B. “Computer Arithmetic: Algorithms and Hardware Designs”
В книзі докладно описується побудова схем обчислювачів, як для цілих чисел, так і для чисел в форматі з плаваючою комою. Реалізації швидкої суми, різниці, множення, ділення, квадратного кореня. Алгоритм CORDIC, за допомогою якого можна рахувати тригонометричні та гіперболічні функції, робити множення/ділення, знаходити логарифм і квадратний корінь, переходити від декартових координат до полярних і навпаки.
На диво у книги низький рейтинг на Амазоні. Але нам дуже зайшла!
-
Для поглибленого вивчення мов опису апаратури Veriog та System Verilog рекомендуємо статті від Sunburst Design авторства Clifford E. Cummings.
Це must read класика цифрового дизайну. Розглядається, як правильно описувати цифрові схеми на Verilog/System Verilog, щоб результат роботи синтезованої з опису цифрової схеми не відрізнявся від результату моделювання (симуляції), нюанси роботи дискретно-подієвих симуляторів, правильний опис цифрових скінченних автоматів, правильний перетин областей, що тактуються від різних тактових сигналів і ще багато цікавих та корисних тем. На початку радимо читати статті по Verilog, потім по System Verilog, спершу уникати складних тем на зразок UVM.
-
І звісно для поглибленого вивчення мов Verilog та System Verilog радимо завантажити стандарти на ці мови, щоб використовувати їх у якості довідника.
Стандарт на Verilog це IEEE 1364 (ревізії у 1995, 2001, 2005 роках).
Стандарт на System Verilog це IEEE 1800 (ревізії у 2005, 2012, 2017 та 2023 роках).
-
Величезний плейліст з відео записами офлайн занять, які ми проводили в лабораторії Melexis в КПІ в рамках підготовки інженерів для компанії.
Розглядається поглиблено Verilog, основи апаратної реалізації цифрової обробки сигналів, проектування процесорів, верифікація. Відео багато, вони розраховані на інтенсивний річний курс, тож всі підряд відео продивитися буде складно. Однак у якості довідника може бути ок.
-
Чудовий аппнот від Texas Instruments “Interfacing Altera FPGAs to ADS4249 and DAC3482” в якому описується, як правильно організувати передачу даних між FPGA та швидкісними ADC/DAC.
-
Зараз синтез цифрової схеми з опису на Verilog/VHDL відбувається автоматично з використанням систем автоматизованого проектування. Однак для досягнення якісного результату все ще необхідно вказати які є тактові сигнали в проекті, та їх джерела, які мають бути затримки у певної логіки, іноді доводиться враховувати затримки розповсюдження сигналу на з’єднаннях друкованої плати, джиттер тактових сигналів, затримки розповсюдження тактових сигналів всередині чіпа і схожі нюанси. Подібна інформація вводиться в систему автоматизованого проектування у вигляді SDC констрейнів на синтез. Про констрейни можна почитати за посиланням з попереднього пункту, а також тут: Constraints and controlling the design tools і тут: Intel® Quartus® Prime Timing Analyzer Cookbook
-
Для набуття майстерності однієї лише теорії замало. Корисно дивитися приклади практичного застосування теорії для вирішення реальних задач. Для цього радимо підписатися на відомих інженерів, які створюють open source рішення. Нижче наведемо два приклади таких джерел.
Гітхаб відомого розробника Alex Forencich. Величезна кількість якісних практичних рішень, на яких можна вчитися і використовувати у власних проєктах. Наприклад, це апаратний UDP мережевий стек, PCIe контролер, UART та I2C інтерфейси, розрахунок CRC. Окремо хочеться відзначити круті тестбенчі на Python (cocotb, про який піде мова в наступних дописах).
Блог практикуючого розробника https://zipcpu.com, у якого теж є github. Величезна кількість прикладів на різну тематику.
-
Окремо хочеться відзначити напрямок High Level Synthesis (HLS), де логіка роботи цифрової мікросхеми описується на високому рівні абстракції з використанням С++ або Matlab/Simulink/DSPbuilder.
Загалом про потенціал HLS можна почитати тут: RTL vs. Software Mentality in FPGA/ASIC Design; Latency From 161 to 2 Clock Cycle!.
Тут приклад застосування С++ HLS в мережевому акселераторі: Comparing FPGA RTL to HLS C/C++ using a Networking Example.
Приклад фреймворку HLS4ML для апаратної реалізації нейромереж, який перетворює С++ реалізацію нейронки, експортовану з Tensorflow, у Verilog з використанням HLS.
Приклад створення телеком системи в Matlab/Simulink: OFDM Transmit and Receive Using Analog Devices AD9361/AD9364.
Ще один приклад: HDL QPSK Transmitter and Receiver.
Більше аналогічних телеком прикладів: Wireless HDL Toolbox: Design and implement wireless communications subsystems for FPGAs, ASICs, and SoCs.
Приклад апаратної обробки відео: Design Video Processing Algorithms for HDL in Simulink.
Про апаратну реалізацію нейронок зроблених в Matlab Deep Learning HDL Toolbox: Deep Learning HDL Toolbox: Prototype and deploy deep learning networks on FPGAs and SoCs.
Тут про аналогічні засоби від Xilinx: Adaptable and Real-Time AI Inference Acceleration.
Приклад нейронки для апаратної класифікації типу модуляції на Xilinx: RF Modulation Recognition with GNU Radio.
Презентація, яку ми зробили по використанню C++ від Intel/Altera (пізніше окремим дописом викладемо відео гайд).
Загалом HLS на порядки збільшує продуктивність і швидкість розробки. Зворотній бік - збільшення апаратних витрат. Ідеально для швидкого створення прототипів. І звісно це не чарівна срібна куля, бо для якісного застосування потрібно розуміти, як воно працює під капотом. Оцінюємо, як дуже перспективний напрямок і прокачуємо в ньому скіл.
-
На завершення приклад опису систем на кристалі з використанням Python: litex.
Презентація: LiteX: SoC builder and library.
Відео опис: Electronics Let’s Play - Litex RISC-V SOC for iCEBreaker FPGA with C and Rust programming.
Потужний і зручний інструмент створення SoC на RISC-V (VexRiscv). Розробка на Python, симуляція у Verilator, велике комуніті, свої верифіковані IP ядра для основних компонентів SoC (spi, uart, eth, pcie, тощо). Вже під капотом воно генерує і налаштовує Verilog з окремих компонентів відповідно до опису на Python. Спробуйте, ріл дуже зручно.
Ну це певно і все з ключового. Повага всім, хто дочитав до кінця) Намагалися підсвітити всі ключові теми і згадати всі топові джерела. Вийшло об’ємно, але імовірно якусь круту класику могли пропустити. Пишіть в коментах ваші улюблені джерела, які ми не згадали)
Матеріали для вивчення електроніки
Додатково, більш загальні матеріали. Що важливо – текст 2021 року.
Текст теж належить Відкритій лабораторії електроніки Lampa”.
Публікуємо підбірку відкритих матеріалів для вивчення електроніки з нуля. Всі прилади, необхідні для навчання за цими курсами, безкоштовно доступні у нас в лабі.
Arduino і основи електроніки
Для тих, хто має намір почати вивчати електроніку кращим вибором буде Arduino, через простоту використання і велику кількість практичних прикладів.
1) Курс на Амперці з нуля навчить вас користуватися платформою Arduino, підключати і використовувати кнопки, світлодіоди, сенсори, мотори, бездротовий зв’язок. Ці відео є перекладом на російську мову всесвітньо відомих лекцій Джеремі Блюма. Для перевірки перших схем рекомендуємо безкоштовні симулятори (симулятор1, симулятор2). Коли пристрої почнуть правильно працювати в симуляторі, можна переходити на реальні схеми.
2) Ще один дуже хороший варіант для вивчення Arduino і електроніки з нуля — це курс від МФТІ на Coursera, де пояснюється, як працювати з Arduino і будувати на її основі роботів з керуванням через Інтернет, робити різну автоматизацію та користуватися 3D принтером.
3) Ще кілька гарних курсів по Arduino англійською: Раз, Два.
4) Лінк на сторінку з описом підключення 100500 сенсорів і актуаторів до Arduino, з прикладами коду.
5) Інформація про те, як керувати недорогими платами на зразок Arduino і Raspberry Pi із Labview, використовуючи весь функціонал цієї програми для створення складних автоматизованих вимірювально-керуючих комплексів. Така можливість з’явилася завдяки фреймворку Linx.
6) Гарна оглядова стаття для швидкого початку роботу з хмарним середовищем розробки і бібліотекою MBED для плат STM32 Nucleo. Платформа MBED така ж проста у вивченні, як і Arduino, але орієнтована на більш потужні STM32 мікроконтролери.
7) Шикарна книга з основ електроніки та Embedded! Книга дуже цікава та інформативна. Доступно викладена теорія і багато працюючих прикладів схем і коду. Детальніше тут
Аналогова схемотехніка
8) Arduino — всього лише ази електроніки. Щоб стати професіоналом вам знадобляться хороші знання аналогової схемотехніки. В їх отриманні вам допоможе кращий в світі онлайн курс від MIT — Circuits and Electronics: Частина 1, частина 2, частина 3.
9) Для тих, хто не дуже добре знає англійську, є хороший онлайн курс з електроніки українською мовою.
10) Як підручник з аналогової схемотехніки рекомендуємо Тітце, Шенк “Напівпровідникова схемотехніка”: Том 1, Том 2.
11) І нарешті, ось ще один гарний ресурс з аналогової схемотехніки.
12) А ось круті відео лекції російською, зняті за матеріалами Хоровіца і Хілла — біблії аналогової електроніки. На каналі цього викладача також є відмінні відео з електрики, магнетизму і оптики.
13) Дуже гарний канал для вивчення електроніки з нуля. Розглянуто основи електроніки (струм, напруга, резистори, конденсатори, індуктивності), транзистори, тиристори, трансформатори, підсилювачі, джерела живлення, генератори, операційні підсилювачі, компаратори, передавачі і ще багато всяких цікавинок! Крім теорії автори симулюють описувані схеми, збирають реальні пристрої і демонструють їх роботу. Все максимально доступно і наочно. Ідеальний підручник для початківців — простий опис і максимум практики.
14) Якісні лекції і туторіали з аналогової схемотехніки від Analog Devices: Лекції, туторіали.
15) Круті лабораторні роботи з аналогової електроніки від Analog Devices. Дуже рекомендуємо. Нічого кращого поки не зустрічали. У лабах розглянуті безліч цікавих схем: підсилювачі, джерела струму і напруги, генератори, аналогові ключі, ФАПЧ, DC-DC перетворювачі і багато чого ще. Чітко прописані завдання та контрольні запитання. Схеми прості, наочні і робочі. По кожній схемі є готова модель для дослідження у відкритій версії комерційного SPICE симулятора SIMetrix. Лабораторні роботи заточені під вимірювальні комплекси Analog Discovery 2 (які є у нас в лабі), але можуть бути виконані на будь-якому іншому обладнанні. Для тих, хто бажає вивчати аналогову електроніку — матеріал першочергової важливості. Також матеріал можна брати за основу університетських лаб зі схемотехніки.
16) Лабораторні роботи з аналогової схемотехніки на крутих платах ASLK-PRO, які є у нас в лабі.
17) Підбірка матеріалів зі створення аналого-цифрових схем на базі мікросхем програмованої логіки від Dialog Semiconductor (стара назва Silego).
18) Ютуб канал з докладними уроками по створенню і моделювання аналогових мікросхем в Cadence Virtuoso. У цій програмі проектують аналогову частину багатьох сучасних чіпів (підсилювачі і перетворювачі сигналів, компоненти сенсорів, силові ланцюги, і т.д.). Плейліст з основами роботи в Virtuoso. Плейлісти з більш серйозними темами (проектування диференційних і операційних підсилювачів, bandgap джерела опорної напруги і т.д.). Ліцензія на Cadence Virtuoso коштує величезних грошей, але для використання в освітніх цілях студенти часто скачують програму з рутракера.
19) Курс з GNU Electric, що є однією з небагатьох відкритих програм для розробки чіпів.
20) Два навчальних відео про те, як користуватися нескладним симулятором аналогових схем LTSpice. А ось великий англомовний плейліст на ютубі на цю ж тему.
Цифрова схемотехніка
21) Щоб розуміти як працює процесор, необхідно вивчити основи цифрової схемотехніки. Для цього радимо пройти україномовний курс.
22) А тут лабораторні роботи з основ цифрової схемотехніки і мови Verilog до курсу з попереднього пункту.
23) Для вивчення цифрової схемотехніки дуже рекомендуємо переклад бестселера “Digital Design and Computer Architecture”. У книзі доступно описана цифрова схемотехніка та основи Verilog, а також архітектура RISC процесорів на прикладі MIPS і різні варіанти реалізації цієї архітектури, у т.ч. конвеєрна. В кінці описана кеш пам’ять, доступ до периферії і менеджер віртуальної пам’яті. Ця книга — однозначний мастрід.
24) Слайди університетського курсу цифрової схемотехніки за матеріалами книги з попереднього пункту. По суті, компактний переказ вмісту книги.
25) Відмінна стаття з основ конвеєризації в обчислювальних системах.
26) Дуже хороший проект для розуміння принципів роботи обчислювальних систем. Це простий комп’ютер з 17-ти мікросхем з саморобним процесором. Інформацію можна вводити через 4 кнопки, виводити на LCD екран і динамік. Є схема, рекомендації по складанню, асемблер, симулятор, приклади програм. Стаття на Хабрі, Сайт автора.
27) Крутий плейліст де показується, як створити 8-бітний комп’ютер на макетній платі. Детально розбирається кожен вузол: логічні елементи, тригери, суматори та інші арифметико-логічні пристрої, лічильники, EEPROM та її програмування за допомогою Arduino, шини, тощо.
Мікроконтролери і операційні системи реального часу (RTOS). Bare metal програмування без ОС
Знання схемотехніки це, звичайно, добре, але часто потрібно вміти працювати з уже готовими процесорами і контроллерами.
28) Дуже популярним сімейством мікроконтролерів є AVR. Багато плат Arduino побудовані саме на базі AVR. Ось хороший курс по AVR мікроконтролерам.
29) Відмінні курси по мега популярним і затребуваним на ринку мікроконтролерам STM32: Раз, Два, Три.
30) Також рекомендуємо дуже хороший онлайн курс на edX (англійською), в якому вас з нуля навчать створювати embedded systems на базі мікроконтролерів Texas Instruments (основаних на ядрі ARM Cortex): Частина 1, Частина 2.
31) А ось ще один крутий курс від тих же викладачів, але вже по бездротових технологіях та операційних системах реального часу. “Real-Time Bluetooth Networks - Shape the World”.
32) Відео лекції з конфігурованих систем-на-кристалі PSoC від Cypress. PSoC це аналого-цифрові мікросхеми програмованої логіки, що містять ARM процесср, а також операційні підсилювачі, аналогові компаратори, АЦП і ЦАП, які можна з’єднувати довільним чином всередині чіпа. Деякі моделі містять вбудований BLE. Детальніше тут. Можна глянути десятки прикладів проектів.
33) ConnectedMCU — чудовий курс по мікроконтролерам PIC32 на базі процесорного ядра MIPS і операційній системі реального часу FreeRTOS. Цей курс, що включає в себе і лаби, розробив професор Олександр Дін з університету штату Північна Кароліна, США. Загальний опис можна читнути тут. Сам курс можна безкоштовно завантажити з сайту MIPS, попередньо зареєструвавшись в університетській програмі компаніі. По матеріалами курсу є кілька відосіков.
34) А ось цикл воркшопів з старого приміщення нашої лаби по вступу до Інтернету Речей. Дуже багато корисної інформації з практичними прикладами. За посиланням детально все розписано.
35) Підбірка матеріалів по вивченню плати BBC Microbit. Плата дуже крута. Її вартість всього 15$. При цьому на платі є ARM Cortex-M0, BLE, акселерометр, магнітометр, екранчик з 25 світлодіодів і дві кнопки.
36) Шикарні лаби по Bare Metal x86 Assembler. Мова йде про створення програм на x86 ассемблері та С з асемблерними вставками без ОС. Розглядається реальний режим, BIOS, переривання, скрипт лінкера, захищений режим, адресація в захищеному режимі, робота з VGA (як через int10h, так і через відеопам’ять), UEFI, GRUB, робота з залізом (клава, миша, RTC, таймер). Всі приклади запускаються як в QEMU, так і завантаженням з флешки. Компіляція прикладів відбувається дуже просто, за допомогою make.
Вимірювальна техніка
37) Ютуб канал від Keysight. Багато відео про осцилографи та іншу вимірювальну техніку. Приклади цікавих плейлістів: Один, Два
38) Семінар по проведенню випробувань на електромагнітну сумісність.
39) Багато навчальних відео по користуванню вимірювальними приладами від Rohde & Schwarz
40) Шикарна підбірка вебінарів від Rohde & Schwarz по налагодженню швидкісних інтерфейсів: Один, Два, Три
41) Інформація по тестуванню друкованих плат через JTAG: Один, Два
42) Вимірювання девіації частоти з використанням аналізатора спектру і режиму Peak Hold (Min-Max)
Мікроелектроніка, розробка та верифікація цифрових мікросхем на Verilog, System Verilog
43) Навчальний фільм про технологію виготовлення мікросхем на заводах Intel, перекладений нами на українську мову.
44) Надзвичайно цікаве відео по реверс інжинірингу чіпів. Автор дуже цікаво розповідає про сучасні методи злому апаратного криптографічного захисту (наприклад, в смарт картах). Матеріал викладається дуже доступно. Буде зрозуміло навіть людям без серйозного бекграунду в електроніці.
45) Ще одне круте відео про апаратні атаки від Іллі Кухаренко.
46) Дві відео лекції від інженерів компанії Melexis з проектування і верифікації цифрових мікросхем.
47) Відео про те, як створити свій процесор.
48) Підбірка відео лекцій по всім етапам розробки і виготовлення мікросхем від інженера Silicon Valley Чарльза Данчека.
49) Знаючи основи цифрової схемотехніки, можна переходити до вивчення способів розробки власних мікросхем, процесорів і цифрових фільтрів на мові Verilog. Рекомендуємо величезний відео курс по цим напрямкам.
50) А в цьому дуже відомому курсі на Coursera вас навчать проектувати складні сучасні процесори з кеш пам’яттю, конвеєром, віртуальною пам’яттю, багатопоточністю, прогнозуванням переходів та багатьма іншими крутими технологіями.
51) Підбірка ресурсів для вивчення комерційного процесора MIPSfpga з відкритим вихідним кодом.
52) Детальний опис найпростішого SDRAM контролера для MIPSfpga: Частина 1, частина 2. Матеріал цікавий тим, що більшість серйозних SDRAM контролерів дуже складні і розібратися в їх реалізації непросто для новачка. А тут всі основи розкладено по поличках. Рекомендуємо звернути увагу тим, хто починає вивчати розробку процесорів.
53) Кілька хороших статей з проектування систем-на-кристалі на базі FPGA, які написав наш активний учасник Олег Плотніков.
У першій статті Олег докладно описує, як перенести MIPSfpga на плату Digilent cmod A7 на основі Xilinx FPGA Artix-7 (з використанням Vivado) і як програмувати створену систему з використанням комерційного тулчейна Codescape, як підключити до MIPSfpga семисегментний індикатор.
У другій статті Олег показує, як створити апаратний контролер клавіатури, інтегрувати його в систему-на-кристалі і програмно зчитувати коди натиснутих клавіш.
У третій статті показано, як інтегрувати з MIPSfpga АЦП, вбудований в FPGA Artix-7 і як за допомогою цього АЦП вимірювати напругу на фоторезисторі. Тут же описано, як підключити до MIPSfpga LCD дисплей від Nokia 5100 за допомогою саморобного апаратного SPI контролера.
54) Підбірка відкритих програм для створення цифрових мікросхем.
55) Про те, як безкоштовно виготовити розроблені вами мікросхеми: Частина 1, частина 2.
56) Підбірка відкритих вихідних кодів компонентів цифрових мікросхем: Частина 1, частина 2.
57) Відкритий ресурс з матеріалами для вивчення верифікації цифрових мікросхем. Верифікація мікросхем зараз дуже затребувана, оскільки більшість сучасних багатоядерних процесорів та інших мікрух проектуються з готових і налагоджених компонентів, які називаються IP Cores. Тому значна частина часу відводиться на перевірку узгодженості взаємодії між частинами системи і оцінку того, на скільки функціонування створеного чіпа відповідає специфікації.
58) Приклад багаторівневого тестбенчу на мові System Verilog для верифікації скінченного автомату. Опис проекту, Вихідний код, Книга з основ верифікації.
59) Чудові навчальні матеріали по Verilog та FPGA. Розглянуто основи Verilog і цифрової схемотехніки, робота в Vivado і ISE, створення тестбенчів, метастабільність і таймінги, реалізація SPI та UART інтерфейсів, керування світлодіодами за допомогою PWM, робота з DDR пам’яттю, створення і програмування софтпроцесора MicroBlaze. Шикарний матеріал для тих, хто хоче почати працювати з Xilinx.
60) Підбірка інформації по користуванню безкоштовним хмарним середовищем edaplayground для розробки мікросхем
61) Цікаві уроки по мові Verilog для FPGA Lattice. Розглядаються тригери, регістри, мультиплексори, подільники частоти, генерація звукових тонів, простенький UART, нескладний мікропроцесор. Verilog код досить толково написаний, тому лаби не приведуть до появи поганих звичок.
62) Шикарний ютуб канал з вебінарами по цифровому дизайну, Veriog, VHDL, верифікації.
63) Вебінари по створенню апаратної реалізації нейромереж в Matlab з використанням Deep Learning HDL Toolbox: один, два
64) Матеріал про створення нейромереж на FPGA з використанням фреймворку LeFlow
65) Підбірки матеріалів по створенню апаратної реалізації алгоритмів в Matlab/Simulink: один, два
DSP (Digital Signal Processing) та SDR (Software Defined Radio)
66) Шикарний плейліст по цифровій обробці сигналів (DSP) в Matlab.
67) Чудова книга по основам цифрової обробки сигналів (DSP). Називається “The Scientist and Engineer’s Guide to Digital Signal Processing”. Мінімум математики, пояснюється суть процесів і причинно-наслідкові зв’язки. Дуже добре підійде для початківців.
68) Класична настільна книга по цифровій обробці сигналів від Лайонса. З прикладним ухилом. Доступно описане дуже широке коло питань! Одна з улюблених наших книг!
69) Гарні російськомовні ресурси з описом алгоритмів цифрової обробки сигналів (DSP) та програмно визначеного радіо (SDR): один, два
70) Шикарний набір прикладів цифрової обробки сигналів на Python. У цього ж користувача на github є чудові репозиторії з прикладами по основам Python, прикладами машинного навчання на Python і прикладами нейронних мереж на Python
71) Тонни інформації по алгоритмам цифрової обробки аудіо сигналів.
72) Потужна книга по алгоритмам цифрового радіо з прикладами в Matlab для RTL SDR та Ettus USRP. Розглянути багато прикладів практичних задач
73) А ось крутий курс з Berkeley по радіопередачі і цифровій обробці сигналів з дуже цікавими лабами.
74) Цікава відео лекція від Олександра Мазуренко про сучасні засоби бездротового зв’язку.
75) Ще одна чудова відео лекція від Олександра Мазуренко про застосування засобів безпроводового зв’язку з прямим розширенням спектру. Детальніше про відео тут
76) Підбірка матеріалів по вступу до SDR.
77) Підбірка матеріалів по роботі з RTL-SDR.
78) Ютуб канал з проектами для недорогої і популярної SDR плати HackRF.
Matlab
79) Вище вже було посилання на курс по DSP в Matlab. А тут знайшли крутезний набір відео тьюторіалів, в яких показується, як створити в Matlab Simulink модель гоночної машинки з дистанційним керуванням, модель контролера керування електродвигунами такої машини, як налаштувати параметри контролера, промоделювати то все в Matlab і як потім з моделі контролера двигунів в Simulink згенерувати вихідний код такого контролера для обраної платформи (TI C2000, STM32, etc). А ось ще кілька додаткових відео з цього напрямку: один, два, три
80) Гарне відео про те, як налаштувати PID контролер в Matlab при невизначених параметрах моделі (на прикладі контролеру дросельної заслонки). А у якості бонуса тримайте багато коротких і доступних відосів по Control Theory.
81) Як програмувати STM32-Discovery з Matlab
82) Багато російськомовних відео по Matlab
83) Цікавезна підбірка відео про те, як керувати роботами за допомогою Matlab та ROS (Robot Operating System). З відео ви дізнаєтесь: 1) Як почати працювати з ROS - фреймворком для керування роботами; 2) Розпізнавання і генерація мови за допомогою Matlab та ROS; 3) Навігація. Побудова і збереження карт місцевості; 4) Комп’ютерний зір. Розпізнавання і відслідковування об’єктів; 5) Керування маніпуляторами. Також є вихідний код. Більше матеріалів тут
Мікрокомп’ютери
84) Курс російською для вивчення популярного одноплатного комп’ютера Raspberry Pi.
85) У попередньому курсі розглянуті самі основи Raspberry Pi. Тим, кого цікавлять більш складні речі, рекомендуємо пройти цей курс англійською.
86) А ось курс з вивчення одноплатного комп’ютера Beagle Bone Black. Підбірка матеріалів по Beagle Bone Black.
87) Розроблені нами лабораторні роботи з вивчення Linkit Smart 7688 (недорогий одноплатний комп’ютер з WiFi).
88) Цикл статей з програмування Raspberry Pi на чистому C, без Linux (включаючи переривання, комунікаційні інтерфейси і графіку). Попутно дізнаєтеся з курсу безліч важливих речей зі світу вбудованих систем (наприклад, як реалізований рантайм мови С і що таке скрипт лінкера). Частина 1, частина 2, частина 3, частина 4, частина 5.
89) Бібліотека класів Circle на С++ для bare metal програмування (без ОС) Raspberry Pi. Працює на всіх версіях Raspberry Pi. Підтримується багатопоточніть та багатоядерність, стандартна бібліотека С++, кеш, переривання, дебаг за допомогою GDB через UART, запуск в QEMU. Є клаcи для роботи з мережею (Ethernet), GPIO, відео виводом (фреймбуфер), таймерами, UART, SPI, I2C, I2S, DMA, PWM, MMC. Є підтримка FAT, стеку TCP/IP, OpenGL, OpenVG. Досить широка підтримка USB (девайс і хост драйвери, драйвери USB-Ethernet, mass storage devices, драйвери HID пристроїв, драйвер USB принтера). Навіть є часткова підтримка Bluetooth. Приклади тут
Проектування друкованих плат
90) Кожен поважаючий себе електронщик повинен вміти розробляти друковані плати. Ось непоганий курс по Altium Designer.
91) Цикл гарних статей по Eagle CAD: Стаття 1, Стаття 2, Стаття 3, Стаття 4.
92) А ось посилання на комерційні курси по Altium Designer від професіонала з 10-річним досвідом розробки складних материнських плат. Вартість курсів 45 $ -400 $. Є різні курси: від основ до проектування багатошарових високочастотних плат. Ми тут прикупили кілька курсів для активних учасників лаби і відповідально заявляємо, що воно того варте. Ці курси — концентрат лайфхаків, досвіду і практики. Пару сотень баксів за таке — взагалі копійки.
93) Кілька безкоштовних відео по Altium Designer від Роберта Феранека (плейліст), а також відео по створенню 3D моделей плати і компонентів: (один), (два)
Різне
94) Дуже цікава лекція про створення біосенсорів для носимих пристроїв.
95) Плейліст відео записів з конференції Embedded Fest
96) Посилання на ресурси з дипломними роботами кращих світових універів: Berkeley, MIT, Stanford, Princeton,
97) Гарний ютуб-канал, де британець розповідає, як робити всякі круті штуки на китайському лазерному різаку за 1500 $ (50 Вт, CO2). Не зовсім електроніка, але канал вже дуже цікавий.