Xilinx AXI Verification IP
Наконец дошли руки оформить заметку по Xilinx AXI VIP.
https://esynr3z.github.io/2021-04-24-axi-vip
https://github.com/esynr3z/axi_vip_demo
Прикольный инструмент, но очень интенсивное использование SV заставляет падать симуляторы в разных непонятных ситуациях. Так, например, если в определенном контексте не подключить сигнал к одному из выходов определенного таска - падает XSim. Или если включить определенный режим рандомизации сигнала READY - падает Xcelium. Формально всё легально и по стандарту, но увы ¯\_(ツ)_/¯
#xilinx #fpga #axi #verification
Наконец дошли руки оформить заметку по Xilinx AXI VIP.
https://esynr3z.github.io/2021-04-24-axi-vip
https://github.com/esynr3z/axi_vip_demo
Прикольный инструмент, но очень интенсивное использование SV заставляет падать симуляторы в разных непонятных ситуациях. Так, например, если в определенном контексте не подключить сигнал к одному из выходов определенного таска - падает XSim. Или если включить определенный режим рандомизации сигнала READY - падает Xcelium. Формально всё легально и по стандарту, но увы ¯\_(ツ)_/¯
#xilinx #fpga #axi #verification
positive slack
Xilinx AXI Verification IP
Небольшой обзор Xilinx AXI Verification IP - набора инструментов для верификации систем, собранных на AXI шинах. Что в комплекте, как использовать, как симулировать в Vivado и вне, и как тестировать AXI Slave с помощью AXI Master VIP. Содержание Общее описание…
Реализация криптоалгоритмов на ПЛИС
Обязательный must watch.
https://www.youtube.com/watch?v=4SAvu3MPAww
Не знал что переключательная активность в этом деле настолько важный ограничитель, а не ресурсы, например.
Из методов оптимизации порадовал пересбор прошивки с разной оптимизацией под данные и заливка в рамках CI/CD - даже никогда не думал что так можно и нужно кому-то 😅
В общем, однозначный лайк @iDoka
#fpga #crypto
Обязательный must watch.
https://www.youtube.com/watch?v=4SAvu3MPAww
Не знал что переключательная активность в этом деле настолько важный ограничитель, а не ресурсы, например.
Из методов оптимизации порадовал пересбор прошивки с разной оптимизацией под данные и заливка в рамках CI/CD - даже никогда не думал что так можно и нужно кому-то 😅
В общем, однозначный лайк @iDoka
#fpga #crypto
YouTube
Реализация криптоалгоритмов на ПЛИС
В докладе затрагивается тема современного железа для построения ускорителей криптографических функций на ПЛИС. На примере конкретных криптоалгоритмов рассматриваются требования к реализации на ПЛИС, затрагиваются особенности реализации. Раскрываются различные…
d3xx-linux-armv7.tar.xz
1.2 MB
FTDI D3xx драйвер под ARM
Драйвер нужен для чипов серии FT6xx - USB3.0 <-> FIFO.
На страничке загрузок есть версии только под x86, а версия под ARM отсутствует (не запустить либу на малинке например).
https://ftdichip.com/drivers/d3xx-drivers/
Однако, доступ к бета версии драйвера дают по запросу.
https://www.ftdicommunity.com/index.php?topic=342.0
Собственно, вот и архив. Мб пригодится кому =)
#ftdi #usb #ft600 #arm #d3xx
Драйвер нужен для чипов серии FT6xx - USB3.0 <-> FIFO.
На страничке загрузок есть версии только под x86, а версия под ARM отсутствует (не запустить либу на малинке например).
https://ftdichip.com/drivers/d3xx-drivers/
Однако, доступ к бета версии драйвера дают по запросу.
https://www.ftdicommunity.com/index.php?topic=342.0
Собственно, вот и архив. Мб пригодится кому =)
#ftdi #usb #ft600 #arm #d3xx
Микро-зажимы
Периодически возникает желание подцепиться к ногам какого-нибудь чипа - заказал вот такие вот зажимы.
https://a.aliexpress.com/_AcST89
Ну, впечатления неоднозначные. Где-то в отзывах видел что реально к ножкам с 0.5мм шагом подцепиться, но у меня так и не получилось как не пытался - пальцы в процессе начинают скользить, да и кончик, куда давить, тонкий довольно - нужна подкладка или деревянные пальцы. Но в целом, более крупные ноги цепляет хорошо и не коротит. На конце имеет силиконовую трубочку, чтобы зажимы между собой не замыкались.
Видел что есть ещё версия "пистолетом" с пластиковым корпусом типа такого
https://a.aliexpress.com/_ATYQZx. Возможно стоит её попробовать, на первый взгляд кажется, что цепляться будет гораздо удобнее.
#debug #hardware #tools
Периодически возникает желание подцепиться к ногам какого-нибудь чипа - заказал вот такие вот зажимы.
https://a.aliexpress.com/_AcST89
Ну, впечатления неоднозначные. Где-то в отзывах видел что реально к ножкам с 0.5мм шагом подцепиться, но у меня так и не получилось как не пытался - пальцы в процессе начинают скользить, да и кончик, куда давить, тонкий довольно - нужна подкладка или деревянные пальцы. Но в целом, более крупные ноги цепляет хорошо и не коротит. На конце имеет силиконовую трубочку, чтобы зажимы между собой не замыкались.
Видел что есть ещё версия "пистолетом" с пластиковым корпусом типа такого
https://a.aliexpress.com/_ATYQZx. Возможно стоит её попробовать, на первый взгляд кажется, что цепляться будет гораздо удобнее.
#debug #hardware #tools
SO YOU WANT TO BUILD AN EMBEDDED LINUX SYSTEM?
Стоящий внимания супер-лонгрид (~200к символов) про эмбэддэд линукс.
#linux #embedded
Стоящий внимания супер-лонгрид (~200к символов) про эмбэддэд линукс.
This article is targeted at embedded engineers who are familiar with microcontrollers but not with microprocessors or Linux, so I wanted to put together something with a quick primer on why you’d want to run embedded Linux, a broad overview of what’s involved in designing around application processors, and then a dive into some specific parts you should check out — and others you should avoid — for entry-level embedded Linux systems.https://jaycarlson.net/embedded-linux/
#linux #embedded
apb.pdf
62 KB
Частота дискретизации vs полоса пропускания или причём здесь алиасинг
Тут увидел крутые картиночки из пдфки "Software-Defined Radio Handbook" от Pentek (документ выше), которые на пальцах объясняют.
Допустим, у нас АЦП с частотой дискретизации Fs=100МГц, а полоса пропускания у него 350МГц. Сможем ли оцифровать сигнал у которого спектр сосредочен в полосе 20-30МГц? А в полосе 170-180МГц? В обоих случаях да, если корректно учтём "эффект наложения спектров при дискретизации" ака "заворачивание спектров" ака "алиасинг/aliasing".
180МГц? А как же теорема отсчётов/Котельникова/Найквиста/Шеннона и ограничение в Fs/2=50Мгц? Противоречий нет, т.к. в ней речь о том, что сигнал может быть адекватно оцифрован, если его полоса частот не превышает Fs/2 (она в примере 10МГц). Т.е. если частоты в спектре сигнала лежат ниже Fs/2 - они представляются адекватно, но если они лежат выше Fs/2, то происходит "заворачивание"/"наложение" более высокочастотной части спектра на область частот от 0 до Fs/2.
И теперь к картинкам. На Fig.2 условно спектр того, что способен "видеть" наш АЦП - полосу 350МГц (7 зон Найквиста по 50МГц). Представлен в виде бумажной гармошки. Когда происходит дискретизация, то всё что выше Fs/2 накладывается на нулевую зону и искажает её содержимое. Fig.3 - складываем гармошку и просвечиваем её насквозь. Прикольно, что эта аналогия также отражает то, что спектры из чётных зон при наложении зеркально разворачиваются.
Как тогда нормально оцифровать первый сигнал в полосе 20-30МГц (Fig.4)? Перед АЦП поставить антиалиасинговый ФНЧ, который подавит всё что выше Fs/2, и при заворачивании спектра при дискретизации эти зоны влияния не окажут.
Аналогично с сигналом в полосе 170-180МГц. Только нужен теперь полосовой фильтр, который подавит всё, кроме полезной части спектра в четвертой зоне (Fig.5). И тогда спектр оцифрованного сигнала будет содержать только искомый сигнал, правда перенесенный в область 0-Fs/2 и отражённый зеркально (Fig.6).
P.S. я сам только познаю магию ЦОСа по книжке Смита, так что прошу поправить, если где неправ.
P.P.S. Все цифры взяты с потолка и не сопадают с источником картинок.
#dsp #aliasing #adc
Тут увидел крутые картиночки из пдфки "Software-Defined Radio Handbook" от Pentek (документ выше), которые на пальцах объясняют.
Допустим, у нас АЦП с частотой дискретизации Fs=100МГц, а полоса пропускания у него 350МГц. Сможем ли оцифровать сигнал у которого спектр сосредочен в полосе 20-30МГц? А в полосе 170-180МГц? В обоих случаях да, если корректно учтём "эффект наложения спектров при дискретизации" ака "заворачивание спектров" ака "алиасинг/aliasing".
180МГц? А как же теорема отсчётов/Котельникова/Найквиста/Шеннона и ограничение в Fs/2=50Мгц? Противоречий нет, т.к. в ней речь о том, что сигнал может быть адекватно оцифрован, если его полоса частот не превышает Fs/2 (она в примере 10МГц). Т.е. если частоты в спектре сигнала лежат ниже Fs/2 - они представляются адекватно, но если они лежат выше Fs/2, то происходит "заворачивание"/"наложение" более высокочастотной части спектра на область частот от 0 до Fs/2.
И теперь к картинкам. На Fig.2 условно спектр того, что способен "видеть" наш АЦП - полосу 350МГц (7 зон Найквиста по 50МГц). Представлен в виде бумажной гармошки. Когда происходит дискретизация, то всё что выше Fs/2 накладывается на нулевую зону и искажает её содержимое. Fig.3 - складываем гармошку и просвечиваем её насквозь. Прикольно, что эта аналогия также отражает то, что спектры из чётных зон при наложении зеркально разворачиваются.
Как тогда нормально оцифровать первый сигнал в полосе 20-30МГц (Fig.4)? Перед АЦП поставить антиалиасинговый ФНЧ, который подавит всё что выше Fs/2, и при заворачивании спектра при дискретизации эти зоны влияния не окажут.
Аналогично с сигналом в полосе 170-180МГц. Только нужен теперь полосовой фильтр, который подавит всё, кроме полезной части спектра в четвертой зоне (Fig.5). И тогда спектр оцифрованного сигнала будет содержать только искомый сигнал, правда перенесенный в область 0-Fs/2 и отражённый зеркально (Fig.6).
P.S. я сам только познаю магию ЦОСа по книжке Смита, так что прошу поправить, если где неправ.
P.P.S. Все цифры взяты с потолка и не сопадают с источником картинок.
#dsp #aliasing #adc
Pentek
Pentek | Software Defined Radio Handbook
Pentek, Inc. - DDCs and DUCs can replace conventional analog receiver designs, offering significant benefits in performance, density and cost and much more
FTDI USB-FIFO или режим FT245
Последнее время я довольно много работал с чипами FTDI в качестве переходников USB-FIFO для FPGA: FT232H, FT2232H, FT600, асинхронный и синхронный режимы FT245, самописные ядра на SystemVerilog, ответное ПО на Python - вот это вот всё. Собралась некоторая критическая масса заметок, которые решил причесать и собрать в пост.
https://esynr3z.github.io/2021-07-16-ftdi-ft245
#ftdi #system_verilog
Последнее время я довольно много работал с чипами FTDI в качестве переходников USB-FIFO для FPGA: FT232H, FT2232H, FT600, асинхронный и синхронный режимы FT245, самописные ядра на SystemVerilog, ответное ПО на Python - вот это вот всё. Собралась некоторая критическая масса заметок, которые решил причесать и собрать в пост.
https://esynr3z.github.io/2021-07-16-ftdi-ft245
#ftdi #system_verilog
The Myth of Three Capacitor Values
Many designs today include three different value decoupling capacitors, or when using just one capacitor, a small value like 0.1 uF. These recommendations are based on 50-year-old assumptions that do not apply today. It is time to reconsider these out of date, legacy design guidelines.
https://www.signalintegrityjournal.com/articles/1589-the-myth-of-three-capacitor-values
#hardware #analog_design #schematic
Many designs today include three different value decoupling capacitors, or when using just one capacitor, a small value like 0.1 uF. These recommendations are based on 50-year-old assumptions that do not apply today. It is time to reconsider these out of date, legacy design guidelines.
https://www.signalintegrityjournal.com/articles/1589-the-myth-of-three-capacitor-values
#hardware #analog_design #schematic
позитивслэк
Extreme Wiring on the Prototyping Board Видео от легендарного ELM-ChaN про прототипирование на коленке. https://www.youtube.com/watch?v=i5MNLTc7YhY&ab_channel=tHaH4x0r Понравилась идея с податчиком провода. В комбинации с пинцетом можно очень быстро и точно…
Jump wire pen
Дело Элмчана живёт. Оказывается, отдельные приспособы для такой пайки и у китайцев есть. Правда они позиционируются как инструмент для ремонта телефонов.
Взял на пробу от Mechanic:
https://a.aliexpress.com/_9Qlpkc
В комплекте 2 катушки 0.01, что может для ремонта айфонов и норм, но для прототипирования сильно хлипковато. Поэтому прикупил ещё отдельно провод 0.1:
https://a.aliexpress.com/_AlCoQ4
Катушку пришлось по кругу подпилить, чтобы нормально крутилась внутри, но это мелочи.
Хотел как в оригинальном видео 0.2 провод найти - но на али не нашел лудящийся, а наш ПЭВТЛ (не путать с ПЭВТ - его паяльник не берет) по не совсем гуманным ценам продается:
https://www.chipdip.ru/product0/8004279725
Доволен. Всё работает, провод лудится, катушка крутится - можно прототипировать =)
#soldering #pcb
Дело Элмчана живёт. Оказывается, отдельные приспособы для такой пайки и у китайцев есть. Правда они позиционируются как инструмент для ремонта телефонов.
Взял на пробу от Mechanic:
https://a.aliexpress.com/_9Qlpkc
В комплекте 2 катушки 0.01, что может для ремонта айфонов и норм, но для прототипирования сильно хлипковато. Поэтому прикупил ещё отдельно провод 0.1:
https://a.aliexpress.com/_AlCoQ4
Катушку пришлось по кругу подпилить, чтобы нормально крутилась внутри, но это мелочи.
Хотел как в оригинальном видео 0.2 провод найти - но на али не нашел лудящийся, а наш ПЭВТЛ (не путать с ПЭВТ - его паяльник не берет) по не совсем гуманным ценам продается:
https://www.chipdip.ru/product0/8004279725
Доволен. Всё работает, провод лудится, катушка крутится - можно прототипировать =)
#soldering #pcb
aliexpress.com
5.32US $ 5% OFF|Mechanic Repair Jump Wire Pen Phone Motherboard Fingerprint Flying Line Pens For Iphone 7 8 8plus X Xr Xs Max Solder…
Smarter Shopping, Better Living! Aliexpress.com
Когда нужна телеметрия: интегрируем в проект библиотеку логирования uP7
https://habr.com/ru/post/570720/
http://baical.net/up7.html
#logging #telemetry
https://habr.com/ru/post/570720/
http://baical.net/up7.html
#logging #telemetry
Хабр
Когда нужна телеметрия: интегрируем в проект библиотеку логирования uP7
Два сигнала телеметрии, формируемые в микроконтроллере библиотекой uP7 и отображаемые на компьютере в утилите-клиенте Baical Зачастую разработчику, или даже пользователю, требуется посмотреть, что...
Corsair - генератор карты регистров
Хотел бы поделиться своим проектом, доросшим до первой мажорной версии. Конечно он ещё молодой, и толком необкатанный, но верю, что кому-то уже сможет помочь.
Благодарю всех участвовавших и просто сочувствовавших, без обратной связи и помощи было бы тяжело.
Что? Зачем? Почему?
esynr3z.github.io/2021-09-03-corsair
Репозиторий:
github.com/esynr3z/corsair
Документация:
corsair.readthedocs.io
#python #csr #fpga
Хотел бы поделиться своим проектом, доросшим до первой мажорной версии. Конечно он ещё молодой, и толком необкатанный, но верю, что кому-то уже сможет помочь.
Благодарю всех участвовавших и просто сочувствовавших, без обратной связи и помощи было бы тяжело.
Что? Зачем? Почему?
esynr3z.github.io/2021-09-03-corsair
Репозиторий:
github.com/esynr3z/corsair
Документация:
corsair.readthedocs.io
#python #csr #fpga
GitHub
GitHub - esynr3z/corsair: Control and Status Register map generator for HDL projects
Control and Status Register map generator for HDL projects - esynr3z/corsair
Архитектуры процессорных систем
Курс лекций от МИЭТ. Про RISC-V и внутренности современных процессоров. Классная подача материала, рекомендую.
https://youtube.com/playlist?list=PL0def37HEo5KMH7gONw_JnczvQJBv1EZL
И вообще, вот вам годный канал с постами на эту тему:
Записки CPU designer'a
@cpu_design
#digital_design #cpu #riscv #computer_architecture
Курс лекций от МИЭТ. Про RISC-V и внутренности современных процессоров. Классная подача материала, рекомендую.
https://youtube.com/playlist?list=PL0def37HEo5KMH7gONw_JnczvQJBv1EZL
И вообще, вот вам годный канал с постами на эту тему:
Записки CPU designer'a
@cpu_design
#digital_design #cpu #riscv #computer_architecture
Computer Architecture Animations
[ссылка]
Интерактивные анимации демонстрируют работу процессорного кэша и протоколов когерентности в мультипроцессорных системах:
▫️Cache
▫️Write-through cache coherency
▫️Write-once cache coherency
▫️Firefly cache coherency
▫️MESI cache coherency
▫️All cache coherency protocols
#computer_architecture #cpu #cache #coherency
[ссылка]
Интерактивные анимации демонстрируют работу процессорного кэша и протоколов когерентности в мультипроцессорных системах:
▫️Cache
▫️Write-through cache coherency
▫️Write-once cache coherency
▫️Firefly cache coherency
▫️MESI cache coherency
▫️All cache coherency protocols
#computer_architecture #cpu #cache #coherency
Немного почти оффтопика.
Набрёл на классный сайт со списками почти всего на свете для помощи в выборе имени какого-нибудь нового проекта. А то часто это бывает проблемой, особенно если вдруг нужна серия имён одной тематики.
https://namingschemes.com
Набрёл на классный сайт со списками почти всего на свете для помощи в выборе имени какого-нибудь нового проекта. А то часто это бывает проблемой, особенно если вдруг нужна серия имён одной тематики.
A good naming scheme is scalable, unique, and easy to remember. The purpose of these naming schemes is to name networked servers, wireless access points or client computers, but it can also be used to name projects, products, variables, streets, pets, kids, or any other project where unique names and rememberable names are required.
https://namingschemes.com
Rapid Open Hardware Development (ROHD) Framework
https://github.com/intel/rohd
Yet another попытка ухода от низкого уровня HDL к чуть более высокоуровневым описаниям, причем довольно свежая (репозиторию и 2 недель нет). Что на этот раз: Intel, язык Dart, фреймворк для дизайна и верификации, амбиции построить opensource community вокруг.
▫️Full power of the modern Dart language for hardware design and verification
▫️Makes validation collateral simpler to develop and debug. A future package (like UVM for ROHD) to help build testbenches is planned for release soon.
▫️Develop layers of abstraction within a hardware design, making it more flexible and powerful
▫️Easy IP integration and interfaces; using an IP is as easy as an import. Reduces tedious, redundant, and error prone aspects of integration
▫️Simple and fast build, free of complex build systems and EDA vendor tools
▫️Can use the excellent pub.dev package manager and all the packages it has to offer
▫️Built-in event-based fast simulator, with waveform dumper to .vcd file format
▫️Conversion of modules to equivalent, human-readable, structurally similar SystemVerilog for integration or downstream tool consumption
▫️Run-time dynamic module port definitions (numbers, names, widths, etc.) and internal module logic, including recursive module contents
▫️Simple, free, open source tool stack without any headaches from library dependencies, file ordering, elaboration/analysis options, +defines, etc.
▫️Excellent, simple, fast unit-testing framework
▫️Less verbose than alternatives (fewer lines of code)
▫️Enables higher quality development
▫️Replaces hacky perl/python noscripting for automation with powerful native control of design generation
▫️Fewer bugs and lines of code means shorter development schedule
▫️Support for cosimulation with verilog modules and instantiation of verilog modules in generated SystemVerilog code
▫️Use modern IDEs like Visual Studio Code, with excellent static analysis, fast autocomplete, built-in debugger, linting, git integration, extensions, and much more
▫️Simulate with various abstraction levels of models from architectural, to functional, to cycle-accurate, to RTL levels in the same language and environment.
Ну и естественно они не могли не пройтись по альтернативам в лице: SystemVerilog, Chisel, MyHDL, HLS, TL-Verilog, PyMTL, cocotb.
#digital_design #verification #framework #dart #rtl
https://github.com/intel/rohd
Yet another попытка ухода от низкого уровня HDL к чуть более высокоуровневым описаниям, причем довольно свежая (репозиторию и 2 недель нет). Что на этот раз: Intel, язык Dart, фреймворк для дизайна и верификации, амбиции построить opensource community вокруг.
ROHD is not a new language, it is not a hardware denoscription language (HDL), and it is not a version of High-Level Synthesis (HLS). ROHD can be classified as a generator framework.
You can think of this project as an attempt to replace SystemVerilog and related build systems as the front-end methodology of choice in the industry.
One of ROHD's goals is to help grow an open-source community around reusable hardware designs and verification components.Ну и фич целый вагон:
▫️Full power of the modern Dart language for hardware design and verification
▫️Makes validation collateral simpler to develop and debug. A future package (like UVM for ROHD) to help build testbenches is planned for release soon.
▫️Develop layers of abstraction within a hardware design, making it more flexible and powerful
▫️Easy IP integration and interfaces; using an IP is as easy as an import. Reduces tedious, redundant, and error prone aspects of integration
▫️Simple and fast build, free of complex build systems and EDA vendor tools
▫️Can use the excellent pub.dev package manager and all the packages it has to offer
▫️Built-in event-based fast simulator, with waveform dumper to .vcd file format
▫️Conversion of modules to equivalent, human-readable, structurally similar SystemVerilog for integration or downstream tool consumption
▫️Run-time dynamic module port definitions (numbers, names, widths, etc.) and internal module logic, including recursive module contents
▫️Simple, free, open source tool stack without any headaches from library dependencies, file ordering, elaboration/analysis options, +defines, etc.
▫️Excellent, simple, fast unit-testing framework
▫️Less verbose than alternatives (fewer lines of code)
▫️Enables higher quality development
▫️Replaces hacky perl/python noscripting for automation with powerful native control of design generation
▫️Fewer bugs and lines of code means shorter development schedule
▫️Support for cosimulation with verilog modules and instantiation of verilog modules in generated SystemVerilog code
▫️Use modern IDEs like Visual Studio Code, with excellent static analysis, fast autocomplete, built-in debugger, linting, git integration, extensions, and much more
▫️Simulate with various abstraction levels of models from architectural, to functional, to cycle-accurate, to RTL levels in the same language and environment.
Ну и естественно они не могли не пройтись по альтернативам в лице: SystemVerilog, Chisel, MyHDL, HLS, TL-Verilog, PyMTL, cocotb.
#digital_design #verification #framework #dart #rtl
GitHub
GitHub - intel/rohd: The Rapid Open Hardware Development (ROHD) framework is a framework for describing and verifying hardware…
The Rapid Open Hardware Development (ROHD) framework is a framework for describing and verifying hardware in the Dart programming language. - intel/rohd