Pull to refresh

Нововведения языка SystemVerilog

Electronics for beginners
Sandbox
image

В данной статье показаны некоторые нововведения языка SystemVerilog в области организации данных по сравнению с Verilog-2001 для синтезируемого подмножества языка.

История SystemVerilog довольна длина и туманна. Начавшись после принятия стандарта Verilog-95, она вылелась в Verilog-2001. Однако язык не слишком подходил для верификации, инженеры использовании языки семейства «E» — VERA, Testbuider. В современном виде SystemVerilog появился после 2005 года. Сейчас средства синтеза и моделирование такие как Quartus II, ISE, ModelSim/QuestaSim уверенно поддерживают SystemVerilog. Стандарт называется IEEE 1800-2012.

Прим. Эта статья давно написана, но не опубликована. Надеюсь будет полезна начинающим.
Читать дальше →
Total votes 21: ↑20 and ↓1 +19
Views 12K
Comments 9

Аппаратный сортировщик чисел на verilog-е

Algorithms *
Tutorial
В этой моей статье, как и в предыдущей рассматривается цифровая схемотехника с точки зрения программиста. Но в этот раз будет разобрана «более алгоритмическая» задача сортировки чисел, с разбором verilog-кода. Рассматриваемое аппаратное решение позволяет отсортировать n чисел за время 2*n. На картинке ДПВ показан вывод на монитор от тестового проекта для ПЛИС, там каждой линии соответствует один тик сортировщика, сначала n тиков случайные числа записываются в сортировщик, затем n тиков выводятся числа отсортированные.



Читать дальше →
Total votes 45: ↑44 and ↓1 +43
Views 20K
Comments 49

Микропроцессор «из гаража»

Assembler *
Наверняка каждый, имеющий дело с электроникой и ПЛИС, знаком с сайтом opencores.org, где собрано множество полезных (и не очень) решений для электроники — десятки, может быть и сотни, реализаций процессоров и периферии — как оригинальных реализаций уже существующих устройств, так и новых разработок. В этой статье пойдёт речь о 32-битном микропроцессоре с оригинальной системой команд, созданном на основе платы «Марсоход2».
Читать дальше →
Total votes 89: ↑88 and ↓1 +87
Views 33K
Comments 45

Знакомство с системой домашней автоматизации HDL

System Analysis and Design *
Sandbox
Технология «умного дома» призвана обеспечить максимальный уровень комфорта для хозяев квартиры или дома. Она поможет сэкономить время на выполнение домашних работ, ведь за это теперь отвечает автоматика, которая управляет и контролирует многие бытовые процессы.

«Умный дом» – комплексное техническое решение, реализуемое за счет программных и аппаратных средств. Сюда входят: потребители электроэнергии, бытовые и технические приборы, различные подсистемы, инженерные устройства, которые объединяются в единую систему управления домом.

К нам в руки попал демонстрационный набор фирмы HDL, занимающейся автоматизированными системами.

Данное устройство наглядно демонстрирует функционал систем автоматизации «Умного дома»:
  • управления светом (5 встроенных диммируемых LED ламп, 8 маленьких лампочек на каналах реле, функции датчика движения, датчика освещенности, сценарии освещения);
  • управления климатом (климатические страницы на DLP, термосенсор на DLP, управление обогревом через реле, ИК управление кондиционером, управление функциями климата с сенсорного экрана);
  • управление музыкой и видео (Z-Audio, воспроизводит музыку с SD карточки, FM тюнера или с локального входа, можно подключить к компьютерной сети, ИК управление приборами, RS232/RS485 управление сторонними приборами);
  • система безопасности (детекция движения, охранный контроллер, установка режимов с DLP и сенсорного экрана), срабатывание реле.

Также можно запрограммировать различные сочетания работы устройств благодаря наличию Логического модуля.
Читать дальше →
Total votes 6: ↑6 and ↓0 +6
Views 21K
Comments 3

Измеряем power consumption для цифровых блоков микросхемы ASIC (еще до изготовления)

Programming *Algorithms *Mathematics *FPGA *
Tutorial

В последнее время на Хабрахабр появилось много статей посвященных разработке для FPGA/ПЛИС. Это произошло как при непосредственном участии моих коллег, так и других пользователей. Видно, что такие статьи способствует популяризации этой сферы разработки и показывают, что уже есть существенный интерес к направлению разработки hardware в целом (образно называемого «железом»).

