Pull to refresh

Comments 23

Отлично, спасибо! Может, как время будет, статью дополню)

Какой путь проходит verilog файл с момента написания до попадания в битстрим? Подобно классическому программированию на си. С, obj, elf ,bin

Ну на выходе мы получаем схему, а не программу, соответственно, и процесс сборки значительно отличается. Сначала производится синтез, в результате которого получаются нетлисты, грубо говоря, мы получаем логическую схему. Потом имплементация - элементы схемы раскидываются по кристаллу и прокладываются пути между ними. Более детально думал раскрыть в одной из следующих глав.

Общими мазками это выглядит так:

  1. Verilog преборазуется в граф AST и проходит процедуру оптимизации.

  2. Из оптимизированного AST синтезируется граф Netlist с использованием стандартных ячеек конкретной ПЛИС или ASIC.

  3. Netlist проходит процедуру размещения и трассировки на поверхности кристалла ASIC или "материи" ПЛИС, формируется config файл.

  4. Config упаковывается в результирующий bitstream.

Всё это видно в шагах САПР, которую вы используете. Если точнее, вы 3 пункт должны разбить на 2. Потому что шаги следующие: синтезатор, ассемблер, фиттер.

Синтезатор берёт ваш xHDL в любом виде и формирует нетлист. Он же делает анализ и оптимизацию. Результат его работы можно посмотреть в Netlist Viewer если речь за Quartus, например.

Ассемблер делает упаковку в конфигурацию согласно семейству выбранного устройства. Он оперирует абстрактными LE, LUT и т.д. На выходе получаем прогнозируемое количество необходимых ресурсов: pins, LEs/LUT, M9K bits, Registers и т.д.

Следующим вступает уже фиттер. Он оперирует результатом ассемблера и конкретным корпусом выбранного устройства. И тут уже вступают в силу лимиты вышеупомянутых ресурсов. На выходе получается результирующий битстрим под конкретное корпусированное устройство.

Дальше битстрим можно объединять уже с другими, если у вас в JTAG Chain больше одной ПЛИС или сформировать jic для программирования устройства конфигурирования.

Можете порекомендовать миниатюрные отладочные fpga платы со встроенным аудиокодеком на борту?

А зачем Вам аудио-кодек ? Сделайте сразу цифровой выход I2S. Если стоит необходимость подключать к аналоговой системе, то на выходе высокочастотный ШИМ или DSD. У Вас получится all-digital решение.

А зачем Вам аудио-кодек ?

Аудиокодек это не просто сдвенный ADC+DAC.
Там есть настройки аналогового тракта. Усиление, аттенюация, мультиплексирование сигналов, PLL и прочее.

А кто мешает сделать самому средствами ПЛИС ? Сделайте всю обработку в цифре с выходом I2S прямо с ног ПЛИСа. Далее этот цифровой сигнал можно конвертером за 900 руб превратить в аналоговый сигнал. Или конвертором подороже в S/PDIF и подключать к профессиональной аудио технике или любому современному телевизору. Сделать свой синтезируемый кодек гораздо интереснее чем использовать готовую микросхему. :-)

Есть ли микросхемы с аппаратным arm Cortex m0 и fpga областью на одном чипе?

Не уверен насчет M0, однако есть SoC (System on Chip) Cortex М4 со встроенным eFPGA (embedded FPGA). Архитектурно, это обратный вариант тому, что есть у Xilinx Zynq 7000 SoC или Xilinx UltraScale+ MSoC. https://www.mouser.com/datasheet/2/1164/QL_EOS_S3_Ultra_Low_Power_multicore_MCU_Datasheet-2448755.pdf В таких, как правило, довольно мало (несколько тысяч gates/DFFs) в стравнении с большимы FPGA от Xilinx

Xilinx, Altera(Intel) - бэээ. Gowin - наше всё :P

Ну они активно развиваются, но пока еще путь долгий предстоит

Продукция Xilinx и Alter-а это уже не ПЛИС, развитие пошло в какую-то неправильную сторону - вернулись к процессорам общего назначения и куче тяжеловесных проприетарных блоков. Из классических ПЛИС остались только Lattice и Gowin. Есть еще Efinix Trion, но это очень редкий гость в наших краях. :-)

Продукция Xilinx и Alter-а это уже не ПЛИС, развитие пошло в какую-то неправильную сторону - вернулись к процессорам общего назначения и куче тяжеловесных проприетарных блоков.

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

Развитие диктуется потребностями рынка и технологическими возможностями. Упомянутые Lattice и Gowin также идут в сторону добавления разнообразных hard IP cores в свои системы.

Наиболее продвинутый вариант SoC Gowin Aurora V уже имеет в своем составе уйму "неклассических" (для FPGA) вещей, включая ядра RISC-V: https://www.gowinsemi.com/en/product/detail/60/

У Lattice пока нет встроенных CPU cores, но скоро появятся:https://www.latticesemi.com/en/Products/FPGAandCPLD/Avant-X

Я вот так и не разобрался - каким образом отладить в говин иде. По сравнению с квартусом говин есть поделка студента. Кроме того, баги в некоторых партиях говиновских ПЛИС приводят к потере доверия к ним. И нахрена этот гимор, если есть богоугодная альтера?

ПЛИС кроме впк в России больше никому не нужны.

Судя по обзорам трофеев сбитых ракет Все российские платы работают под управлением fpga altera и xilinx.

Заблуждаетесь сами и вводите других в заблуждение. Все телеком оборудование сделано на FPGA. Далее идет авионика, радары, сонары, медицинское оборудование, измерительные приборы, системы промышленного контроля, автомобильная электроника.

Микроконтроллеры и традиционные процессоры тянут далеко не везде, когда речь идет об обработке/генерации сигналов и/или жестких временных требованиях на реакцию системы.

Sign up to leave a comment.

Articles