UG0837
Ръководство за потребителя
IGLOO2 и SmartFusion2 FPGA
Симулация на системни услуги
юни 2018 г
История на ревизиите
Историята на ревизиите описва промените, които са въведени в документа. Промените са изброени по редакция, започвайки с най-актуалната публикация.
1.1 Ревизия 1.0
Ревизия 1.0 беше публикувана през юни 2018 г. Това беше първата публикация на този документ.
Симулация на IGLOO2 и SmartFusion2 FPGA системни услуги
Блокът System Services на фамилията SmartFusion®2 FPGA включва набор от услуги, отговорни за различни задачи. Те включват услуги за симулационни съобщения, услуги за указатели на данни и услуги за дескриптори на данни. Системните услуги могат да бъдат достъпни чрез Cortex-M3 в SmartFusion2 и от FPGA тъканта чрез платковия интерфейсен контролер (FIC) както за SmartFusion2, така и за IGLOO®2. Тези методи за достъп се изпращат до системния контролер чрез COMM_BLK. COMM_BLK има усъвършенстван интерфейс за периферна шина (APB) и действа като канал за предаване на съобщения за обмен на данни със системния контролер. Заявките за системни услуги се изпращат до системния контролер и отговорите за системни услуги се изпращат до CoreSysSerrvice чрез COMM BLK. Местоположението на адреса за COMM_BLK е налично в подсистемата на микроконтролера (MSS)/подсистемата на паметта с висока производителност (HPMS). За подробности вижте UG0450: SmartFusion2 SoC и IGLOO2 FPGA системен контролер.
Ръководство за потребителя
Следната илюстрация показва потока от данни на системните услуги.
Фигура 1 • Диаграма на потока от данни за системната услугаИ за симулация на системна услуга IGLOO2 и SmartFusion2 трябва да изпратите заявки за системна услуга и да проверите отговорите на системната услуга, за да проверите дали симулацията е правилна. Тази стъпка е необходима за достъп до системния контролер, който предоставя системните услуги. Начинът за запис и четене от системния контролер е различен за устройства IGLOO2 и SmartFusion2. За SmartFusion2 е наличен Coretex-M3 и можете да пишете и четете от системния контролер, като използвате команди за функционален модел на шина (BFM). За IGLOO2 Cortex-M3 не е наличен и системният контролер не е достъпен чрез BFM команди.
2.1 Типове налични системни услуги
Налични са три различни типа системни услуги и всеки тип услуга има различни подтипове.
Услуги за симулационни съобщения
Услуги за указатели на данни
Услуги за дескриптори на данни
Главата Приложение – Типове системни услуги (вижте страница 19) на това ръководство описва различните типове системни услуги. За повече информация относно системните услуги вижте UG0450: SmartFusion2 SoC и IGLOO2 FPGA System Controller Ръководство за потребителя.
2.2 Симулация на системна услуга IGLOO2
Системните услуги включват писане и четене от системния контролер. За да пишете и четете от системния контролер за целите на симулацията, трябва да изпълните стъпките по-долу.
- Създайте екземпляр на CoreSysServices мекото IP ядро, налично в каталога SmartDesign.
- Напишете HDL кода за краен автомат (FSM).
HDL FSM се свързва с ядрото CoreSysServices, което служи като главен плат на шината AHBLite. Ядрото на CoreSysServices инициира заявка за системна услуга към COMM BLK и получава отговори на системна услуга от COMM BLK чрез FIC_0/1, интерфейсен контролер на тъканта, както е показано на следващата илюстрация.
Фигура 2 • Топология на симулация на системни услуги IGLOO22.3 Симулация на системна услуга SmartFusion2
За да симулирате системни услуги в устройства SmartFusion2, трябва да пишете и четете от системния контролер. Налични са две опции за достъп до системния контролер за целите на симулацията.
Опция 1 — Напишете HDL кода за FSM за взаимодействие с CoreSysService софт IP ядрото, което служи като AHBLite master master и инициира заявка за системна услуга към COMM BLK и получава системни отговори от COMM BLK през FIC_0/1 fabric интерфейс, както е показано на следващата илюстрация.
Фигура 3 • Топология за симулация на системни услуги SmartFusion2
Вариант 2 — Тъй като Cortex-M3 е наличен за устройства SmartFusion2, можете да използвате BFM команди за директно записване и четене от паметта на системния контролер.
Използването на BFM команди (опция 2) спестява необходимостта от писане на HDL кодове за FSM. В това ръководство за потребителя опция 2 се използва за показване на симулация на системни услуги в SmartFusion2. С тази опция се осъществява достъп до паметта на системния контролер, за да се открие картата на паметта на COMM BLK и блока на контролера за прекъсване на интерфейса на тъканта (FIIC), когато пишете вашите BFM команди.
2.4 Симулация Прampлес
Ръководството за потребителя обхваща следните симулации.
- Симулация на услугата за сериен номер IGLOO2 (вижте страница 5)
- Симулация на услуга за сериен номер SmartFusion2 (вижте страница 8)
- Симулация на услуга за нулиране на IGLOO2 (вижте страница 13)
- SmartFusion2 Zeroization Service Simulation (вижте страница 16)
Подобни методи за симулация могат да бъдат приложени към други системни услуги. За пълен списък на различните налични системни услуги отидете на Приложение – Типове системни услуги (вижте страница 19).
2.5 Симулация на услуга за сериен номер на IGLOO2
За да се подготвите за симулация на услугата със сериен номер IGLOO2, изпълнете стъпките по-долу.
- Извикайте системния конструктор, за да създадете вашия HPMS блок.
- Поставете отметка в квадратчето HPMS System Services на страницата Device Features. Това ще инструктира създателя на системата да изложи HPMS_FIC_0 SYS_SERVICES_MASTER шинния интерфейс (BIF).
- Оставете всички други квадратчета без отметка.
- Приемете настройките по подразбиране във всички други страници и щракнете върху Готово, за да завършите блока за изграждане на системата. В HDL редактора на Libero® SoC напишете HDL кода за FSM (File > Ново > HDL). Включете следните три състояния във вашия FSM.
INIT състояние (първоначално състояние)
SERV_PHASE (състояние на заявка за услуга)
RSP_PHASE (състояние на отговор на услугата).
Следващата фигура показва трите състояния на FSM.
Фигура 4 • FSM с три състояния Във вашия HDL код за FSM използвайте правилния команден код („01” Hex за услуга със сериен номер), за да въведете състоянието на заявка за услуга от състоянието INIT.
- Запазете своя HDL file. FSM се появява като компонент в йерархията на дизайна.
- Отворете SmartDesign. Плъзнете и пуснете вашия блок за изграждане на система от най-високо ниво и вашия FSM блок в платното на SmartDesign. От каталога плъзнете и пуснете мекото IP ядро на CoreSysService в платното на SmartDesign.
- Щракнете с десния бутон върху мекото IP ядро на CoreSysService, за да отворите конфигуратора. Поставете отметка в квадратчето Услуга за сериен номер (под Информационни услуги за устройство и дизайн
група), за да активирате услугата за сериен номер. - Оставете всички други квадратчета без отметка. Щракнете върху OK, за да излезете от конфигуратора.
Фигура 5 • CoreSysServices soft IP Core Configurator
- Свържете HPMS_FIC_0 SYS_SERVICES_MASTER BIF на блока за изграждане на система към AHBL_MASTER BIF на блока CoreSysService.
- Свържете изхода на вашия HDL FSM блок към входа на CoreSysService мекото IP ядро. Направете всички други връзки в платното SmartDesign, както е показано на следващата фигура.
Фигура 6 • SmartDesign Canvas с HDL блок, CoreSysServices Soft IP и HPMS блокове - В платното на SmartDesign щракнете с десния бутон върху > Генериране на компонент, за да генерирате дизайн на горното ниво.
- В йерархията на дизайна view, щракнете с десния бутон върху дизайна от най-високо ниво и изберете създаване на Testbench > HDL .
- Използвайте текстов редактор, за да създадете текст file с име „status.txt“ .
- Включете командата за системна услуга и 128-битов сериен номер. За повече информация вижте Таблица 1 (Стойности на командата/отговора на системните услуги) в Наръчник за CoreSysServices v3.1 за командните кодове (Hex), които да се използват за различни системни услуги. За услугата със сериен номер командният код е „01” Hex.
Форматът на status.txt file за услугата със сериен номер е както следва.
< 2 шестнадесетична цифра CMD><32 шестнадесетичен сериен номер>
Example: 01A1A2A3A4B1B2B3B4C1C2C3C4D1D2D3D4
Запазете status.txt file в папката Simulation на вашия проект. Дизайнът вече е готов за симулация.
След като услугата започне да се изпълнява, в прозореца за препис на ModelSim се показва съобщение, указващо местоназначението и серийния номер, както е показано на следващата фигура.
Фигура 7 • Прозорец за препис на симулация на ModelSimСистемният контролер извършва AHB запис на адреса със серийния номер. След завършване на услугата, RXFIFO на COMM_BLK ще бъде зареден с отговора на услугата.
Забележка: За пълен списък на командните кодове, които да се използват за различни системни услуги, вижте Таблица 1 (Стойности на командата/отговора на системните услуги) в Наръчник за CoreSysServices v3.1 или UG0450: Ръководство за потребителя на системния контролер SmartFusion2 SoC и IGLOO2 FPGA.
2.6 Симулация на услуга за сериен номер SmartFusion2
В това ръководство за потребителя BFM командите (опция 2) се използват за достъп до системния контролер за системна услуга. BFM командите се използват, тъй като процесорът Cortex-M3 е наличен на устройството за BFM симулация. BFM командите ви позволяват да пишете директно и да четете от COMM BLK, след като знаете картографирането на паметта на COMM_BLK.
За да подготвите своя дизайн за симулация на услуга за сериен номер SmartFusion2, изпълнете следните стъпки.
- Плъзнете и пуснете MSS от каталога към дизайнерското платно на вашия проект.
- Деактивирайте всички MSS периферни устройства с изключение на MSS_CCC, Reset Controller, Interrupt Management и FIC_0, FIC_1 и FIC_2.
- Конфигурирайте управлението на прекъсванията, за да използвате MSS за създаване на прекъсвания.
- Подгответе serialnum.bfm file в текстов редактор или в HDL редактора на Libero. Запазете serialnum.bfm file в папката Simulation на проекта. Serialnum.bfm трябва да включва следните подробности.
• Картографиране на памет към COMM BLK (CMBLK)
• Картографиране на памет към периферно устройство за управление на прекъсвания (FIIC)
• Команда за системна заявка за сериен номер (“01” Hex)
• Адрес за местоположението на серийния номер
Бившampфайл на serialnum.bfm file е както следва.
memmap FIIC 0x40006000; #Memory Mapping към Interrupt Management
memmap CMBLK 0x40016000; #Memory Mapping към COMM BLK
memmap DESCRIPTOR_ADDR 0x20000000; #Address местоположение за сериен номер
#Команда в шестнадесетичен код
постоянен CMD 0x1 # Код на команда за Serial NumberService
Регистри за конфигурация #FIIC
константа FICC_INTERRUPT_ENABLE0 0x0
#COMM_BLK Конфигурационни регистри
постоянен КОНТРОЛ 0x00
постоянен СТАТУС 0x04
константа INT_ENABLE 0x08
константа DATA8 0x10
константа DATA32 0x14
константа FRAME_START8 0x18
константа FRAME_START32 0x1C
сериен номер на процедурата;
int x;
напишете w FIIC FICC_INTERRUPT_ENABLE0 0x20000000 #Конфигуриране
#FICC_INTERRUPT_ENABLE0 # Регистрирайте се, за да активирате COMBLK_INTR #
#прекъсване от блок COMM_BLK към тъкан
#Фаза на заявка
write w CMBLK CONTROL 0x10 # Конфигуриране на COMM BLK Control #Регистриране на
активирайте трансфери на интерфейса COMM BLK
write w CMBLK INT_ENABLE 0x1 # Конфигуриране на COMM BLK Разрешаване на прекъсване
#Регистрирайте се, за да активирате прекъсване за TXTOKAY (съответстващ бит в
#Регистър на състоянието)
waitint 19 # изчакайте COMM BLK прекъсване, тук #BFM чака
#до утвърждаване на COMBLK_INTR
readstore w CMBLK STATUS x # Прочетете COMM BLK Status Register за #TXTOKAY
# Прекъсване
задайте xx & 0x1
ако х
напишете w CMBLK FRAME_START8 CMD # Конфигуриране на COMM BLK FRAME_START8
#Регистрирайте се, за да поискате услуга със сериен номер
endif
endif
waitint 19 # изчакайте COMM BLK прекъсване, тук
#BFM изчаква, докато се потвърди COMBLK_INTR
readstore w CMBLK STATUS x # Прочетете COMM BLK Status Register for
#TXTOKAY Прекъсване
задайте xx & 0x1
задайте xx & 0x1
ако х
write w CMBLK CONTROL 0x14 #Configure COMM BLK Control
#Регистрирайте се, за да активирате трансфери в интерфейса COMM BLK
напишете w CMBLK DATA32 DESCRIPTOR_ADDR
напишете w CMBLK INT_ENABLE 0x80
напишете w CMBLK CONTROL 0x10
endif
изчакайте 20
#Фаза на отговор
изчакайте 19
readstore w CMBLK СТАТУС x
задайте xx & 0x80
ако х
readcheck w CMBLK FRAME_START8 CMD
напишете w CMBLK INT_ENABLE 0x2
endif
изчакайте 19
readstore w CMBLK СТАТУС x
задайте xx & 0x2
ако х
readcheck w CMBLK DATA8 0x0
напишете w CMBLK CONTROL 0x18
endif
изчакайте 19
readcheck с FIIC 0x8 0x20000000
readstore w CMBLK СТАТУС x
задайте xx & 0x2
ако х
readcheck w CMBLK DATA32 DESCRIPTOR_ADDR
endif
readcheck w DESCRIPTOR_ADDR 0x0 0xE1E2E3E4; #Readcheck за проверка на S/N
readcheck w DESCRIPTOR_ADDR 0x4 0xC1C2C3C4; #Readcheck за проверка на S/N
readcheck w DESCRIPTOR_ADDR 0x8 0xB1B2B3B4; #Readcheck за проверка на S/N
readcheck w DESCRIPTOR_ADDR 0xC 0xA1A2A3A4; #Readcheck за проверка на S/N
връщане - Създайте статуса. текст file в HDL редактора на Libero или всеки текстов редактор. Включете командата за системна услуга за сериен номер („01“ в шестнадесетичен) и серийния номер в статуса. текст file. Вижте Наръчника за CoreSysServices v3.1 за използване на правилния команден код.
- Синтаксисът на това file за услугата със сериен номер е <2 шестнадесетичен CMD>< 32 шестнадесетичен сериен номер> . Прample: 01A1A2A3A4B1B2B3B4C1C2C3C4E1E2E3E4.
- Запазете състоянието .txt file в папката Simulation на проекта.
- Редактирайте потребителския .bfm (намиращ се в папката Simulation), за да включите серийния номер. bfm file и извикайте процедурата за сериен номер, както е показано в следния кодов фрагмент.
включете “serialnum.bfm” #include the serialnum.bfm
процедура user_main;
отпечатайте „ИНФО:Симулацията започва“;
отпечатайте „INFO:Код на командния код на услугата в десетичен:%0d“, CMD ;
извикване на сериен номер; #извикване на процедурата serialnum
отпечатайте „INFO: Симулацията приключва“;
връщане - В йерархията на дизайна view, генерирайте стенда за тестване (Щракнете с десния бутон, Дизайн от най-високо ниво > Създаване на тестов стенд > HDL) и сте готови да стартирате симулация на услугата със сериен номер.
След като услугата започне да се изпълнява, се показва съобщение, указващо местоназначението и серийния номер. Системният контролер извършва AHB запис на адреса със серийния номер. След завършване на услугата, RXFIFO на COMM_BLK ще бъде зареден с отговора на услугата. Прозорецът за препис на ModelSim показва адреса и получения сериен номер, както е показано на следващата фигура.
Фигура 8 • Симулация на услугата за сериен номер SmartFusion2 в прозореца за препис на ModelSim
2.7 Симулация на услуга за нулиране на IGLOO2
За да се подготвите за симулация на услуга за нулиране на IGLOO2, изпълнете стъпките по-долу.
- Извикайте системния конструктор, за да създадете HPMS блока. Поставете отметка в квадратчето HPMS System Services в Device Features SYS_SERVICES_MASTER BIF. Оставете всички други квадратчета без отметка. Приемете настройките по подразбиране във всички други страници и щракнете върху страница. Това инструктира създателя на системата да изложи HPMS_FIC_0 Finish, за да завърши конфигурацията на блока за изграждане на система.
- В HDL редактора на Libero SoC напишете HDL кода за FSM. Във вашия HDL код за FSM включете следните три състояния.
INIT състояние (първоначално състояние)
SERV_PHASE (състояние на заявка за услуга)
RSP_PHASE (състояние на отговор на услугата)
Следващата фигура показва трите състояния на FSM.
Фигура 9 • FSM с три състояния - Във вашия HDL код използвайте командния код „F0″(Hex), за да въведете състоянието на заявка за услуга от състоянието INIT.
- Запазете своя HDL file.
- Отворете SmartDesign, плъзнете и пуснете вашия блок за изграждане на система от най-високо ниво и вашия HDL FSM блок в платното на SmartDesign. От каталога плъзнете и пуснете мекото IP ядро на CoreSysService в платното на SmartDesign.
- Щракнете с десния бутон върху софтуерното IP ядро на CoreSysServices, за да отворите конфигуратора и поставете отметка в квадратчето Zeroization Service под групата Data Security Services. Оставете всички други квадратчета без отметка. Щракнете, за да излезете OK.
Фигура 10 • Конфигуратор на CoreSysServices
- Свържете HPMS_FIC_0 SYS_SERVICES_MASTER BIF на блока за изграждане на система към AHBL_MASTER BIF на блока CoreSysService.
- Свържете изхода на вашия HDL FSM блок към входа на CoreSysService мекото IP ядро. Направете всички други връзки в платното SmartDesign.
Фигура 11 • SmartDesign Canvas с HDL блок, CoreSysServices Soft IP и HPMS блокове
9. В платното SmartDesign генерирайте дизайна от най-високо ниво (Щракнете с десния бутон > Генериране на компонент).
10. В йерархията на дизайна view, щракнете с десния бутон върху дизайна от най-високо ниво и изберете създаване на Testbench > HDL. Вече сте готови да стартирате симулация.
След като услугата започне да се изпълнява, се показва съобщение, показващо, че нулирането е завършено в момент x, както е показано на следващата фигура.
Фигура 12 • Прозорец за симулация на услугата за нулиране на IGLOO2
Системният контролер извършва AHB запис на адреса със серийния номер. След завършване на услугата, RXFIFO на COMM_BLK ще бъде зареден с отговора на услугата. Трябва да се отбележи, че симулационният модел симулира нулиране чрез спиране на симулацията, вместо да нулира самия дизайн.
Забележка: За пълен списък на командните кодове, които да се използват за различни системни услуги, вижте Таблица 1 (Стойности на команди/отговори на системни услуги) в Наръчник за CoreSysServices v3.1:. или UG0450: SmartFusion2 SoC и IGLOO2 FPGA System Controller Ръководство за потребителя
2.8 Симулация на услуга за нулиране на SmartFusion2
В това ръководство командите BFM (опция 2) се използват за достъп до системния контролер за системна услуга.
BFM командите се използват, тъй като процесорът Cortex-M3 е наличен на устройството за BFM симулация. BFM командите ви позволяват да пишете директно и да четете от COMM BLK, след като знаете картографирането на паметта на COMM_BLK. За да подготвите своя дизайн за симулация на услуга за нулиране на SmartFusion2, изпълнете следните стъпки.
- Плъзнете и пуснете MSS от каталога към дизайнерското платно на вашия проект.
- Деактивирайте всички MSS периферни устройства с изключение на MSS_CCC, Reset Controller, Interrupt Management и FIC_0, FIC_1 и FIC_2.
- Конфигурирайте управлението на прекъсванията, за да използвате MSS за създаване на прекъсвания.
- Подгответе zeroizaton.bfm file в текстов редактор или в HDL редактора на Libero. Вашето зануляване. bfm трябва да включва:
- Съпоставяне на памет към COMM BLK (CMBLK)
- Картографиране на памет към периферно устройство за управление на прекъсвания (FIIC)
- Команда за заявка за услуга за нулиране (“F0” Hex за нулиране)
Бившampфайл на serialnum.bfm file е показано на следващата фигура.
Фигура 13 • Zeroization.bfm за SmartFusion2 Zeroization System Services Simulation
5. Запазете zeroization.bfm file в папката Simulation на проекта. user.bfm
6. Редактирайте (разположен в папката за симулация zeroization.bfm), за да включите използването на следния кодов фрагмент.
включва “zeroization.bfm” #include zeroization.bfm file процедура user_main;
отпечатайте „ИНФО:Симулацията започва“;
отпечатайте „INFO:Код на командния код на услугата в десетичен:%0d“, CMD ;
нулиране на повикване; #call връщане на процедурата за нулиране
7. В йерархията на дизайна генерирайте Testbench (щракнете с десния бутон най-високо ниво > Create Testbench > HDL) и сте готови да изпълните симулацията за нулиране SmartFusion2.
След като услугата започне да се изпълнява, се показва съобщение, което показва, че устройството е било нулирано в момент x. Трябва да се отбележи, че симулационният модел симулира нулиране чрез спиране на симулацията, вместо да нулира самия дизайн. Прозорецът за препис на ModelSim на следващата фигура показва, че устройството е нулирано.
Фигура 14 • Регистър на симулация на услугата за нулиране на системата SmartFusion2
Приложение: Видове системни услуги
Тази глава описва различни типове системни услуги.
3.1 Услуги за симулационни съобщения
Следващите раздели описват различни видове услуги за симулационни съобщения.
3.1.1 Flash*Freeze
Симулацията ще влезе в състояние Flash*Freeze, когато правилната заявка за услуга бъде изпратена до COMM_BLK или от FIC (в случай на устройства IGLOO2), или от Cortex-M3 (в устройства SmartFusion2). След като услугата бъде открита от системния контролер, симулацията ще бъде спряна и ще се покаже съобщение, показващо, че системата е влязла в Flash*Freeze (заедно с избраната опция). При възобновяване на симулацията, RXFIFO на COMM_BLK ще бъде попълнен с отговора на услугата, състоящ се от команда за услуга и статус. Трябва да се отбележи, че няма поддръжка за симулация за излизане от Flash*Freeze.
3.1.2 Нулиране
Нулирането в момента е единствената услуга с висок приоритет в системните услуги, обработвана от COMM_BLK. Симулацията ще влезе в състояние на нулиране веднага щом правилната заявка за услуга бъде открита от COMM_BLK. Изпълнението на други услуги ще бъде спряно и отхвърлено от системния контролер и вместо това ще бъде изпълнена услугата за нулиране. След като бъде открита заявката за услуга за нулиране, симулацията спира и се показва съобщение, показващо, че системата е влязла в нулиране. Ръчното рестартиране на симулацията след нулиране е невалидно.
3.2 Услуги за указатели на данни
Следващите раздели описват различни видове услуги за указатели на данни.
3.2.1 Сериен номер
Услугата за сериен номер ще запише 128-битов сериен номер на адрес, предоставен като част от заявката за услуга. Този 128-битов параметър може да бъде зададен с помощта на поддръжка на симулация на системна услуга file (вижте страница 22) . Ако параметърът за 128-битов сериен номер не е дефиниран в рамките на file, ще се използва сериен номер по подразбиране 0. След като услугата започне да се изпълнява, се показва съобщение, указващо местоназначението и серийния номер. Системният контролер извършва AHB запис на адреса със серийния номер. След завършване на услугата, RXFIFO на COMM_BLK ще бъде зареден с отговора на услугата.
3.2.2 Потребителски код
Услугата за потребителски код записва 32-битов параметър за потребителски код в адресно местоположение, предоставено като част от заявката за услуга. Този 32-битов параметър може да се настрои с помощта на поддръжката за симулация на системни услуги file (вижте страница 22). Ако 32-битовият параметър не е дефиниран в рамките на file, използва се стойност по подразбиране 0. След като услугата започне да се изпълнява, се показва съобщение, указващо целевото местоположение и потребителския код. Системният контролер извършва AHB запис на адреса с 32-битовия параметър. След завършване на услугата RXFIFO на COMM_BLK се зарежда с отговора на услугата, който включва командата за услугата и целевия адрес.
3.3 Услуги за дескриптори на данни
Следващите раздели описват различни видове услуги за дескриптори на данни.
3.3.1 AES
Симулационната поддръжка за тази услуга се занимава само с преместване на оригиналните данни от източника до дестинацията, без действително да се извършва каквото и да е криптиране/декриптиране на данните. Данните, които трябва да бъдат криптирани/декриптирани, и структурата на данните трябва да бъдат записани преди изпращането на заявката за услуга. След като услугата започне да се изпълнява, се показва съобщение, указващо изпълнението на услугата AES. Услугата AES чете както структурата на данните, така и данните, които трябва да бъдат криптирани/декриптирани. Оригиналните данни се копират и записват на адреса, предоставен в структурата на данните. След като услугата е завършена, командата, статусът и адресът на структурата на данните се изпращат в RXFIFO.
Забележка: Тази услуга е само за 128-битови и 256-битови данни, като и 128-битовите, и 256-битовите данни имат различни дължини на структурата на данните.
3.3.2 SHA 256
Симулационната поддръжка за тази услуга се занимава само с преместване на данните, без реално да се извършва хеширане на данните. Функцията SHA 256 е предназначена да генерира 256-битов хеш ключ въз основа на входните данни. Данните, които трябва да бъдат хеширани, и структурата на данните трябва да бъдат записани на съответните им адреси, преди заявката за услуга да бъде изпратена до COMM_BLK. Дължината в битове и указател, дефинирани в структурата на данните SHA 256, трябва правилно да съответстват на дължината и адреса на данните, които трябва да бъдат хеширани. След като услугата започне да се изпълнява, се показва съобщение, указващо изпълнението на услугата SHA 256. Вместо да изпълнява действителната функция, хеш ключът по подразбиране ще бъде записан в целевия указател от структурата на данните. Хеш ключът по подразбиране е шестнадесетичен "ABCD1234". За да зададете персонализиран ключ, отидете в секцията Настройка на параметрите (вижте страница 23). След завършване на услугата RXFIFO се зарежда с отговора на услугата, състоящ се от команда за услугата, състояние и указател на структурата на данните SHA 256.
3.3.3 HMAC
Симулационната поддръжка за тази услуга се занимава само с преместване на данни, без действително да се извършва хеширане на данните. Данните, които трябва да бъдат хеширани, и структурата на данните трябва да бъдат записани на съответните им адреси, преди заявката за услуга да бъде изпратена до COMM_BLK. Услугата HMAC изисква 32-байтов ключ в допълнение към дължината в байтове, указателя на източника и указателя на местоназначението. След като услугата започне да се изпълнява, се показва съобщение, указващо изпълнението на услугата HMAC. Ключът се чете и 256-битовият ключ се копира от структурата на данните в целевия указател. След завършване на услугата RXFIFO се зарежда с отговора на услугата, състоящ се от команда за услугата, статус и указател на структурата на данните на HMAC.
3.3.4 Генериране на DRBG
Генерирането на произволни битове се извършва от тази услуга. Трябва да се отбележи, че симулационният модел не следва точно същата методология за генериране на произволни числа, използвана от силикона. Структурата на данните трябва да бъде правилно записана на предвиденото място, преди заявката за услуга да бъде изпратена до COMM_BLK. Структурата на данните, целевият указател, дължината и други подходящи данни се четат от системния контролер. Услугата за генериране на DRBG генерира псевдо произволен набор от данни с исканата дължина (0-128). Системният контролер записва произволните данни в целевия указател. В симулацията се показва съобщение, указващо изпълнението на услугата за генериране на DRBG. След като услугата е завършена, командата, статусът и адресът на структурата на данните се изпращат в RXFIFO. Ако исканата дължина на данните не е в диапазона от 0-128, в RXFIFO ще бъде изпратен код за грешка „4“ (Максимално генериране). Ако дължината на допълнителните данни не е в диапазона Request Too Big от 0-128, в RXFIFO ще бъде изпратен код за грешка „5“ (Превишена максимална дължина на допълнителните данни). Ако както исканата дължина на данните за генериране, така и допълнителната дължина на данните не са в техния дефиниран диапазон (0-128), в RXFIFO се въвежда код за грешка „1“ (Катастрофална грешка).
3.3.5 Нулиране на DRBG
Действителната функция за нулиране се изпълнява чрез премахване на DRBG инстанции и нулиране на DRBG. След като заявката за услуга бъде открита, симулацията показва съобщение за завършена услуга за нулиране на DRBG. Отговорът, който включва услугата и състоянието, се изпраща в RXFIFO.
3.3.6 Самотест на DRBG
Симулационната поддръжка за самодиагностиката на DRBG всъщност не изпълнява функцията за самодиагностика. След като заявката за услуга бъде открита, симулацията ще покаже съобщение за изпълнение на услугата за самотест DRBG. Отговорът, който включва услугата и състоянието, ще бъде изпратен в RXFIFO.
3.3.7 DRBG екземпляр
Поддръжката на симулация за услугата за инстанциране на DRBG всъщност не изпълнява услугата за инстанциране. Структурата на данните трябва да бъде правилно записана на предвиденото място, преди заявката за услуга да бъде изпратена до COMM_BLK. След като заявката за услуга бъде открита, структурата и низът за персонализиране, дефинирани в адресното пространство на MSS, ще бъдат прочетени. Симулацията ще покаже съобщение, което показва, че услугата DRBG Instantiate е започнала изпълнението. След като услугата е завършена, отговорът, който включва услугата команда, статус и указател към структурата на данните, ще бъде изпратен в RXFIFO. Ако дължината на данните (PERSONALIZATIONLENGTH) не е в диапазона от 0-128, код за грешка „1“ (Катастрофална грешка) ще бъде изпратен в RXFIFO за състоянието.
3.3.8 DRBG Неоснователен
Поддръжката на симулация за неинстанцирана услуга DRBG всъщност не изпълнява неинстанцираната услуга за премахване на инстанцирана преди това DRBG, както прави силиконът. Заявката за услуга трябва да включва както командата, така и манипулатора на DRBG. След като заявката за услуга бъде открита, манипулаторът на DRBG ще бъде съхранен. Симулацията ще покаже съобщение, показващо, че услугата без екземпляр на DRBG е инициализирана. След като услугата приключи, отговорът, който включва командата за услугата, състоянието и манипулатора на DRBG, ще бъде изпратен в RXFIFO.
3.3.9 DRBG Reseed
Поради симулативния характер на блока за системни услуги, услугата за повторно зареждане на DRBG в симулация не се изпълнява автоматично след всеки 65535 услуги за генериране на DRBG. Структурата на данните трябва да бъде правилно записана на предвиденото място, преди заявката за услуга да бъде изпратена до COMM_BLK. След като заявката за услуга бъде открита, структурата и допълнителният входен параметър в адресното пространство на MSS ще бъдат прочетени. Ще се покаже съобщение, указващо, че услугата за повторно зареждане на DRBG е започнала да се изпълнява. Структурата на данните трябва да бъде правилно записана на предвиденото място, преди заявката за услуга да бъде изпратена до COMM_BLK. След като услугата е завършена, отговорът, който включва услугата команда, статус и указател към структурата на данните, ще бъде изпратен в RXFIFO.
3.3.10 KeyTree
Действителната функция не се изпълнява в симулация за услугата KeyTree. Структурата на данните на услугата KeyTree се състои от 32-байтов ключ, 7-битови данни за optype (игнориран MSB) и 16-байтов път. Данните в структурата на данните трябва да бъдат записани на съответните им адреси, преди заявката за услуга да бъде изпратена до COMM_BLK. След като услугата започне да се изпълнява, ще се покаже съобщение, указващо изпълнението на услугата KeyTree. Съдържанието на структурата от данни ще бъде прочетено, 32-байтовият ключ ще бъде съхранен и оригиналният ключ, разположен в структурата от данни, ще бъде презаписан. След този AHB запис стойността на ключа в структурата на данните не трябва да се променя, но ще се появят AHB транзакции за запис. След завършване на услугата, RXFIFO се зарежда с отговора на услугата, състоящ се от команда за услугата, статус и указател на структурата на данните KeyTree.
3.3.11 Отговор на предизвикателство
Действителната функция, като удостоверяване на устройството, не се изпълнява в симулация за услугата за отговор на предизвикателство. Структурата на данните за тази услуга изисква указател към буфера, за да получи 32-байтов резултат, 7-битов оптип и 128-битов път. Данните в структурата на данните трябва да бъдат записани на съответните им адреси, преди заявката за услуга да бъде изпратена до COMM_BLK. След като услугата започне да се изпълнява, ще се покаже съобщение, указващо изпълнението на услугата за отговор на предизвикателство. Общият 256-битов отговор ще бъде записан в указателя, предоставен в структурата на данните. Ключът по подразбиране е зададен като шестнадесетичен "ABCD1234". За да получите персонализиран ключ, проверете Настройка на параметри (вижте страница 23). След завършване на услугата, RXFIFO ще бъде зареден с отговора на услугата, състоящ се от команда за услуга, състояние и указател на структурата на данните за отговор на предизвикателство.
3.4 Други услуги
Следващите раздели описват различни други системни услуги.
3.4.1 Дайджест проверка
Действителната функция за преизчисляване и сравняване на обобщения на избрани компоненти не се изпълнява за услугата за проверка на обобщения в симулация. Тази заявка за услуга се състои от команди за услуга и опции за услуга (5-битов LSB). След като услугата започне да се изпълнява, ще се покаже съобщение с подробности за изпълнението на услугата за проверка на обобщения, заедно с избраните опции от заявката. След завършване на услугата RXFIFO ще бъде зареден с отговора на услугата, състоящ се от командата за услугата и флаговете за преминаване/неуспех на проверката на дайджеста.
3.4.2 Неразпознат команден отговор
Когато неразпозната заявка за услуга е изпратена до COMM_BLK, COMM_BLK автоматично ще отговори с неразпознато командно съобщение, изпратено в RXFIFO. Съобщението се състои от командата, изпратена в COMM_BLK, и състоянието на неразпознатата команда (252D). Ще се покаже и съобщение на дисплея, указващо, че е открита неразпозната заявка за услуга. COMM_BLK ще се върне в неактивно състояние, чакайки да приеме следващата заявка за услуга.
3.4.3 Неподдържани услуги
Неподдържаните услуги, зададени на COMM_BLK, ще задействат съобщение в симулация, което показва, че заявката за услуга не се поддържа. COMM_BLK ще се върне в неактивно състояние, чакайки да приеме следващата заявка за услуга. PINTERRUPT няма да бъде зададен, което показва, че услугата е завършена. Текущият списък с неподдържани услуги включва: IAP, ISP, сертификат на устройството и услугата DESIGNVER.
3.5 Поддръжка на симулация на системни услуги File
Текст за поддръжка на симулация на системни услуги file наречен „status.txt“ може да се използва за предаване на инструкции относно необходимото поведение на симулационния модел към симулационния модел. Това file трябва да се намира в същата папка, от която се изпълнява симулацията. The file може да се използва, наред с други неща, за налагане на определени реакции при грешка за поддържаните системни услуги или дори за задаване на някои параметри, необходими за симулация (напр.ample, сериен номер). Максималният брой редове, поддържан в „status.txt” file е 256. Инструкциите, които се появяват след ред номер 256, няма да бъдат използвани в симулацията.
3.5.1 Принудителни отговори за грешка
Потребителят може да принуди определен отговор за грешка за определена услуга по време на тестване, като предаде информацията на симулационния модел, използвайки „status.txt“ file, който трябва да бъде поставен в папката, от която се изпълнява симулацията. За да принудите отговорите за грешка към определена услуга, командата и необходимият отговор трябва да бъдат въведени на един ред в следния формат:ample, към Command> ; инструктира симулационния модел да генерира MSS отговор за грешка при достъп до паметта към услугата за сериен номер, командата е както следва.
Сервиз: Сериен номер: 01
Поискано съобщение за грешка: MSS грешка при достъп до паметта: 7F
Трябва да имате въведен ред 017F в „status.txt“ file.
3.5.2 Настройка на параметри
„status.txt“ file може също да се използва за задаване на някои параметри, необходими в симулацията. Като бившample, за да зададете 32-битовия параметър за потребителския код, форматът на реда трябва да бъде в следния ред: <32 битов ПОТРЕБИТЕЛСКИ КОД>; където и двете стойности са въведени в шестнадесетичен формат. За да зададете 128-битовия параметър за серийния номер, форматът на реда трябва да бъде в следния ред: <128 битов сериен номер [127:0]> ; където и двете стойности са въведени в шестнадесетичен формат. За да зададете 256-битовия параметър за ключа SHA 256; форматът на реда трябва да бъде в следния ред: <256 битов ключ [255:0]>; където и двете стойности са въведени в шестнадесетичен формат. За да зададете 256-битовия параметър за ключа за отговор на предизвикателството, форматът на реда трябва да бъде в следния ред: <256 битов ключ [255:0]>;
където и двете стойности са въведени в шестнадесетичен формат.
3.5.3 Приоритет на устройството
Системните услуги и COMM_BLK използват система с висок приоритет. В момента единствената услуга с висок приоритет е нулирането. За да се изпълни услуга с висок приоритет, докато се изпълнява друга услуга, текущата услуга се спира и на нейно място ще се изпълнява услугата с по-висок приоритет. COMM_BLK ще отхвърли текущата услуга, за да изпълни услугата с по-висок приоритет. Ако множество услуги без висок приоритет са изпратени преди завършването на текущата услуга, тези услуги ще бъдат поставени на опашка в рамките на TXFIFO. След като текущата услуга приключи, следващата услуга в TXFIFO ще бъде изпълнена.
Microsemi не дава никаква гаранция, представяне или гаранция относно информацията, съдържаща се тук, или пригодността на своите продукти и услуги за конкретна цел, нито Microsemi поема каквато и да е отговорност, произтичаща от приложението или използването на който и да е продукт или схема. Продуктите, продавани по-долу, и всички други продукти, продавани от Microsemi, са били обект на ограничени тестове и не трябва да се използват заедно с оборудване или приложения, които са изключително важни. Всички спецификации за производителност се считат за надеждни, но не са проверени и Купувачът трябва да проведе и завърши всички тестове за производителност и други тестове на продуктите, самостоятелно и заедно с или инсталирани в крайни продукти. Купувачът няма да разчита на никакви данни и спецификации за изпълнение или параметри, предоставени от Microsemi. Отговорност на Купувача е самостоятелно да определи пригодността на всеки продукт и да тества и проверява същото. Информацията, предоставена от Microsemi по-долу, се предоставя „както е, къде е“ и с всички неизправности, а целият риск, свързан с такава информация, е изцяло върху Купувача. Microsemi не предоставя, изрично или имплицитно, на която и да е страна каквито и да е патентни права, лицензи или каквито и да било други права на интелектуална собственост, независимо дали по отношение на самата такава информация или нещо, описано в такава информация. Информацията, предоставена в този документ, е собственост на Microsemi и Microsemi си запазва правото да прави промени в информацията в този документ или на продукти и услуги по всяко време без предизвестие.
Microsemi, изцяло притежавано дъщерно дружество на Microchip Technology Inc. (Nasdaq: MCHP), предлага цялостно портфолио от полупроводникови и системни решения за космическото пространство и отбраната, комуникациите, центровете за данни и индустриалните пазари. Продуктите включват високопроизводителни и устойчиви на радиация аналогови интегрални схеми със смесен сигнал, FPGA, SoC и ASIC; Продукти за управление на мощността; устройства за измерване на времето и синхронизация и решения за точно време, определящи световния стандарт за време; устройства за обработка на глас; RF решения; дискретни компоненти; корпоративни решения за съхранение и комуникация; технологии за сигурност и мащабируеми анти-тamper продукти; Ethernet решения; Захранване през Ethernet интегрални схеми и средни разстояния; както и персонализирани възможности за проектиране и услуги. Microsemi е със седалище в Aliso Viejo, Калифорния, и има приблизително 4,800 служители по целия свят. Научете повече на www.microsemi.com.
Щабът на Microsemi
One Enterprise, Алисо Виехо,
CA 92656 САЩ
В САЩ: +1 800-713-4113
Извън САЩ: +1 949-380-6100
Продажби: +1 949-380-6136
Факс: +1 949-215-4996
Имейл: продажби.support@microsemi.com
www.microsemi.com
© 2018 Microsemi. Всички права запазени. Microsemi и логото на Microsemi
са търговски марки на Microsemi Corporation. Всички други търговски марки и услуги
марките са собственост на съответните им собственици.
Документи / Ресурси
![]() |
Microsemi UG0837 IGLOO2 и SmartFusion2 FPGA системни услуги Симулация [pdf] Ръководство за потребителя UG0837, UG0837 Симулация на IGLOO2 и SmartFusion2 FPGA системни услуги, IGLOO2 и SmartFusion2 FPGA системни услуги, симулация, SmartFusion2 FPGA системни услуги, симулация на FPGA системни услуги, симулация на услуги |