В этой статье я вступлю на практически «непаханое поле» разработки для ASIC и расскажу об одном интересном аспекте создания цифровых частей (IP-блоков) в микросхемах ASIC. Эта сфера разработки еще более узкая по сравнению с FPGA.
ASIC (application-specific integrated circuit, «интегральная схема специального назначения») — интегральная схема, специализированная для решения конкретной задачи.

Читать дальше →
Total votes 20: ↑18 and ↓2 +16
Views 7.9K
Comments 9

Функциональные языки в разработке аппаратуры

System Analysis and Design *Haskell *Functional Programming *FPGA *
Функциональные языки, как правило, не слишком подходят для низкоуровнеого программирования, хотя и применяются для кодогенерации.

Примеры проектов
генерация безопасного кода на C (используется в лаборатории Касперского) Ivory, поддержка реактивного программирования на Arduino, и так далее Atom, Ion

Но если спуститься еще ниже, на уровень аппаратуры, то неожиданно ФП оказывается очень кстати. Ведь блок комбитаторной логики не что иное, как функция из величин входящих сигналов в величины исходящих, а для последовательной логики достаточно добавить в параметры и результат старое и новое состояние.
так как же это работает
Total votes 37: ↑37 and ↓0 +37
Views 14K
Comments 20

Написание и запуск скрипта для симуляции Verilog-кода в ModelSim

FPGA *
Sandbox
Tutorial

image

Всем привет! Надеюсь, все хорошо провели праздники и готовы с новыми силами покорять высоты FPGA разработки.


Сегодня я хочу написать небольшой гайд по запуску тестбенчей на Verilog/SystemVerilog в ModelSim без использования GUI.


План будет такой:


  1. Добавление пути к ModelSim в PATH.
  2. Написание скрипта с объяснением команд.
  3. Запуск ModelSim с исполнением написанного скрипта.

Поехали!

Читать дальше →
Total votes 27: ↑26 and ↓1 +25
Views 20K
Comments 14

Такты для разработчиков

VK corporate blog Cryptography *System Analysis and Design *FPGA *Programming microcontrollers *
Translation


Если у вас есть опыт создания ПО и вы хотите познакомиться с проектированием цифровых логических схем (digital design), то одна из первых вещей, которые вам нужно понять, — это концепция тактов. Она раздражает многих программных инженеров, начинающих HDL-проектирование. Без использования тактов они могут превратить HDL в язык программирования с $display, if и циклами for, как в любом другом языке. Но при этом такты, которые новички игнорируют, — зачастую один из основополагающих элементов при проектировании любых цифровых логических схем.


Ярче всего эта проблема проявляется именно при рассмотрении первых схем, созданных начинающими HDL-разработчиками. Я недавно общался с некоторыми из них. Новички опубликовали свои вопросы на форумах, которые я читаю. Когда я проанализировал то, что они делают, от увиденного волосы встали дыбом.

Читать дальше →
Total votes 57: ↑56 and ↓1 +55
Views 22K
Comments 32

Умный многофункциональный KNX датчик Doppler motion sensor

Information Security *Gadgets Smart House IOT
image

Добрый день уважаемые гики, сегодня хотел бы рассказать Вам об одном из многофункциональны датчиков системы автоматизации зданий HDL Buspro HDL-MSOUT.4W, который кстати теперь доступен не только для протокола Buspro, но и для KNX/EIB.

Итак, перед нами микроволновый датчик, или как его еще называют датчик доплера, был разработан для размещения на открытом воздухе, у которого имеется встроенный датчик освещенности, датчик влажности, температурный датчик, кроме того он имеет сухие контакты и поддерживает функцию универсальных свитчей(переключателей).

image
Читать дальше →
Total votes 8: ↑6 and ↓2 +4
Views 5K
Comments 16

Пишем под FPGA без HDL. Сравнение высокоуровневых средств разработки

High performance *FPGA *Electronics for beginners
В последнее время производители FPGA и сторонние компании активно развивают методы разработки для FPGA, отличающиеся от привычных подходов использованием высокоуровневых средств разработки.

Являясь FPGA-разработчиком, в качестве основного инструмента я использую язык описания аппаратуры (HDL) Verilog, но растущая популярность новых методов вызвала у меня большой интерес, поэтому в данной статье я решил сам разобрать что к чему.

Эта статья — не руководство или инструкция к пользованию, это мой обзор и выводы о том, что могут дать различные высокоуровневые средства разработки FPGA-разработчику или программисту, который хочет окунуться в мир FPGA. Для того, чтобы сравнить самые интересные на мой взгляд средства разработки, я написал несколько тестов и проанализировал полученные результаты. Под катом — что из этого вышло.
Читать дальше →
Total votes 33: ↑33 and ↓0 +33
Views 15K
Comments 24

