Comments 23
Я недавно читал студентам 3-го курса лекцию на близкую тему, может быть Вам сгодятся мои материалы.
Какой путь проходит verilog файл с момента написания до попадания в битстрим? Подобно классическому программированию на си. С, obj, elf ,bin
Ну на выходе мы получаем схему, а не программу, соответственно, и процесс сборки значительно отличается. Сначала производится синтез, в результате которого получаются нетлисты, грубо говоря, мы получаем логическую схему. Потом имплементация - элементы схемы раскидываются по кристаллу и прокладываются пути между ними. Более детально думал раскрыть в одной из следующих глав.
Общими мазками это выглядит так:
Verilog преборазуется в граф AST и проходит процедуру оптимизации.
Из оптимизированного AST синтезируется граф Netlist с использованием стандартных ячеек конкретной ПЛИС или ASIC.
Netlist проходит процедуру размещения и трассировки на поверхности кристалла ASIC или "материи" ПЛИС, формируется config файл.
Config упаковывается в результирующий bitstream.
Всё это видно в шагах САПР, которую вы используете. Если точнее, вы 3 пункт должны разбить на 2. Потому что шаги следующие: синтезатор, ассемблер, фиттер.
Синтезатор берёт ваш xHDL в любом виде и формирует нетлист. Он же делает анализ и оптимизацию. Результат его работы можно посмотреть в Netlist Viewer если речь за Quartus, например.
Ассемблер делает упаковку в конфигурацию согласно семейству выбранного устройства. Он оперирует абстрактными LE, LUT и т.д. На выходе получаем прогнозируемое количество необходимых ресурсов: pins, LEs/LUT, M9K bits, Registers и т.д.
Следующим вступает уже фиттер. Он оперирует результатом ассемблера и конкретным корпусом выбранного устройства. И тут уже вступают в силу лимиты вышеупомянутых ресурсов. На выходе получается результирующий битстрим под конкретное корпусированное устройство.
Дальше битстрим можно объединять уже с другими, если у вас в JTAG Chain больше одной ПЛИС или сформировать jic для программирования устройства конфигурирования.
Можете порекомендовать миниатюрные отладочные fpga платы со встроенным аудиокодеком на борту?
Есть на AliExpress:
https://wiki.sipeed.com/hardware/en/tang/tang-nano-20k/nano-20k.html
Схематику можно найти на сайте производителя: https://dl.sipeed.com/shareURL/TANG/Nano_20K/2_Schematic
Можно попробовать поспрашивать: https://t.me/fpgasystems, может накидают вариантов.
А зачем Вам аудио-кодек ? Сделайте сразу цифровой выход I2S. Если стоит необходимость подключать к аналоговой системе, то на выходе высокочастотный ШИМ или DSD. У Вас получится all-digital решение.
А зачем Вам аудио-кодек ?
Аудиокодек это не просто сдвенный ADC+DAC.
Там есть настройки аналогового тракта. Усиление, аттенюация, мультиплексирование сигналов, PLL и прочее.
А кто мешает сделать самому средствами ПЛИС ? Сделайте всю обработку в цифре с выходом I2S прямо с ног ПЛИСа. Далее этот цифровой сигнал можно конвертером за 900 руб превратить в аналоговый сигнал. Или конвертором подороже в S/PDIF и подключать к профессиональной аудио технике или любому современному телевизору. Сделать свой синтезируемый кодек гораздо интереснее чем использовать готовую микросхему. :-)
Звук надо не только воспроизводить, но и записывать. Причем двухканальный звук.
Поэтому надо полноценный аудиокодек. Типа NAU8814YG
https://habr.com/ru/articles/808499/
Есть ли микросхемы с аппаратным 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. Далее идет авионика, радары, сонары, медицинское оборудование, измерительные приборы, системы промышленного контроля, автомобильная электроника.
Микроконтроллеры и традиционные процессоры тянут далеко не везде, когда речь идет об обработке/генерации сигналов и/или жестких временных требованиях на реакцию системы.
Введение в ПЛИС: 1. Что такое ПЛИС