UG0837
Uputstvo za upotrebu
IGLOO2 i SmartFusion2 FPGA
Simulacija sistemskih usluga
juna 2018
Istorija revizija
Historija revizija opisuje promjene koje su implementirane u dokument. Promjene su navedene po reviziji, počevši od najnovije publikacije.
1.1 Revizija 1.0
Revizija 1.0 objavljena je u junu 2018. To je bila prva publikacija ovog dokumenta.
Simulacija sistemskih usluga IGLOO2 i SmartFusion2 FPGA
Blok System Services iz porodice SmartFusion®2 FPGA sadrži kolekciju usluga odgovornih za različite zadatke. To uključuje usluge simulacijskih poruka, usluge pokazivača podataka i usluge deskriptora podataka. Sistemskim uslugama se može pristupiti preko Cortex-M3 u SmartFusion2 i iz FPGA tkanine preko kontrolera interfejsa tkanine (FIC) za SmartFusion2 i IGLOO®2. Ove metode pristupa se šalju sistemskom kontroleru preko COMM_BLK. COMM_BLK ima napredno sučelje periferne magistrale (APB) i djeluje kao vod za prosljeđivanje poruka za razmjenu podataka sa sistemskim kontrolerom. Zahtjevi za sistemske usluge se šalju sistemskom kontroleru, a odgovori sistemske usluge se šalju CoreSysSerrvice preko COMM BLK-a. Adresna lokacija za COMM_BLK dostupna je unutar podsistema mikrokontrolera (MSS)/podsistema memorije visokih performansi (HPMS). Za detalje pogledajte UG0450: SmartFusion2 SoC i IGLOO2 FPGA sistemski kontroler.
Uputstvo za upotrebu
Sljedeća ilustracija prikazuje tok podataka sistemskih usluga.
Slika 1 • Dijagram toka podataka o sistemskoj usluziI za IGLOO2 i za SmartFusion2 simulaciju sistemske usluge, trebate poslati zahtjeve za sistemske usluge i provjeriti odgovore sistemske usluge kako biste potvrdili da je simulacija ispravna. Ovaj korak je neophodan za pristup sistemskom kontroleru koji pruža sistemske usluge. Način pisanja i čitanja iz sistemskog kontrolera je drugačiji za IGLOO2 i SmartFusion2 uređaje. Za SmartFusion2, Coretex-M3 je dostupan i možete pisati i čitati iz sistemskog kontrolera koristeći komande funkcionalnog modela sabirnice (BFM). Za IGLOO2, Cortex-M3 nije dostupan, a sistemski kontroler nije dostupan pomoću BFM komandi.
2.1 Tipovi dostupnih sistemskih usluga
Dostupne su tri različite vrste sistemskih usluga i svaka vrsta usluge ima različite podtipove.
Usluge simulacije poruka
Usluge pokazivača podataka
Usluge deskriptora podataka
Poglavlje Dodatak – Vrste sistemskih usluga (pogledajte stranicu 19) ovog vodiča opisuje različite tipove sistemskih usluga. Za više informacija o sistemskim uslugama, pogledajte UG0450: Uputstvo za korisnike SmartFusion2 SoC i IGLOO2 FPGA sistemskog kontrolera.
2.2 IGLOO2 simulacija sistemske usluge
Sistemske usluge uključuju pisanje i čitanje iz sistemskog kontrolera. Da biste pisali i čitali iz sistemskog kontrolera u svrhu simulacije, trebate izvršiti sljedeće korake.
- Instancirajte CoreSysServices meko IP jezgro, dostupno u SmartDesign katalogu.
- Napišite HDL kod za konačni stroj (FSM).
HDL FSM se povezuje sa CoreSysServices Core, koji služi kao tvornički master AHBLite magistrale. CoreSysServices jezgro inicira zahtjev sistemske usluge prema COMM BLK-u i prima odgovore sistemske usluge od COMM BLK-a preko FIC_0/1, kontrolera sučelja tkanine kao što je prikazano na sljedećoj ilustraciji.
Slika 2 • IGLOO2 Topologija simulacije sistemskih usluga2.3 Simulacija sistemske usluge SmartFusion2
Da biste simulirali sistemske usluge u SmartFusion2 uređajima, morate pisati i čitati iz sistemskog kontrolera. Dostupne su dvije opcije za pristup sistemskom kontroleru u svrhu simulacije.
Opcija 1 — Napišite HDL kod za FSM za povezivanje sa CoreSysService mekim IP jezgrom, koje služi kao AHBLite tvornički master i inicira zahtjev za sistemsku uslugu prema COMM BLK-u i prima odgovore sistemske usluge od COMM BLK-a kroz FIC_0/1 tkaninu interfejs kao što je prikazano na sledećoj slici.
Slika 3 • Topologija simulacije sistemskih usluga SmartFusion2
Opcija 2 — Kako je Cortex-M3 dostupan za SmartFusion2 uređaje, možete koristiti BFM komande za direktno upisivanje i čitanje iz memorijskog prostora sistemskog kontrolera.
Korišćenje BFM komandi (opcija 2) štedi potrebu za pisanjem HDL kodova za FSM. U ovom korisničkom vodiču, opcija 2 se koristi za prikaz simulacije sistemskih usluga u SmartFusion2. Sa ovom opcijom, pristupa se memorijskom prostoru sistemskog kontrolera kako bi se saznala memorijska mapa COMM BLK i bloka kontrolera prekida interfejsa tkanine (FIIC) kada pišete svoje BFM komande.
2.4 Simulacija pramples
Korisnički vodič pokriva sljedeće simulacije.
- IGLOO2 Servisna simulacija serijskog broja (vidi stranicu 5)
- Simulacija usluge SmartFusion2 serijskog broja (vidi stranicu 8)
- IGLOO2 simulacija usluge nuliranja (vidi stranicu 13)
- Simulacija usluge SmartFusion2 Zeroization (pogledajte stranicu 16)
Slične metode simulacije mogu se primijeniti na druge sistemske usluge. Za kompletnu listu različitih dostupnih sistemskih usluga idite na Dodatak – Tipovi sistemskih usluga (pogledajte stranicu 19).
2.5 Simulacija usluge IGLOO2 serijskog broja
Da biste se pripremili za IGLOO2 simulaciju usluge serijskog broja, izvršite sljedeće korake.
- Pozovite program za izgradnju sistema da kreirate svoj HPMS blok.
- Označite polje za potvrdu HPMS System Services na stranici Device Features. Ovo će uputiti graditelja sistema da izloži HPMS_FIC_0 SYS_SERVICES_MASTER sabirni interfejs (BIF).
- Ostavite sve ostale potvrdne okvire nepotvrđene.
- Prihvatite zadanu vrijednost na svim ostalim stranicama i kliknite Završi da dovršite blok graditelja sistema. U HDL uređivaču Libero® SoC-a napišite HDL kod za FSM (File > Novo > HDL) . Uključite sljedeća tri stanja u svoj FSM.
INIT stanje (početno stanje)
SERV_PHASE (stanje zahtjeva za uslugu)
RSP_PHASE (stanje odgovora usluge).
Sljedeća slika prikazuje tri stanja FSM-a.
Slika 4 • FSM u tri stanja U vašem HDL kodu za FSM, koristite ispravan komandni kod (“01” Hex za uslugu serijskog broja) da unesete stanje zahtjeva za uslugu iz stanja INIT.
- Sačuvajte svoj HDL file. FSM se pojavljuje kao komponenta u Hijerarhiji dizajna.
- Otvorite SmartDesign. Prevucite i ispustite svoj blok za izgradnju sistema najvišeg nivoa i vaš FSM blok u SmartDesign platno. Iz kataloga prevucite i ispustite CoreSysService meku IP jezgru u SmartDesign platno.
- Kliknite desnim tasterom miša na CoreSysService meku IP jezgru da otvorite konfigurator. Označite potvrdni okvir Usluga serijskog broja (ispod Informacijske usluge uređaja i dizajna
grupa) za omogućavanje usluge serijskog broja. - Ostavite sve ostale potvrdne okvire nepotvrđene. Kliknite OK da izađete iz konfiguratora.
Slika 5 • CoreSysServices soft IP Core Configurator
- Povežite HPMS_FIC_0 SYS_SERVICES_MASTER BIF bloka graditelja sistema sa AHBL_MASTER BIF bloka CoreSysService.
- Povežite izlaz vašeg HDL FSM bloka na ulaz CoreSysService mekog IP jezgra. Napravite sve ostale veze u SmartDesign platnu kao što je prikazano na sljedećoj slici.
Slika 6 • SmartDesign Canvas sa HDL blokom, CoreSysServices Soft IP i HPMS blokovima - U SmartDesign platnu kliknite desnim tasterom miša >Generiraj komponentu da generišete dizajn najviše razine.
- U hijerarhiji dizajna view, kliknite desnim tasterom miša na dizajn najvišeg nivoa i izaberite kreiraj Testbench > HDL .
- Koristite uređivač teksta za kreiranje teksta file pod nazivom “status.txt” .
- Uključite naredbu za sistemsku uslugu i 128-bitni serijski broj. Za više informacija pogledajte Tabelu 1 (Vrijednosti naredbe/odgovora sistemskih usluga) u Priručnik za CoreSysServices v3.1 za komandne kodove (Hex) koji će se koristiti za različite sistemske usluge. Za uslugu serijskog broja, komandni kod je “01” Hex.
Format status.txt file za uslugu serijskog broja je kako slijedi.
< 2 heksadecimalna cifra CMD><32 heksadecimalna cifra serijski broj>
Example: 01A1A2A3A4B1B2B3B4C1C2C3C4D1D2D3D4
Sačuvajte status.txt file u fascikli Simulation vašeg projekta. Dizajn je sada spreman za simulaciju.
Kada je usluga počela da se izvršava, poruka koja ukazuje na odredišnu lokaciju i serijski broj prikazuje se u prozoru transkripta ModelSim, kao što je prikazano na sledećoj slici.
Slika 7 • Prozor transkripta ModelSim simulacijeSistemski kontroler provodi AHB upis na adresu sa serijskim brojem. Po završetku usluge, COMM_BLK-ov RXFIFO će se učitati sa odgovorom usluge.
Napomena: Za potpuni popis kodova naredbi koji se koriste za različite sistemske usluge, pogledajte Tablicu 1 (Vrijednosti naredbi/odgovora za sistemske usluge) u priručniku CoreSysServices v3.1 ili UG0450: SmartFusion2 SoC i IGLOO2 FPGA sistemski kontroler Vodič za korisnike.
2.6 Simulacija usluge SmartFusion2 serijskog broja
U ovom korisničkom vodiču, BFM komande (opcija 2) se koriste za pristup sistemskom kontroleru za sistemsku uslugu. BFM komande se koriste jer je Cortex-M3 procesor dostupan na uređaju za BFM simulaciju. BFM komande vam omogućavaju da pišete direktno u COMM BLK i čitate iz njega kada saznate memorijsko mapiranje COMM_BLK.
Da biste pripremili svoj dizajn za SmartFusion2 simulaciju usluge serijskog broja, izvršite sljedeće korake.
- Prevucite i ispustite MSS iz kataloga na dizajnersko platno vašeg projekta.
- Onemogućite sve MSS periferne uređaje osim MSS_CCC, Reset Controller, Interrupt Management i FIC_0, FIC_1 i FIC_2.
- Konfigurirajte upravljanje prekidima da koristi MSS za fabrikovanje prekida.
- Pripremite serialnum.bfm file u uređivaču teksta ili u Liberovom HDL editoru. Sačuvajte serialnum.bfm file u fascikli Simulation projekta. Serialnum.bfm bi trebao uključivati sljedeće detalje.
• Mapiranje memorije na COMM BLK (CMBLK)
• Memorijsko mapiranje za prekid upravljanja periferijom (FIIC)
• Komanda za zahtjev za uslugu sistema serijskog broja (“01” Hex)
• Adresa za lokaciju serijskog broja
Bivšiample od serialnum.bfm file je kako slijedi.
memmap FIIC 0x40006000; #Mapiranje memorije za upravljanje prekidima
memmap CMBLK 0x40016000; #Mapiranje memorije u COMM BLK
memmap DESCRIPTOR_ADDR 0x20000000; #Adresna lokacija za serijski broj
#Komandni kod u heksadecimalnom
konstanta CMD 0x1 # Kod naredbe za Servis serijskog broja
#FIIC konfiguracijski registri
konstanta FICC_INTERRUPT_ENABLE0 0x0
#COMM_BLK Konfiguracijski registri
konstanta CONTROL 0x00
konstanta STATUS 0x04
konstanta INT_ENABLE 0x08
konstanta DATA8 0x10
konstanta DATA32 0x14
konstanta FRAME_START8 0x18
konstanta FRAME_START32 0x1C
procedure serialnum;
int x;
napisati w FIIC FICC_INTERRUPT_ENABLE0 0x20000000 #Konfiguriraj
#FICC_INTERRUPT_ENABLE0 # Registrujte se da omogućite COMBLK_INTR #
#prekid iz COMM_BLK bloka u fabriku
#Request Phase
write w CMBLK CONTROL 0x10 # Konfigurirajte COMM BLK kontrolu #Registrirajte se na
omogući transfere na COMM BLK interfejsu
write w CMBLK INT_ENABLE 0x1 # Konfiguriši COMM BLK Omogući prekid
#Registrirajte se da biste omogućili prekid za TXTOKAY (odgovarajući bit u
#Registar statusa)
waitint 19 # čekajte COMM BLK prekid, ovdje čeka #BFM
#dok se ne potvrdi COMBLK_INTR
readstore w CMBLK STATUS x # Čitanje COMM BLK statusa Registrirajte se za #TXTOKAY
# Prekini
postavite xx & 0x1
ako je x
upiši w CMBLK FRAME_START8 CMD # Konfiguriraj COMM BLK FRAME_START8
#Registrirajte se da biste zatražili uslugu serijskog broja
endif
endif
waitint 19 # čekaj COMM BLK prekid, ovdje
#BFM čeka da se potvrdi COMBLK_INTR
readstore w CMBLK STATUS x # Čitanje COMM BLK Status Registra za
#TXTOKAY Prekid
postavite xx & 0x1
postavite xx & 0x1
ako je x
write w CMBLK CONTROL 0x14 #Konfiguriraj COMM BLK kontrolu
#Registrirajte se da omogućite transfere na COMM BLK interfejsu
napisati w CMBLK DATA32 DESCRIPTOR_ADDR
pisati w CMBLK INT_ENABLE 0x80
napisati w CMBLK CONTROL 0x10
endif
cekaj 20
#Faza odgovora
čekanje 19
readstore w CMBLK STATUS x
postavite xx & 0x80
ako je x
readcheck w CMBLK FRAME_START8 CMD
pisati w CMBLK INT_ENABLE 0x2
endif
čekanje 19
readstore w CMBLK STATUS x
postavite xx & 0x2
ako je x
readcheck w CMBLK DATA8 0x0
napisati w CMBLK CONTROL 0x18
endif
čekanje 19
readcheck w FIIC 0x8 0x20000000
readstore w CMBLK STATUS x
postavite xx & 0x2
ako je x
readcheck w CMBLK DATA32 DESCRIPTOR_ADDR
endif
provjera čitanja w DESCRIPTOR_ADDR 0x0 0xE1E2E3E4; #Pročitajte provjerite da biste provjerili S/N
provjera čitanja w DESCRIPTOR_ADDR 0x4 0xC1C2C3C4; #Pročitajte provjerite da biste provjerili S/N
provjera čitanja w DESCRIPTOR_ADDR 0x8 0xB1B2B3B4; #Pročitajte provjerite da biste provjerili S/N
readcheck w DESCRIPTOR_ADDR 0xC 0xA1A2A3A4; #Pročitajte provjerite da biste provjerili S/N
povratak - Kreirajte status. poruka file u Liberovom HDL editoru ili bilo kom uređivaču teksta. Uključite servisnu naredbu sistema serijskog broja (“01” u heksadecimalnom) i serijski broj u status . poruka file. Pogledajte priručnik za CoreSysServices v3.1 za korištenje ispravnog koda komande.
- Sintaksa ovoga file za uslugu serijskog broja je, <2 heksadecimalna znamenka CMD>< 32 heksadecimalna cifra serijski broj> . Prample: 01A1A2A3A4B1B2B3B4C1C2C3C4E1E2E3E4.
- Sačuvajte status .txt file u fascikli Simulation projekta.
- Uredite korisnika .bfm (koji se nalazi unutar fascikle Simulation) kako biste uključili serijski broj. bfm file i pozovite proceduru serijskog broja kao što je prikazano u sljedećem isječku koda.
uključiti “serialnum.bfm” #uključiti serialnum.bfm
procedura user_main;
print “INFO: Simulacija počinje”;
print “INFO:Komandni kod usluge u decimalnom obliku:%0d”, CMD ;
call serialnum; #pozovite proceduru serijskog broja
print “INFO: Simulacija završava”;
povratak - U hijerarhiji dizajna view, generirajte testbench (desni klik, Top Level Design > Create Testbench > HDL) i spremni ste za pokretanje simulacije usluge serijskog broja.
Nakon što je usluga počela s izvršavanjem, prikazuje se poruka koja označava odredišnu lokaciju i serijski broj. Sistemski kontroler provodi AHB upis na adresu sa serijskim brojem. Po završetku usluge, COMM_BLK-ov RXFIFO će se učitati sa odgovorom usluge. Prozor ModelSim transkripta prikazuje adresu i primljeni serijski broj kao što je prikazano na sljedećoj slici.
Slika 8 • Simulacija usluge SmartFusion2 serijskog broja u prozoru za transkript ModelSim
2.7 IGLOO2 simulacija usluge nuliranja
Da biste se pripremili za simulaciju usluge nuliranja IGLOO2, izvršite sljedeće korake.
- Pozovite graditelja sistema da kreirate HPMS blok. Označite potvrdni okvir HPMS System Services u odeljku Device Features SYS_SERVICES_MASTER BIF. Ostavite sve ostale potvrdne okvire nepotvrđene. Prihvatite zadanu vrijednost na svim ostalim stranicama i kliknite na stranicu. Ovo upućuje graditelja sistema da izloži HPMS_FIC_0 Finish kako bi dovršio konfiguraciju bloka graditelja sistema.
- U Libero SoC-ovom HDL editoru napišite HDL kod za FSM. U vaš HDL kod za FSM uključite sljedeća tri stanja.
INIT stanje (početno stanje)
SERV_PHASE (stanje zahtjeva za uslugu)
RSP_PHASE (stanje odgovora usluge)
Sljedeća slika prikazuje tri stanja FSM-a.
Slika 9 • FSM u tri stanja - U svom HDL kodu, koristite komandni kod “F0″ (Hex) da unesete stanje zahtjeva za uslugu iz stanja INIT.
- Sačuvajte svoj HDL file.
- Otvorite SmartDesign, prevucite i ispustite svoj blok za izgradnju sistema najvišeg nivoa i vaš HDL FSM blok u SmartDesign platno. Iz kataloga prevucite i ispustite CoreSysService meku IP jezgru u SmartDesign platno.
- Kliknite desnim tasterom miša na CoreSysServices meko IP jezgro, da otvorite konfigurator i potvrdite izbor u polju za potvrdu Nuliranje usluge u grupi Usluge bezbednosti podataka. Ostavite sve ostale potvrdne okvire nepotvrđene. Kliknite za izlaz OK.
Slika 10 • CoreSysServices Configurator
- Povežite HPMS_FIC_0 SYS_SERVICES_MASTER BIF bloka graditelja sistema sa AHBL_MASTER BIF bloka CoreSysService.
- Povežite izlaz vašeg HDL FSM bloka na ulaz CoreSysService mekog IP jezgra. Napravite sve ostale veze u SmartDesign platnu.
Slika 11 • SmartDesign Canvas sa HDL blokom, CoreSysServices Soft IP i HPMS blokovima
9. U SmartDesign platnu generirajte dizajn najviše razine (desni klik > Generiši komponentu).
10. U hijerarhiji dizajna view, kliknite desnim tasterom miša na dizajn najvišeg nivoa i izaberite kreiraj Testbench > HDL. Sada ste spremni za pokretanje simulacije.
Nakon što je usluga počela sa izvršavanjem, prikazuje se poruka koja pokazuje da je nuliranje završeno u vrijeme x, kao što je prikazano na sljedećoj slici.
Slika 12 • Prozor transkripta simulacije usluge sistema nuliranja IGLOO2
Sistemski kontroler provodi AHB upis na adresu sa serijskim brojem. Po završetku usluge, COMM_BLK-ov RXFIFO će se učitati sa odgovorom usluge. Treba napomenuti da simulacijski model simulira nuliranje zaustavljanjem simulacije umjesto nuliranja samog dizajna.
Napomena: Za potpuni popis kodova naredbi koje će se koristiti za različite sistemske usluge, pogledajte Tabelu 1 (Vrijednosti naredbe/odgovora za sistemske usluge) u Priručnik za CoreSysServices v3.1:. ili UG0450: SmartFusion2 SoC i IGLOO2 FPGA sistemski kontroler Vodič za korisnike
2.8 Simulacija usluge SmartFusion2 nuliranja
U ovom vodiču, BFM komande (opcija 2) se koriste za pristup sistemskom kontroleru za sistemsku uslugu.
BFM komande se koriste jer je Cortex-M3 procesor dostupan na uređaju za BFM simulaciju. BFM komande vam omogućavaju da pišete direktno u COMM BLK i čitate iz njega kada saznate memorijsko mapiranje COMM_BLK. Da biste pripremili svoj dizajn za simulaciju usluge nuliranja SmartFusion2, izvršite sljedeće korake.
- Prevucite i ispustite MSS iz kataloga na dizajnersko platno vašeg projekta.
- Onemogućite sve MSS periferne uređaje osim MSS_CCC, Reset Controller, Interrupt Management i FIC_0, FIC_1 i FIC_2.
- Konfigurirajte upravljanje prekidima da koristi MSS za fabrikovanje prekida.
- Pripremite zeroizaton.bfm file u uređivaču teksta ili u Liberovom HDL editoru. Vaša nulizacija. bfm bi trebao uključivati:
- Mapiranje memorije na COMM BLK (CMBLK)
- Memorijsko mapiranje za prekid upravljanja periferijom (FIIC)
- Naredba za servisni zahtjev za nuliranje („F0“ heksadecimalni za nuliranje)
Bivšiample od serialnum.bfm file je prikazano na sljedećoj slici.
Slika 13 • Zeroization.bfm za SmartFusion2 simulaciju sistemskih usluga nuliranja
5. Sačuvajte zeroization.bfm file u fascikli Simulation projekta. user.bfm
6. Uredite (koji se nalazi u fascikli zeroization.bfm Simulation) da uključite koristeći sljedeći isječak koda.
uključiti “zeroization.bfm” #include zeroization.bfm file procedura user_main;
print “INFO: Simulacija počinje”;
print “INFO:Komandni kod usluge u decimalnom obliku:%0d”, CMD ;
nuliranje poziva; #poziv procedure nuliranja povratak
7. U Hijerarhiji dizajna generirajte Testbench (desni klik na gornji nivo > Kreiraj Testbench > HDL) i spremni ste za pokretanje SmartFusion2 simulacije nuliranja.
Nakon što je usluga počela s izvršavanjem, prikazuje se poruka koja pokazuje da je uređaj nuliran u vrijeme x. Treba napomenuti da simulacijski model simulira nuliranje zaustavljanjem simulacije umjesto nuliranja samog dizajna. Prozor ModelSim transkripta na sljedećoj slici pokazuje da je uređaj nula.
Slika 14 • Dnevnik simulacije usluge SmartFusion2 sistema nuliranja
Dodatak: Vrste sistemskih usluga
Ovo poglavlje opisuje različite vrste sistemskih usluga.
3.1 Usluge simulacije poruka
Sljedeći odjeljci opisuju različite vrste usluga simulacije poruka.
3.1.1 Flash*Freeze
Simulacija će ući u stanje Flash*Freeze kada se zahtjev za ispravnu uslugu pošalje na COMM_BLK ili iz FIC-a (u slučaju IGLOO2 uređaja) ili Cortex-M3 (u SmartFusion2 uređajima). Kada sistemski kontroler detektuje uslugu, simulacija će biti zaustavljena i biće prikazana poruka koja pokazuje da je sistem ušao u Flash*Freeze (zajedno sa izabranom opcijom). Nakon nastavka simulacije, RXFIFO COMM_BLK će biti popunjen servisnim odgovorom koji se sastoji od servisne komande i statusa. Treba napomenuti da ne postoji podrška za simulaciju za izlaz Flash*Freeze.
3.1.2 Nulizacija
Nuliranje je trenutno jedina usluga visokog prioriteta unutar sistemskih usluga koju obrađuje COMM_BLK. Simulacija će ući u stanje nuliranja čim COMM_BLK otkrije ispravan zahtjev za uslugu. Kontrolor sistema će zaustaviti i odbaciti izvršavanje drugih usluga, a umjesto toga će se izvršiti usluga nuliranja. Kada se detektuje zahtev za uslugu nuliranja, simulacija se zaustavlja i prikazuje se poruka koja ukazuje da je sistem ušao u nulizaciju. Ručno ponovno pokretanje simulacije nakon nuliranja je nevažeće.
3.2 Usluge pokazivača podataka
Sljedeći odjeljci opisuju različite vrste usluga pokazivača podataka.
3.2.1 Serijski broj
Usluga serijskog broja će napisati 128-bitni serijski broj na adresu koja je navedena kao dio zahtjeva za uslugu. Ovaj 128-bitni parametar se može postaviti pomoću podrške za simulaciju sistemske usluge file (vidi stranu 22) . Ako 128-bitni parametar serijskog broja nije definiran unutar file, koristit će se zadani serijski broj 0. Nakon što je usluga počela s izvršavanjem, prikazuje se poruka koja označava odredišnu lokaciju i serijski broj. Sistemski kontroler provodi AHB upis na adresu sa serijskim brojem. Po završetku usluge, COMM_BLK-ov RXFIFO će se učitati sa odgovorom usluge.
3.2.2 Korisnički kod
Usluga korisničkog koda upisuje 32-bitni parametar korisničkog koda na lokaciju adrese koja je navedena kao dio zahtjeva za uslugu. Ovaj 32-bitni parametar se može postaviti pomoću podrške za simulaciju sistemske usluge file (vidi stranu 22). Ako 32-bitni parametar nije definiran unutar file, koristi se zadana vrijednost 0. Nakon što je usluga počela s izvršavanjem, prikazuje se poruka koja ukazuje na ciljnu lokaciju i korisnički kod. Sistemski kontroler provodi AHB upisivanje na adresu sa 32-bitnim parametrom. Po završetku usluge, COMM_BLK-ov RXFIFO se učitava sa odgovorom usluge, koji uključuje naredbu usluge i ciljnu adresu.
3.3 Usluge deskriptora podataka
Sljedeći odjeljci opisuju različite vrste usluga deskriptora podataka.
3.3.1 AES
Podrška za simulaciju za ovu uslugu bavi se samo premještanjem originalnih podataka od izvora do odredišta, bez stvarnog izvršavanja bilo kakvog šifriranja/dešifriranja podataka. Podaci koje je potrebno šifrirati/dešifrirati i strukturu podataka treba napisati prije slanja zahtjeva za uslugu. Nakon što je usluga počela s izvršavanjem, prikazuje se poruka koja ukazuje na izvršenje AES usluge. AES usluga čita i strukturu podataka i podatke koji se šifriraju/dešifriraju. Originalni podaci se kopiraju i upisuju na adresu navedenu u strukturi podataka. Kada je usluga završena, adresa naredbe, statusa i strukture podataka se guraju u RXFIFO.
Napomena: Ova usluga je samo za 128-bitne i 256-bitne podatke, a i 128-bitni i 256-bitni podaci imaju različite dužine strukture podataka.
3.3.2 SHA 256
Podrška za simulaciju za ovu uslugu bavi se samo premeštanjem podataka, bez stvarnog heširanja podataka. SHA 256 funkcija je dizajnirana da generiše 256-bitni hash ključ na osnovu ulaznih podataka. Podaci koje je potrebno raspršiti i struktura podataka trebaju biti upisani na njihove odgovarajuće adrese prije nego što se zahtjev za uslugu pošalje u COMM_BLK. Dužina u bitovima i pokazivač definirani unutar SHA 256 strukture podataka moraju ispravno odgovarati dužini i adresi podataka koji se heširaju. Nakon što je usluga počela s izvršavanjem, prikazuje se poruka koja ukazuje na izvršenje SHA 256 usluge. Umjesto izvršavanja stvarne funkcije, zadani hash ključ će biti upisan u odredišni pokazivač iz strukture podataka. Zadani heš ključ je heksadecimalni "ABCD1234". Za postavljanje prilagođenog ključa idite na odjeljak Podešavanje parametara (pogledajte stranicu 23). Po završetku usluge, RXFIFO se učitava sa odgovorom usluge koji se sastoji od naredbe usluge, statusa i SHA 256 pokazivača strukture podataka.
3.3.3 HMAC
Podrška za simulaciju za ovu uslugu bavi se samo premeštanjem podataka, bez stvarnog heširanja podataka. Podaci koje je potrebno raspršiti i struktura podataka trebaju biti upisani na njihove odgovarajuće adrese prije nego što se zahtjev za uslugu pošalje u COMM_BLK. HMAC usluga zahtijeva ključ od 32 bajta pored dužine u bajtovima, pokazivača izvora i pokazivača odredišta. Nakon što je usluga počela s izvršavanjem, prikazuje se poruka koja ukazuje na izvršenje HMAC usluge. Ključ se čita i 256-bitni ključ se kopira iz strukture podataka u odredišni pokazivač. Po završetku usluge, RXFIFO se učitava sa odgovorom usluge koji se sastoji od naredbe usluge, statusa i pokazivača HMAC strukture podataka.
3.3.4 Generisanje DRBG
Ovaj servis vrši generisanje nasumičnih bitova. Treba napomenuti da simulacijski model ne prati u potpunosti istu metodologiju generiranja slučajnih brojeva koju koristi silicijum. Struktura podataka mora biti ispravno upisana na predviđenu lokaciju prije nego što se zahtjev za uslugu pošalje na COMM_BLK. Strukturu podataka, odredišni pokazivač, dužinu i druge relevantne podatke čita sistemski kontroler. Usluga generiranja DRBG generiše pseudo slučajni skup podataka tražene dužine (0-128). Sistemski kontroler upisuje nasumične podatke u odredišni pokazivač. U simulaciji se prikazuje poruka koja ukazuje na izvršenje usluge generiranja DRBG. Kada je usluga završena, adresa naredbe, statusa i strukture podataka se guraju u RXFIFO. Ako tražena dužina podataka nije unutar raspona od 0-128, šifra greške “4” (Max Generate) će biti gurnuta u RXFIFO. Ako dodatna dužina podataka nije unutar opsega Request Too Big od 0-128, šifra greške od “5” (Maksimalna dužina dodatnih podataka prekoračena) će biti gurnuta u RXFIFO. Ako i tražena dužina podataka za generiranje i dodatna dužina podataka nisu unutar njihovog definiranog raspona (0-128), kod greške “1” (katastrofična greška) se ubacuje u RXFIFO.
3.3.5 DRBG Reset
Stvarna funkcija resetovanja se izvodi uklanjanjem DRBG instancijacija i resetovanjem DRBG-a. Kada se detektuje zahtev za uslugom, simulacija prikazuje poruku DRBG Reset usluga je završena. Odgovor, koji uključuje uslugu i status, gura se u RXFIFO.
3.3.6 Samotestiranje DRBG
Podrška za simulaciju za DRBG samotestiranje zapravo ne izvršava funkciju samotestiranja. Kada se detektuje zahtev za uslugu, simulacija će prikazati poruku o izvršenju usluge samotestiranja DRBG. Odgovor, koji uključuje uslugu i status, bit će gurnut u RXFIFO.
3.3.7 DRBG Instantiate
Podrška za simulaciju za DRBG instantiate uslugu zapravo ne izvodi uslugu instanciranja. Struktura podataka mora biti ispravno upisana na predviđenu lokaciju prije nego što se zahtjev za uslugu pošalje na COMM_BLK. Kada se detektuje zahtev za uslugom, pročitaće se struktura i personalizacioni niz definisan u MSS adresnom prostoru. Simulacija će prikazati poruku koja ukazuje da je DRBG Instantiate usluga započela izvršavanje. Kada se usluga završi, odgovor, koji uključuje naredbu usluge, status i pokazivač na strukturu podataka, bit će gurnut u RXFIFO. Ako dužina podataka (PERSONALIZATIONLENGTH) nije unutar raspona od 0-128, šifra greške od “1” (katastrofalna greška) će biti gurnuta u RXFIFO za status.
3.3.8 DRBG bez instanciranja
Podrška za simulaciju DRBG neinstanciranog servisa zapravo ne izvodi uslugu neinstanciranja uklanjanja prethodno instanciranog DRBG-a, kao što to čini silicijum. Zahtjev za uslugu mora uključivati i naredbu i DRBG ručku. Jednom kada je zahtjev za servisom otkriven, DRBG ručka će biti pohranjena. Simulacija će prikazati poruku koja ukazuje da je DRBG neinstancirani servis inicijaliziran. Kada se usluga završi, odgovor, koji uključuje naredbu usluge, status i DRBG ručku, bit će gurnut u RXFIFO.
3.3.9 DRBG Reseed
Zbog simulativne prirode bloka sistemskih usluga, DRBG usluga ponovnog postavljanja u simulaciji se ne izvršava automatski nakon svakih 65535 DRBG generiranih usluga. Struktura podataka mora biti ispravno upisana na predviđenu lokaciju prije nego što se zahtjev za uslugu pošalje na COMM_BLK. Kada se detektuje zahtev za uslugu, struktura i dodatni ulazni parametar u MSS adresnom prostoru će se pročitati. Prikazaće se poruka koja ukazuje da je DRBG usluga ponovnog postavljanja počela da se izvršava. Struktura podataka mora biti ispravno upisana na predviđenu lokaciju prije nego što se zahtjev za uslugu pošalje na COMM_BLK. Kada se usluga završi, odgovor, koji uključuje naredbu usluge, status i pokazivač na strukturu podataka, bit će gurnut u RXFIFO.
3.3.10 KeyTree
Stvarna funkcija se ne izvršava u simulaciji za KeyTree uslugu. Struktura podataka usluge KeyTree sastoji se od ključa od 32 bajta, 7-bitnih podataka o tipu (MSB zanemaren) i staze od 16 bajta. Podaci unutar strukture podataka trebaju biti upisani na njihove odgovarajuće adrese, prije nego što se zahtjev za uslugu pošalje na COMM_BLK. Nakon što je usluga počela s izvršavanjem, prikazat će se poruka koja ukazuje na izvršenje KeyTree usluge. Sadržaj strukture podataka će biti pročitan, 32-bajtni ključ će biti pohranjen, a originalni ključ koji se nalazi unutar strukture podataka će biti prepisan. Nakon ovog AHB pisanja, vrijednost ključa unutar strukture podataka ne bi se trebala promijeniti, ali će se dogoditi AHB transakcije za upis. Po završetku usluge, RXFIFO se učitava sa odgovorom usluge, koji se sastoji od naredbe usluge, statusa i pokazivača strukture podataka KeyTree.
3.3.11 Odgovor na izazov
Stvarna funkcija, poput autentifikacije uređaja, ne izvršava se u simulaciji za uslugu odgovora na izazov. Struktura podataka za ovu uslugu zahtijeva pokazivač na bafer, za primanje rezultata od 32 bajta, 7-bitni optip i 128-bitnu putanju. Podaci unutar strukture podataka trebaju biti upisani na njihove odgovarajuće adrese prije nego se zahtjev za uslugu pošalje na COMM_BLK. Nakon što je usluga počela s izvršavanjem, prikazat će se poruka koja ukazuje na izvršenje usluge odgovora na izazov. Generički 256-bitni odgovor će biti upisan u pokazivač koji se nalazi unutar strukture podataka. Zadani ključ je postavljen kao heksadecimalni “ABCD1234”. Da biste dobili prilagođeni ključ, provjerite Postavljanje parametara (pogledajte stranicu 23). Po završetku usluge, RXFIFO će se učitati sa odgovorom usluge, koji se sastoji od naredbe usluge, statusa i pokazivača strukture podataka odgovora na izazov.
3.4 Ostale usluge
Sljedeći odjeljci opisuju razne druge sistemske usluge.
3.4.1 Provjera sažetka
Stvarna funkcija ponovnog izračunavanja i poređenja sažetaka odabranih komponenti se ne izvršava za uslugu provjere sažetka u simulaciji. Ovaj servisni zahtjev se sastoji od servisnih naredbi i servisnih opcija (5-bitni LSB). Nakon što usluga počne da se izvršava, biće prikazana poruka sa detaljima o izvršenju usluge provjere sažetka, zajedno sa odabranim opcijama iz zahtjeva. Po završetku usluge, RXFIFO će se učitati sa servisnim odgovorom, koji se sastoji od servisne komande i zastavica za provjeru sažetka prolaska/neuspjeha.
3.4.2 Neprepoznati komandni odgovor
Kada se neprepoznati zahtjev za uslugu pošalje na COMM_BLK, COMM_BLK će automatski odgovoriti sa neprepoznatom komandnom porukom gurnutom u RXFIFO. Poruka se sastoji od naredbe poslane u COMM_BLK i neprepoznatog statusa naredbe (252D). Prikazaće se i poruka na ekranu koja pokazuje da je otkriven neprepoznati zahtev za uslugu. COMM_BLK će se vratiti u stanje mirovanja, čekajući da prihvati sljedeći zahtjev za uslugu.
3.4.3 Nepodržane usluge
Nepodržane usluge postavljene na COMM_BLK će pokrenuti poruku u simulaciji koja ukazuje da zahtjev za uslugu nije podržan. COMM_BLK će se vratiti u stanje mirovanja, čekajući da prihvati sljedeći zahtjev za uslugu. INTERRUPT neće biti postavljen, što znači da je usluga završena. Trenutna lista nepodržanih usluga uključuje: IAP, ISP, Certifikat uređaja i DESIGNVER uslugu.
3.5 Podrška za simulaciju sistemskih usluga File
Za podršku simulaciji sistemskih usluga, tekst file pod nazivom, “status.txt” može se koristiti za prosljeđivanje instrukcija o potrebnom ponašanju simulacijskog modela simulacijskom modelu. Ovo file treba da se nalazi u istoj fascikli iz koje se pokreće simulacija. The file može se koristiti, između ostalog, za forsiranje određenih odgovora na greške za podržane sistemske usluge ili čak za postavljanje nekih parametara potrebnih za simulaciju (npr.ample, serijski broj). Maksimalan broj linija podržanih u ” status.txt” file je 256. Instrukcije koje se pojavljuju nakon reda broj 256 neće se koristiti u simulaciji.
3.5.1 Forsiranje odgovora na greške
Korisnik može forsirati određeni odgovor na grešku za određenu uslugu tokom testiranja tako što će proslijediti informacije simulacijskom modelu koristeći “status.txt” file, koji treba da bude smešten u fasciklu iz koje se simulacija pokreće. Da bi se forsirali odgovori na grešku određenoj usluzi, naredbu i traženi odgovor treba upisati u isti red u sljedećem formatu:ample, na Command> ; instrukcije simulacijskom modelu da generiše odgovor na grešku pristupa MSS memoriji servisu serijskog broja, naredba je sljedeća.
Servis: Serijski broj: 01
Tražena poruka o grešci: MSS Greška pristupa memoriji: 7F
Trebali biste unijeti red 017F u “status.txt” file.
3.5.2 Podešavanje parametara
"status.txt" file također se može koristiti za postavljanje nekih parametara potrebnih u simulaciji. Kao bivšiampda bi se postavio 32-bitni parametar za korisnički kod, format linije mora biti ovim redoslijedom: <32-bitni USERCODE>; gdje se obje vrijednosti unose heksadecimalno. Da biste podesili 128-bitni parametar za serijski broj, format linije mora biti ovim redoslijedom: <128-bitni serijski broj [127:0]> ; gdje se obje vrijednosti unose heksadecimalno. Da biste podesili 256-bitni parametar za SHA 256 ključ; format reda mora biti ovim redoslijedom: <256 Bit Key [255:0]>; gdje se obje vrijednosti unose heksadecimalno. Da biste podesili 256-bitni parametar za ključ odgovora na izazov, format linije mora biti ovim redoslijedom: <256 Bit Key [255:0]>;
gdje se obje vrijednosti unose heksadecimalno.
3.5.3 Prioritet uređaja
Sistemske usluge i COMM_BLK koriste sistem visokog prioriteta. Trenutno, jedina usluga visokog prioriteta je nulizacija. Da bi se izvršila usluga visokog prioriteta, dok se izvršava druga usluga, trenutna usluga se zaustavlja i na njenom mjestu će se izvršiti usluga višeg prioriteta. COMM_BLK će odbaciti trenutnu uslugu kako bi izvršio uslugu višeg prioriteta. Ako se više usluga bez visokog prioriteta pošalje prije završetka trenutne usluge, ove usluge će biti stavljene u red unutar TXFIFO. Kada se trenutna usluga završi, izvršit će se sljedeći servis u TXFIFO.
Microsemi ne daje nikakvu garanciju, zastupanje ili garanciju u vezi sa informacijama sadržanim u ovom dokumentu ili prikladnosti svojih proizvoda i usluga za bilo koju određenu svrhu, niti Microsemi preuzima bilo kakvu odgovornost koja proizilazi iz primene ili upotrebe bilo kog proizvoda ili kola. Proizvodi koji se prodaju u nastavku i svi drugi proizvodi koje prodaje Microsemi bili su podvrgnuti ograničenom testiranju i ne bi se trebali koristiti zajedno sa opremom ili aplikacijama kritičnim za misiju. Vjeruje se da su sve specifikacije performansi pouzdane, ali nisu provjerene, a Kupac mora provesti i završiti sva ispitivanja performansi i druga testiranja proizvoda, sami i zajedno sa, ili ugrađeni u bilo koji krajnji proizvod. Kupac se neće oslanjati ni na kakve podatke i specifikacije performansi ili parametre koje pruža Microsemi. Odgovornost Kupca je da samostalno utvrdi prikladnost bilo kojeg proizvoda te da istu testira i provjeri. Informacije koje Microsemi pruža u nastavku su date „kao što jesu, gdje je“ i sa svim greškama, a cijeli rizik povezan s takvim informacijama je u potpunosti na Kupcu. Microsemi ne dodeljuje, eksplicitno ili implicitno, nijednoj strani bilo kakva patentna prava, licence ili bilo koja druga prava intelektualne svojine, bilo u pogledu samih takvih informacija ili bilo čega što je opisano u takvim informacijama. Informacije navedene u ovom dokumentu su vlasništvo Microsemi-ja, a Microsemi zadržava pravo da izvrši bilo kakve izmjene informacija u ovom dokumentu ili bilo kojeg proizvoda i usluga u bilo koje vrijeme bez prethodne najave.
Microsemi, podružnica u potpunom vlasništvu Microchip Technology Inc. (Nasdaq: MCHP), nudi sveobuhvatan portfelj poluvodičkih i sistemskih rješenja za zrakoplovstvo i odbranu, komunikacije, podatkovne centre i industrijska tržišta. Proizvodi uključuju visoke performanse i radijacijom ojačana analogna integrirana kola mješovitog signala, FPGA, SoC i ASIC; proizvodi za upravljanje napajanjem; uređaji za merenje vremena i sinhronizacije i precizna vremenska rešenja, postavljajući svetske standarde za vreme; Uređaji za obradu glasa; RF rješenja; diskretne komponente; korporativna rješenja za pohranu i komunikaciju; sigurnosne tehnologije i skalabilni anti-tamper products; Ethernet rješenja; Power-over-Ethernet IC-ovi i srednji rasponi; kao i mogućnosti i usluge prilagođenog dizajna. Microsemi ima sjedište u Aliso Viejo, Kalifornija, i ima oko 4,800 zaposlenih širom svijeta. Saznajte više na www.microsemi.com.
Microsemi Headquarters
One Enterprise, Aliso Viejo,
CA 92656 SAD
Unutar SAD-a: +1 800-713-4113
Izvan SAD: +1 949-380-6100
Prodaja: +1 949-380-6136
Fax: +1 949-215-4996
Email: prodaja.support@microsemi.com
www.microsemi.com
© 2018 Microsemi. Sva prava zadržana. Microsemi i Microsemi logo
su zaštitni znakovi Microsemi Corporation. Svi ostali zaštitni znakovi i usluge
oznake su vlasništvo njihovih vlasnika.
Dokumenti / Resursi
![]() |
Microsemi UG0837 IGLOO2 i SmartFusion2 FPGA simulacija sistemskih usluga [pdf] Korisnički priručnik UG0837, UG0837 IGLOO2 i SmartFusion2 FPGA simulacija sistemskih usluga, IGLOO2 i SmartFusion2 FPGA simulacija sistemskih usluga, simulacija SmartFusion2 FPGA sistemskih usluga, simulacija FPGA sistemskih usluga, simulacija usluga |