UG0837
Упатство за употреба
IGLOO2 и SmartFusion2 FPGA
Симулација на системски услуги
јуни 2018 година
Историја на ревизии
Историјата на ревизии ги опишува промените што беа имплементирани во документот. Промените се наведени со ревизија, почнувајќи од најактуелната публикација.
1.1 Ревизија 1.0
Ревизијата 1.0 беше објавена во јуни 2018 година. Тоа беше првото објавување на овој документ.
Симулација на системски услуги на IGLOO2 и SmartFusion2 FPGA
Блокот системски услуги на семејството 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 User Guide.
2.2 Симулација на системска услуга IGLOO2
Системските услуги вклучуваат пишување и читање од системскиот контролер. За да пишувате и читате од системскиот контролер за цели на симулација, треба да ги извршите чекорите како што следува.
- Инстанцирајте го мекото IP-јадро на CoreSysServices, достапно во каталогот SmartDesign.
- Напишете го HDL кодот за машина со конечна состојба (FSM).
HDL FSM се поврзува со CoreSysServices Core, кој служи како мастер на ткаенината на автобусот AHBLite. Јадрото на CoreSysServices иницира барање за системска услуга до COMM BLK и прима одговори на системската услуга од COMM BLK преку FIC_0/1, контролер за интерфејс на ткаенина како што е прикажано на следната слика.
Слика 2 • Топологија за симулација на системски услуги IGLOO22.3 Симулација на системска услуга SmartFusion2
За да симулирате системски услуги во уредите SmartFusion2, треба да пишувате и да читате од системскиот контролер. Достапни се две опции за пристап до системскиот контролер за цели на симулација.
Опција 1 - Напишете го HDL кодот за FSM да интерфејс со мекото IP-јадро CoreSysService, кое служи како AHBLite ткаенина господар и иницира барање за системска услуга до COMM BLK и прима одговори на системски услуги од COMM BLK преку ткаенината FIC_0/1 интерфејс како што е прикажано на следната илустрација.
Слика 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 (видете на страница 16)
Слични методи на симулација може да се применат и на други системски услуги. За целосна листа на различни достапни системски услуги, одете во Додаток – Типови на системски услуги (видете на страница 19).
2.5 Симулација на услугата за сериски број IGLOO2
За да се подготвите за симулација на услугата за сериски број IGLOO2, направете ги чекорите на следниов начин.
- Повикајте го градителот на системот за да го креирате вашиот блок HPMS.
- Проверете го полето за избор на Системски услуги на HPMS на страницата со карактеристики на уредот. Ова ќе му наложи на создавачот на системот да го изложи HPMS_FIC_0 SYS_SERVICES_MASTER магистралниот интерфејс (BIF).
- Оставете ги сите други полиња за избор нештиклирани.
- Прифатете го стандардното на сите други страници и кликнете Finish за да го завршите блокот за градење на системот. Во HDL уредникот на Libero® SoC, напишете го HDL кодот за FSM (File > Ново > HDL). Вклучете ги следните три состојби во вашиот FSM.
INIT состојба (почетна состојба)
SERV_PHASE (состојба на барање за услуга)
RSP_PHASE (состојба на одговор на услугата).
На следната слика се прикажани трите состојби на FSM.
Слика 4 • ФСМ со три држави Во вашиот HDL код за FSM, користете го правилниот команден код („01“ Hex за услугата за сериски број ) за да ја внесете состојбата на барање за услуга од состојбата INIT.
- Зачувајте го вашиот HDL file. FSM се појавува како компонента во Дизајнерската хиерархија.
- Отворете SmartDesign. Повлечете и испуштете го блокот за градење на системот од највисоко ниво и блокот FSM во платното на SmartDesign. Од каталогот, повлечете и испуштете го мекото IP-јадро CoreSysService во платното SmartDesign.
- Кликнете со десното копче на мекото IP-јадро CoreSysService за да го отворите конфигураторот. Проверете го полето за избор на услуга за сериски број (под Услугите за информации за уреди и дизајн
група) за да се овозможи услугата за сериски број. - Оставете ги сите други полиња за избор нештиклирани. Кликнете OK за да излезете од конфигураторот.
Слика 5 • CoreSysServices мека IP Core конфигуратор
- Поврзете го HPMS_FIC_0 SYS_SERVICES_MASTER BIF на блокот за градење на системот со AHBL_MASTER BIF на блокот CoreSysService.
- Поврзете го излезот од вашиот HDL FSM блок со влезот на мекото IP-јадро CoreSysService. Направете ги сите други врски во платното SmartDesign како што е прикажано на следната слика.
Слика 6 • SmartDesign платно со HDL блок, CoreSysServices Soft IP и HPMS блокови - Во платното SmartDesign, кликнете со десното копче >Generate Component за да го генерирате дизајнот на највисоко ниво.
- Во Дизајнерската хиерархија view, кликнете со десното копче на дизајнот на највисоко ниво и изберете Create Testbench > HDL .
- Користете уредувач на текст за да креирате текст file именуван како „status.txt“ .
- Вклучете ја командата за системска услуга и 128-битниот сериски број. За повеќе информации, видете ја Табела 1 (Вредности на команди/одговор за системски услуги) во Прирачник CoreSysServices v3.1 за командните шифри (Hex) да се користат за различни системски услуги. За услугата за сериски број, командниот код е „01“ Хекс.
Форматот на статусот.txt file за услугата за сериски број е како што следува.
< 2 Шестоцифрен CMD><32 Шестоцифрен Сериски број>
Example: 01A1A2A3A4B1B2B3B4C1C2C3C4D1D2D3D4
Зачувајте го status.txt file во папката Симулација на вашиот проект. Дизајнот сега е подготвен за симулација.
Штом услугата ќе започне да се извршува, во прозорецот за транскрипт на 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, ресетирање контролер, управување со прекини и FIC_0, FIC_1 и FIC_2.
- Конфигурирајте го управувањето со прекини за да користи MSS за прекин на ткаенината.
- Подгответе го серискиот број.bfm file во текстуален уредувач или во HDL уредникот на Libero. Зачувајте го serialnum.bfm file во папката Simulation на проектот. Serialnum.bfm треба да ги содржи следните детали.
• Мапирање на меморијата на COMM BLK (CMBLK)
• Мапирање на меморија за прекинување на периферијата за управување (FIIC)
• Команда за барање за услуга на системот за сериски број („01“ Хекс)
• Адреса за локацијата на серискиот број
Поранешенampле од серискиот број.bfm file е како што следува.
memmap FIIC 0x40006000; #Мемориско мапирање за управување со прекини
memmap CMBLK 0x40016000; #Мемориско мапирање во COMM BLK
memmap DESCRIPTOR_ADDR 0x20000000; #Локација на адреса за сериски број
#Команден код во хексадецимален
константна CMD 0x1 # Команден код за услугата за сериски броеви
#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 #
#interrupt од COMM_BLK блок до ткаенина
Фаза на #барање
напиши w CMBLK CONTROL 0x10 # Конфигурирај COMM BLK Control #Регистрирај се на
овозможете трансфери на интерфејсот COMM BLK
пишува w CMBLK INT_ENABLE 0x1 # Конфигурирај COMM BLK прекин Овозможи
#Регистрирај се за да овозможиш прекин за TXTOKAY (соодветниот бит во
#Регистар на статус)
чекај 19 # чекај за COMM BLK Прекин , Еве #BFM чека
#додека не се наведе COMBLK_INTR
readstore w CMBLK STATUS x # Read COMM BLK Status Регистрирајте се за #TXTOKAY
# Прекини
поставете xx и 0x1
ако x
пишува w CMBLK FRAME_START8 CMD # Конфигурирај COMM BLK FRAME_START8
#Регистрирајте се за да побарате услуга за сериски број
endif
endif
чекај 19 # чекај за COMM BLK Прекини , Еве
#BFM чека додека не се потврди COMBLK_INTR
readstore w CMBLK STATUS x # Читање COMM BLK Статус Регистрирајте се за
#TXTOKAY Прекини
поставете xx и 0x1
поставете xx и 0x1
ако x
пишува w CMBLK CONTROL 0x14 #Конфигурирај 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 STATUS x
поставете xx и 0x80
ако x
повторно проверете w CMBLK FRAME_START8 CMD
напишете w CMBLK INT_ENABLE 0x2
endif
чекај 19
readstore w CMBLK STATUS x
поставете xx и 0x2
ако x
повторно проверете w CMBLK DATA8 0x0
пишува w CMBLK CONTROL 0x18
endif
чекај 19
повторно проверете w FIIC 0x8 0x20000000
readstore w CMBLK STATUS x
поставете xx и 0x2
ако x
повторно проверете w CMBLK DATA32 DESCRIPTOR_ADDR
endif
повторно проверете w DESCRIPTOR_ADDR 0x0 0xE1E2E3E4; #Прочитај провери за да провериш S/N
повторно проверете w DESCRIPTOR_ADDR 0x4 0xC1C2C3C4; #Прочитај провери за да провериш S/N
повторно проверете w DESCRIPTOR_ADDR 0x8 0xB1B2B3B4; #Прочитај провери за да провериш S/N
повторно проверете w DESCRIPTOR_ADDR 0xC 0xA1A2A3A4; #Прочитај провери за да провериш S/N
враќање - Направете статус. txt file во HDL уредникот на Libero или кој било уредувач на текст. Вклучете ја командата за сервисирање на системот за сериски број („01“ во Hex) и серискиот број во статусот. txt 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:Service Command Code in decimal:%0d“, CMD ;
јавете се на серискиот број; #повикајте ја процедурата за сериски број
печати „ИНФО:Симулацијата завршува“;
враќање - Во Дизајнерската хиерархија view, генерирате тест-бенч (Десен-клик, Дизајн на највисоко ниво > Креирај тестбенч > HDL ) и подготвени сте да извршите симулација на услугата за сериски број.
Откако услугата ќе започне да се извршува, се прикажува порака која ја означува локацијата на дестинацијата и серискиот број. Системскиот контролер спроведува AHB запишување на адресата со серискиот број. По завршувањето на услугата, RXFIFO на COMM_BLK ќе биде вчитан со одговорот на услугата. Прозорецот за препис на ModelSim ги прикажува адресата и серискиот број добиени како што е прикажано на следната слика.
Слика 8 • Симулација на услугата за сериски број SmartFusion2 во прозорецот за транскрипт на ModelSim
2.7 Симулација на услуга за нулирање на IGLOO2
За да се подготвите за симулација на услугата за нулирање на IGLOO2, направете ги чекорите на следниов начин.
- Повикајте го градителот на системот за да го креирате блокот HPMS. Проверете го полето за избор на Системски услуги на HPMS во Карактеристиките на уредот SYS_SERVICES_MASTER BIF. Оставете ги сите други полиња за избор нештиклирани. Прифатете го стандардното на сите други страници и кликнете страница. Ова му наложува на создавачот на системот да го изложи HPMS_FIC_0 Finish за да ја заврши конфигурацијата на блокот за градење на системот.
- Во HDL уредникот на Libero SoC, напишете го HDL кодот за FSM. Во вашиот HDL код за FSM, вклучете ги следните три состојби.
INIT состојба (почетна состојба)
SERV_PHASE (состојба на барање за услуга)
RSP_PHASE (состојба на одговор на услугата)
На следната слика се прикажани трите состојби на FSM.
Слика 9 • ФСМ со три држави - Во вашиот HDL код, користете го командниот код „F0″(Hex) за да ја внесете состојбата на барање за услуга од состојбата INIT.
- Зачувајте го вашиот HDL file.
- Отворете го SmartDesign, повлечете и испуштете го блокот за градење на системот од највисоко ниво и блокот HDL FSM во платното на SmartDesign. Од каталогот, повлечете и испуштете го мекото IP-јадро CoreSysService во платното SmartDesign.
- Кликнете со десното копче на мекото IP-јадро на CoreSysServices за да го отворите конфигураторот и да го проверите полето за избор на Услуга за нула под групата Услуги за безбедност на податоци. Оставете ги сите други полиња за избор нештиклирани. Кликнете за да излезете во ред.
Слика 10 • Конфигуратор на CoreSysServices
- Поврзете го HPMS_FIC_0 SYS_SERVICES_MASTER BIF на блокот за градење на системот со AHBL_MASTER BIF на блокот CoreSysService.
- Поврзете го излезот од вашиот HDL FSM блок со влезот на мекото IP-јадро CoreSysService. Направете ги сите други врски во платното SmartDesign.
Слика 11 • SmartDesign платно со HDL блок, CoreSysServices Soft IP и HPMS блокови
9. Во платното SmartDesign, генерирајте го дизајнот на највисоко ниво (Десен-клик > Генерирај компонента).
10. Во Дизајнерската хиерархија view, кликнете со десното копче на дизајнот на највисоко ниво и изберете Create Testbench > HDL. Сега сте подготвени да извршите симулација.
Откако услугата ќе започне да се извршува, се прикажува порака што покажува дека нулирањето е завршено во времето x, како што е прикажано на следната слика.
Слика 12 • Прозорец за транскрипт за симулација на услуга на системот за нулирање на IGLOO2
Системскиот контролер спроведува AHB запишување на адресата со серискиот број. По завршувањето на услугата, RXFIFO на COMM_BLK ќе биде вчитан со одговорот на услугата. Треба да се забележи дека симулациониот модел симулира нулирање со запирање на симулацијата наместо нулирање на самиот дизајн.
Забелешка: За целосен список на командните шифри што треба да се користат за различни системски услуги, видете ја Табела 1 (Вредности на команди/одговор за системски услуги) во Прирачник CoreSysServices v3.1:. или UG0450: Упатство за употреба на системски контролер SmartFusion2 SoC и IGLOO2 FPGA
2.8 Симулација на услугата за нулирање на SmartFusion2
Во ова упатство, командите BFM (опција 2) се користат за пристап до системскиот контролер за системско сервисирање.
Командите на BFM се користат бидејќи процесорот Cortex-M3 е достапен на уредот за симулација на BFM. Командите на BFM ви дозволуваат директно да пишувате и читате од COMM BLK откако ќе го знаете мемориското мапирање на COMM_BLK. За да го подготвите вашиот дизајн за симулација на услугата за нулирање SmartFusion2, направете ги следните чекори.
- Повлечете и испуштете ја MSS од каталогот на дизајнерското платно на вашиот проект.
- Оневозможете ги сите MSS периферни уреди освен MSS_CCC, ресетирање контролер, управување со прекини и FIC_0, FIC_1 и FIC_2.
- Конфигурирајте го управувањето со прекини за да користи MSS за прекин на ткаенината.
- Подгответе го zeroizaton.bfm file во текстуален уредувач или во HDL уредувач на Libero. Вашата нулаизација. bfm треба да вклучува:
- Мапирање на меморијата на COMM BLK (CMBLK)
- Мапирање на меморија за прекинување на периферниот уред за управување (FIIC)
- Команда за барање за услуга zeroizaton („F0“ Hex за нулаизација)
Поранешенampле од серискиот број.bfm file е прикажано на следната слика.
Слика 13 • Zeroization.bfm за симулација на услуги на системот за нулирање на SmartFusion2
5. Зачувајте го нулирањето.bfm file во папката Simulation на проектот. корисник.bfm
6. Уредете ја (се наоѓа во папката zeroization.bfm Simulation) за да го вклучите со користење на следниов фрагмент од код.
вклучи „zeroization.bfm“ #include zeroization.bfm file процедура user_main;
печати „ИНФО:Симулацијата започнува“;
печати „INFO:Service Command Code in decimal:%0d“, CMD ;
нулирање на повик; Враќање на процедурата за нулирање на #повик
7. Во Дизајнерската хиерархија, генерирајте го тестбенч (десен клик на највисоко ниво > Креирај тестбенч > 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, кодот за грешка од „4“ (Max Generate ) ќе се вметне во RXFIFO. Ако должината на дополнителните податоци не е во опсегот на Барање Премногу големо од 0-128, кодот за грешка од „5“ (надмината максимална должина на дополнителни податоци) ќе се турка во RXFIFO. Ако и бараната должина на податоци за генерирање и должината на дополнителните податоци не се во нивниот дефиниран опсег (0-128), кодот за грешка од „1“ (Катастрофална грешка) се турка во RXFIFO.
3.3.5 Ресетирање на DRBG
Вистинската функција за ресетирање се изведува со отстранување на инстанциите на DRBG и ресетирање на DRBG. Откако ќе се открие барањето за услуга, симулацијата прикажува порака за завршена услуга за ресетирање на DRBG. Одговорот, кој ги вклучува услугата и статусот, се турка во RXFIFO.
3.3.6 Само-тестирање DRBG
Симулациската поддршка за само-тестирањето DRBG всушност не ја извршува функцијата само-тестирање. Откако ќе се открие барањето за услуга, симулацијата ќе прикаже порака за извршување на услугата за само-тестирање DRBG. Одговорот, кој ги вклучува услугата и статусот, ќе биде вметнат во RXFIFO.
3.3.7 DRBG Instantiate
Поддршката за симулација за инстант услугата DRBG всушност не ја извршува инстант услугата. Структурата на податоци мора да биде правилно напишана на нејзината наменета локација пред барањето за услуга да биде испратено до COMM_BLK. Откако ќе се открие барањето за услуга, структурата и низата за персонализација дефинирани во просторот за адреси на MSS ќе бидат прочитани. Симулацијата ќе прикаже порака што покажува дека услугата DRBG Instantiate започнала да се извршува. Откако услугата ќе заврши, одговорот, кој ги вклучува командата за услугата, статусот и покажувачот на структурата на податоци, ќе се турка во RXFIFO. Ако должината на податоците (должина на PERSONALIZATION) не е во опсег од 0-128, кодот за грешка од „1“ (Катастрофална грешка) ќе се вметне во RXFIFO за статусот.
3.3.8 DRBG Uninstantiate
Поддршката за симулација за неинстанцираната услуга DRBG всушност не ја извршува услугата за неинстанција за отстранување на претходно инстанциран DRBG, како што тоа го прави силиконот. Барањето за услуга мора да ги вклучува и командата и рачката DRBG. Откако ќе се открие барањето за услуга, рачката DRBG ќе се зачува. Симулацијата ќе прикаже порака што покажува дека услугата DRBG uninstantiate е иницијализирана. Откако услугата ќе заврши, одговорот, кој ги вклучува командата за услугата, статусот и рачката DRBG, ќе се турка во RXFIFO.
3.3.9 Семе од DRBG
Поради симулативната природа на блокот на системските услуги, услугата DRBG reseed во симулацијата не се извршува автоматски по секои 65535 DRBG генерирани услуги. Структурата на податоци мора да биде правилно напишана на нејзината наменета локација пред барањето за услуга да биде испратено до COMM_BLK. Откако ќе се открие барањето за услуга, структурата и дополнителниот влезен параметар во просторот за адреси на MSS ќе се читаат. Ќе се прикаже порака што покажува дека услугата за ресеидирање DRBG започнала да се извршува. Структурата на податоци мора да биде правилно напишана на нејзината наменета локација пред барањето за услуга да биде испратено до COMM_BLK. Откако услугата ќе заврши, одговорот, кој ги вклучува командата за услугата, статусот и покажувачот на структурата на податоци, ќе се турка во RXFIFO.
3.3.10 Клучно дрво
Вистинската функција не е извршена во симулација за услугата KeyTree. Структурата на податоци за услугата KeyTree се состои од клуч од 32 бајти, 7-битен оптип на податоци (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 треба да се наоѓа во истата папка од која се извршува симулацијата. На file може да се користи, меѓу другото, за присилување одредени одговори на грешки за поддржаните системски услуги или дури и за поставување на некои параметри потребни за симулација, (на пр.ample, сериски број). Максималниот број на линии поддржани во „status.txt“ file е 256. Инструкциите што се појавуваат по линијата број 256 нема да се користат во симулацијата.
3.5.1 Принудувачки одговори на грешки
Корисникот може да присили одреден одговор на грешка за одредена услуга за време на тестирањето со предавање на информациите до моделот за симулација користејќи го „status.txt“ file, кој треба да се стави во папката од која се извршува симулацијата. За да се присилат одговорите на грешки на одредена услуга, командата и потребниот одговор треба да се напишат во иста линија во следниот формат:ample, да командува> ; му наложи на моделот за симулација да генерира одговор на грешка при пристап до меморијата 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 производи; Етернет решенија; ИЦ и средни распони со напојување преку етернет; како и можности и услуги прилагодено за дизајн. Микросеми е со седиште во Алисо Виехо, Калифорнија и има приближно 4,800 вработени на глобално ниво. Дознајте повеќе на www.microsemi.com.
Седиште на Микросеми
One Enterprise, Алисо Виехо,
Калифорнија 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 системски услуги симулација, симулација на услуги |