Search
Write a publication
Pull to refresh
1
0

Пользователь

Send message
Тоже раньше думал, что 1мм FBGA не для самоделок, сейчас же на 0.5мм TQFP144 смотрю с отвращением. Дороже за счет трафарета, но плата делается существенно быстрее. Запаиваю в бытовой мини-печке без контроллера, 5 минут по таймеру, с контролем по термопаре.
Смотрел, но не использовал на практике — очень большие сомнения, что такой подход даст новый уровень мышления.
ru.wikipedia.org/wiki/Гипотеза_лингвистической_относительности#Языки_программирования
Классические HDL не сложны, просто недостаточны для решения многих задач, если сравнивать с традиционными языками программирования. Мне интересна эта тема, поэтому провел много экспериментов, пытаясь понять, чего именно не хватает традиционным HDL. Например, сравнивал сложность и громоздкость написания Тетриса на Си для ПК, и на HDL для ПЛИС. Или простого симулятора 2Д физики, включая графический редактор сцен, и тд. Это как раз задачи, для которых хватает ресурсов дешевых ПЛИС (без использования софт-процессора).
Согласен, ошибался, что это ограничение стандарта.
FPGA сейчас не позиционируются на вытеснение МК, отсюда и разница в ценах. Малопотребляющие FPGA есть у Lattice.
LVDS по стандарту требует 2.5В, подключить 3.3В софт не даст. Но это не технологическое ограничение. Что делать в таком случае? Варианты: 1) плюнуть на стандарт, и провести собственные тесты на 3.3В, 2) на порядок повысить стоимость и сложность проекта. Я выбрал 1-ый вариант, тк не ответственное применение.
По цене уже сейчас есть FPGA в районе 5$ на DigiKey, например у EFINIX (сам использую Cyclone IV). Такого выбора АЦП/ЦАП, как в МК, в ПЛИС пока нет, но это обусловлено не технологией, а существующим позиционировании на рынке. Но на FPGA можно, например, реализовать TDC ADC с быстродействием ~200Мвыб/сек при разрядности ~6бит, с минимальной пассивной обвязкой -сам пробовал (можно посмотреть мои посты под ником Leka на форумах ixbt.com, electronix.ru, marsohod.org).
Классические HDL плохи тем, что на них трудно описывать сложные алгоритмы обработки.
Использую Cyclone IV, без проблем работает с 3.3В сигналами.
У FPGA (но не CPLD !) возможная область применения действительно очень широкая. Дешевые FPGA, например, могут полностью вытеснить микроконтроллеры, это экономически и технологически оправдано. Мешает одно — отсутствие адекватных языков описания аппаратуры, ориентированных именно на синтез, а не на моделирование.
Quartus синтезирует. В ISE/Vivado не проверял.

Стандартный оператор «for» уже подразумевает использование блокирующего присваивания (переменной цикла) в последовательном блоке.
Пример — поиск старшей «1» в векторе:
always @(posedge clk) begin n<=-1; for(int i=0; i<N; i++) if(a[i]) n<=i; end
Другой пример — локальные переменные, объявленные внутри последовательного блока, и которые принимают результаты промежуточных вычислений:
alvays@(posedge clk) begin
var [7:0] a;

a = …;

end
В общем случае некорректным является только одновременное использование блокирующих и неблокирующих присваиваний для одной и той же переменной.
ROM можно инициализировать при объявлении (удобно использовать «упакованные» массивы из SV):
reg [LUT_SIZE-1:0][6:0] lut = {7'h7F, 7'h7E,… 7'h03, 7'h00};
Меняя скважность и период ШИМ, можно независимо (в некоторых пределах) подстраивать напряжение на входе (эмуляция резистора), и на выходе (питание МК).
Пример симуляции в Tina-Ti, потребление МК принято 2мА, 2 варианта ШИМ.
1) резистор можно ШИМить, тогда хватит одного для эмуляции несколько виртуальных.
2) питание можно поднять емкостным преобразователем.
Софт-процессоры с оптимизированной для FPGA архитектурой, на простых алгоритмах показывают производительность на уровне ~~100МГц stm32 (даже на дешевых семействах FPGA). Так что практическая польза есть.

Information

Rating
Does not participate
Location
Россия
Registered
Activity