https://habr.com/ru/post/537704/
https://github.com/esynr3z/pyhdlsim
#python #pytest #rtl #modelsim #icarus
https://github.com/esynr3z/pyhdlsim
#python #pytest #rtl #modelsim #icarus
Хабр
Прокачиваем скрипты симуляции HDL с помощью Python и PyTest
Все делают это. Ну ладно, не все, но большинство. Пишут скрипты, чтобы симулировать свои проекты на Verilog, SystemVerilog и VHDL. Однако, написание и поддержка таких скриптов часто бывает довольно...
Конвертер SystemVerilog в Verilog
Вдруг в хозяйстве пригодится...
https://github.com/zachjs/sv2v
#verilog #system_verilog #converter
Вдруг в хозяйстве пригодится...
https://github.com/zachjs/sv2v
#verilog #system_verilog #converter
GitHub
GitHub - zachjs/sv2v: SystemVerilog to Verilog conversion
SystemVerilog to Verilog conversion. Contribute to zachjs/sv2v development by creating an account on GitHub.
Awesome Hardware Denoscription Languages
Добротный список того, на чём можно писать железо. От мужика, подарившего нам
https://wavedrom.com
https://github.com/drom/awesome-hdl
#hdl #hls #awesome
Добротный список того, на чём можно писать железо. От мужика, подарившего нам
https://wavedrom.com
https://github.com/drom/awesome-hdl
#hdl #hls #awesome
GitHub
GitHub - drom/awesome-hdl: Hardware Denoscription Languages
Hardware Denoscription Languages. Contribute to drom/awesome-hdl development by creating an account on GitHub.
verilog_pwl_modeling_mixed_signal.pdf
2.9 MB
SystemVerilog для симуляции аналоговых компонентов
Гуглил тут на тему, как лучше в обычном цифровом тестбенче имитировать RC-цепь, аналоговый компаратор и т.п. Чтобы без всяких Verilog-AMS и прочих mixed-signal наворотов.
Наткнулся на шикарный диссер из Стэнфорда, где показан общий подход к тому, как с помощью SystemVerilog и кусочно-линейных функций создать pin-accurate модель аналогового блока, работающую в любом цифровом симуляторе.
VERILOG PIECEWISE LINEAR BEHAVIORAL MODELING FOR MIXED-SIGNAL VALIDATION
Sabrina Liao
https://purl.stanford.edu/pb381vh2919
#simulation #system_verilog #mixed_signal #analog_design
Гуглил тут на тему, как лучше в обычном цифровом тестбенче имитировать RC-цепь, аналоговый компаратор и т.п. Чтобы без всяких Verilog-AMS и прочих mixed-signal наворотов.
Наткнулся на шикарный диссер из Стэнфорда, где показан общий подход к тому, как с помощью SystemVerilog и кусочно-линейных функций создать pin-accurate модель аналогового блока, работающую в любом цифровом симуляторе.
VERILOG PIECEWISE LINEAR BEHAVIORAL MODELING FOR MIXED-SIGNAL VALIDATION
Sabrina Liao
https://purl.stanford.edu/pb381vh2919
#simulation #system_verilog #mixed_signal #analog_design
Icarus и SystemVerilog
Поддержка SV в Икарусе потихоньку развивается - вот в достаточно свежей 11-ой версии (сентябрь 2020) обнаружил, что уже поддерживаются конструкции always_comb, always_ff и always_latch!
Однако, как сами отмечают авторы
Единственное, 11-ю версию еще не завезли в системные репозитории, поэтому надо собирать самому из исходников.
https://iverilog.fandom.com/wiki/Release_Notes_Icarus_Verilog_11
#icarus #system_verilog
Поддержка SV в Икарусе потихоньку развивается - вот в достаточно свежей 11-ой версии (сентябрь 2020) обнаружил, что уже поддерживаются конструкции always_comb, always_ff и always_latch!
Однако, как сами отмечают авторы
Missing SystemVerilog Language Features
This is still too large a list to enumerate.
Единственное, 11-ю версию еще не завезли в системные репозитории, поэтому надо собирать самому из исходников.
https://iverilog.fandom.com/wiki/Release_Notes_Icarus_Verilog_11
#icarus #system_verilog
Icarus Verilog
Release Notes Icarus Verilog 11 | Icarus Verilog | Fandom
Here are the release notes for Icarus Verilog release branch 11. The 11 release extends support for the Verilog and SystemVerilog languages as well as fixing many bugs. Release notes for later...
Extreme Wiring on the Prototyping Board
Видео от легендарного ELM-ChaN про прототипирование на коленке.
https://www.youtube.com/watch?v=i5MNLTc7YhY&ab_channel=tHaH4x0r
Понравилась идея с податчиком провода. В комбинации с пинцетом можно очень быстро и точно формировать "дорожки". В коментах пишут, что используется медный эмалированый провод 0.2. А сам диспенсер можно сделать из ручки, хотя, как мне кажется, механический карандаш тоже должен зайти.
#pcb #prototype #soldering
Видео от легендарного ELM-ChaN про прототипирование на коленке.
https://www.youtube.com/watch?v=i5MNLTc7YhY&ab_channel=tHaH4x0r
Понравилась идея с податчиком провода. В комбинации с пинцетом можно очень быстро и точно формировать "дорожки". В коментах пишут, что используется медный эмалированый провод 0.2. А сам диспенсер можно сделать из ручки, хотя, как мне кажется, механический карандаш тоже должен зайти.
#pcb #prototype #soldering
YouTube
Extreme prototype board wiring techniques
This is a reupload of an original video made by ELM-ChaN, because the original is uploaded on a japanese video site which needs an account to watch videos. Everybody interested in electronics should watch this video, extremely interesting technique. This…
Последовательности неблокирующих присвоений
Найдете почему счётчик на картинке выше может не считать?
На самом деле проблема в полярности сброса. А несколько последовательных неблокирующих присвоений разрешены стандартом и синтезатор должен всё сделать правильно - применить последнее сработавшее. Однако, такой подход описания часто бывает под запретом в корпоративном стайлгайде, да и многие инженеры стараются умышленно его избегать (как и я ранее).
Пример выше не очень показателен, но если его немного усложнить, то можно увидеть профиты от такого способа описания.
Например, для генерации коротких импульсов. Если набор условий очень ветвист, а запускать импульс нужно только в нескольких случаях, то при обычном подходе придется явно описывать состояние
Единственное, нужно помнить, что использовать переменную (к которой применено несколько неблокирующих присвоений подряд) в списке чувствительности может быть чревато с точки зрения симулятора.
Все присвоения будут исполнены в порядке возникновения, а значит конструкция
Ну и как это часто бывает, первая пара ответов на SO вполне раскрывает тему:
https://stackoverflow.com/questions/15718192/verilog-sequence-of-non-blocking-assignments
#verilog #system_veriog #rtl #digital_design #codestyle
Найдете почему счётчик на картинке выше может не считать?
На самом деле проблема в полярности сброса. А несколько последовательных неблокирующих присвоений разрешены стандартом и синтезатор должен всё сделать правильно - применить последнее сработавшее. Однако, такой подход описания часто бывает под запретом в корпоративном стайлгайде, да и многие инженеры стараются умышленно его избегать (как и я ранее).
Пример выше не очень показателен, но если его немного усложнить, то можно увидеть профиты от такого способа описания.
strb <= 0;
if (bb) begin
strb <= 1;
blabla
end else if (cc) begin
if (dd)
strb <= 1;
else
blabla
end else if (ee)
blabla
Например, для генерации коротких импульсов. Если набор условий очень ветвист, а запускать импульс нужно только в нескольких случаях, то при обычном подходе придется явно описывать состояние
strb для каждой ветки, в том числе и неактивное. А так, мы создаём что-то вроде состояния по умолчанию, которое может быть изменено где-то внутри нужного условия. И когда условие перестанет действовать - состояние вернётся к исходному.Единственное, нужно помнить, что использовать переменную (к которой применено несколько неблокирующих присвоений подряд) в списке чувствительности может быть чревато с точки зрения симулятора.
Все присвоения будут исполнены в порядке возникновения, а значит конструкция
@() с такой переменной внутри может сработать несколько раз.Ну и как это часто бывает, первая пара ответов на SO вполне раскрывает тему:
https://stackoverflow.com/questions/15718192/verilog-sequence-of-non-blocking-assignments
#verilog #system_veriog #rtl #digital_design #codestyle
Stack Overflow
Verilog sequence of non blocking assignments
Say the following code section (same block):
A <= 1
A <= 2
Will variable A always be assigned 2? or will there be a race condition and 1 or 2 will be assigned ?
My understanding of non blo...
A <= 1
A <= 2
Will variable A always be assigned 2? or will there be a race condition and 1 or 2 will be assigned ?
My understanding of non blo...
starc_verilog_guide.pdf
5.9 MB
STARC Design Style Guide
Когда-то давным давно (в 1995 году) основные японские полупроводниковые компании Fujitsu, Hitachi, NEC, Sony, Toshiba и др. собралисьв огромного робота и основали иследовательский центр Semiconductor Technology Academic Research Center - STARC. И одной из задач, которую этот исследовательский центр пытался решить - стандартизовать процесс разработки чипов в Японии, т.к. хотя все и писали на одинаковых Verilog/VHDL, но кто во что горазд - никакого порядка. Ну и где-то в начале 2000х необходимый документ опубликовали.
Мне когда-то давно удалось найти 3 главы этого гайда, и я их склеил в одну pdf. Также существует аналогичный документ для VHDL, который мне найти не удалось (не особо и старался, если честно).
Гайд пытается покрыть все процессы разработки, начиная от имен регистров и организации иерархии модулей, до принципов организации структуры папок проекта. По некоторым источникам существует ещё 4-ая глава про верификацию, но к сожалению она не нашлась.
#verilog #codestyle
Когда-то давным давно (в 1995 году) основные японские полупроводниковые компании Fujitsu, Hitachi, NEC, Sony, Toshiba и др. собрались
Мне когда-то давно удалось найти 3 главы этого гайда, и я их склеил в одну pdf. Также существует аналогичный документ для VHDL, который мне найти не удалось (не особо и старался, если честно).
Гайд пытается покрыть все процессы разработки, начиная от имен регистров и организации иерархии модулей, до принципов организации структуры папок проекта. По некоторым источникам существует ещё 4-ая глава про верификацию, но к сожалению она не нашлась.
#verilog #codestyle
Можно найти как вполне актуальные рекомендации (сбросы, клоки, триггеры и другие компоненты дизайна не особо то и изменились за 20 лет), так и устаревшие и теперь забавные (например, не использовать пока Verilog-2001, т.к. не всеми тулами поддерживается в достаточном объёме).
1 Basic Design Constraints
1.1 Naming conventions
1.2 Synchronous design
1.3 Initial reset
1.4 Clocks
1.5 Handling of asynchronous circuits
1.6 Hierarchical design
2 RTL Denoscription Techniques
2.1 Combinational logic
2.2 always construct denoscription in combinational logic
2.3 FF inference
2.4 Latch inference
2.5 Tri-state buffer
2.6 always construct denoscription that takes circuit structure into account
2.7 if statements
2.8 case statements
2.9 for statements
2.10 Operator denoscriptions
2.11 State machine denoscriptions
3 RTL Design Methodology
3.1 Create function libraries
3.2 Using function libraries
3.3 Design for Test (DFT)
3.4 Low Power-Consumption Design
3.5 Source codes and design data management
1 Basic Design Constraints
1.1 Naming conventions
1.2 Synchronous design
1.3 Initial reset
1.4 Clocks
1.5 Handling of asynchronous circuits
1.6 Hierarchical design
2 RTL Denoscription Techniques
2.1 Combinational logic
2.2 always construct denoscription in combinational logic
2.3 FF inference
2.4 Latch inference
2.5 Tri-state buffer
2.6 always construct denoscription that takes circuit structure into account
2.7 if statements
2.8 case statements
2.9 for statements
2.10 Operator denoscriptions
2.11 State machine denoscriptions
3 RTL Design Methodology
3.1 Create function libraries
3.2 Using function libraries
3.3 Design for Test (DFT)
3.4 Low Power-Consumption Design
3.5 Source codes and design data management
Астрологи объявили неделю codestyle. Количество постов с правилами кодирования на Verilog увеличено вдвое.
FreescaleVerilog.pdf
344.7 KB
Freescale Verilog HDL Coding
* Naming Conventions
* Comments
* Code Style
* Module Partioning and Reusability
* Modeling Practices
* General Coding Techniques
* Standards for Structured Test Techniques
* General Standarts fot Synthesis
#verilog #codestyle
* Naming Conventions
* Comments
* Code Style
* Module Partioning and Reusability
* Modeling Practices
* General Coding Techniques
* Standards for Structured Test Techniques
* General Standarts fot Synthesis
#verilog #codestyle
И ещё немного гайдов
Ну и чтобы закрыть уже тему, ещё тройка стоящих внимания гайдов.
https://www.systemverilog.io/styleguide
https://github.com/johan92/verilog-coding-style
https://github.com/lowRISC/style-guides/blob/master/VerilogCodingStyle.md
#verilog #codestyle
Ну и чтобы закрыть уже тему, ещё тройка стоящих внимания гайдов.
https://www.systemverilog.io/styleguide
https://github.com/johan92/verilog-coding-style
https://github.com/lowRISC/style-guides/blob/master/VerilogCodingStyle.md
#verilog #codestyle
www.systemverilog.io
SystemVerilog Style Guide - systemverilog.io
Inspired by Python's PEP8, this is a StyleGuide for SystemVerilog.
Макрочипы
"you can see why we went to 40nm, the first ones were huge"
😂
Не знаю, делает ли он сейчас на заказ, но подставка под кружку была бы просто офигенная.
https://www.evilgeniuslabs.org/macrochips
#diy
"you can see why we went to 40nm, the first ones were huge"
😂
Не знаю, делает ли он сейчас на заказ, но подставка под кружку была бы просто офигенная.
https://www.evilgeniuslabs.org/macrochips
#diy
🔥1
verilog_systemverilog_standarts.zip
31 MB
Стандарты на Verilog и SystemVerilog
В архиве все на текущий момент стандарты Verilog и SystemVerilog.
* IEEE.1364-1995-Verilog
* IEEE.1364-2001-Verilog
* IEEE.1364-2005-Verilog
* IEEE.1800-2005-SystemVerilog
* IEEE.1800-2009-SystemVerilog
* IEEE.1800-2012-SystemVerilog
* IEEE.1800-2017-SystemVerilog
Последний стандарт Verilog - 2005. Потом этот стандарт слили со стандартом SystemVerilog того же года, местами пофиксили и получили стандарт 2009. Актуальный на начало 2021 года стандарт SystemVerilog - 2017.
#verilog #system_verilog #standard
В архиве все на текущий момент стандарты Verilog и SystemVerilog.
* IEEE.1364-1995-Verilog
* IEEE.1364-2001-Verilog
* IEEE.1364-2005-Verilog
* IEEE.1800-2005-SystemVerilog
* IEEE.1800-2009-SystemVerilog
* IEEE.1800-2012-SystemVerilog
* IEEE.1800-2017-SystemVerilog
Последний стандарт Verilog - 2005. Потом этот стандарт слили со стандартом SystemVerilog того же года, местами пофиксили и получили стандарт 2009. Актуальный на начало 2021 года стандарт SystemVerilog - 2017.
#verilog #system_verilog #standard
Кстати в IEEE с конца 2019 года прорабатывают следующую ревизию стандарта SV. Так что в ближайшие пару лет нас ждут
"new and enhanced features that ease design, improve verification, and enhance cross-language interactions."
https://development.standards.ieee.org/myproject-web/public/view.html#pardetail/7059
"new and enhanced features that ease design, improve verification, and enhance cross-language interactions."
https://development.standards.ieee.org/myproject-web/public/view.html#pardetail/7059
FFT_tutorial_NI.pdf
124 KB
The Fundamentals of FFT-Based Signal Analysis and Measurement
Аппноут от NI по работе с FFT. Наверное бесполезен для тех, кто постоянно занимается ЦОСом, но если раз в N лет надо вспомнить как провести спектральный анализ и что-то там из него извлечь, то заходит очень хорошо.
- Базовые вычисления: амплитуда, RMS, амплитудный спектр, спектр мощности, децибелы, разрешение по частоте
- Алиасинговые эффекты и фильтры
- Оконные функции и spectral leakage
- Вычисления над полученным спектром: частота, мощность, SNR, PSD
#dsp #fft
Аппноут от NI по работе с FFT. Наверное бесполезен для тех, кто постоянно занимается ЦОСом, но если раз в N лет надо вспомнить как провести спектральный анализ и что-то там из него извлечь, то заходит очень хорошо.
- Базовые вычисления: амплитуда, RMS, амплитудный спектр, спектр мощности, децибелы, разрешение по частоте
- Алиасинговые эффекты и фильтры
- Оконные функции и spectral leakage
- Вычисления над полученным спектром: частота, мощность, SNR, PSD
#dsp #fft
👍1
ad_adc_specs.pdf
93 KB
Understand SINAD, ENOB, SNR, THD, THD + N, and SFDR so You Don't Get Lost in the Noise Floor
Walt Kester
Небольшой ликбез об основных динамических характеристиках АЦП с формулами.
#adc
Walt Kester
Небольшой ликбез об основных динамических характеристиках АЦП с формулами.
#adc
👍1
Из ссылок в конце туториала выше набрел на прекрасную серию книг практической направленности по аналогу от Analog Devices. Однозначно стоит ознакомиться, если еще не!
И самое интересное, что эти книги можно бесплатно скачать прямо с сайта AD без регистрации и смс. Правда в немного разобраном виде - в формате архива с пдфками.
Data Conversion Handbook
https://www.analog.com/en/education/education-library/data-conversion-handbook.html
Mixed-Signal and DSP Design Techniques
https://www.analog.com/en/education/education-library/mixed_signal_dsp_design_book.html
Op Amp Applications Handbook
https://www.analog.com/en/education/education-library/op-amp-applications-handbook.html
Linear Circuit Design Handbook
https://www.analog.com/en/education/education-library/linear-circuit-design-handbook.html
#analog_design #adc #dac #op_amp #dsp #book
И самое интересное, что эти книги можно бесплатно скачать прямо с сайта AD без регистрации и смс. Правда в немного разобраном виде - в формате архива с пдфками.
Data Conversion Handbook
https://www.analog.com/en/education/education-library/data-conversion-handbook.html
Mixed-Signal and DSP Design Techniques
https://www.analog.com/en/education/education-library/mixed_signal_dsp_design_book.html
Op Amp Applications Handbook
https://www.analog.com/en/education/education-library/op-amp-applications-handbook.html
Linear Circuit Design Handbook
https://www.analog.com/en/education/education-library/linear-circuit-design-handbook.html
#analog_design #adc #dac #op_amp #dsp #book