Самая дешёвая "оценочная плата" с ПЛИС Xilinx Spartan-6 на AliExpress обойдётся в ровно 3000р.

У неё есть один плюс - все выводы разведены на "гребёнки", имеется единственная кнопка и три светодиода. К сожалению, USB используется только для питания.
Благодаря устойчивому развитию технического прогресса очередному колебанию курса BTC на свалку отправились очередные партии Асик-Майнеров, теперь это "Авалоны" 800й серии фирмы Canaan. Платы от них (Авалон 841) можно раздобыть за 200-400 р. Вот о них и пойдёт речь в статье.
По сравнению с "отладкой" за 3000, есть один недостаток - на плате разведено на гребёнки меньшее количество выводов микросхемы. И ещё кнопка не припаяна. На этом список недостатков "всё".
Хватит разглагольствовать! К делу! По DIY традиции давайте помигаем светодиодом!

Для начала надо приобрести плату , а также обзавестись JTAG программатором



ПЛИС, он же FPGA

Нужно припаять 6 контактную "гребёнку" для JTAG и 2-х контактную для питания платы (5-14В)
Подать питание и убедиться, что огоньки загорелись (там их три маленьких - led 2,3,4 и один большой трёхцветный LED1), а не пошёл дым.
Теперь надо установить софт!
Его можно загрузить "прямо с сайта Xilinx" :-) .

Работает на виндовс 10, надо только следовать рекомендациям
Когда ПО будет установлено, запустим PlanAhead

И создадим новый проект





Next>


Надо выбрать наш "камень"

Spartan-6 , 24 051 логических ячеек, 256 выводов

Приступим к оформлению кода

Редактируем верилог файл, сначала всё стираем
И добавляем код:
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 22.05.2022 01:51:54
// Design Name:
// Module Name: pl_blink
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
// Директива компилятора, которая определяет единицу времени и точность для моделирования Verilog.
// В целом, не очень интересный пункт для нас.
//`timescale 1ns / 1ps
// Определяем стандартный блок-модуль (как класс в С++)
module pl_blink(input CLK100, output d6_led);
// Задаем регистр для хранения записи о текущем состоянии светодиода
reg r_led;
// Задаем регистр для хранения значения счётчика, использующегося в задержке
reg [31:0] counter;
// Тут мы задаем действия которые должны быть выполнены при старте программы
initial begin
counter <= 32'b0; // Обнуляем счётчик
r_led <= 1'b0; // Делаем запись о состоянии светодиода
end
// Тут описываем поведенческий блок, который будет реагировать на положительный фронт тактовой частоты
always@(posedge CLK100)
begin
counter <= counter + 1'b1; // Увеличиваем счетчик
if(counter > 12000000) // Если счетчик больше некоторого условного значения
begin
r_led <= !r_led; // Инвертируем запись о значении состоянии светодиода
counter <= 32'b0; // Сбрасываем счетчик
end
end
assign d6_led = r_led; // Присваиваем текущее состояние ножке (условно)
endmodule


когда закончится синтез, открываем Synthesized Design и смотрим, что получилось

Переключимся в I/O Planning и приступим к распиновке, меняем 2.5 на 3.3 Вольт
Открываем схему платы и ищем, куда подключен кварцевый генератор

Вывод микросхемы имеет координаты J6
Заносим это значение в план

Мигать будем красным светодиодом, найдём на схеме, к какой "ноге" он припаян

Искомый вывод микросхемы имеет координаты Т9
Заносим это в таблицу и видим отображение на карте выводов БИС

И сохраняем в констрейн файл

Посмотрим, что туда записалось

Запускаем Implementation , затем Bitstream

Откроем Elaborated Design
Любуемся на своё творение

Красивое
Launch Impact



Указываем наш Битстрим-файл

Осталось залить Битстрим в Плисину и должно замигать!

Program

Ура! замигало!

Где найти схему, документацию и софт?
Где купить это чудо?
Где ведётся обсуждение по этой теме?
Этой (и не только) плате посвящёна группа в Телеграм https://t.me/+R_oA68EGEtM4NmM6 и форум https://astra.org.ru
Вообще то эта Микросхема считается очень старой - 2011г. Малолетние "разработчики" считают её динозавром. На самом деле Спартан 6 весьма неплох! Единственный реальный минус - его сняли с производства и при этом остатки складских запасов не спешат распродавать по дешевке.
Отличная статья по теме https://habr.com/ru/articles/250511/
Ещё одна великолепная статья https://www.radiokot.ru/artfiles/6492/?ysclid=m9748n0fbk308301359

Если подключить VGA дисплей (6 проводков) и 2 кнопки, то можно поиграть в FlappyBird

MicroBlaze 32bit FPGA CPU успешно работает, занимает менее 20% ресурсов