Разбираем RF-backscatter на коленке

Wireless technologies *FPGA *Manufacture and development of electronics *
Являясь крупнейшим русскоязычным агрегатором различных статей технического характера, Хабр как-то не добирает «массы» в области разработки цифровой электроники — ПЛИС/FPGA, ASIC, HDL в целом. Хотя пласт технологий в данном случае просто огромный, и я бы сказал, что требуемые знания здесь — это настоящая full-stack разработка: схемотехника, электроника, топология, цифровая логика, синтез и цифровая трассировка, прототипирование в ПЛИС, затем — схемотехника тестовых плат, а если это что-то сложнее простого регистрового управления аналоговым трактом, то еще и низкоуровневое программирование, да и без написания прикладных приложений для управления всем этим тоже по итогу не обходится.

Говорят, критикуя — предлагай, поэтому вниманию читателей предоставляется небольшой экскурс в один из рабочих проектов, а именно — оцифровка и декодирование данных в сфере пассивных RFID-HF устройств.
Читать дальше →
Total votes 26: ↑26 and ↓0 +26
Views 2.5K
Comments 4

Запуск Unix-подобной ОС на самодельном CPU с помощью самодельного компилятора C

Compilers *FPGA *Computer hardware CPU
Translation
image

Два года назад я начал работать разработчиком ПО. Иногда я рассказывал своим коллегам о студенческом проекте, которым занимался на третьем курсе университета, и они восприняли его настолько хорошо, что я решил написать этот пост1.

Позвольте задать вам вопрос: вы когда-нибудь проектировали собственную архитектуру набора команд (ISA), создавали на FPGA процессор на основе этой ISA и собирали для него компилятор? Запускали ли вы операционную систему на этом процессоре?

А у нас это получилось.

В этом посте я расскажу о своей учёбе в 2015 году, о четырёх месяцах создания самодельного CPU на самодельной архитектуре набора команд RISC, создании самодельного тулчейна C и портировании на этот процессор Unix-подобной ОС Xv6.

Процессорный эксперимент в Токийском университете


Всё это делалось в рамках студенческого экспериментального проекта под названием CPU Experiment. Давайте начнём с того, что же такое CPU experiment.
Читать дальше →
Total votes 44: ↑44 and ↓0 +44
Views 13K
Comments 12

Новостной дайджест событий из мира FPGA/ПЛИС — №007 (2020_12)

FPGA *

Здравствуйте друзья.


Продолжаем публиковать новости из мира FPGA/ПЛИС.


В 2020 опубликовано  238 новостей, запущены FPGA стримы и проведена первая отечественная FPGA конференция. Подборка за декабрь и ссылки на все упоминания под катом.



Читать дальше →
Total votes 13: ↑12 and ↓1 +11
Views 2K
Comments 1

Новостной дайджест событий из мира FPGA/ПЛИС — №008 (2021_01)

FPGA *

ПЛИСкульт привет,  FPGA  хаб. 


Мы продолжаем держать вас в курсе последних событий из мира программируемой логики и решили немного пересмотреть формат дайджеста. Мы добавили категории, чтобы было проще искать информацию. В этот выпуск мы добавили: вебинары, анонсы, статьи, стримы, вакансии и даже сделали pdf версию. Подробности по катом



Читать дальше →
Total votes 17: ↑15 and ↓2 +13
Views 2.4K
Comments 0

Проверка на эффективность генератора HDL кода из моделей Simulink, или как разрабатывался LDPC декодер стандарта DVB-T2

ЦИТМ Экспонента corporate blog Development of communication systems *Network standards *Matlab *Systems engineering *

Скорее всего кто-то из читателей уже слышал о генерации HDL кода из моделей Simulink, а также есть немало людей кто задается вопросом насколько это эффективно.

Чтобы ответить на этот вопрос, в этой статье я покажу процесс разработки в целом, который помимо генерации HDL кода, включает разработку через моделирование с оптимизацией на уровне алгоритмов и непрерывное тестирование.

Сделаю это на примере разработки LDPC декодера стандарта DVB-T2, который удалось разработать меньше чем за два месяца. Итак, начнем с описания процесса разработки, который мы использовали.

Читать далее
Total votes 6: ↑6 and ↓0 +6
Views 2.4K
Comments 0

