Синтез для выбранной платформы реализации
После проведения поведенческой верификации выполняется синтез для выбранной платформы реализации. На этом этапе фиксируются необходимые параметры синтеза. Для демонстрационного примера синтеза IP-блока представлены в таблице 6.1.
| Название | По умолчанию | Описание |
|---|---|---|
| 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 для вычисления очередной величины во всех режимах, кроме простой замены и гаммирования [3, стр. 14,17,20]. Для режима гаммирования с обратной связью по шифртексту s = N_parameter. |
| PipeLinePower | 3 | Параметр вычисления длины конвейера обработки информации при зашифровывании и расшифровывании. Длина конвейера равна . Чем длиннее конвейер, тем выше доступная тактовая частота обработки, и больше занимаемый IP-блоком объём логики. |
| InputDataBufferAddrLength | 6 | Длина шины адреса входного буфера данных шины AXI Stream. Объём буфера вычисляется как байт, где N - ширина шины данных AXI Stream в байтах. Т.е., при 128 битной шине (16 байт) и параметре 6 объём входного буфера составит 1024 байта |
| InputCmdBufferAddrLength | 5 | Длина шины адреса входного буфера команд конечного автомата управления (AXI Stream Control FSM). Определяет количество независимых блоков данных, которые могут быть приняты по AXI Stream в пределах входного буфера данных и обрабатываться в конвейерном режиме. Объём буфера команд вычисляется как
|
Предварительный синтез для демонстрационного примера был выполнен в синтезаторе 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.
ПО Quartus Prime позволяет оценить не только итоговый логический объем проекта, но и по отдельным логическим узлам. В частности, в данной реализации вычислительное ядро RISC-V занимает 3480 ALM (Advanced Logic Module) - структурных единиц ПЛИС.
Вопросы для самостоятельной работы
Обучающийся выполняет синтез под целевую платформу ПЛИС. Если есть возможность - рекомендуется выполнить синтез своих проектов под различные платформы, обсудить результаты.
во всех режимах, кроме простой замены и гаммирования [3, стр. 14,17,20]. Для режима гаммирования с обратной связью по шифртексту s = N_parameter.
. Чем длиннее конвейер, тем выше доступная тактовая частота обработки, и больше занимаемый IP-блоком объём логики.
байт, где N - ширина шины данных AXI Stream в байтах. Т.е., при 128 битной шине (16 байт) и параметре 6 объём входного буфера составит 1024 байта
