Опубликован: 04.08.2025 | Доступ: свободный | Студентов: 6 / 0 | Длительность: 01:52:00
Лекция 7:

Синтез для выбранной платформы реализации

< Лекция 6 || Лекция 7 || Лекция 8 >
Аннотация: Тема занятия: синтез кода для выбранной платформы.

После проведения поведенческой верификации выполняется синтез для выбранной платформы реализации. На этом этапе фиксируются необходимые параметры синтеза. Для демонстрационного примера синтеза IP-блока представлены в таблице 6.1.

Таблица 6.1. Параметры синтеза IP-блока
Название По умолчанию Описание
AXIstr_BusWidth 128 Ширина шины данных интерфейса AXI Stream. Параметр един как для входящего потока (AXI Stream Front End - ASF_xxx), так и для исходящего потока данных (AXI Stream Back End - ASB_xxx). Допустимые величины - 8,16,32,64,128.
APB_BusWidth 32 Ширина шины данных для интерфейса APB. Допустимые величины - 8,16,32
GstdR3432015_CtrAddr x"00" Адрес размещения регистра управления IP-блоком
GstdR3432015_CtrLength x"04" Длина адресной зоны размещения регистра управления IP-блока, в байтах.
GstdR3432015_StatusAddr x"04" Адрес размещения регистра состояния IP-блока
GstdR3432015_StatusLength x"04" Длина адресной зоны размещения регистра состояния IP- блока, в байтах.
GstdR3432015_KEYPortAddr x"08" Адрес вершины стека размещения ключа шифрования.
GstdR3432015_KEYPortLength x"04" Длина вершины стека в байтах
GstdR3432015_IVPortAddr x"0C" Адрес вершины стека размещения синхропосылки (IV).
GstdR3432015_IVPortLength x"04" Длина вершины стека размещения синхропосылки в байтах
GstdR3432015_CTRPortAddr x"10" Адрес вершины стека чтения счётчика синхропосылки для режима гаммирования
GstdR3432015_CTRPortLength x"04" Длина вершины стека чтения счётчика синхропосылки в байтах
IV_increment x"101" Величина шага инкремента значения счётчика для режима гаммирования
IV_length_m1 64 Длина счётчика CTR для режима гаммирования
IV_length_m2 256 Длина синхропосылки (IV) для всех режимов, кроме простой замены и гаммирования
IV_polinom x"12345" Полином для сдвигового регистра с обратной связью, используется в режиме гаммирования при альтернативном параметре изменения величины CTR [4].
N_parameter 128 Параметр n для вычисления очередной величины R_q во всех режимах, кроме простой замены и гаммирования [3, стр. 14,17,20]. Для режима гаммирования с обратной связью по шифртексту s = N_parameter.
PipeLinePower 3 Параметр вычисления длины конвейера обработки информации при зашифровывании и расшифровывании. Длина конвейера равна 2^{PipeLinePower}. Чем длиннее конвейер, тем выше доступная тактовая частота обработки, и больше занимаемый IP-блоком объём логики.
InputDataBufferAddrLength 6 Длина шины адреса входного буфера данных шины AXI Stream. Объём буфера вычисляется как N*2^{InputDataBufferAddrLength} байт, где N - ширина шины данных AXI Stream в байтах. Т.е., при 128 битной шине (16 байт) и параметре 6 объём входного буфера составит 1024 байта
InputCmdBufferAddrLength 5 Длина шины адреса входного буфера команд конечного автомата управления (AXI Stream Control FSM). Определяет количество независимых блоков данных, которые могут быть приняты по AXI Stream в пределах входного буфера данных и обрабатываться в конвейерном режиме. Объём буфера команд вычисляется как 2^{InputCmdBufferAddrLength}

Предварительный синтез для демонстрационного примера был выполнен в синтезаторе Precision в связи с тем, что он не привязан к конкретной фирме изготовителю ПЛИС и возможен выбор платформ для сравнения параметров результата синтеза.

Для этого проект загружается в синтезатор, задаются параметры синтеза. После запуска и успешного прохождения синтеза возникают текстовые отчеты.

Результат оценки скоростных параметров при синтезе узла на платформе FPGA Cyclone 10 LP (Intel/Altera):

-- POST-SYNTHESIS TIMING REPORTS ARE ESTIMATES AND SHOULD NOT BE RELIED ON TO MAKE QoR DECISIONS.
For accurate timing information, please run place-and-route (P&R) and review P&R generated timing reports.

================================================================================================
Clock Frequency Report

Domain	Clock Name	Min Period (Freq)	Required Period (Freq)
 
ACLK_PS	 
ACLK	 
7.133 (140.193 MHz)	 
8.333 (120.000 MHz)
ACLK_PS	PCLK	5.293 (188.929 MHz)	8.333 (120.000 MHz)

================================================================================================
Setup Timing Analysis of ACLK

Результат оценки объёма логики при синтезе узла на платформе FPGA Cyclone 10 LP (Intel/Altera):

*************************************************************** Device Utilization for 10CL080YF780C6G/FBGA
*************************************************************** Resource Used Avail Utilization

IOs	414	424	97.64%
LUTs	15281	81264	18.80%
Registers	8120	81264	9.99%
 
Memory Bits	354976	2810880 12.63%
DSP block 9-bit elems	0	488 0.00%

Финальная реализация синтеза проекта демонстрационного примера проводится на платформе ПЛИС, имеющейся в наличии и доступной для дальнейшей отладки. Пример успешного синтеза для платформы Cyclone V GX приведен на рисунке 6.1.

Пример успешного синтеза

Рис. 6.1. Пример успешного синтеза

ПО Quartus Prime позволяет оценить не только итоговый логический объем проекта, но и по отдельным логическим узлам. В частности, в данной реализации вычислительное ядро RISC-V занимает 3480 ALM (Advanced Logic Module) - структурных единиц ПЛИС.

Вопросы для самостоятельной работы

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

< Лекция 6 || Лекция 7 || Лекция 8 >