Искусство отладки FPGA: как сократить срок тестирования за счет грамотной разработки

High performance *System Programming *Debugging *FPGA *Manufacture and development of electronics *

Давайте попробуем оптимизировать самый времязатратный этап разработки устройств на базе ПЛИС — отладку прошивки. В этой статье мы расскажем о принципе 20/80 при планировании времени, рассмотрим инструменты для отладки FPGA, вспомним Гордона Мура и Уинстона Черчилля (да-да), затроним отладку сложных распределенных систем и внешних интерфейсов, а в конце — разберемся с типичными ошибками и поделимся полезными практическими советами.

Для начала рассмотрим типовой цикл разработки и моделирования FPGA-прошивки:

Читать далее
Total votes 16: ↑16 and ↓0 +16
Views 4K
Comments 6

Как выполнить аппаратную реализацию энкодера h264, не написав ни строчки кода на VHDL/Verilog?

ЦИТМ Экспонента corporate blog Algorithms *FPGA *Programming microcontrollers *Systems engineering *

Вступление

Сжатие видео с камеры является важной задачей как при трансляции данных через сеть Интернет, так и при передаче данных через радиоканал. Это позволяет в разы сократить объем передаваемой информации при небольшой потере детализации в исходном видео. Сейчас самым популярным алгоритмом для сжатия видео является кодек h264. Хотя уже существует следующая реализация кодека – h265, но он имеет большую вычислительную сложность алгоритма и пока не нашел столь широкого применения, и его реализацию можно оставить на потом :)

Модельно-ориентированное проектирование - это что?

При разработке алгоритма для ПЛИС можно выделить два основных подхода: написать алгоритм сразу на языке описание аппаратуры VHDL/Verilog/SystemC или использовать более высокоуровневые средства проектирования. Во втором случае вначале строится эталонная модель алгоритма в MATLAB/Simulink, тестируется, верифицируется и постепенно подготавливается к автоматической генерации HDL кода из алгоритма. Конечно, мы выбрали второй вариант, т. е. наш план – на основе MATLAB кода сделать эталонную модель алгоритма Simulink, а после – адаптировать ее к автоматической генерации кода и получить HDL для ПЛИС.

Читать далее
Total votes 9: ↑9 and ↓0 +9
Views 3.9K
Comments 4

Танцы без бубнов или как я реализовал автомат на ПЛИС

ЦИТМ Экспонента corporate blog Algorithms *FPGA *Programming microcontrollers *Systems engineering *

Всем привет, дорогие хабровчане! Сегодня я хочу поделиться своей «больной» идеей реализовать калькулятор на ПЛИС на основе конечного автомата. Почему больной? Потому что уж очень мудрёно получается: всё-таки реализация автоматов на ПЛИС – дорогая практика в смысле ресурсов. Почему хочу поделиться? Потому что вишенкой на торте в этом проекте является автоматическая генерация кода с помощью такого мощного средства, как HDL Coder в MATLAB, что в купе со Stateflow очень интересно смотрится: создание железного кода на основе графического составления графа системы – ни это ли верх мечтаний разработчика, которому необходимо реализовать сложнейший граф с кучей разных переходов и условий ?!

Итак, задачу перед собой я поставил следующую: у меня есть «китайский» кит с FPGA Spartan 6 на борту и старенький клавиатурный интерфейс PS/2. Я собираюсь залить проект калькулятора-автомата на ПЛИС вместе с выбранным интерфейсом и с клавиатуры осуществлять ввод данных. Вывод результата и текущего ввода будем наблюдать на 8-ми cемисегментных дисплеях, которые также имеются на отладочной плате.

В первой части мы познакомимся с пакетом Stateflow, как собиралась модель в SIMULINK и сгенерируем HDL-описание. Во второй части мы немного скорректируем проект для получения синтезируемого HDL кода.

Читать далее
Total votes 11: ↑10 and ↓1 +9
Views 3.3K
Comments 6

Лайфхак по разработке DMR на ПЛИС через генерацию HDL-кода в MATLAB

ЦИТМ Экспонента corporate blog Development of communication systems *FPGA *Matlab *Systems engineering *
Tutorial

Однажды мне прилетела задача реализовать DMR на ПЛИС. Опустившись на дно интернета, я нашел лишь мануал ETSI и пару примеров по генерации кода – с этого начался мой тернистый путь изучения данной тематики. Недавно наткнулся на мем, и тут нахлынули воспоминания...

Читать далее
Total votes 8: ↑7 and ↓1 +6
Views 2.2K
Comments 7