Как бы потихонечку освоить работу с FPGA

Печатные платы, программируемая логика, разработка и изготовление аппаратуры

Moderator: Shaos

User avatar
Lavr
Supreme God
Posts: 16793
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Starting with FPGA

Post by Lavr »

Shaos wrote:Вот ещё вам фпгашной нестандартности:

Image

Image
Здесь подробное описание этого изделия:
Xyloni - Отладочная плата на ПЛИС Efinix Trion T8
Xy52947048.jpg
И вот здесь на эту тему материал есть:
Welcome to the Xyloni® Development Kit Github repo
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Shaos
Admin
Posts: 24402
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Starting with FPGA

Post by Shaos »

Цитата из статьи:
Особенности
  • ПЛИС Efinix® T8F81C2 в 81-шариковом корпусе FineLine BGA
  • 128 Мбит SPI или флэш-память
  • Выделенный интерфейс UART через micro-USB type B
  • 41-контактный высокоскоростной разъем для пользовательского ввода-вывода
  • 12-контактный PMOD-совместимый разъем GPIO
  • Слоты для карт Micro-SD
  • 4 пользовательских светодиода и 2 пользовательских кнопочных переключателя
  • Генератор 33.33 МГц
  • Выбираемые пользователем напряжения от 1,8 в, 2,5 В и 3,3 В
You do not have the required permissions to view the files attached to this post.
User avatar
Shaos
Admin
Posts: 24402
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Starting with FPGA

Post by Shaos »

Ой, а слот Micro-SD я как-то и не заметил :)
User avatar
FizikS
Maniac
Posts: 290
Joined: 11 Oct 2018 00:52
Location: г. Клинцы, Брянская обл.

Re: Starting with FPGA

Post by FizikS »

Знатоки, подскажите: имеются ли средства визуальной разработки для FPGA. т.е. рисуем схему, потом компилируем из нее прошивку?
User avatar
Shaos
Admin
Posts: 24402
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Starting with FPGA

Post by Shaos »

Ну дык схемный ввод - в родных средах разработки от Альтеры (для Альтеры) и у Xilinx (для Xilinx) оно было

P.S. Перенёс тему в Hardware, как собственно и хотел изначально да заодно переименовал заголовок по русски...
User avatar
FizikS
Maniac
Posts: 290
Joined: 11 Oct 2018 00:52
Location: г. Клинцы, Брянская обл.

Re: Как бы потихонечку освоить работу с FPGA

Post by FizikS »

Спасибо, попробую...
Нужно не отставать от прогресса.
belfegor96
Senior
Posts: 106
Joined: 09 Jun 2022 00:49

Re: Как бы потихонечку освоить работу с FPGA

Post by belfegor96 »

А подскажите по HDL?

Вот я процессор проектирую, в нём будет машина состояний (конечный автомат). Устроен он просто: несколько флип-флопов обозначают конкретное состояние и автомат может переключаться в другие состояния согласно комбинационной логике, зависящей от этих флип-флопов и других факторов. То есть, всё обычно, как я понимаю, именно так их и делают.

И так получается по логике работы процессора, что в каждом состоянии автомата делается много нужных, но не связанных между собой по смыслу вещей. Например, в некоторых стадиях его работы сбрасывается АЛУ чтобы начать считать (АЛУ 4-битый, поэтому чтобы обсчитать слово происходит цикл, который требует предварительной инициализации). При этом в этой же стадии происходит сохранение каких-то данных, полученных на предыдущем состоянии (не связанных с АЛУ). Всё это приводит как запутанности кода и ошибкам.

Вопрос: как такое грамотно организовывать в коде? Как тестировать?

Пока предполагаю (но не уверен) что надо бы сделать несколько параллельных конечных автоматов, у которых будут совпадать значения некоторых состояний. Тогда можно будет по смыслу разбить деятельность по разным модулям.
User avatar
Shaos
Admin
Posts: 24402
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Как бы потихонечку освоить работу с FPGA

Post by Shaos »

Надо мыслить на верилоге (или сразу на SystemVerilog, который ещё более универсальный), предоставляющем несколько стандартных подходов программирования, которые все используют - сразу иметь ввиду, что будет общее тактирование, и что будут регистры, которые защёлкивают новое состяние в каждом такте и т.д. При этом всякие процессоры и многоуровневые конвейеры строятся легко и непринуждённо...
belfegor96
Senior
Posts: 106
Joined: 09 Jun 2022 00:49

Re: Как бы потихонечку освоить работу с FPGA

Post by belfegor96 »

Shaos wrote:Надо мыслить на верилоге (или сразу на SystemVerilog, который ещё более универсальный), предоставляющем несколько стандартных подходов программирования, которые все используют - сразу иметь ввиду, что будет общее тактирование, и что будут регистры, которые защёлкивают новое состяние в каждом такте и т.д. При этом всякие процессоры и многоуровневые конвейеры строятся легко и непринуждённо...
У меня нет конвееров, все стадии зависимы между собой. Это одна из причин этой сложности. Пишу на SystemVerilog

С другой стороны, непонятно также как тестировать правильность переходов по состояниям (покрытие). Сейчас есть только общий тест всех команд ну и вскоре подключу уже исполнение бинарников из файлов
User avatar
Shaos
Admin
Posts: 24402
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Как бы потихонечку освоить работу с FPGA

Post by Shaos »

Я когда свой RISC-V городил 5 лет назад (с конвейером в 1.5 ступени), то чисто по программистки всё компилировал через Verilator и нахлобучивал на это свой тестовый код, написанный на родимом C++ :lol:

