#verilog — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #verilog, aggregated by home.social.
-
SPI-контроллер на FPGA: переносим на Zynq 7000. Часть 2
Продолжаем разработку SPI IP Core на Verilog. В первой части мы перенесли SPI-контроллер с Altera Cyclone IV на Zynq-7020, сохранили исходный регистровый интерфейс и добавили AXI4-Lite. Теперь задача меняется: нужно превратить работающий RTL в полноценное устройство под Linux. Во второй части соберем Block Design с PS, настроим карту адресов и прерывания, подготовим загрузочную цепочку и Device Tree, а затем подключим контроллер к стандартной SPI subsystem Linux. Здесь уже недостаточно рабочего bitstream: ошибка в ps7_init , адресах или Device Tree может сделать исправное ядро недоступным для ОС. После обычного PIO-доступа добавим потоковый тракт для больших объемов данных. Для этого появятся AXI-Stream адаптер, глубокий FIFO, backpressure и режим TX-only. По ходу разберем ошибки, которые проявляются только под нагрузкой: потерю байтов на границе FIFO, проблемы запуска DMA и устаревший результат синтеза. Финал этой части - плата самостоятельно загружает Linux, SPI работает через драйвер, а большие буферы передаются из DDR в PL через AXI DMA без побайтового участия Cortex-A9. Всем, кому интересно продолжение - добро пожаловать под кат! =)
https://habr.com/ru/companies/beget/articles/1069720/
#fpga #spi_controller #linux #buildroot #driver #dts #lcd #dma #verilog #axi
-
SPI-контроллер на FPGA: переносим на Zynq 7000. Часть 2
Продолжаем разработку SPI IP Core на Verilog. В первой части мы перенесли SPI-контроллер с Altera Cyclone IV на Zynq-7020, сохранили исходный регистровый интерфейс и добавили AXI4-Lite. Теперь задача меняется: нужно превратить работающий RTL в полноценное устройство под Linux. Во второй части соберем Block Design с PS, настроим карту адресов и прерывания, подготовим загрузочную цепочку и Device Tree, а затем подключим контроллер к стандартной SPI subsystem Linux. Здесь уже недостаточно рабочего bitstream: ошибка в ps7_init , адресах или Device Tree может сделать исправное ядро недоступным для ОС. После обычного PIO-доступа добавим потоковый тракт для больших объемов данных. Для этого появятся AXI-Stream адаптер, глубокий FIFO, backpressure и режим TX-only. По ходу разберем ошибки, которые проявляются только под нагрузкой: потерю байтов на границе FIFO, проблемы запуска DMA и устаревший результат синтеза. Финал этой части - плата самостоятельно загружает Linux, SPI работает через драйвер, а большие буферы передаются из DDR в PL через AXI DMA без побайтового участия Cortex-A9. Всем, кому интересно продолжение - добро пожаловать под кат! =)
https://habr.com/ru/companies/beget/articles/1069720/
#fpga #spi_controller #linux #buildroot #driver #dts #lcd #dma #verilog #axi
-
SPI-контроллер на FPGA: переносим на Zynq 7000. Часть 2
Продолжаем разработку SPI IP Core на Verilog. В первой части мы перенесли SPI-контроллер с Altera Cyclone IV на Zynq-7020, сохранили исходный регистровый интерфейс и добавили AXI4-Lite. Теперь задача меняется: нужно превратить работающий RTL в полноценное устройство под Linux. Во второй части соберем Block Design с PS, настроим карту адресов и прерывания, подготовим загрузочную цепочку и Device Tree, а затем подключим контроллер к стандартной SPI subsystem Linux. Здесь уже недостаточно рабочего bitstream: ошибка в ps7_init , адресах или Device Tree может сделать исправное ядро недоступным для ОС. После обычного PIO-доступа добавим потоковый тракт для больших объемов данных. Для этого появятся AXI-Stream адаптер, глубокий FIFO, backpressure и режим TX-only. По ходу разберем ошибки, которые проявляются только под нагрузкой: потерю байтов на границе FIFO, проблемы запуска DMA и устаревший результат синтеза. Финал этой части - плата самостоятельно загружает Linux, SPI работает через драйвер, а большие буферы передаются из DDR в PL через AXI DMA без побайтового участия Cortex-A9. Всем, кому интересно продолжение - добро пожаловать под кат! =)
https://habr.com/ru/companies/beget/articles/1069720/
#fpga #spi_controller #linux #buildroot #driver #dts #lcd #dma #verilog #axi
-
SPI-контроллер на FPGA: переносим на Zynq 7000. Часть 1
Продолжаем разработку SPI IP Core на Verilog. Следующий логичный этап - перенести разработанный SPI IP Core на Verilog на Xilinx Zynq-7020, который установлен на плате TZT RK-ZYNQ7020-F rev.1.1. Рядом с программируемой логикой в Zynq живёт ARM-процессор, между ними проложена шина AXI, на процессоре крутится Linux, а на плате есть дисплей, которому можно скормить готовые кадры, с часами на дисплее ST7789, которые рисуются потоком через AXI DMA. Читать статью можно и без Altera-части, всё существенное мы повторим по дороге; но если есть лишний вечер, начните с неё — увидите, откуда взялись решения, за которые нам сейчас придётся платить. Главная ценность статьи — не описание того, как «должно быть», а разбор того, почему с первого раза не получилось. Каждая нетривиальная ошибка рассказана целиком: что мы видели своими глазами, какая гипотеза казалась логичной, как проверяли, какая улика перевернула картину, где оказалась настоящая причина и какой вывод мы из этого сделали. Всем, кому интересно продолжение - добро пожаловать под кат! =)
https://habr.com/ru/companies/beget/articles/1069704/
#fpga #xilinx_zynq #spi_controller #verilog #lcd #dma #buildroot #uboot #spl
-
SPI-контроллер на FPGA: переносим на Zynq 7000. Часть 1
Продолжаем разработку SPI IP Core на Verilog. Следующий логичный этап - перенести разработанный SPI IP Core на Verilog на Xilinx Zynq-7020, который установлен на плате TZT RK-ZYNQ7020-F rev.1.1. Рядом с программируемой логикой в Zynq живёт ARM-процессор, между ними проложена шина AXI, на процессоре крутится Linux, а на плате есть дисплей, которому можно скормить готовые кадры, с часами на дисплее ST7789, которые рисуются потоком через AXI DMA. Читать статью можно и без Altera-части, всё существенное мы повторим по дороге; но если есть лишний вечер, начните с неё — увидите, откуда взялись решения, за которые нам сейчас придётся платить. Главная ценность статьи — не описание того, как «должно быть», а разбор того, почему с первого раза не получилось. Каждая нетривиальная ошибка рассказана целиком: что мы видели своими глазами, какая гипотеза казалась логичной, как проверяли, какая улика перевернула картину, где оказалась настоящая причина и какой вывод мы из этого сделали. Всем, кому интересно продолжение - добро пожаловать под кат! =)
https://habr.com/ru/companies/beget/articles/1069704/
#fpga #xilinx_zynq #spi_controller #verilog #lcd #dma #buildroot #uboot #spl
-
SPI-контроллер на FPGA: переносим на Zynq 7000. Часть 1
Продолжаем разработку SPI IP Core на Verilog. Следующий логичный этап - перенести разработанный SPI IP Core на Verilog на Xilinx Zynq-7020, который установлен на плате TZT RK-ZYNQ7020-F rev.1.1. Рядом с программируемой логикой в Zynq живёт ARM-процессор, между ними проложена шина AXI, на процессоре крутится Linux, а на плате есть дисплей, которому можно скормить готовые кадры, с часами на дисплее ST7789, которые рисуются потоком через AXI DMA. Читать статью можно и без Altera-части, всё существенное мы повторим по дороге; но если есть лишний вечер, начните с неё — увидите, откуда взялись решения, за которые нам сейчас придётся платить. Главная ценность статьи — не описание того, как «должно быть», а разбор того, почему с первого раза не получилось. Каждая нетривиальная ошибка рассказана целиком: что мы видели своими глазами, какая гипотеза казалась логичной, как проверяли, какая улика перевернула картину, где оказалась настоящая причина и какой вывод мы из этого сделали. Всем, кому интересно продолжение - добро пожаловать под кат! =)
https://habr.com/ru/companies/beget/articles/1069704/
#fpga #xilinx_zynq #spi_controller #verilog #lcd #dma #buildroot #uboot #spl
-
ao486: x86-compatible Verilog core implementing all features of a 486 SX (2014)
https://github.com/alfikpl/ao486
-
ao486: x86-compatible Verilog core implementing all features of a 486 SX (2014)
https://github.com/alfikpl/ao486
-
ao486: x86-compatible Verilog core implementing all features of a 486 SX (2014)
https://github.com/alfikpl/ao486
-
ao486: x86-compatible Verilog core implementing all features of a 486 SX (2014)
https://github.com/alfikpl/ao486
-
ao486: x86-compatible Verilog core implementing all features of a 486 SX (2014)
https://github.com/alfikpl/ao486
-
🎉 pfDevTools v2.3.0 is out! 🎉
My openFPGA dev environment is back.
Turns out 2.2.0 was very much broken in many ways after a bad refactoring but I hadn't had the chance to revisit it and fix all the bugs. It is now ALL (hopefully) FIXED!
I tested my core and the tutorials I wrote and they now all build fine.
I may be back doing some FPGA stuff soon :)
-
🎉 pfDevTools v2.3.0 is out! 🎉
My openFPGA dev environment is back.
Turns out 2.2.0 was very much broken in many ways after a bad refactoring but I hadn't had the chance to revisit it and fix all the bugs. It is now ALL (hopefully) FIXED!
I tested my core and the tutorials I wrote and they now all build fine.
I may be back doing some FPGA stuff soon :)
-
🎉 pfDevTools v2.3.0 is out! 🎉
My openFPGA dev environment is back.
Turns out 2.2.0 was very much broken in many ways after a bad refactoring but I hadn't had the chance to revisit it and fix all the bugs. It is now ALL (hopefully) FIXED!
I tested my core and the tutorials I wrote and they now all build fine.
I may be back doing some FPGA stuff soon :)
-
🎉 pfDevTools v2.3.0 is out! 🎉
My openFPGA dev environment is back.
Turns out 2.2.0 was very much broken in many ways after a bad refactoring but I hadn't had the chance to revisit it and fix all the bugs. It is now ALL (hopefully) FIXED!
I tested my core and the tutorials I wrote and they now all build fine.
I may be back doing some FPGA stuff soon :)
-
🎉 pfDevTools v2.3.0 is out! 🎉
My openFPGA dev environment is back.
Turns out 2.2.0 was very much broken in many ways after a bad refactoring but I hadn't had the chance to revisit it and fix all the bugs. It is now ALL (hopefully) FIXED!
I tested my core and the tutorials I wrote and they now all build fine.
I may be back doing some FPGA stuff soon :)
-
SPI-контроллер на FPGA: от идеи до сигналов на осциллографе
Откройте любой учебный материал по FPGA. С вероятностью девяносто процентов он закончится мигающим светодиодом, бегущей строкой на семисегментнике или, в лучшем случае, генератором VGA-сигнала с цветными полосами. Это нормальные учебные задачи, но у них есть общее свойство, о котором редко говорят вслух: они работают сразу или не работают совсем . Прошили — мигает. Не мигает — перепроверили три строчки кода, нашли опечатку, мигает. Реальная инженерная работа с ПЛИС устроена иначе. Реальная задача — это когда ваша микросхема должна разговаривать с другой микросхемой по протоколу, у которого есть спецификация на сорок страниц, четыре режима тактирования и подводные камни в каждом втором абзаце даташита. Когда «вроде работает» — это худший из возможных результатов, потому что «вроде» означает «упадёт у заказчика». И когда между «код написан» и «устройство работает» лежат недели верификации и отладки. Эта статья - следующий шаг в моем обучении и попытка показать полный путь: от фразы "нам нужен SPI-контроллер" до момента, когда логический анализатор показывает красивые пачки импульсов на ножках кристалла. Здесь будут не только архитектурные решения и листинги, но и все ошибки, которые были сделаны по дороге : testbench, который врал, потому что master и slave-модель содержали один и тот же баг; гонка на один такт, из-за которой тест прерываний падал при исправном железе; и финальный детектив — прошивка, в которой SPI-сигналы честно генерировались... на других ножках, потому что файл назначения пинов на диске оказался не тем, который мы правили. Каждая такая история — это методика: симптом, гипотеза, эксперимент, причина, фикс.
https://habr.com/ru/companies/beget/articles/1058954/
#SPI #SPI_Master_Controller #Verilog #Altera #FIFO #Custom_IP_Core #XPT2046
-
SPI-контроллер на FPGA: от идеи до сигналов на осциллографе
Откройте любой учебный материал по FPGA. С вероятностью девяносто процентов он закончится мигающим светодиодом, бегущей строкой на семисегментнике или, в лучшем случае, генератором VGA-сигнала с цветными полосами. Это нормальные учебные задачи, но у них есть общее свойство, о котором редко говорят вслух: они работают сразу или не работают совсем . Прошили — мигает. Не мигает — перепроверили три строчки кода, нашли опечатку, мигает. Реальная инженерная работа с ПЛИС устроена иначе. Реальная задача — это когда ваша микросхема должна разговаривать с другой микросхемой по протоколу, у которого есть спецификация на сорок страниц, четыре режима тактирования и подводные камни в каждом втором абзаце даташита. Когда «вроде работает» — это худший из возможных результатов, потому что «вроде» означает «упадёт у заказчика». И когда между «код написан» и «устройство работает» лежат недели верификации и отладки. Эта статья - следующий шаг в моем обучении и попытка показать полный путь: от фразы "нам нужен SPI-контроллер" до момента, когда логический анализатор показывает красивые пачки импульсов на ножках кристалла. Здесь будут не только архитектурные решения и листинги, но и все ошибки, которые были сделаны по дороге : testbench, который врал, потому что master и slave-модель содержали один и тот же баг; гонка на один такт, из-за которой тест прерываний падал при исправном железе; и финальный детектив — прошивка, в которой SPI-сигналы честно генерировались... на других ножках, потому что файл назначения пинов на диске оказался не тем, который мы правили. Каждая такая история — это методика: симптом, гипотеза, эксперимент, причина, фикс.
https://habr.com/ru/companies/beget/articles/1058954/
#SPI #SPI_Master_Controller #Verilog #Altera #FIFO #Custom_IP_Core #XPT2046
-
SPI-контроллер на FPGA: от идеи до сигналов на осциллографе
Откройте любой учебный материал по FPGA. С вероятностью девяносто процентов он закончится мигающим светодиодом, бегущей строкой на семисегментнике или, в лучшем случае, генератором VGA-сигнала с цветными полосами. Это нормальные учебные задачи, но у них есть общее свойство, о котором редко говорят вслух: они работают сразу или не работают совсем . Прошили — мигает. Не мигает — перепроверили три строчки кода, нашли опечатку, мигает. Реальная инженерная работа с ПЛИС устроена иначе. Реальная задача — это когда ваша микросхема должна разговаривать с другой микросхемой по протоколу, у которого есть спецификация на сорок страниц, четыре режима тактирования и подводные камни в каждом втором абзаце даташита. Когда «вроде работает» — это худший из возможных результатов, потому что «вроде» означает «упадёт у заказчика». И когда между «код написан» и «устройство работает» лежат недели верификации и отладки. Эта статья - следующий шаг в моем обучении и попытка показать полный путь: от фразы "нам нужен SPI-контроллер" до момента, когда логический анализатор показывает красивые пачки импульсов на ножках кристалла. Здесь будут не только архитектурные решения и листинги, но и все ошибки, которые были сделаны по дороге : testbench, который врал, потому что master и slave-модель содержали один и тот же баг; гонка на один такт, из-за которой тест прерываний падал при исправном железе; и финальный детектив — прошивка, в которой SPI-сигналы честно генерировались... на других ножках, потому что файл назначения пинов на диске оказался не тем, который мы правили. Каждая такая история — это методика: симптом, гипотеза, эксперимент, причина, фикс.
https://habr.com/ru/companies/beget/articles/1058954/
#SPI #SPI_Master_Controller #Verilog #Altera #FIFO #Custom_IP_Core #XPT2046
-
Как защитить железку от Китайцев, если вы им передаете всю производственную документацию?
Отдавая контрактному производству полный комплект Gerber-файлов и оригинальных прошивок, разработчик часто рискует столкнуться с «атакой третьей смены» — бесконтрольным выпуском нелегальных клонов устройства. Есть ли варианты защиты? Казалось бы, нет, однако... Есть... физика кремния, физически неклонируемые микродефекты кремния (PUF) и неповторимость литографии внутри FPGA. И это можно использовать как уникальный отпечаток устройства. В этой статье я расскажу, как заставить наноструктурные особенности FPGA работать на безопасность вашего бизнеса, построить отказоустойчивую схему «Кристалл — Сервер» и жестко наказывать "не честного" производителя с помощью отложенного аппаратного саботажа.
https://habr.com/ru/articles/1060346/
#fpga #puf #hardware_security #verilog #защита_от_копирования #криптография #контрактное_производство #ring_oscillator
-
Как защитить железку от Китайцев, если вы им передаете всю производственную документацию?
Отдавая контрактному производству полный комплект Gerber-файлов и оригинальных прошивок, разработчик часто рискует столкнуться с «атакой третьей смены» — бесконтрольным выпуском нелегальных клонов устройства. Есть ли варианты защиты? Казалось бы, нет, однако... Есть... физика кремния, физически неклонируемые микродефекты кремния (PUF) и неповторимость литографии внутри FPGA. И это можно использовать как уникальный отпечаток устройства. В этой статье я расскажу, как заставить наноструктурные особенности FPGA работать на безопасность вашего бизнеса, построить отказоустойчивую схему «Кристалл — Сервер» и жестко наказывать "не честного" производителя с помощью отложенного аппаратного саботажа.
https://habr.com/ru/articles/1060346/
#fpga #puf #hardware_security #verilog #защита_от_копирования #криптография #контрактное_производство #ring_oscillator
-
Как защитить железку от Китайцев, если вы им передаете всю производственную документацию?
Отдавая контрактному производству полный комплект Gerber-файлов и оригинальных прошивок, разработчик часто рискует столкнуться с «атакой третьей смены» — бесконтрольным выпуском нелегальных клонов устройства. Есть ли варианты защиты? Казалось бы, нет, однако... Есть... физика кремния, физически неклонируемые микродефекты кремния (PUF) и неповторимость литографии внутри FPGA. И это можно использовать как уникальный отпечаток устройства. В этой статье я расскажу, как заставить наноструктурные особенности FPGA работать на безопасность вашего бизнеса, построить отказоустойчивую схему «Кристалл — Сервер» и жестко наказывать "не честного" производителя с помощью отложенного аппаратного саботажа.
https://habr.com/ru/articles/1060346/
#fpga #puf #hardware_security #verilog #защита_от_копирования #криптография #контрактное_производство #ring_oscillator
-
@azonenberg well, I remember being very pleased that it means you can do this to flip a filename extension between two options.
logic [999:0] filename;
....
filename ^= ".hex" ^ ".bin"; -
@azonenberg well, I remember being very pleased that it means you can do this to flip a filename extension between two options.
logic [999:0] filename;
....
filename ^= ".hex" ^ ".bin"; -
@azonenberg well, I remember being very pleased that it means you can do this to flip a filename extension between two options.
logic [999:0] filename;
....
filename ^= ".hex" ^ ".bin"; -
@azonenberg well, I remember being very pleased that it means you can do this to flip a filename extension between two options.
logic [999:0] filename;
....
filename ^= ".hex" ^ ".bin"; -
@azonenberg well, I remember being very pleased that it means you can do this to flip a filename extension between two options.
logic [999:0] filename;
....
filename ^= ".hex" ^ ".bin"; -
Как обучить школьников работать в группах проектирования с помощью многоплатных проектов
Во время Холодной Войны существовало клише что якобы в США все индивидуалисты, а в СССР - коллективисты. С клише была неувязочка: в тот же период американский гуру менеджмента Питер Друкер писал одну за одной толстые книги, как организовывать работу коллективов людей в больших корпорациях. Его книги подхватили японцы, которые быстро применили идеи Друкера в своих компаниях и вышибли американцев из рынков микросхем памяти, бытовой электроники и автомобилей. Даже менеджер моего менеджера, китаец в корейской компании, подарил мне книжку Друкера на позапрошлое рождество. Коллектив разработки в электронной компании - это двухмерная структура. С одной стороны, есть отделы: архитектуры, моделирования, логического проектирования, верификации, физического проектирования, post-silicon отладки итд. С другой стороны, каждый компонент (процессор, графический процессор, сетевой чип) состоит из пары десятков блоков, и вокруг каждого блока есть небольшие группы по пять-семь человек из всех этих отделов. Можно попробовать дать школьникам представление о том, как выглядит совместная разработка и отладка с помощью проекта на нескольких макетных платах с микросхемами малой степени интеграции. А потом перенести это на SystemVerilog и FPGA платы. Например вот такого: сделать сумматор чисел бесконечной разрядности:
https://habr.com/ru/articles/1059966/
#cmos_4000 #fpga #verilog #hacker_dojo #обучение_школьников #7400 #разработка_микросхем #technology_showcase #mountain_view #silicon_valley
-
Как обучить школьников работать в группах проектирования с помощью многоплатных проектов
Во время Холодной Войны существовало клише что якобы в США все индивидуалисты, а в СССР - коллективисты. С клише была неувязочка: в тот же период американский гуру менеджмента Питер Друкер писал одну за одной толстые книги, как организовывать работу коллективов людей в больших корпорациях. Его книги подхватили японцы, которые быстро применили идеи Друкера в своих компаниях и вышибли американцев из рынков микросхем памяти, бытовой электроники и автомобилей. Даже менеджер моего менеджера, китаец в корейской компании, подарил мне книжку Друкера на позапрошлое рождество. Коллектив разработки в электронной компании - это двухмерная структура. С одной стороны, есть отделы: архитектуры, моделирования, логического проектирования, верификации, физического проектирования, post-silicon отладки итд. С другой стороны, каждый компонент (процессор, графический процессор, сетевой чип) состоит из пары десятков блоков, и вокруг каждого блока есть небольшие группы по пять-семь человек из всех этих отделов. Можно попробовать дать школьникам представление о том, как выглядит совместная разработка и отладка с помощью проекта на нескольких макетных платах с микросхемами малой степени интеграции. А потом перенести это на SystemVerilog и FPGA платы. Например вот такого: сделать сумматор чисел бесконечной разрядности:
https://habr.com/ru/articles/1059966/
#cmos_4000 #fpga #verilog #hacker_dojo #обучение_школьников #7400 #разработка_микросхем #technology_showcase #mountain_view #silicon_valley
-
Как обучить школьников работать в группах проектирования с помощью многоплатных проектов
Во время Холодной Войны существовало клише что якобы в США все индивидуалисты, а в СССР - коллективисты. С клише была неувязочка: в тот же период американский гуру менеджмента Питер Друкер писал одну за одной толстые книги, как организовывать работу коллективов людей в больших корпорациях. Его книги подхватили японцы, которые быстро применили идеи Друкера в своих компаниях и вышибли американцев из рынков микросхем памяти, бытовой электроники и автомобилей. Даже менеджер моего менеджера, китаец в корейской компании, подарил мне книжку Друкера на позапрошлое рождество. Коллектив разработки в электронной компании - это двухмерная структура. С одной стороны, есть отделы: архитектуры, моделирования, логического проектирования, верификации, физического проектирования, post-silicon отладки итд. С другой стороны, каждый компонент (процессор, графический процессор, сетевой чип) состоит из пары десятков блоков, и вокруг каждого блока есть небольшие группы по пять-семь человек из всех этих отделов. Можно попробовать дать школьникам представление о том, как выглядит совместная разработка и отладка с помощью проекта на нескольких макетных платах с микросхемами малой степени интеграции. А потом перенести это на SystemVerilog и FPGA платы. Например вот такого: сделать сумматор чисел бесконечной разрядности:
https://habr.com/ru/articles/1059966/
#cmos_4000 #fpga #verilog #hacker_dojo #обучение_школьников #7400 #разработка_микросхем #technology_showcase #mountain_view #silicon_valley
-
-
-
-
-
-
I built a browser IDE that runs real open-source EDA tools. Write VHDL or SystemVerilog, hit run: GHDL/Icarus simulates it, Yosys synthesizes it, and you see the waveform and the netlist cell by cell. No install.
Free fundamentals curriculum + engineering-flavored challenges, and a playground.
-
Lua-programmable ELM11-Feather board puts Gowin GW1NR FPGA into Feather form factor (Crowdfunding)
-
Which Verilog TMDS encoding library do you recommend that I use on the Ice Pi Zero? Here is my review of the options.
-
Which Verilog TMDS encoding library do you recommend that I use on the Ice Pi Zero? Here is my review of the options.
-
Which Verilog TMDS encoding library do you recommend that I use on the Ice Pi Zero? Here is my review of the options.
-
Because of historic compatibility reasons, I sort of ended up rewriting a subset of #Microblaze-compatible core for synthesising on tight corners inside Lattice's ICE40/ECP5 #FPGA:s.
It's in #Verilog with some #LiterateProgramming preprocessing. Userspace (and I/O+interrupt support) only. Explicit support for combining code and data bus, optionally for 8-bit memory access (as in HyperRAM), or for synthesising instruction memory as block RAM, optionally with a secondary debug interface. Explicit support for resetting the core without resetting the whole FPGA. AXI-like, Wishbone-compliant, and serial I/O support, and I/O-mappable interrupt support. The register file can be pared down. Arithmetics can be divided up into chunks of a parametrically specified size, all the way down to bit-serial if need be, and slow-but-smol microcoded multiplication and division are optionally available. Some optional extensions for fixed-point transcendental calculations were originally planned, but right now, only binary logarithms and CORDIC are ready.
The original commercial interest in it is likely to go away in the near future. Would there be interest in a GPL release of this sort of thing?
This is not at all the sort of context that MicroBlaze was originally designed for, even in the Xilinx world, and I'm not sure that the specific backwards compatibility reasons exist outside this particular niche (=> I would probably not be doing maintenance work on the core after release without a good $€parate r€a$on), but if you have a use case that might match something like these criteria, please let me know.
(Obligatory LBNL: only deterministic automation was used in writing this code. GenAI has not touched any part of it.)
-
Because of historic compatibility reasons, I sort of ended up rewriting a subset of #Microblaze-compatible core for synthesising on tight corners inside Lattice's ICE40/ECP5 #FPGA:s.
It's in #Verilog with some #LiterateProgramming preprocessing. Userspace (and I/O+interrupt support) only. Explicit support for combining code and data bus, optionally for 8-bit memory access (as in HyperRAM), or for synthesising instruction memory as block RAM, optionally with a secondary debug interface. Explicit support for resetting the core without resetting the whole FPGA. AXI-like, Wishbone-compliant, and serial I/O support, and I/O-mappable interrupt support. The register file can be pared down. Arithmetics can be divided up into chunks of a parametrically specified size, all the way down to bit-serial if need be, and slow-but-smol microcoded multiplication and division are optionally available. Some optional extensions for fixed-point transcendental calculations were originally planned, but right now, only binary logarithms and CORDIC are ready.
The original commercial interest in it is likely to go away in the near future. Would there be interest in a GPL release of this sort of thing?
This is not at all the sort of context that MicroBlaze was originally designed for, even in the Xilinx world, and I'm not sure that the specific backwards compatibility reasons exist outside this particular niche (=> I would probably not be doing maintenance work on the core after release without a good $€parate r€a$on), but if you have a use case that might match something like these criteria, please let me know.
(Obligatory LBNL: only deterministic automation was used in writing this code. GenAI has not touched any part of it.)
-
Because of historic compatibility reasons, I sort of ended up rewriting a subset of #Microblaze-compatible core for synthesising on tight corners inside Lattice's ICE40/ECP5 #FPGA:s.
It's in #Verilog with some #LiterateProgramming preprocessing. Userspace (and I/O+interrupt support) only. Explicit support for combining code and data bus, optionally for 8-bit memory access (as in HyperRAM), or for synthesising instruction memory as block RAM, optionally with a secondary debug interface. Explicit support for resetting the core without resetting the whole FPGA. AXI-like, Wishbone-compliant, and serial I/O support, and I/O-mappable interrupt support. The register file can be pared down. Arithmetics can be divided up into chunks of a parametrically specified size, all the way down to bit-serial if need be, and slow-but-smol microcoded multiplication and division are optionally available. Some optional extensions for fixed-point transcendental calculations were originally planned, but right now, only binary logarithms and CORDIC are ready.
The original commercial interest in it is likely to go away in the near future. Would there be interest in a GPL release of this sort of thing?
This is not at all the sort of context that MicroBlaze was originally designed for, even in the Xilinx world, and I'm not sure that the specific backwards compatibility reasons exist outside this particular niche (=> I would probably not be doing maintenance work on the core after release without a good $€parate r€a$on), but if you have a use case that might match something like these criteria, please let me know.
(Obligatory LBNL: only deterministic automation was used in writing this code. GenAI has not touched any part of it.)
-
Because of historic compatibility reasons, I sort of ended up rewriting a subset of #Microblaze-compatible core for synthesising on tight corners inside Lattice's ICE40/ECP5 #FPGA:s.
It's in #Verilog with some #LiterateProgramming preprocessing. Userspace (and I/O+interrupt support) only. Explicit support for combining code and data bus, optionally for 8-bit memory access (as in HyperRAM), or for synthesising instruction memory as block RAM, optionally with a secondary debug interface. Explicit support for resetting the core without resetting the whole FPGA. AXI-like, Wishbone-compliant, and serial I/O support, and I/O-mappable interrupt support. The register file can be pared down. Arithmetics can be divided up into chunks of a parametrically specified size, all the way down to bit-serial if need be, and slow-but-smol microcoded multiplication and division are optionally available. Some optional extensions for fixed-point transcendental calculations were originally planned, but right now, only binary logarithms and CORDIC are ready.
The original commercial interest in it is likely to go away in the near future. Would there be interest in a GPL release of this sort of thing?
This is not at all the sort of context that MicroBlaze was originally designed for, even in the Xilinx world, and I'm not sure that the specific backwards compatibility reasons exist outside this particular niche (=> I would probably not be doing maintenance work on the core after release without a good $€parate r€a$on), but if you have a use case that might match something like these criteria, please let me know.
(Obligatory LBNL: only deterministic automation was used in writing this code. GenAI has not touched any part of it.)
-
Because of historic compatibility reasons, I sort of ended up rewriting a subset of #Microblaze-compatible core for synthesising on tight corners inside Lattice's ICE40/ECP5 #FPGA:s.
It's in #Verilog with some #LiterateProgramming preprocessing. Userspace (and I/O+interrupt support) only. Explicit support for combining code and data bus, optionally for 8-bit memory access (as in HyperRAM), or for synthesising instruction memory as block RAM, optionally with a secondary debug interface. Explicit support for resetting the core without resetting the whole FPGA. AXI-like, Wishbone-compliant, and serial I/O support, and I/O-mappable interrupt support. The register file can be pared down. Arithmetics can be divided up into chunks of a parametrically specified size, all the way down to bit-serial if need be, and slow-but-smol microcoded multiplication and division are optionally available. Some optional extensions for fixed-point transcendental calculations were originally planned, but right now, only binary logarithms and CORDIC are ready.
The original commercial interest in it is likely to go away in the near future. Would there be interest in a GPL release of this sort of thing?
This is not at all the sort of context that MicroBlaze was originally designed for, even in the Xilinx world, and I'm not sure that the specific backwards compatibility reasons exist outside this particular niche (=> I would probably not be doing maintenance work on the core after release without a good $€parate r€a$on), but if you have a use case that might match something like these criteria, please let me know.
(Obligatory LBNL: only deterministic automation was used in writing this code. GenAI has not touched any part of it.)
-
MLIR-to-RTL simulation flow: от linalg.matmul до systolic array
Привет! Хотел бы рассказать о своем MVP проекта hw-mlir-lab , где я использую MLIR для lowering операции умножения матриц ( matmul ) на systolic array, который я симулирую в Verilator.
https://habr.com/ru/articles/1045754/
#MLIR #verilog #verilator #rtl #asic #asic_design #compiler #hardware_acceleration #system_on_chip
-
MLIR-to-RTL simulation flow: от linalg.matmul до systolic array
Привет! Хотел бы рассказать о своем MVP проекта hw-mlir-lab , где я использую MLIR для lowering операции умножения матриц ( matmul ) на systolic array, который я симулирую в Verilator.
https://habr.com/ru/articles/1045754/
#MLIR #verilog #verilator #rtl #asic #asic_design #compiler #hardware_acceleration #system_on_chip
-
MLIR-to-RTL simulation flow: от linalg.matmul до systolic array
Привет! Хотел бы рассказать о своем MVP проекта hw-mlir-lab , где я использую MLIR для lowering операции умножения матриц ( matmul ) на systolic array, который я симулирую в Verilator.
https://habr.com/ru/articles/1045754/
#MLIR #verilog #verilator #rtl #asic #asic_design #compiler #hardware_acceleration #system_on_chip
-
Создаем I2C Master Controller на Verilog. Перенос на Zynq 7000 (bare-metal)
После успешной отладки на плате с Cyclone IV пришла пора перенести наработки на плату Zynq Mini c XC7Z020. В этой статье я опишу, каким образом можно организовать вывод нужной нам информации из PS-части Zynq на дисплей который подключен к EMIO на выводах PL. Сделаем обновленный модуль i2c_master_axi который добавляет сверху к уже разработанному ядру поддержку AXI4-Lite Slave, сделаем сборку проекта, подключим их к PS и проверим в bare-metal сценарии. После того как это будет все работать - переходить к Linux уже будет гораздо проще. Всем заинтересованным добро пожаловать под кат!
https://habr.com/ru/companies/beget/articles/1037124/
#zynq7000 #zynqmini #oled #ssd1306 #verilog #baremetal #tutorial #vivado #vitis
-
Создаем I2C Master Controller на Verilog. Перенос на Zynq 7000 (bare-metal)
После успешной отладки на плате с Cyclone IV пришла пора перенести наработки на плату Zynq Mini c XC7Z020. В этой статье я опишу, каким образом можно организовать вывод нужной нам информации из PS-части Zynq на дисплей который подключен к EMIO на выводах PL. Сделаем обновленный модуль i2c_master_axi который добавляет сверху к уже разработанному ядру поддержку AXI4-Lite Slave, сделаем сборку проекта, подключим их к PS и проверим в bare-metal сценарии. После того как это будет все работать - переходить к Linux уже будет гораздо проще. Всем заинтересованным добро пожаловать под кат!
https://habr.com/ru/companies/beget/articles/1037124/
#zynq7000 #zynqmini #oled #ssd1306 #verilog #baremetal #tutorial #vivado #vitis