>> |
No.146435
>>146412
>На большее - это на что?
Обработка сигналов. Обработка изображений.
>Сколько LUT'ов нужно для комфортной жизни?
Очень сильно зависит от задачи. Для мелких конвертеров интерфейсов - хватит и 6 тысяч, для обработки сигналов на простом уровне нужны десятки тысяч, а также аппаратные умножители и блоки памяти. Криптография - тоже, а если задачей является взлом перебором, то чем больше - тем лучше, т.к. можно параллельно разместить большое количество блоков.
>Если не хватает на ядро и на остальное, то берут внешний процессор, либо SoC, в котором он из коробки, а в FPGA только то, что нужно на аппаратном уровне.
Во-первых, речь идёт о самостоятельном описании процессорного ядра. Во-вторых, ПЛИС со встроенными процессорными ядрами на порядок дороже и с ними больше возни как в плане разработки схемы, так и в использовании этого ядра, по сравнению с софт-процессором.
>В домашних условиях, какой профит от FPGA, тем более, монструозных, по сравнению с обычными 8-32-битными МК?
Сравниваешь тёплое с зелёным. Те задачи, для которых обычно используются ПЛИС, микроконтроллеры осилить не могут в принципе. ЦСП способен заменить их только на определённых задачах. И то, ЦСП (чистый, а не микроконтроллер с набором инструкций для ЦОС или ЦСП-ядром) - это уже довольно специализированная микросхема, в отличие от микроконтроллера.
>Что из себя представляет процесс разработки ядра в FPGA?
"Берёшь и разрабатываешь." Всё хорошо описано в книге "Цифровая схемотехника и архитектура компьютера" Харрис, Харрис.
>Подключаются готовые библиотеки?
Модули. Если нужен готовый софт-процессор для решения вспомогательных задач внутри ПЛИС и нет желания описывать всё это в виде отдельных модулей на языке описания аппаратуры (т.к. это часто занимает очень много времени и не является рациональным решением).
Насраивается, генерируется и ставится IP-блок производителя ПЛИС (например, NIOS II в случае Altera), подключается память и некоторая необходимая периферия, а также, собственно, имеющиеся модули, которые так или иначе должны взаимодействовать с софт-процессором. Под процессор пишется прошивка.
Если так хочешь свободную реализацию, то можно пойти на opencores.org, либо скачать одну из реализаций RISC-V. В таком случае, решать вопрос с тем, как и куда сохранять машинный код, придётся уже самостоятельно.
>Как работает такое ядро? Считывет последовательно набор инструкций из внешнего ROM?
Считывает из той области памяти, из которой надо. В случае NIOS II используется фон-неймановская архитектура. Вектор сброса можно поставить на любой желаемый адрес в памяти, а где этот адрес будет находиться - в оперативной памяти или на внешнем ПЗУ, зависит только от разработчика. В простых случаях (когда используется только встроенные блоки SRAM) на блоках встроенной памяти делается некоторый участок памяти, запись в который запрещена. В прошивку ПЛИС добавляется содержимое этого участка памяти, которое должно быть загружено туда при включении ПЛИС и которое и содержит исполняемую ядром программу.
>Микрокод для каждой инструкции есть готовый или приходилось писать самому?
Какой ещё микрокод у типичного RISC-процессора? И если ты о тех ядрах, про которые я говорил в предыдущем посте, то это создание/дополнение нужных модулей ядра, блока управления (для расшифровки новых машинных кодов), блока разрешения конфликтов и т.п.
>Делал что-нибудь вроде аппаратного вывода VGA?
Нет и на текущий момент в своих задачах не вижу этому применения.
|