А "настоящие железячники" прям на том же верилоге (да даже и на VHDL) городят тесты...
belfegor96
Senior
Posts: 106
Joined: 09 Jun 2022 00:49

Re: Как бы потихонечку освоить работу с FPGA

Post by belfegor96 »

Shaos wrote:Я когда свой RISC-V городил 5 лет назад (с конвейером в 1.5 ступени), то чисто по программистки всё компилировал через Verilator и нахлобучивал на это свой тестовый код, написанный на родимом C++ :lol:

А "настоящие железячники" прям на том же верилоге (да даже и на VHDL) городят тесты...
О, значит я настоящий :-)

Просто не понял как ещё там можно тесты сделать внешние на С++. Делаю "как по книжке" - получается. Кроме beans (накопления заходов) и ещё каких-то мелочей - верилятор этого не умеет

(Код покажу когда полностью заработает)
Last edited by belfegor96 on 02 Mar 2024 15:11, edited 1 time in total.
User avatar
Shaos
Admin
Posts: 24402
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Как бы потихонечку освоить работу с FPGA

Post by Shaos »

Я не настоящий, поэтому я по старинке на C++ тесты клепаю :roll:
User avatar
Lavr
Supreme God
Posts: 16793
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Starting with FPGA

Post by Lavr »

Vic3Dexe wrote: 11 Apr 2017 21:38
Lavr wrote: 11 Apr 2017 15:43Вопрос как раз связан с этим - влезет/не влезет: я хочу запихать в эту CPLD свой 4-bit Processor,
но пока не имею достаточно опыта и в сомнениях - влезет/не влезет?
Эээ... Так навскидку никто не скажет. :wink:
В общем сомнения по-прежнему одолевают, ибо решил я для начала прошить чей-либо готовый вариант процессора, чтобы наглядно посмотреть предметно, во сколько ячеек проект упаковывается, и что на это влияет.

Обычно народ по мотивам 6502 процессоры пишет - с корректными таймингами и без оных...
Но пока у меня ни один проект в мою ПЛИС не уместился... :-?

И я решил пойти опытным путём - самому проверить как и что компилирует пакет САПР.

С этой целью вот такой дешифратор 4-в-16 (урезанный аналог 74154):

 СХЕМА ДЕШИФРАТОРА
de74154.png

я слепил схемотехническим дизайном, таблицей и на Verilog HDL.

И, честно говоря, результат получился такой, который я подспудно ожидал, но до конца уверен не был:
во всех трёх случаях пакет САПР скомпилировал практически одинаковый результат: 6% ПЛИС занято, количество LUT совершенно одинаково.

Получается, при корректной схемотехнике разницы между дизайнами фактически нет...

Прилагаю архив проекта, вдруг какому начинающему либо студню пригодится:
DECODER.zip

P.S. Пока занимался аналогами 6502, нашел проект, сделанный одним нашим коллегой:
https://neurofox.ru/project/p_6502/v1_about
Возможно, это не самый "фонтанистый фонтан", но мне понравилось, что он толково
пояснил всё в своём проекте: что и зачем написано.
You do not have the required permissions to view the files attached to this post.
iLavr
imsushka
Maniac
Posts: 304
Joined: 01 Jan 2022 04:34
Location: USSR, Tashkent

Re: Starting with FPGA

Post by imsushka »

Lavr wrote: 30 Oct 2025 04:20
влезет / не влезет

берется с сайта интеля (или с рутрекера) квартус 9 или 13. смотря какие еще микрухи нужно поддерживать.
и просто компилицца проект. на выходе черным по белому, зелеными буквами написанно : Total macrocell xxx/256

прошивать не обязательно.
я компилю и дальше смотрю RTL viewer . то бишь схему.

а потом иду в говин иде. и там компилю и потом прошиваю. и прошиваю просто в sram. 1000 прошивок я точно уже сделал.
User avatar
Lavr
Supreme God
Posts: 16793
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Starting with FPGA

Post by Lavr »

imsushka wrote: 30 Oct 2025 05:28
Lavr wrote: 30 Oct 2025 04:20 влезет / не влезет
берется с сайта интеля (или с рутрекера) квартус 9 или 13. смотря какие еще микрухи нужно поддерживать.
и просто компилицца проект. на выходе черным по белому, зелеными буквами написанно : Total macrocell xxx/256
Спасибо, о добрый Капитан Очевидность... :wink:
И Квартус у меня есть, и как говорит один мой знакомый телемастер:"и мы знаем, как троллейбус работает, вот только не поймём, как бензин по проводам течёт..." :obye:

Но во-первых, Квартус не поддерживал ПЛИС, в которые я пытаюсь упихать процессор, уже на момент открытия этого топика.
Поэтому я купил тогда две кучки ПЛИС - FPGA под Квартус и CPLD под MAX+Plus II, чтобы хотя бы один вариант был рабочим.
СПАСИБО ВСЕМ КОНСУЛЬТАНТАМ - рабочими оказались оба варианта. :kruto:

Во-вторых, в возрасте, когда при Брежневе уходили на пенсию, я несколько иначе стал относиться к собственному времени.
Меня совершенно не возбуждает перспектива потратить время на проект и узнать, что он не лезет в мою CPLD.
Тем более, что есть некий фактор неопределённости: беру чужой проект, по ячейкам автора в мою CPLD он должен примерно войти даже с запасом, а при компиляции оба пакета САПР пишут, что не лезет! :roll:
http://www.nedopc.org/forum/viewtopic.php?p=165910#p165910

Вот я и пытаюсь на собственном опыте выяснить: от чего это зависит.
iLavr