UG0837
Brukerveiledning
IGLOO2 og SmartFusion2 FPGA
Simulering av systemtjenester
juni 2018
Revisjonshistorie
Revisjonshistorikken beskriver endringene som ble implementert i dokumentet. Endringene er oppført etter revisjon, og starter med den nyeste publikasjonen.
1.1 Revisjon 1.0
Revisjon 1.0 ble publisert i juni 2018. Det var den første utgivelsen av dette dokumentet.
IGLOO2 og SmartFusion2 FPGA System Services Simulering
SmartFusion®2 FPGA-familiens System Services-blokk inneholder en samling tjenester som er ansvarlige for ulike oppgaver. Disse inkluderer simuleringsmeldingstjenester, datapekertjenester og databeskrivelsestjenester. Systemtjenestene kan nås gjennom Cortex-M3 i SmartFusion2 og fra FPGA-stoffet gjennom stoffgrensesnittkontrolleren (FIC) for både SmartFusion2 og IGLOO®2. Disse tilgangsmetodene sendes til systemkontrolleren gjennom COMM_BLK. COMM_BLK har et avansert periferbuss-grensesnitt (APB) og fungerer som en meldingsoverføringskanal for å utveksle data med systemkontrolleren. Systemtjenesteforespørsler sendes til systemkontrolleren og systemtjenestesvar sendes til CoreSysSerrvice gjennom COMM BLK. Adresseplasseringen for COMM_BLK er tilgjengelig i undersystemet for mikrokontroller (MSS)/high performance memory (HPMS). For detaljer, se UG0450: SmartFusion2 SoC og IGLOO2 FPGA System Controller.
Brukerveiledning
Følgende illustrasjon viser dataflyt for systemtjenester.
Figur 1 • Flytdiagram for systemtjenestedataFor både IGLOO2- og SmartFusion2-systemtjenestesimulering må du sende ut systemtjenesteforespørsler og kontrollere systemtjenestesvarene for å bekrefte at simuleringen er riktig. Dette trinnet er nødvendig for å få tilgang til systemkontrolleren, som leverer systemtjenestene. Måten å skrive til og lese fra systemkontrolleren er forskjellig for IGLOO2- og SmartFusion2-enheter. For SmartFusion2 er Coretex-M3 tilgjengelig, og du kan skrive og lese fra systemkontrolleren ved å bruke BFM-kommandoer (bus functional model). For IGLOO2 er ikke Cortex-M3 tilgjengelig, og systemkontrolleren er ikke tilgjengelig ved å bruke BFM-kommandoer.
2.1 Typer tilgjengelige systemtjenester
Tre forskjellige typer systemtjenester er tilgjengelige og hver type tjeneste har forskjellige undertyper.
Simuleringsmeldingstjenester
Datapekertjenester
Databeskrivelsestjenester
Kapittelet Tillegg – Systemtjenestertyper (se side 19) i denne veiledningen beskriver de forskjellige typene systemtjenester. For mer informasjon om systemtjenester, se UG0450: SmartFusion2 SoC og IGLOO2 FPGA System Controller User Guide.
2.2 IGLOO2 System Service Simulering
Systemtjenester innebærer skriving til og lesing fra systemkontrolleren. For å skrive til og lese fra systemkontrolleren for simuleringsformål, må du utføre trinnene som følger.
- Instantier CoreSysServices myke IP-kjernen, tilgjengelig i SmartDesign-katalogen.
- Skriv HDL-koden for en endelig tilstandsmaskin (FSM).
HDL FSM grensesnitt med CoreSysServices Core, som fungerer som stoffmasteren til AHBLite-bussen. CoreSysServices-kjernen initierer systemtjenesteforespørsel til COMM BLK og mottar systemtjenestesvar fra COMM BLK gjennom FIC_0/1, strukturgrensesnittkontrolleren som vist i følgende illustrasjon.
Figur 2 • IGLOO2 System Services Simuleringstopologi2.3 SmartFusion2 System Service Simulering
For å simulere systemtjenester i SmartFusion2-enheter, må du skrive til og lese fra systemkontrolleren. To alternativer er tilgjengelige for å få tilgang til systemkontrolleren for simuleringsformål.
Alternativ 1 — Skriv HDL-koden for en FSM for å koble til CoreSysService myk IP-kjernen, som fungerer som en AHBLite-stoffmaster og initierer systemtjenesteforespørsel til COMM BLK og mottar systemtjenestesvar fra COMM BLK gjennom FIC_0/1-stoffet grensesnitt som vist i følgende illustrasjon.
Figur 3 • SmartFusion2 System Services Simuleringstopologi
Alternativ 2 - Siden Cortex-M3 er tilgjengelig for SmartFusion2-enheter, kan du bruke BFM-kommandoer til å skrive direkte til og lese fra minneplassen til systemkontrolleren.
Bruk av BFM-kommandoer (alternativ 2) sparer behovet for å skrive HDL-kodene for FSM. I denne brukerveiledningen brukes alternativ 2 for å vise simulering av systemtjenester i SmartFusion2. Med dette alternativet får du tilgang til systemkontrollerens minneplass for å finne ut minnekartet til COMM BLK og strukturgrensesnittavbruddskontrollerblokken (FIIC) når du skriver BFM-kommandoer.
2.4 Simulering Eksamples
Brukerveiledningen dekker følgende simuleringer.
- IGLOO2 serienummertjenestesimulering (se side 5)
- SmartFusion2 serienummertjenestesimulering (se side 8)
- IGLOO2 nullstillingstjenestesimulering (se side 13)
- SmartFusion2 Zeroization Service Simulation (se side 16)
Lignende simuleringsmetoder kan brukes på andre systemtjenester. For en fullstendig liste over de forskjellige systemtjenestene som er tilgjengelige, gå til Vedlegg – Systemtjenestertyper (se side 19).
2.5 IGLOO2 serienummertjenestesimulering
For å forberede IGLOO2 serienummertjenestesimulering, utfør trinnene som følger.
- Påkall systembygger for å lage HPMS-blokken din.
- Merk av for HPMS System Services på siden Enhetsfunksjoner. Dette vil instruere systembyggeren til å avsløre HPMS_FIC_0 SYS_SERVICES_MASTER-bussgrensesnittet (BIF).
- La alle andre avmerkingsbokser være umerket.
- Godta standarden på alle andre sider og klikk Fullfør for å fullføre systembyggerblokken. I Libero® SoCs HDL-editor skriver du HDL-koden for FSM (File > Ny > HDL). Inkluder følgende tre tilstander i din FSM.
INIT-tilstand (utgangstilstand)
SERV_PHASE (tjenesteforespørselstilstand)
RSP_PHASE (tjenestesvarstilstand).
Følgende figur viser de tre tilstandene til FSM.
Figur 4 • Tre-stats FSM I HDL-koden for FSM, bruk riktig kommandokode ("01" Hex for serienummertjeneste) for å angi tjenesteforespørselstilstanden fra INIT-tilstanden.
- Lagre HDL file. FSM vises som en komponent i designhierarkiet.
- Åpne SmartDesign. Dra og slipp systembyggerblokken på toppnivå og FSM-blokken inn i SmartDesign-lerretet. Fra katalogen, dra og slipp CoreSysService myke IP-kjernen inn i SmartDesign-lerretet.
- Høyreklikk CoreSysService myk IP-kjernen for å åpne konfiguratoren. Merk av for Serienummertjeneste (under Device and Design Information Services
gruppe) for å aktivere serienummertjeneste. - La alle andre avmerkingsbokser være umerket. Klikk OK for å avslutte konfiguratoren.
Figur 5 • CoreSysServices myk IP Core Configurator
- Koble HPMS_FIC_0 SYS_SERVICES_MASTER BIF-en til systembyggerblokken til AHBL_MASTER BIF-en til CoreSysService-blokken.
- Koble utgangen på HDL FSM-blokken til inngangen til CoreSysService myke IP-kjernen. Foreta alle andre tilkoblinger i SmartDesign-lerretet som vist i følgende figur.
Figur 6 • SmartDesign Canvas med HDL Block, CoreSysServices Soft IP og HPMS Blocks - I SmartDesign-lerretet høyreklikker du >Generer komponent for å generere toppnivådesignet.
- I designhierarkiet view, høyreklikk på toppnivådesignet og velg opprett testbenk > HDL .
- Bruk et tekstredigeringsprogram for å lage en tekst file kalt "status.txt" .
- Ta med kommandoen for systemtjenesten og 128-biters serienummer. For mer informasjon, se Tabell 1 (System Services Command/Response Values) i Håndbok for CoreSysServices v3.1 for kommandokodene (Hex) som skal brukes for forskjellige systemtjenester. For serienummertjeneste er kommandokoden "01" Hex.
Formatet til status.txt file for serienummertjenesten er som følger.
< 2 sekskantsiffer CMD><32 sekskantsiffer serienummer>
Example: 01A1A2A3A4B1B2B3B4C1C2C3C4D1D2D3D4
Lagre status.txt file i simuleringsmappen til prosjektet ditt. Designet er nå klart for simulering.
Når tjenesten har begynt utførelse, vises en melding som angir destinasjonsplasseringen og serienummeret i ModelSim-transkripsjonsvinduet, som vist i følgende figur.
Figur 7 • Vinduet ModelSim Simulation TransscriptionSystemkontrolleren utfører en AHB-skriving til adressen med serienummeret. Når tjenesten er fullført, vil COMM_BLKs RXFIFO lastes med tjenestesvaret.
Merk: For en fullstendig liste over kommandokodene som skal brukes for forskjellige systemtjenester, se Tabell 1 (System Services Command/Response Values) i CoreSysServices v3.1 Handbook eller UG0450: SmartFusion2 SoC og IGLOO2 FPGA System Controller User Guide.
2.6 SmartFusion2 serienummertjenestesimulering
I denne brukerveiledningen brukes BFM-kommandoer (alternativ 2) for å få tilgang til systemkontrolleren for systemservice. BFM-kommandoer brukes da Cortex-M3-prosessoren er tilgjengelig på enheten for BFM-simulering. BFM-kommandoer lar deg skrive direkte til og lese fra COMM BLK når du kjenner minnetilordningen til COMM_BLK.
For å forberede designet for SmartFusion2 serienummertjenestesimulering, utfør følgende trinn.
- Dra og slipp MSS fra katalogen til designlerretet til prosjektet ditt.
- Deaktiver alle MSS-tilbehør unntatt MSS_CCC, Reset Controller, Interrupt Management og FIC_0, FIC_1 og FIC_2.
- Konfigurer avbruddsadministrasjonen til å bruke MSS til å strukturere avbrudd.
- Klargjør serialnum.bfm file i et tekstredigeringsprogram eller i Liberos HDL-redigeringsprogram. Lagre serienummer.bfm file i prosjektets simuleringsmappe. Serialnum.bfm bør inneholde følgende detaljer.
• Minnetilordning til COMM BLK (CMBLK)
• Minnetilordning for å avbryte administrasjonsutstyr (FIIC)
• Kommando for serienummersystemtjenesteforespørsel (“01” Hex)
• Adresse for plasseringen av serienummeret
En eksample av serienummeret.bfm file er som følger.
memmap FIIC 0x40006000; #Minnekartlegging for å avbryte administrasjon
memmap CMBLK 0x40016000; #Minnekartlegging til COMM BLK
memmap DESCRIPTOR_ADDR 0x20000000; #Adresseplassering for serienummer
#Kommandokode i heksadesimal
konstant CMD 0x1 # Kommandokode for serienummertjeneste
#FIIC konfigurasjonsregistre
konstant FICC_INTERRUPT_ENABLE0 0x0
#COMM_BLK Konfigurasjonsregistre
konstant KONTROLL 0x00
konstant STATUS 0x04
konstant INT_ENABLE 0x08
konstant DATA8 0x10
konstant DATA32 0x14
konstant FRAME_START8 0x18
konstant FRAME_START32 0x1C
prosedyre serienummer;
int x;
skriv w FIIC FICC_INTERRUPT_ENABLE0 0x20000000 #Konfigurer
#FICC_INTERRUPT_ENABLE0 # Registrer deg for å aktivere COMBLK_INTR #
#avbrudd fra COMM_BLK blokk til stoff
#Forespørselsfase
skriv w CMBLK CONTROL 0x10 # Konfigurer COMM BLK Control #Registrer deg til
aktivere overføringer på COMM BLK-grensesnittet
skriv w CMBLK INT_ENABLE 0x1 # Konfigurer COMM BLK Interrupt Enable
#Registrer deg for å aktivere Interrupt for TXTOKAY (Tilsvarende bit i
#Statusregister)
waitint 19 # vent på COMM BLK Interrupt , Her venter #BFM
#til COMBLK_INTR er hevdet
readstore w CMBLK STATUS x # Les COMM BLK Status Registrer deg for #TXTOKAY
# Avbryt
sett xx & 0x1
hvis x
skriv w CMBLK FRAME_START8 CMD # Konfigurer COMM BLK FRAME_START8
#Registrer deg for å be om serienummertjeneste
endif
endif
waitint 19 # vent på COMM BLK Interrupt , Her
#BFM venter til COMBLK_INTR er hevdet
readstore w CMBLK STATUS x # Les COMM BLK Status Registrer deg for
#TXTOKAY Avbrudd
sett xx & 0x1
sett xx & 0x1
hvis x
skriv w CMBLK CONTROL 0x14 #Konfigurer COMM BLK Control
#Registrer deg for å aktivere overføringer på COMM BLK-grensesnittet
skriv w CMBLK DATA32 DESCRIPTOR_ADDR
skriv w CMBLK INT_ENABLE 0x80
skriv w CMBLK CONTROL 0x10
endif
vent 20
#Responsfase
vent 19
readstore w CMBLK STATUS x
sett xx & 0x80
hvis x
lesesjekk w CMBLK FRAME_START8 CMD
skriv w CMBLK INT_ENABLE 0x2
endif
vent 19
readstore w CMBLK STATUS x
sett xx & 0x2
hvis x
lesesjekk w CMBLK DATA8 0x0
skriv w CMBLK CONTROL 0x18
endif
vent 19
lesesjekk med FIIC 0x8 0x20000000
readstore w CMBLK STATUS x
sett xx & 0x2
hvis x
readcheck w CMBLK DATA32 DESCRIPTOR_ADDR
endif
readcheck w DESCRIPTOR_ADDR 0x0 0xE1E2E3E4; #Lessjekk for å sjekke S/N
readcheck w DESCRIPTOR_ADDR 0x4 0xC1C2C3C4; #Lessjekk for å sjekke S/N
readcheck w DESCRIPTOR_ADDR 0x8 0xB1B2B3B4; #Lessjekk for å sjekke S/N
lesesjekk w DESCRIPTOR_ADDR 0xC 0xA1A2A3A4; #Lessjekk for å sjekke S/N
retur - Opprett statusen. tekst file i Liberos HDL-editor eller hvilken som helst tekstredigerer. Ta med serienummersystemets servicekommando ("01" i Hex) og serienummeret i statusen . tekst file. Se CoreSysServices v3.1-håndboken for bruk av riktig kommandokode.
- Syntaksen til dette file for serienummertjeneste er <2 sekskantet siffer CMD>< 32 sekskantet siffer serienummer> . Eksample: 01A1A2A3A4B1B2B3B4C1C2C3C4E1E2E3E4.
- Lagre statusen .txt file i prosjektets simuleringsmappe.
- Rediger brukeren .bfm (plassert i simuleringsmappen) for å inkludere serienummeret. bfm file og ring serienummerprosedyren som vist i følgende kodebit.
inkludere "serialnum.bfm" #inkluder serienummeret.bfm
prosedyre user_main;
skriv ut "INFO:Simulering starter";
skriv ut "INFO:Tjenestekommandokode i desimal:%0d", CMD ;
ringe serienummer; #ring serienummerprosedyren
skriv ut "INFO:Simulering slutter";
retur - I designhierarkiet view, generer testbenken (Høyreklikk, Toppnivådesign > Lag testbenk > HDL ), og du er klar til å kjøre simulering av serienummertjeneste.
Når tjenesten har begynt å utføre, vises en melding som angir destinasjonsstedet og serienummeret. Systemkontrolleren utfører en AHB-skriving til adressen med serienummeret. Når tjenesten er fullført, vil COMM_BLKs RXFIFO lastes med tjenestesvaret. ModelSim-transkripsjonsvinduet viser adressen og serienummeret mottatt som vist i følgende figur.
Figur 8 • SmartFusion2 Serienummer Tjenestesimulering i ModelSim Transcript Window
2.7 IGLOO2 nullstillingstjenestesimulering
For å forberede IGLOO2 nullstillingstjenestesimulering, utfør trinnene som følger.
- Påkall systembygger for å lage HPMS-blokken. Merk av for HPMS System Services i Enhetsfunksjoner SYS_SERVICES_MASTER BIF. La alle andre avmerkingsbokser være umerket. Godta standarden på alle andre sider og klikk på side. Dette instruerer systembyggeren til å avsløre HPMS_FIC_0 Finish for å fullføre konfigurasjonen av systembyggerblokken.
- Skriv HDL-koden for FSM i Libero SoCs HDL-editor. I HDL-koden for FSM inkluderer følgende tre tilstander.
INIT-tilstand (utgangstilstand)
SERV_PHASE (tjenesteforespørselstilstand)
RSP_PHASE (tjenestesvarstatus)
Følgende figur viser de tre tilstandene til FSM.
Figur 9 • Tre-stats FSM - I HDL-koden din bruker du kommandokoden "F0"(Hex) for å angi tjenesteforespørselstilstanden fra INIT-tilstanden.
- Lagre HDL file.
- Åpne SmartDesign, dra og slipp systembyggerblokken på øverste nivå og HDL FSM-blokken inn i SmartDesign-lerretet. Fra katalogen, dra og slipp CoreSysService myke IP-kjernen inn i SmartDesign-lerretet.
- Høyreklikk CoreSysServices myke IP-kjernen for å åpne konfiguratoren og merk av for Zeroization Service under Data Security Services-gruppen. La alle andre avmerkingsbokser være umerket. Klikk for å avslutte OK.
Figur 10 • CoreSysServices Configurator
- Koble HPMS_FIC_0 SYS_SERVICES_MASTER BIF-en til systembyggerblokken til AHBL_MASTER BIF-en til CoreSysService-blokken.
- Koble utgangen på HDL FSM-blokken til inngangen til CoreSysService myke IP-kjernen. Lag alle andre koblinger i SmartDesign-lerretet.
Figur 11 • SmartDesign Canvas med HDL-blokk, CoreSysServices Soft IP og HPMS-blokker
9. I SmartDesign-lerretet, generer toppnivådesignet (høyreklikk > Generer komponent).
10. I designhierarkiet view, høyreklikk på toppnivådesignet og velg opprett testbenk > HDL. Du er nå klar til å kjøre simulering.
Når tjenesten har begynt å utføre, vises en melding som indikerer at nullstillingen er fullført på tidspunktet x, som vist i følgende figur.
Figur 12 • Vinduet Transkripsjonstranskripsjon for IGLOO2-nulstillingssystemtjenestesimulering
Systemkontrolleren utfører en AHB-skriving til adressen med serienummeret. Når tjenesten er fullført, vil COMM_BLKs RXFIFO lastes med tjenestesvaret. Det skal bemerkes at simuleringsmodellen simulerer nullstilling ved å stoppe simuleringen i stedet for å nullstille selve designet.
Merk: For en fullstendig liste over kommandokodene som skal brukes for forskjellige systemtjenester, se Tabell 1 (System Services Command/Response Values) i Håndbok for CoreSysServices v3.1:. eller UG0450: Brukerveiledning for SmartFusion2 SoC og IGLOO2 FPGA-systemkontroller
2.8 SmartFusion2 nullstillingstjenestesimulering
I denne veiledningen brukes BFM-kommandoer (alternativ 2) for å få tilgang til systemkontrolleren for systemservice.
BFM-kommandoer brukes da Cortex-M3-prosessoren er tilgjengelig på enheten for BFM-simulering. BFM-kommandoer lar deg skrive direkte til og lese fra COMM BLK når du kjenner minnetilordningen til COMM_BLK. For å forberede designet for SmartFusion2 nullstillingstjenestesimulering, utfør følgende trinn.
- Dra og slipp MSS fra katalogen til designlerretet til prosjektet ditt.
- Deaktiver alle MSS-tilbehør unntatt MSS_CCC, Reset Controller, Interrupt Management og FIC_0, FIC_1 og FIC_2.
- Konfigurer avbruddsadministrasjonen til å bruke MSS til å strukturere avbrudd.
- Forbered zeroizaton.bfm file i et tekstredigeringsprogram eller i Liberos HDL-redigeringsprogram. Din nullstilling. bfm skal inneholde:
- Minnetilordning til COMM BLK (CMBLK)
- Minnekartlegging for å avbryte administrasjonsutstyr (FIIC)
- Kommando for nullstillingstjenesteforespørsel ("F0" Hex for nullstilling)
En eksample av serienummeret.bfm file er vist i følgende figur.
Figur 13 • Zeroization.bfm for SmartFusion2 Zeroization System Services Simulation
5. Lagre zeroization.bfm file i prosjektets simuleringsmappe. bruker.bfm
6. Rediger (som ligger i zeroization.bfm Simulation-mappen) for å inkludere den ved å bruke følgende kodebit.
inkludere "zeroization.bfm" #include zeroization.bfm file prosedyre user_main;
skriv ut "INFO:Simulering starter";
skriv ut "INFO:Tjenestekommandokode i desimal:%0d", CMD ;
ringe nullstilling; #call nullstillingsprosedyre retur
7. I designhierarkiet genererer du testbenken (høyreklikk på toppnivå > Opprett testbenk > HDL ), og du er klar til å kjøre SmartFusion2-nulleringssimuleringen.
Når tjenesten har begynt å utføre, vises en melding som indikerer at enheten har blitt nullstilt på tidspunktet x. Det skal bemerkes at simuleringsmodellen simulerer nullstilling ved å stoppe simuleringen i stedet for å nullstille selve designet. ModelSim-transkripsjonsvinduet i følgende figur viser at enheten har blitt nullstilt.
Figur 14 • SmartFusion2 Zeroization System Service Simulation Log
Vedlegg: Typer systemtjenester
Dette kapittelet beskriver ulike typer systemtjenester.
3.1 Simuleringsmeldingstjenester
De følgende avsnittene beskriver ulike typer simuleringsmeldingstjenester.
3.1.1 Flash*Frys
Simuleringen vil gå inn i Flash*Freeze-tilstanden når den riktige serviceforespørselen sendes til COMM_BLK fra enten FIC (i tilfelle IGLOO2-enheter) eller Cortex-M3 (i SmartFusion2-enheter). Når tjenesten er oppdaget av systemkontrolleren, vil simuleringen bli stoppet og en melding som indikerer at systemet har gått inn i Flash*Freeze (sammen med det valgte alternativet) vises. Ved gjenopptagelse av simuleringen vil RXFIFO til COMM_BLK fylles med tjenestesvaret som består av tjenestekommando og status. Det skal bemerkes at det ikke er simuleringsstøtte for Flash*Freeze exit.
3.1.2 Nullstilling
Nullstilling er for øyeblikket den eneste høyprioriterte tjenesten innen systemtjenester som behandles av COMM_BLK. Simuleringen vil gå inn i nullstillingstilstanden så snart den korrekte tjenesteforespørselen oppdages av COMM_BLK. Utførelse av andre tjenester vil bli stoppet og forkastet av systemkontrolleren, og nullstillingstjenesten vil bli utført i stedet. Når nullstillingstjenesteforespørselen er oppdaget, stopper simuleringen og en melding som indikerer at systemet har gått inn i nullstilling vises. Manuell omstart av simulering etter nullstilling er ugyldig.
3.2 Datapekertjenester
De følgende delene beskriver ulike typer datapekertjenester.
3.2.1 Serienummer
Serienummertjenesten vil skrive et 128-biters serienummer til en adresse som er oppgitt som en del av tjenesteforespørselen. Denne 128-biters parameteren kan stilles inn ved hjelp av en systemtjenestesimuleringsstøtte file (se side 22). Hvis 128-biters serienummerparameter ikke er definert i file, vil et standard serienummer på 0 bli brukt. Når tjenesten har begynt å utføre, vises en melding som angir destinasjonsstedet og serienummeret. Systemkontrolleren utfører en AHB-skriving til adressen med serienummeret. Når tjenesten er fullført, vil COMM_BLKs RXFIFO lastes med tjenestesvaret.
3.2.2 Brukerkode
Brukerkodetjenesten skriver en 32-biters brukerkodeparameter til en adresseplassering gitt som en del av tjenesteforespørselen. Denne 32-biters parameteren kan stilles inn ved hjelp av System Service Simulation Support file (se side 22). Hvis 32-bits parameteren ikke er definert i file, brukes en standardverdi på 0. Når tjenesten har begynt å utføre, vises en melding som angir målplasseringen og brukerkoden. Systemkontrolleren utfører en AHB-skriving til adressen med 32-bits parameteren. Når tjenesten er fullført, blir COMM_BLKs RXFIFO lastet med tjenestesvaret, som inkluderer tjenestekommandoen og måladressen.
3.3 Databeskrivelsestjenester
De følgende avsnittene beskriver ulike typer databeskrivelsestjenester.
3.3.1 AES
Simuleringsstøtten for denne tjenesten er kun opptatt av å flytte de originale dataene fra kilden til destinasjonen, uten å faktisk utføre noen kryptering/dekryptering på dataene. Dataene som må krypteres/dekrypteres og datastrukturen bør skrives før tjenesteforespørselen sendes. Når tjenesten har begynt kjøringen, vises en melding som indikerer kjøringen av AES-tjenesten. AES-tjenesten leser både datastrukturen og data som skal krypteres/dekrypteres. De originale dataene kopieres og skrives til adressen oppgitt i datastrukturen. Når tjenesten er fullført, skyves kommandoen, statusen og datastrukturadressen inn i RXFIFO.
Note: Denne tjenesten er kun for 128-biters og 256-biters data, og både 128-biters og 256-biters data har forskjellige datastrukturlengder.
3.3.2 SHA 256
Simuleringsstøtten for denne tjenesten er kun opptatt av å flytte dataene, uten å faktisk utføre noen hashing på dataene. SHA 256-funksjonen er designet for å generere en 256-bits hash-nøkkel basert på inndataene. Dataene som må hashes og datastrukturen bør skrives til deres respektive adresser før tjenesteforespørselen sendes til COMM_BLK. Lengden i biter og peker som er definert i SHA 256-datastrukturen, må korrespondere korrekt med lengden og adressen til dataene som skal hashes. Når tjenesten har begynt kjøringen, vises en melding som indikerer kjøringen av SHA 256-tjenesten. I stedet for å utføre den faktiske funksjonen, vil en standard hash-nøkkel bli skrevet til målpekeren fra datastrukturen. Standard hash-nøkkel er hex "ABCD1234". For å stille inn en egendefinert nøkkel, gå til Parameter Setting (se side 23) delen. Når tjenesten er fullført, blir RXFIFO lastet med tjenestesvaret som består av tjenestekommando, status og SHA 256-datastrukturpeker.
3.3.3 HMAC
Simuleringsstøtten for denne tjenesten er kun opptatt av flytting av data, uten faktisk å utføre noen hashing på dataene. Dataene som må hashes og datastrukturen bør skrives til deres respektive adresser før tjenesteforespørselen sendes til COMM_BLK. HMAC-tjenesten krever en 32-byte nøkkel i tillegg til lengden i byte, kildepeker og målpeker. Når tjenesten har begynt kjøringen, vises en melding som indikerer kjøringen av HMAC-tjenesten. Nøkkelen leses og 256-bits nøkkelen kopieres fra datastrukturen til målpekeren. Når tjenesten er fullført, blir RXFIFO lastet med tjenestesvaret som består av tjenestekommando, status og HMAC-datastrukturpeker.
3.3.4 DRBG Generer
Generering av tilfeldige biter utføres av denne tjenesten. Det skal bemerkes at simuleringsmodellen ikke nøyaktig følger den samme tilfeldige tallgenereringsmetodikken som brukes av silisiumet. Datastrukturen må være korrekt skrevet inn på den tiltenkte plasseringen før tjenesteforespørselen sendes til COMM_BLK. Datastrukturen, målpekeren, lengden og andre relevante data leses av systemkontrolleren. DRBG-genereringstjenesten genererer et pseudo-tilfeldig sett med data med ønsket lengde (0-128). Systemkontrolleren skriver de tilfeldige dataene inn i målpekeren. En melding som indikerer utførelse av DRBG-genereringstjeneste vises i simulering. Når tjenesten er fullført, skyves kommandoen, statusen og datastrukturadressen inn i RXFIFO. Hvis den forespurte datalengden ikke er innenfor området 0-128, vil en feilkode på "4" (Max Generate ) bli presset inn i RXFIFO. Hvis den ekstra datalengden ikke er innenfor Request Too Big-området på 0-128, vil en feilkode på "5" (Max Length of Additional Data Exceeded) bli presset inn i RXFIFO. Hvis både den forespurte datalengden for generering og tilleggsdatalengden ikke er innenfor det definerte området (0-128), blir en feilkode på "1" (katastrofisk feil) skjøvet inn i RXFIFO.
3.3.5 DRBG Tilbakestilling
Selve tilbakestillingsfunksjonen utføres ved å fjerne DRBG-forekomster og tilbakestille DRBG. Når serviceforespørselen er oppdaget, viser simuleringen en melding om DRBG Reset service fullført. Svaret, som inkluderer tjenesten og statusen, skyves inn i RXFIFO.
3.3.6 DRBG-selvtest
Simuleringsstøtten for DRBG-selvtesten utfører faktisk ikke selvtestfunksjonen. Når tjenesteforespørselen er oppdaget, vil simuleringen vise en melding om utførelse av DRBG-selvtesttjeneste. Svaret, som inkluderer tjenesten og statusen, vil bli presset inn i RXFIFO.
3.3.7 DRBG Instantiate
Simuleringsstøtten for DRBG-instanstjenesten utfører faktisk ikke instansieringstjenesten. Datastrukturen må være korrekt skrevet inn på den tiltenkte plasseringen før tjenesteforespørselen sendes til COMM_BLK. Når tjenesteforespørselen er oppdaget, vil strukturen og personaliseringsstrengen som er definert i MSS-adresseområdet, bli lest. Simuleringen vil vise en melding som indikerer at DRBG Instantiate-tjenesten har begynt utførelse. Når tjenesten er fullført, vil svaret, som inkluderer tjenestekommando, status og peker til datastrukturen, skyves inn i RXFIFO. Hvis datalengden (PERSONALISERINGSLENGDE) ikke er innenfor området 0-128, vil en feilkode på "1" (katastrofisk feil) bli presset inn i RXFIFO for status.
3.3.8 DRBG Unnstantiate
Simuleringsstøtten for DRBG uninstantiate-tjenesten utfører faktisk ikke uninstantiate-tjenesten for å fjerne en tidligere instansiert DRBG, slik silisiumet gjør. Tjenesteforespørselen må inneholde både kommandoen og DRBG-håndtaket. Når serviceforespørselen er oppdaget, vil DRBG-håndtaket bli lagret. Simuleringen vil vise en melding som indikerer at DRBG-avinstanstjenesten er initialisert. Når tjenesten er fullført, vil svaret, som inkluderer tjenestekommando, status og DRBG-håndtak, skyves inn i RXFIFO.
3.3.9 DRBG Reseed
På grunn av den simulative karakteren til systemtjenesteblokken, blir ikke DRBG reseed-tjenesten i simulering utført automatisk etter hver 65535 DRBG-genererte tjenester. Datastrukturen må være korrekt skrevet inn på den tiltenkte plasseringen før tjenesteforespørselen sendes til COMM_BLK. Når tjenesteforespørselen er oppdaget, vil strukturen og tilleggsinndataparameteren i MSS-adresserommet bli lest. En melding som indikerer at DRBG reseed-tjenesten har begynt å utføre, vil vises. Datastrukturen må være korrekt skrevet inn på den tiltenkte plasseringen før tjenesteforespørselen sendes til COMM_BLK. Når tjenesten er fullført, vil svaret, som inkluderer tjenestekommando, status og peker til datastrukturen, skyves inn i RXFIFO.
3.3.10 Nøkkeltre
Selve funksjonen utføres ikke i simulering for KeyTree-tjenesten. KeyTree-tjenestedatastrukturen består av en 32-byte nøkkel, 7-bits optypedata (MSB ignorert) og 16-byte bane. Dataene i datastrukturen bør skrives til deres respektive adresser før tjenesteforespørselen sendes til COMM_BLK. Når tjenesten har begynt utførelse, vil en melding som indikerer utførelse av KeyTree-tjenesten vises. Innholdet i datastrukturen vil bli lest, 32-byte-nøkkelen vil bli lagret, og den opprinnelige nøkkelen som ligger i datastrukturen blir overskrevet. Etter denne AHB-skrivingen skal verdien av nøkkelen i datastrukturen ikke endres, men AHB-transaksjoner for skrivingen vil skje. Når tjenesten er fullført, blir RXFIFO lastet med tjenestesvaret, bestående av tjenestekommando, status og KeyTree-datastrukturpekeren.
3.3.11 Utfordringsrespons
Selve funksjonen, som autentisering av enheten, utføres ikke i simulering for utfordringssvartjenesten. Datastrukturen for denne tjenesten krever en peker til bufferen for å motta et 32-byte resultat, 7-bit optype og en 128-bit bane. Dataene i datastrukturen bør skrives til deres respektive adresser før tjenesteforespørselen sendes til COMM_BLK. Når tjenesten har begynt utførelse, vil en melding som indikerer utførelse av utfordringssvartjenesten vises. Et generisk 256-bits svar vil bli skrevet inn i pekeren i datastrukturen. Standardnøkkelen er satt som hex "ABCD1234". For å få en egendefinert nøkkel, sjekk Parameter Setting (se side 23). Etter fullføring av tjenesten vil RXFIFO bli lastet med tjenestesvar, bestående av tjenestekommando, status og utfordringssvarsdatastrukturpeker.
3.4 Andre tjenester
De følgende avsnittene beskriver forskjellige andre systemtjenester.
3.4.1 Sammendragssjekk
Den faktiske funksjonen med å beregne og sammenligne sammendrag av utvalgte komponenter utføres ikke for sammendragssjekktjenesten i simulering. Denne tjenesteforespørselen består av tjenestekommandoer og tjenestealternativer (5-bits LSB). Når tjenesten har begynt å utføre, vil en melding som beskriver utførelsen av sammendragssjekktjenesten vises, sammen med de valgte alternativene fra forespørselen. Når tjenesten er fullført, vil RXFIFO-en lastes med tjenestesvaret, som består av tjenestekommandoen og flaggene for sammendragssjekk bestått/ikke bestått.
3.4.2 Ukjent kommandorespons
Når en ukjent tjenesteforespørsel sendes til COMM_BLK, vil COMM_BLK automatisk svare med en ukjent kommandomelding presset inn i RXFIFO. Meldingen består av kommandoen sendt inn i COMM_BLK og den ukjente kommandostatusen (252D). En skjermmelding som indikerer at en ukjent tjenesteforespørsel er oppdaget vil også vises. COMM_BLK vil gå tilbake til en inaktiv tilstand og venter på å godta neste tjenesteforespørsel.
3.4.3 Tjenester som ikke støttes
Ikke-støttede tjenester satt til COMM_BLK vil utløse en melding i simulering som indikerer at tjenesteforespørselen ikke støttes. COMM_BLK vil gå tilbake til en inaktiv tilstand og venter på å godta neste tjenesteforespørsel. PINTERRUPT vil ikke bli satt, noe som indikerer at en tjeneste er fullført. Den gjeldende listen over tjenester som ikke støttes inkluderer: IAP, ISP, Device Certificate og DESIGNVER-tjenesten.
3.5 Systemtjenester Simuleringsstøtte File
For å støtte simulering av systemtjenester, en tekst file kalt "status.txt" kan brukes til å sende instruksjoner om den nødvendige oppførselen til simuleringsmodellen til simuleringsmodellen. Dette file skal ligge i samme mappe som simuleringen kjøres fra. De file kan blant annet brukes til å tvinge frem visse feilsvar for systemtjenestene som støttes eller til og med for å sette noen parametere som er nødvendige for simulering, (f.eks.ample, serienummer). Maksimalt antall linjer som støttes i "status.txt" file er 256. Instruksjoner som vises etter linjenummer 256 vil ikke bli brukt i simuleringen.
3.5.1 Fremtvinge feilsvar
Brukeren kan tvinge frem en bestemt feilrespons for en bestemt tjeneste under testing ved å sende informasjonen til simuleringsmodellen ved å bruke "status.txt" file, som skal plasseres i mappen simuleringen kjøres fra. For å tvinge frem feilsvar til en bestemt tjeneste, bør kommandoen og det nødvendige svaret skrives inn på samme linje i følgende format:ample, til Kommando> ; instruere simuleringsmodellen til å generere en MSS-minnetilgangsfeilrespons på serienummertjenesten, er kommandoen som følger.
Tjeneste: Serienummer: 01
Feilmelding forespurt: MSS Memory Access Error: 7F
Du bør ha linjen 017F oppgitt i "status.txt" file.
3.5.2 Parameterinnstilling
«status.txt» file kan også brukes til å stille inn noen parametere som trengs i simulering. Som eksample, for å sette 32-bits parameteren for brukerkoden, må formatet på linjen være i denne rekkefølgen: <32 bit BRUKERKODE>; hvor begge verdiene er lagt inn i heksadesimal. For å angi 128-bits parameteren for serienummeret, må formatet på linjen være i denne rekkefølgen: <128 bit serienummer [127:0]> ; hvor begge verdiene er lagt inn i heksadesimal. For å sette 256-bits parameteren for SHA 256-nøkkelen; formatet på linjen må være i denne rekkefølgen: <256 bit nøkkel [255:0]>; hvor begge verdiene er lagt inn i heksadesimal. For å angi 256-bits parameteren for utfordringssvarnøkkelen, må formatet på linjen være i denne rekkefølgen: <256 bit nøkkel [255:0]>;
hvor begge verdiene er lagt inn i heksadesimal.
3.5.3 Enhetsprioritet
Systemtjenester og COMM_BLK bruker et høyprioritert system. Foreløpig er den eneste høyprioriterte tjenesten nullstilling. For å utføre en høyprioritet tjeneste, mens en annen tjeneste utføres, stanses den nåværende tjenesten og den høyere prioriterte tjenesten utføres i stedet for. COMM_BLK vil forkaste gjeldende tjeneste for å utføre tjenesten med høyere prioritet. Hvis flere ikke-høyprioriterte tjenester sendes før fullføringen av en gjeldende tjeneste, vil disse tjenestene stå i kø i TXFIFO. Når gjeldende tjeneste er fullført, vil neste tjeneste i TXFIFO bli utført.
Microsemi gir ingen garantier, representasjoner eller garantier angående informasjonen heri eller egnetheten til produktene og tjenestene for noe bestemt formål, og Microsemi påtar seg heller ikke noe ansvar som oppstår som følge av bruken eller bruken av et produkt eller en krets. Produktene som selges nedenfor og alle andre produkter som selges av Microsemi har vært gjenstand for begrenset testing og skal ikke brukes sammen med virksomhetskritisk utstyr eller applikasjoner. Eventuelle ytelsesspesifikasjoner antas å være pålitelige, men er ikke verifisert, og kjøperen må gjennomføre og fullføre all ytelse og annen testing av produktene, alene og sammen med, eller installert i, eventuelle sluttprodukter. Kjøper skal ikke stole på data og ytelsesspesifikasjoner eller parametere levert av Microsemi. Det er kjøperens ansvar å uavhengig avgjøre egnetheten til ethvert produkt og å teste og verifisere det samme. Informasjonen gitt av Microsemi nedenfor er gitt "som den er, hvor den er" og med alle feil, og hele risikoen forbundet med slik informasjon er utelukkende hos kjøperen. Microsemi gir ikke, eksplisitt eller implisitt, til noen part noen patentrettigheter, lisenser eller andre IP-rettigheter, enten det gjelder slik informasjon i seg selv eller noe som er beskrevet av slik informasjon. Informasjonen gitt i dette dokumentet tilhører Microsemi, og Microsemi forbeholder seg retten til å gjøre endringer i informasjonen i dette dokumentet eller til produkter og tjenester når som helst uten varsel.
Microsemi, et heleid datterselskap av Microchip Technology Inc. (Nasdaq: MCHP), tilbyr en omfattende portefølje av halvleder- og systemløsninger for luftfart og forsvar, kommunikasjon, datasenter og industrielle markeder. Produktene inkluderer høyytelses og strålingsherdede analoge integrerte kretser med blandede signaler, FPGA-er, SoC-er og ASIC-er; strømstyring produkter; timing- og synkroniseringsenheter og presise tidsløsninger, setter verdens standard for tid; stemmebehandling enheter; RF-løsninger; diskrete komponenter; bedriftslagring og kommunikasjonsløsninger; sikkerhetsteknologier og skalerbar anti-tamper produkter; Ethernet-løsninger; Power-over-Ethernet ICer og midspans; samt tilpassede designfunksjoner og tjenester. Microsemi har hovedkontor i Aliso Viejo, California, og har omtrent 4,800 ansatte globalt. Lær mer på www.microsemi.com.
Mikrosemi hovedkvarter
One Enterprise, Aliso Viejo,
CA 92656 USA
Innenfor USA: +1 800-713-4113
Utenfor USA: +1 949-380-6100
Salg: +1 949-380-6136
Faks: +1 949-215-4996
E-post: salg.support@microsemi.com
www.microsemi.com
© 2018 Microsemi. Alle rettigheter forbeholdt. Microsemi og Microsemi-logoen
er varemerker for Microsemi Corporation. Alle andre varemerker og tjenester
merkene er eiendommen til sine respektive eiere.
Dokumenter / Ressurser
![]() |
Microsemi UG0837 IGLOO2 og SmartFusion2 FPGA System Services Simulering [pdfBrukerhåndbok UG0837, UG0837 IGLOO2 og SmartFusion2 FPGA System Services Simulering, IGLOO2 og SmartFusion2 FPGA System Services Simulation, SmartFusion2 FPGA System Services Simulering, FPGA System Services Simulering, Tjenestesimulering |