UG0837
Uporabniški priročnik
IGLOO2 in SmartFusion2 FPGA
Simulacija sistemskih storitev
junij 2018
Zgodovina revizij
Zgodovina revizij opisuje spremembe, ki so bile izvedene v dokumentu. Spremembe so navedene po reviziji, začenši z najnovejšo objavo.
1.1 Revizija 1.0
Revizija 1.0 je bila objavljena junija 2018. To je bila prva objava tega dokumenta.
Simulacija sistemskih storitev IGLOO2 in SmartFusion2 FPGA
Blok sistemskih storitev družine SmartFusion®2 FPGA vsebuje zbirko storitev, odgovornih za različne naloge. Ti vključujejo storitve simulacijskih sporočil, storitve podatkovnih kazalcev in storitve deskriptorjev podatkov. Do sistemskih storitev je mogoče dostopati prek Cortex-M3 v SmartFusion2 in iz tkanine FPGA prek krmilnika vmesnika tkanine (FIC) za SmartFusion2 in IGLOO®2. Te metode dostopa so poslane sistemskemu krmilniku prek COMM_BLK. COMM_BLK ima vmesnik naprednega perifernega vodila (APB) in deluje kot kanal za prenos sporočil za izmenjavo podatkov s sistemskim krmilnikom. Zahteve sistemskih storitev se pošljejo sistemskemu krmilniku, odgovori sistemskih storitev pa se pošljejo CoreSysSerrvice prek COMM BLK. Lokacija naslova za COMM_BLK je na voljo znotraj mikrokrmilniškega podsistema (MSS)/high performance memory subsistema (HPMS). Za podrobnosti glejte UG0450: SmartFusion2 SoC in sistemski krmilnik FPGA IGLOO2.
Uporabniški priročnik
Naslednja slika prikazuje pretok podatkov sistemskih storitev.
Slika 1 • Diagram toka podatkov o sistemski storitviZa simulacijo sistemske storitve IGLOO2 in SmartFusion2 morate poslati zahteve za sistemsko storitev in preveriti odgovore sistemske storitve, da preverite, ali je simulacija pravilna. Ta korak je potreben za dostop do sistemskega krmilnika, ki zagotavlja sistemske storitve. Način pisanja v sistemski krmilnik in branja iz njega je drugačen za naprave IGLOO2 in SmartFusion2. Za SmartFusion2 je na voljo Coretex-M3 in lahko pišete in berete iz sistemskega krmilnika z uporabo ukazov funkcionalnega modela vodila (BFM). Za IGLOO2 Cortex-M3 ni na voljo in sistemski krmilnik ni dostopen z ukazi BFM.
2.1 Vrste sistemskih storitev, ki so na voljo
Na voljo so tri različne vrste sistemskih storitev in vsaka vrsta storitve ima različne podvrste.
Storitve simulacijskih sporočil
Storitve podatkovnega kazalca
Storitve deskriptorjev podatkov
Poglavje Dodatek – Vrste sistemskih storitev (glejte stran 19) v tem priročniku opisuje različne vrste sistemskih storitev. Za več informacij o sistemskih storitvah glejte UG0450: Uporabniški priročnik za sistemski krmilnik SmartFusion2 SoC in IGLOO2 FPGA.
2.2 Simulacija sistemske storitve IGLOO2
Sistemske storitve vključujejo pisanje v sistemski krmilnik in branje iz njega. Če želite pisati v sistemski krmilnik in brati iz njega za namene simulacije, morate izvesti naslednje korake.
- Instanciirajte mehko IP jedro CoreSysServices, ki je na voljo v katalogu SmartDesign.
- Napišite kodo HDL za končni avtomat (FSM).
HDL FSM je povezan z jedrom CoreSysServices, ki služi kot glavno vodilo za vodilo AHBLite. Jedro CoreSysServices sproži zahtevo za sistemsko storitev do COMM BLK in prejme odzive sistemske storitve od COMM BLK prek krmilnika vmesnika FIC_0/1, kot je prikazano na naslednji sliki.
Slika 2 • Topologija simulacije sistemskih storitev IGLOO22.3 Simulacija sistemske storitve SmartFusion2
Za simulacijo sistemskih storitev v napravah SmartFusion2 morate pisati in brati iz sistemskega krmilnika. Na voljo sta dve možnosti za dostop do krmilnika sistema za namene simulacije.
1. možnost — Napišite kodo HDL za FSM za vmesnik z mehkim IP jedrom CoreSysService, ki služi kot glavni omrežni sistem AHBLite in sproži zahtevo za sistemsko storitev za COMM BLK ter prejme odzive sistemske storitve od COMM BLK prek tkanega FIC_0/1 vmesnik, kot je prikazano na naslednji sliki.
Slika 3 • Topologija simulacije sistemskih storitev SmartFusion2
Možnost 2 — Ker je Cortex-M3 na voljo za naprave SmartFusion2, lahko uporabite ukaze BFM za neposredno pisanje in branje iz pomnilniškega prostora sistemskega krmilnika.
Uporaba ukazov BFM (možnost 2) prihrani potrebo po pisanju kod HDL za FSM. V tem uporabniškem priročniku je možnost 2 uporabljena za prikaz simulacije sistemskih storitev v SmartFusion2. S to možnostjo se dostopa do pomnilniškega prostora sistemskega krmilnika, da se ugotovi zemljevid pomnilnika COMM BLK in bloka krmilnika prekinitve vmesnika tkanine (FIIC), ko pišete svoje ukaze BFM.
2.4 Simulacija Examples
Uporabniški priročnik zajema naslednje simulacije.
- Simulacija storitve serijske številke IGLOO2 (glejte stran 5)
- Simulacija storitve serijske številke SmartFusion2 (glejte stran 8)
- Simulacija storitve ničelizacije IGLOO2 (glejte stran 13)
- Simulacija storitve ničelizacije SmartFusion2 (glejte stran 16)
Podobne metode simulacije je mogoče uporabiti za druge sistemske storitve. Za celoten seznam različnih sistemskih storitev, ki so na voljo, pojdite na Dodatek – Vrste sistemskih storitev (glejte stran 19).
2.5 Simulacija storitve serijske številke IGLOO2
Za pripravo na simulacijo storitve serijske številke IGLOO2 izvedite naslednje korake.
- Pokličite graditelja sistema, da ustvarite blok HPMS.
- Označite potrditveno polje HPMS System Services na strani Device Features. To bo graditelju sistema ukazalo, naj izpostavi vmesnik vodila HPMS_FIC_0 SYS_SERVICES_MASTER (BIF).
- Vsa druga potrditvena polja pustite nepotrjena.
- Sprejmite privzeto na vseh drugih straneh in kliknite Dokončaj, da dokončate blok graditelja sistema. V urejevalnik HDL Libero® SoC napišite kodo HDL za FSM (File > Novo > HDL). V svoj FSM vključite naslednje tri države.
INIT stanje (začetno stanje)
SERV_PHASE (stanje storitvene zahteve)
RSP_PHASE (stanje odziva storitve).
Naslednja slika prikazuje tri stanja FSM.
Slika 4 • FSM s tremi stanji V vaši kodi HDL za FSM uporabite pravilno kodo ukaza (»01« Hex za storitev serijske številke), da vnesete stanje zahteve po storitvi iz stanja INIT.
- Shranite svoj HDL file. FSM se pojavi kot komponenta v načrtovalski hierarhiji.
- Odprite SmartDesign. Povlecite in spustite svoj gradbeni blok sistema najvišje ravni in blok FSM na platno SmartDesign. Iz kataloga povlecite in spustite mehko IP jedro CoreSysService v platno SmartDesign.
- Z desno miškino tipko kliknite jedro IP CoreSysService, da odprete konfigurator. Označite potrditveno polje Serial Number Service (v razdelku Device and Design Information Services).
skupina), da omogočite storitev serijske številke. - Vsa druga potrditvena polja pustite nepotrjena. Kliknite OK za izhod iz konfiguratorja.
Slika 5 • CoreSysServices soft IP Core Configurator
- Povežite HPMS_FIC_0 SYS_SERVICES_MASTER BIF bloka gradnika sistema z AHBL_MASTER BIF bloka CoreSysService.
- Povežite izhod vašega bloka HDL FSM z vhodom mehkega jedra IP CoreSysService. Izvedite vse druge povezave v platnu SmartDesign, kot je prikazano na naslednji sliki.
Slika 6 • SmartDesign Canvas z blokom HDL, CoreSysServices Soft IP in bloki HPMS - Na platnu SmartDesign z desno miškino tipko kliknite >Ustvari komponento, da ustvarite načrt zgornje ravni.
- V hierarhiji oblikovanja view, z desno tipko miške kliknite zasnovo najvišje ravni in izberite Create Bench > HDL.
- Za ustvarjanje besedila uporabite urejevalnik besedil file z imenom “status.txt”.
- Vključite ukaz za sistemsko storitev in 128-bitno serijsko številko. Za več informacij glejte Tabelo 1 (Vrednosti ukazov/odzivov sistemskih storitev) v Priročnik CoreSysServices v3.1 za ukazne kode (Hex), ki se uporabljajo za različne sistemske storitve. Za storitev serijske številke je koda ukaza "01" Hex.
Oblika zapisa status.txt file za storitev serijske številke je naslednja.
< 2 šestnajstiška številka CMD><32 šestnajstiška serijska številka>
Example: 01A1A2A3A4B1B2B3B4C1C2C3C4D1D2D3D4
Shranite status.txt file v mapi Simulacija vašega projekta. Zasnova je zdaj pripravljena za simulacijo.
Ko se storitev začne izvajati, se v oknu prepisa ModelSim prikaže sporočilo, ki označuje ciljno lokacijo in serijsko številko, kot je prikazano na naslednji sliki.
Slika 7 • Okno s prepisom simulacije ModelSimSistemski krmilnik izvede AHB pisanje na naslov s serijsko številko. Po zaključku storitve bo RXFIFO COMM_BLK naložen z odgovorom storitve.
Opomba: Za popoln seznam ukaznih kod, ki se uporabljajo za različne sistemske storitve, glejte tabelo 1 (Vrednosti ukazov/odzivov sistemskih storitev) v priročniku CoreSysServices v3.1 ali UG0450: Uporabniški priročnik za sistemski krmilnik SmartFusion2 SoC in IGLOO2 FPGA.
2.6 Simulacija storitve serijske številke SmartFusion2
V tem uporabniškem priročniku se ukazi BFM (2. možnost) uporabljajo za dostop do sistemskega krmilnika za sistemske storitve. Ukazi BFM se uporabljajo, ker je v napravi na voljo procesor Cortex-M3 za simulacijo BFM. Ukazi BFM vam omogočajo neposredno pisanje v COMM BLK in branje iz njega, ko poznate preslikavo pomnilnika COMM_BLK.
Če želite pripraviti svojo zasnovo za simulacijo storitve serijske številke SmartFusion2, izvedite naslednje korake.
- Povlecite in spustite MSS iz kataloga na oblikovalsko platno vašega projekta.
- Onemogočite vse zunanje naprave MSS razen MSS_CCC, Reset Controller, Interrupt Management ter FIC_0, FIC_1 in FIC_2.
- Konfigurirajte upravljanje prekinitev za uporabo MSS za izdelavo prekinitev.
- Pripravite serialnum.bfm file v urejevalniku besedil ali v Liberovem urejevalniku HDL. Shranite serialnum.bfm file v mapi Simulacija projekta. Serialnum.bfm mora vsebovati naslednje podrobnosti.
• Preslikava pomnilnika v COMM BLK (CMBLK)
• Preslikava pomnilnika v periferno enoto za upravljanje prekinitev (FIIC)
• Ukaz za zahtevo sistemske storitve serijske številke (»01« Hex)
• Naslov za lokacijo serijske številke
Bivšiampdatoteke serijske številke.bfm file je naslednji.
memmap FIIC 0x40006000; #Preslikava pomnilnika v upravljanje prekinitev
memmap CMBLK 0x40016000; #Preslikava pomnilnika v COMM BLK
memmap DESCRIPTOR_ADDR 0x20000000; #Lokacija naslova za serijsko št
#Koda ukaza v šestnajstiški obliki
konstanta CMD 0x1 # Koda ukaza za Serial NumberService
#FIIC konfiguracijski registri
konstanta FICC_INTERRUPT_ENABLE0 0x0
#COMM_BLK Konfiguracijski registri
stalni NADZOR 0x00
stalni STATUS 0x04
konstanta INT_ENABLE 0x08
stalni PODATKI8 0x10
stalni PODATKI32 0x14
konstanta FRAME_START8 0x18
konstanta FRAME_START32 0x1C
serijska številka postopka;
int x;
pisanje w FIIC FICC_INTERRUPT_ENABLE0 0x20000000 #Konfiguriraj
#FICC_INTERRUPT_ENABLE0 # Registrirajte se, da omogočite COMBLK_INTR #
#interrupt iz bloka COMM_BLK v fabric
Faza #zahtevanja
write w CMBLK CONTROL 0x10 # Konfiguriraj COMM BLK Control #Registracija na
omogočite prenose na vmesniku COMM BLK
write w CMBLK INT_ENABLE 0x1 # Konfiguriraj COMM BLK Omogoči prekinitev
#Registrirajte se, da omogočite prekinitev za TXTOKAY (ustrezen bit v
#Status Register)
waitint 19 # počakaj na prekinitev COMM BLK, tukaj #BFM čaka
#do uveljavitve COMBLK_INTR
readstore w CMBLK STATUS x # Branje registra stanja COMM BLK za #TXTOKAY
# Prekinitev
nastavite xx & 0x1
če x
pisanje w CMBLK FRAME_START8 CMD # Konfiguriraj COMM BLK FRAME_START8
#Registrirajte se, da zahtevate storitev serijske številke
endif
endif
waitint 19 # počakaj na prekinitev COMM BLK, tukaj
#BFM čaka, da se potrdi COMBLK_INTR
readstore w CMBLK STATUS x # Branje COMM BLK statusnega registra za
#TXTOKAY Prekinitev
nastavite xx & 0x1
nastavite xx & 0x1
če x
write w CMBLK CONTROL 0x14 #Konfiguriraj COMM BLK Control
#Registrirajte se, da omogočite prenose na vmesniku COMM BLK
napišite w CMBLK DATA32 DESCRIPTOR_ADDR
napišite w CMBLK INT_ENABLE 0x80
napišite w CMBLK CONTROL 0x10
endif
počakaj 20
#Faza odziva
počakaj 19
readstore w CMBLK STATUS x
nastavite xx & 0x80
če x
readcheck w CMBLK FRAME_START8 CMD
napišite w CMBLK INT_ENABLE 0x2
endif
počakaj 19
readstore w CMBLK STATUS x
nastavite xx & 0x2
če x
readcheck w CMBLK DATA8 0x0
napišite w CMBLK CONTROL 0x18
endif
počakaj 19
preverjanje branja s FIIC 0x8 0x20000000
readstore w CMBLK STATUS x
nastavite xx & 0x2
če x
readcheck w CMBLK DATA32 DESCRIPTOR_ADDR
endif
preverjanje branja w DESCRIPTOR_ADDR 0x0 0xE1E2E3E4; #Readcheck za preverjanje S/N
preverjanje branja w DESCRIPTOR_ADDR 0x4 0xC1C2C3C4; #Readcheck za preverjanje S/N
preverjanje branja w DESCRIPTOR_ADDR 0x8 0xB1B2B3B4; #Readcheck za preverjanje S/N
preverjanje branja w DESCRIPTOR_ADDR 0xC 0xA1A2A3A4; #Readcheck za preverjanje S/N
vrnitev - Ustvari status. txt file v Liberovem urejevalniku HDL ali katerem koli drugem urejevalniku besedil. V status vključite ukaz sistemske storitve serijske številke (»01« v hex) in serijsko številko. txt file. Oglejte si priročnik CoreSysServices v3.1 za uporabo pravilne ukazne kode.
- Sintaksa tega file za storitev serijske številke je <2 šestnajstiška številka CMD>< 32 šestnajstiška serijska številka> . nprample: 01A1A2A3A4B1B2B3B4C1C2C3C4E1E2E3E4.
- Shranite stanje .txt file v mapi Simulacija projekta.
- Uredite uporabniški .bfm (ki se nahaja znotraj mape Simulation), da vključi serijsko številko. bfm file in pokličite postopek serijske številke, kot je prikazano v naslednjem delčku kode.
vključi “serialnum.bfm” #include serialnum.bfm
postopek user_main;
natisnite “INFO: Začetek simulacije”;
natisni “INFO:Storitvena ukazna koda v decimalnem jeziku:%0d”, CMD ;
pokliči serijsko številko; #pokliči postopek serijske številke
natisnite “INFO:Simulacija se konča”;
vrnitev - V hierarhiji oblikovanja view, ustvarite preskusno napravo (desni klik, Oblikovanje najvišje ravni > Ustvari preskusno napravo > HDL) in pripravljeni ste na zagon simulacije storitve serijske številke.
Ko se storitev začne izvajati, se prikaže sporočilo, ki označuje ciljno lokacijo in serijsko številko. Sistemski krmilnik izvede AHB pisanje na naslov s serijsko številko. Po zaključku storitve bo RXFIFO COMM_BLK naložen z odgovorom storitve. Okno za prepis ModelSim prikazuje prejeti naslov in serijsko številko, kot je prikazano na naslednji sliki.
Slika 8 • Simulacija storitve serijske številke SmartFusion2 v oknu prepisa ModelSim
2.7 Simulacija storitve ničelizacije IGLOO2
Za pripravo na simulacijo storitve ničelizacije IGLOO2 izvedite naslednje korake.
- Pokličite graditelja sistema, da ustvari blok HPMS. Označite potrditveno polje HPMS System Services v Device Features SYS_SERVICES_MASTER BIF. Vsa druga potrditvena polja pustite nepotrjena. Sprejmite privzeto na vseh drugih straneh in kliknite stran. To naroči graditelju sistema, naj razkrije HPMS_FIC_0 Finish za dokončanje konfiguracije bloka graditelj sistema.
- V urejevalnik HDL Libero SoC napišite kodo HDL za FSM. V kodo HDL za FSM vključite naslednja tri stanja.
INIT stanje (začetno stanje)
SERV_PHASE (stanje storitvene zahteve)
RSP_PHASE (stanje odziva storitve)
Naslednja slika prikazuje tri stanja FSM.
Slika 9 • FSM s tremi stanji - V vaši kodi HDL uporabite kodo ukaza “F0″(Hex), da vnesete stanje storitvene zahteve iz stanja INIT.
- Shranite svoj HDL file.
- Odprite SmartDesign, povlecite in spustite vaš gradbeni blok sistema najvišje ravni in blok HDL FSM v platno SmartDesign. Iz kataloga povlecite in spustite mehko IP jedro CoreSysService v platno SmartDesign.
- Z desno miškino tipko kliknite programsko jedro IP CoreSysServices, da odprete konfigurator in potrdite potrditveno polje Storitev ničelnosti pod skupino Storitve varnosti podatkov. Vsa druga potrditvena polja pustite nepotrjena. Kliknite V redu za izhod.
Slika 10 • Konfigurator CoreSysServices
- Povežite HPMS_FIC_0 SYS_SERVICES_MASTER BIF bloka gradnika sistema z AHBL_MASTER BIF bloka CoreSysService.
- Povežite izhod vašega bloka HDL FSM z vhodom mehkega jedra IP CoreSysService. Vse druge povezave naredite v platnu SmartDesign.
Slika 11 • SmartDesign Canvas z blokom HDL, CoreSysServices Soft IP in bloki HPMS
9. Na platnu SmartDesign ustvarite načrt najvišje ravni (desni klik > Ustvari komponento).
10. V hierarhiji oblikovanja view, z desno miškino tipko kliknite zasnovo najvišje ravni in izberite Create Bench > HDL. Zdaj ste pripravljeni na zagon simulacije.
Ko se storitev začne izvajati, se prikaže sporočilo, ki označuje, da je bila ničelizacija končana ob času x, kot je prikazano na naslednji sliki.
Slika 12 • Okno transkripta simulacije storitve sistema ničelizacije IGLOO2
Sistemski krmilnik izvede AHB pisanje na naslov s serijsko številko. Po zaključku storitve bo RXFIFO COMM_BLK naložen z odgovorom storitve. Upoštevati je treba, da simulacijski model simulira ničelizacijo tako, da ustavi simulacijo, namesto da ničli samo zasnovo.
Opomba: Za celoten seznam ukaznih kod, ki se uporabljajo za različne sistemske storitve, glejte tabelo 1 (Vrednosti ukaza/odziva sistemskih storitev) v Priročnik CoreSysServices v3.1:. ali UG0450: Uporabniški priročnik za sistemski krmilnik SmartFusion2 SoC in IGLOO2 FPGA
2.8 Simulacija storitve ničelizacije SmartFusion2
V tem priročniku se ukazi BFM (2. možnost) uporabljajo za dostop do sistemskega krmilnika za sistemske storitve.
Ukazi BFM se uporabljajo, ker je v napravi na voljo procesor Cortex-M3 za simulacijo BFM. Ukazi BFM vam omogočajo neposredno pisanje v COMM BLK in branje iz njega, ko poznate preslikavo pomnilnika COMM_BLK. Za pripravo načrta za simulacijo storitve ničelizacije SmartFusion2 izvedite naslednje korake.
- Povlecite in spustite MSS iz kataloga na oblikovalsko platno vašega projekta.
- Onemogočite vse zunanje naprave MSS razen MSS_CCC, Reset Controller, Interrupt Management ter FIC_0, FIC_1 in FIC_2.
- Konfigurirajte upravljanje prekinitev za uporabo MSS za izdelavo prekinitev.
- Pripravite zeroizaton.bfm file v urejevalniku besedil ali v Liberovem urejevalniku HDL. Tvoja ničelizacija. bfm mora vsebovati:
- Preslikava pomnilnika v COMM BLK (CMBLK)
- Preslikava pomnilnika v periferno enoto za upravljanje prekinitev (FIIC)
- Ukaz za zahtevo po storitvi zeroizacije (»F0« Hex za ničlizacijo)
Bivšiampdatoteke serijske številke.bfm file je prikazano na naslednji sliki.
Slika 13 • Zeroization.bfm za simulacijo sistemskih storitev Zeroization SmartFusion2
5. Shranite zeroization.bfm file v mapi Simulacija projekta. uporabnik.bfm
6. Uredite (ki se nahaja v mapi simulacije zeroization.bfm), da vključite z naslednjim izrezkom kode.
vključi “zeroization.bfm” #include zeroization.bfm file postopek user_main;
natisnite “INFO: Začetek simulacije”;
natisni “INFO:Storitvena ukazna koda v decimalnem jeziku:%0d”, CMD ;
ničelizacija klica; Vrnitev postopka ničelizacije klica
7. V načrtovalski hierarhiji ustvarite Testbench (z desno miškino tipko kliknite najvišjo raven > Ustvari Testbench > HDL) in pripravljeni ste na zagon simulacije ničelizacije SmartFusion2.
Ko se storitev začne izvajati, se prikaže sporočilo, ki nakazuje, da je bila naprava ob času x ničelna. Upoštevati je treba, da simulacijski model simulira ničelizacijo tako, da ustavi simulacijo, namesto da ničli samo zasnovo. Okno s prepisom ModelSim na naslednji sliki kaže, da je bila naprava nastavljena na ničlo.
Slika 14 • Dnevnik simulacije storitve SmartFusion2 Zeroization System
Dodatek: Vrste sistemskih storitev
V tem poglavju so opisane različne vrste sistemskih storitev.
3.1 Storitve simulacijskih sporočil
Naslednji razdelki opisujejo različne vrste storitev simulacijskih sporočil.
3.1.1 Flash*Freeze
Simulacija bo prešla v stanje Flash*Freeze, ko bo na COMM_BLK poslana ustrezna zahteva za storitev iz FIC (v primeru naprav IGLOO2) ali Cortex-M3 (v napravah SmartFusion2). Ko sistemski krmilnik zazna storitev, se simulacija ustavi in prikaže se sporočilo, ki nakazuje, da je sistem vstopil v Flash*Freeze (skupaj z izbrano možnostjo). Po nadaljevanju simulacije bo RXFIFO COMM_BLK napolnjen s servisnim odgovorom, sestavljenim iz storitvenega ukaza in statusa. Upoštevati je treba, da ni podpore za simulacijo za izhod Flash*Freeze.
3.1.2 Ničelizacija
Ničelizacija je trenutno edina storitev visoke prioritete znotraj sistemskih storitev, ki jih obdeluje COMM_BLK. Simulacija bo prešla v ničelno stanje takoj, ko COMM_BLK zazna pravilno zahtevo za storitev. Izvajanje drugih storitev bo sistemski krmilnik zaustavil in zavrgel, namesto njih pa bo izvedena storitev ničelizacije. Ko je zaznana zahteva za storitev nastavitve na ničlo, se simulacija ustavi in prikaže se sporočilo, ki nakazuje, da je sistem vstopil v ničlizacijo. Ročni ponovni zagoni simulacije po nastavitvi na ničlo niso veljavni.
3.2 Storitve podatkovnega kazalca
Naslednji razdelki opisujejo različne vrste storitev podatkovnega kazalca.
3.2.1 Serijska številka
Storitev serijske številke bo zapisala 128-bitno serijsko številko na lokacijo naslova, ki je navedena kot del storitvene zahteve. Ta 128-bitni parameter je mogoče nastaviti s podporo za simulacijo sistemske storitve file (glejte stran 22) . Če parameter 128-bitne serijske številke ni definiran znotraj file, bo uporabljena privzeta serijska številka 0. Ko se storitev začne izvajati, se prikaže sporočilo, ki označuje ciljno lokacijo in serijsko številko. Sistemski krmilnik izvede AHB pisanje na naslov s serijsko številko. Po zaključku storitve bo RXFIFO COMM_BLK naložen z odgovorom storitve.
3.2.2 Uporabniška koda
Storitev uporabniške kode zapiše 32-bitni parameter uporabniške kode na lokacijo naslova, ki je navedena kot del storitvene zahteve. Ta 32-bitni parameter je mogoče nastaviti s podporo za simulacijo sistemskih storitev file (glejte stran 22). Če 32-bitni parameter ni definiran znotraj file, je uporabljena privzeta vrednost 0. Ko se storitev začne izvajati, se prikaže sporočilo, ki označuje ciljno lokacijo in uporabniško kodo. Sistemski krmilnik izvede pisanje AHB na naslov z 32-bitnim parametrom. Po zaključku storitve se RXFIFO COMM_BLK naloži z odzivom storitve, ki vključuje ukaz storitve in ciljni naslov.
3.3 Storitve podatkovnih deskriptorjev
Naslednji razdelki opisujejo različne vrste storitev deskriptorjev podatkov.
3.3.1 AES
Podpora za simulacijo za to storitev se nanaša samo na premikanje izvirnih podatkov od vira do cilja, ne da bi dejansko izvajali kakršno koli šifriranje/dešifriranje podatkov. Podatke, ki jih je treba šifrirati/dešifrirati, in podatkovno strukturo je treba zapisati pred pošiljanjem storitvene zahteve. Ko se storitev začne izvajati, se prikaže sporočilo, ki označuje izvajanje storitve AES. Storitev AES bere tako strukturo podatkov kot podatke, ki jih je treba šifrirati/dešifrirati. Izvirni podatki se kopirajo in zapišejo na naslov, naveden v podatkovni strukturi. Ko je storitev končana, so ukaz, status in naslov strukture podatkov potisnjeni v RXFIFO.
Opomba: Ta storitev je samo za 128-bitne in 256-bitne podatke, 128-bitni in 256-bitni podatki pa imajo različne dolžine podatkovne strukture.
3.3.2 SHA 256
Podpora za simulacijo za to storitev se ukvarja samo s premikanjem podatkov, ne da bi dejansko izvajala kakršno koli zgoščevanje podatkov. Funkcija SHA 256 je zasnovana za ustvarjanje 256-bitnega zgoščenega ključa na podlagi vhodnih podatkov. Podatke, ki jih je treba zgostiti, in strukturo podatkov je treba zapisati na ustrezne naslove, preden se zahteva za storitev pošlje v COMM_BLK. Dolžina v bitih in kazalec, definirana v podatkovni strukturi SHA 256, morata pravilno ustrezati dolžini in naslovu podatkov, ki jih je treba zgostiti. Ko se storitev začne izvajati, se prikaže sporočilo, ki označuje izvajanje storitve SHA 256. Namesto izvajanja dejanske funkcije bo v ciljni kazalec iz podatkovne strukture zapisan privzeti zgoščeni ključ. Privzeti zgoščeni ključ je šestnajstiški "ABCD1234". Za nastavitev ključa po meri pojdite na razdelek Nastavitev parametrov (glejte stran 23). Po zaključku storitve se RXFIFO naloži s servisnim odgovorom, ki ga sestavljajo storitveni ukaz, status in kazalec podatkovne strukture SHA 256.
3.3.3 HMAC
Podpora za simulacijo za to storitev se nanaša samo na premikanje podatkov, ne da bi dejansko izvajala kakršno koli zgoščevanje podatkov. Podatke, ki jih je treba zgostiti, in strukturo podatkov je treba zapisati na ustrezne naslove, preden je zahteva za storitev poslana v COMM_BLK. Storitev HMAC zahteva 32-bajtni ključ poleg dolžine v bajtih, izvornega kazalca in ciljnega kazalca. Ko se storitev začne izvajati, se prikaže sporočilo, ki označuje izvajanje storitve HMAC. Ključ se prebere in 256-bitni ključ se prekopira iz podatkovne strukture v ciljni kazalec. Po zaključku storitve se RXFIFO naloži s servisnim odgovorom, ki ga sestavljajo storitveni ukaz, status in kazalec podatkovne strukture HMAC.
3.3.4 Ustvari DRBG
Generiranje naključnih bitov izvaja ta storitev. Opozoriti je treba, da simulacijski model ne sledi povsem isti metodologiji generiranja naključnih števil, ki jo uporablja silicij. Podatkovna struktura mora biti pravilno zapisana na predvideno mesto, preden je zahteva za storitev poslana v COMM_BLK. Podatkovno strukturo, ciljni kazalec, dolžino in druge pomembne podatke prebere sistemski krmilnik. Storitev generiranja DRBG ustvari psevdonaključni nabor podatkov zahtevane dolžine (0–128). Sistemski krmilnik zapiše naključne podatke v ciljni kazalec. V simulaciji se prikaže sporočilo, ki označuje izvajanje storitve generiranja DRBG. Ko je storitev končana, so ukaz, status in naslov strukture podatkov potisnjeni v RXFIFO. Če zahtevana dolžina podatkov ni v območju 0–128, bo v RXFIFO potisnjena koda napake »4« (Max Generate). Če dolžina dodatnih podatkov ni znotraj obsega prevelike zahteve 0–128, bo v RXFIFO potisnjena koda napake »5« ( presežena največja dolžina dodatnih podatkov). Če tako zahtevana dolžina podatkov za ustvarjanje kot dodatna dolžina podatkov nista znotraj definiranega obsega (0–128), se v RXFIFO potisne koda napake »1« (katastrofalna napaka).
3.3.5 Ponastavitev DRBG
Dejanska funkcija ponastavitve se izvede z odstranitvijo primerkov DRBG in ponastavitvijo DRBG. Ko je servisna zahteva zaznana, simulacija prikaže sporočilo DRBG Reset service completed. Odgovor, ki vključuje storitev in status, je potisnjen v RXFIFO.
3.3.6 Samotestiranje DRBG
Podpora za simulacijo samotestiranja DRBG dejansko ne izvaja funkcije samotestiranja. Ko je zahteva za storitev zaznana, bo simulacija prikazala sporočilo o izvajanju storitve samotestiranja DRBG. Odgovor, ki vključuje storitev in status, bo potisnjen v RXFIFO.
3.3.7 Primerek DRBG
Podpora za simulacijo za instantno storitev DRBG dejansko ne izvaja instantne storitve. Podatkovna struktura mora biti pravilno zapisana na predvideno mesto, preden je zahteva za storitev poslana v COMM_BLK. Ko je zahteva za storitev zaznana, bosta prebrana struktura in personalizacijski niz, definiran v naslovnem prostoru MSS. Simulacija bo prikazala sporočilo, ki nakazuje, da se je storitev DRBG Instantiate začela izvajati. Ko je storitev končana, bo odgovor, ki vključuje storitveni ukaz, status in kazalec na podatkovno strukturo, potisnjen v RXFIFO. Če dolžina podatkov (PERSONALIZATIONLENGTH) ni v območju 0–128, bo v RXFIFO za status potisnjena koda napake »1« (katastrofalna napaka).
3.3.8 DRBG Neinstanciated
Podpora za simulacijo za neinstanciirano storitev DRBG dejansko ne izvaja neinstanciirane storitve odstranjevanja predhodno instanciranega DRBG, kot to počne silicij. Storitvena zahteva mora vključevati ukaz in ročico DRBG. Ko je zaznana zahteva za storitev, bo ročaj DRBG shranjen. Simulacija bo prikazala sporočilo, ki nakazuje, da je bila inicializirana neinstancirana storitev DRBG. Ko je storitev končana, bo odgovor, ki vključuje storitveni ukaz, status in ročaj DRBG, potisnjen v RXFIFO.
3.3.9 Ponovno zasejanje DRBG
Zaradi simulativne narave bloka sistemskih storitev se storitev ponovnega zagona DRBG v simulaciji ne izvede samodejno po vsakih 65535 generiranih storitvah DRBG. Podatkovna struktura mora biti pravilno zapisana na predvideno mesto, preden je zahteva za storitev poslana v COMM_BLK. Ko je bila zahteva za storitev zaznana, bosta prebrana struktura in dodatni vhodni parameter v naslovnem prostoru MSS. Prikaže se sporočilo, ki nakazuje, da se je storitev ponovnega zagona DRBG začela izvajati. Podatkovna struktura mora biti pravilno zapisana na predvideno mesto, preden je zahteva za storitev poslana v COMM_BLK. Ko je storitev končana, bo odgovor, ki vključuje storitveni ukaz, status in kazalec na podatkovno strukturo, potisnjen v RXFIFO.
3.3.10 KeyTree
Dejanska funkcija se ne izvaja v simulaciji za storitev KeyTree. Podatkovna struktura storitve KeyTree je sestavljena iz 32-bajtnega ključa, 7-bitnih podatkov optipe (MSB je prezrt) in 16-bajtne poti. Podatke v podatkovni strukturi je treba zapisati na ustrezne naslove, preden je zahteva za storitev poslana v COMM_BLK. Ko se storitev začne izvajati, se prikaže sporočilo, ki označuje izvajanje storitve KeyTree. Vsebina podatkovne strukture bo prebrana, 32-bajtni ključ bo shranjen, prvotni ključ znotraj podatkovne strukture pa bo prepisan. Po tem pisanju AHB se vrednost ključa v podatkovni strukturi ne bi smela spremeniti, vendar se bodo zgodile transakcije AHB za pisanje. Po zaključku storitve se RXFIFO naloži s servisnim odgovorom, ki ga sestavljajo storitveni ukaz, status in kazalec podatkovne strukture KeyTree.
3.3.11 Odziv na izziv
Dejanska funkcija, kot je preverjanje pristnosti naprave, se ne izvaja v simulaciji za storitev odgovora na izziv. Podatkovna struktura za to storitev zahteva kazalec na vmesni pomnilnik, da prejme 32-bajtni rezultat, 7-bitno opcijo in 128-bitno pot. Podatke v podatkovni strukturi je treba zapisati na ustrezne naslove, preden je zahteva za storitev poslana v COMM_BLK. Ko se storitev začne izvajati, se prikaže sporočilo, ki označuje izvedbo storitve odziva na izziv. Generičen 256-bitni odgovor bo zapisan v kazalec znotraj podatkovne strukture. Privzeti ključ je nastavljen kot šestnajstiški "ABCD1234". Če želite pridobiti ključ po meri, preverite Nastavitev parametrov (glejte stran 23). Po zaključku storitve bo RXFIFO naložen z odzivom storitve, ki ga sestavljajo ukaz storitve, status in kazalec podatkovne strukture odgovora na izziv.
3.4 Druge storitve
Naslednji razdelki opisujejo različne druge sistemske storitve.
3.4.1 Pregled prebave
Dejanska funkcija ponovnega izračuna in primerjave povzetkov izbranih komponent se ne izvaja za storitev preverjanja povzetka v simulaciji. Ta servisna zahteva je sestavljena iz servisnih ukazov in servisnih možnosti (5-bitni LSB). Ko se storitev začne izvajati, se prikaže sporočilo s podrobnostmi o izvajanju storitve preverjanja povzetka, skupaj z izbranimi možnostmi iz zahteve. Po zaključku storitve bo RXFIFO naložen s servisnim odzivom, ki ga sestavljajo storitveni ukaz in zastavice za uspešno/neuspešno preverjanje povzetka.
3.4.2 Neprepoznan odziv na ukaz
Ko je COMM_BLK poslana neprepoznana zahteva za storitev, bo COMM_BLK samodejno odgovoril z neprepoznanim ukaznim sporočilom, potisnjenim v RXFIFO. Sporočilo je sestavljeno iz ukaza, poslanega v COMM_BLK, in statusa neprepoznanega ukaza (252D). Prikazano bo tudi sporočilo na zaslonu, ki označuje, da je bila zaznana neprepoznana zahteva za storitev. COMM_BLK se bo vrnil v stanje mirovanja in čakal, da sprejme naslednjo servisno zahtevo.
3.4.3 Nepodprte storitve
Nepodprte storitve, nastavljene na COMM_BLK, bodo v simulaciji sprožile sporočilo, ki nakazuje, da zahteva storitve ni podprta. COMM_BLK se bo vrnil v stanje mirovanja in čakal na sprejem naslednje storitvene zahteve. PINTERRUPT ne bo nastavljen, kar pomeni, da je bila storitev dokončana. Trenutni seznam nepodprtih storitev vključuje: IAP, ISP, potrdilo naprave in storitev DESIGNVER.
3.5 Podpora za simulacijo sistemskih storitev File
Besedilo za podporo simulaciji sistemskih storitev file "status.txt" lahko uporabite za prenos navodil o zahtevanem obnašanju simulacijskega modela v simulacijski model. to file mora biti v isti mapi, iz katere se izvaja simulacija. The file med drugim lahko uporabite za vsiljevanje določenih odzivov na napake za podprte sistemske storitve ali celo za nastavitev nekaterih parametrov, potrebnih za simulacijo (npr.ample, serijska številka). Največje število podprtih vrstic v ”status.txt” file je 256. Navodila, ki se pojavijo za številko vrstice 256, ne bodo uporabljena v simulaciji.
3.5.1 Vsiljevanje odzivov na napake
Uporabnik lahko med testiranjem vsili določen odziv na napako za določeno storitev tako, da podatke posreduje simulacijskemu modelu s pomočjo »status.txt« file, ki naj bo v mapi, iz katere se izvaja simulacija. Če želite vsiliti odzive na napake pri določeni storitvi, morata biti ukaz in zahtevani odgovor vnešena v isto vrstico v naslednji obliki:ample, na ukaz> ; simulacijskemu modelu naroči, naj ustvari odgovor o napaki pri dostopu do pomnilnika MSS storitvi serijske številke, je ukaz naslednji.
Servis: Serijska številka: 01
Zahtevano sporočilo o napaki: Napaka pri dostopu do pomnilnika MSS: 7F
V »status.txt« bi morali imeti vneseno vrstico 017F file.
3.5.2 Nastavitev parametrov
"status.txt" file se lahko uporablja tudi za nastavitev nekaterih parametrov, potrebnih v simulaciji. Kot bivšiample, če želite nastaviti 32-bitni parameter za uporabniško kodo, mora biti oblika vrstice v tem vrstnem redu: <32-bitna UPORABNIŠKA KODA>; kjer sta obe vrednosti vneseni v šestnajstiški obliki. Če želite nastaviti 128-bitni parameter za serijsko številko, mora biti oblika vrstice v tem vrstnem redu: <128-bitna serijska številka [127:0]> ; kjer sta obe vrednosti vneseni v šestnajstiški obliki. Če želite nastaviti 256-bitni parameter za ključ SHA 256; oblika vrstice mora biti v tem vrstnem redu: <256-bitni ključ [255:0]>; kjer sta obe vrednosti vneseni v šestnajstiški obliki. Če želite nastaviti 256-bitni parameter za ključ odgovora na izziv, mora biti oblika vrstice v tem vrstnem redu: <256-bitni ključ [255:0]>;
kjer sta obe vrednosti vneseni v šestnajstiški obliki.
3.5.3 Prioriteta naprave
Sistemske storitve in COMM_BLK uporabljajo sistem visoke prioritete. Trenutno je edina prednostna storitev ničelizacija. Za izvedbo storitve z visoko prioriteto se med izvajanjem druge storitve trenutna storitev ustavi in namesto nje se izvede storitev z višjo prioriteto. COMM_BLK bo zavrgel trenutno storitev, da bi izvedel storitev z višjo prioriteto. Če je pred zaključkom trenutne storitve poslanih več storitev brez visoke prioritete, bodo te storitve postavljene v čakalno vrsto znotraj TXFIFO. Ko je trenutna storitev končana, se izvede naslednja storitev v TXFIFO.
Microsemi ne daje nobenega jamstva, zastopanja ali jamstva v zvezi z informacijami, ki jih vsebuje, ali primernostjo svojih izdelkov in storitev za kateri koli poseben namen, niti Microsemi ne prevzema kakršne koli odgovornosti, ki izhaja iz uporabe ali uporabe katerega koli izdelka ali vezja. Izdelki, ki se prodajajo po tej pogodbi, in vsi drugi izdelki, ki jih prodaja Microsemi, so bili predmet omejenega testiranja in se ne smejo uporabljati v povezavi s ključno opremo ali aplikacijami. Za vse specifikacije zmogljivosti velja, da so zanesljive, vendar niso preverjene, kupec pa mora izvesti in dokončati vsa testiranja zmogljivosti in druga testiranja izdelkov, samih in skupaj s kakršnimi koli končnimi izdelki ali vgrajenimi v njih. Kupec se ne zanaša na nobene podatke in specifikacije delovanja ali parametre, ki jih zagotavlja Microsemi. Kupec je odgovoren za samostojno ugotavljanje primernosti katerega koli izdelka ter njegovo testiranje in preverjanje. Informacije, ki jih Microsemi posreduje v nadaljevanju, so na voljo "kot so, kje so" in z vsemi napakami, celotno tveganje, povezano s takšnimi informacijami, pa je v celoti na strani kupca. Microsemi ne podeljuje, eksplicitno ali implicitno, nobeni stranki nobenih patentnih pravic, licenc ali kakršnih koli drugih pravic intelektualne lastnine, ne glede na take informacije same ali karkoli, kar je opisano v teh informacijah. Informacije v tem dokumentu so last Microsemi, Microsemi pa si pridržuje pravico, da kadar koli brez predhodnega obvestila spremeni podatke v tem dokumentu ali kateri koli izdelek in storitev.
Microsemi, hčerinska družba v XNUMX-odstotni lasti Microchip Technology Inc. (Nasdaq: MCHP), ponuja obsežen portfelj polprevodniških in sistemskih rešitev za letalsko in vesoljsko obrambo, komunikacije, podatkovne centre in industrijske trge. Izdelki vključujejo visoko zmogljiva in proti sevanju odporna analogna integrirana vezja z mešanimi signali, FPGA, SoC in ASIC; izdelki za upravljanje porabe energije; naprave za merjenje časa in sinhronizacijo ter rešitve za natančen čas, ki postavljajo svetovni standard za čas; naprave za obdelavo govora; RF rešitve; diskretne komponente; rešitve za shranjevanje in komunikacije v podjetju; varnostne tehnologije in razširljivo zaščito proti tamper izdelki; Ethernet rešitve; Napajanje preko Etherneta IC in srednji razponi; kot tudi zmogljivosti in storitve oblikovanja po meri. Microsemi ima sedež v Aliso Viejo v Kaliforniji in približno 4,800 zaposlenih po vsem svetu. Več o tem na www.microsemi.com.
Sedež Microsemi
One Enterprise, Aliso Viejo,
CA 92656 ZDA
Znotraj ZDA: +1 800-713-4113
Zunaj ZDA: +1 949-380-6100
Prodaja: +1 949-380-6136
Faks: +1 949-215-4996
E-pošta: prodaja.support@microsemi.com
www.microsemi.com
© 2018 Microsemi. Vse pravice pridržane. Microsemi in logotip Microsemi
so blagovne znamke Microsemi Corporation. Vse druge blagovne znamke in storitve
znamke so last njihovih lastnikov.
Dokumenti / Viri
![]() |
Simulacija sistemskih storitev Microsemi UG0837 IGLOO2 in SmartFusion2 FPGA [pdf] Uporabniški priročnik UG0837, UG0837 Simulacija sistemskih storitev IGLOO2 in SmartFusion2 FPGA, simulacija sistemskih storitev IGLOO2 in SmartFusion2 FPGA, simulacija sistemskih storitev SmartFusion2 FPGA, simulacija sistemskih storitev FPGA, simulacija storitev |