Microsemi logo

UG0837
Brugervejledning
IGLOO2 og SmartFusion2 FPGA
Simulering af systemtjenester
juni 2018

Revisionshistorie

Revisionshistorikken beskriver de ændringer, der blev implementeret i dokumentet. Ændringerne er listet efter revision, startende med den seneste publikation.
1.1 Revision 1.0
Revision 1.0 blev offentliggjort i juni 2018. Det var den første udgivelse af dette dokument.

IGLOO2 og SmartFusion2 FPGA System Services Simulation

SmartFusion®2 FPGA-familiens System Services-blok indeholder en samling af tjenester, der er ansvarlige for forskellige opgaver. Disse omfatter simuleringsmeddelelsestjenester, datapointertjenester og databeskrivelsestjenester. Systemtjenesterne kan tilgås gennem Cortex-M3 i SmartFusion2 og fra FPGA-strukturen gennem fabric interface controlleren (FIC) til både SmartFusion2 og IGLOO®2. Disse adgangsmetoder sendes til systemcontrolleren gennem COMM_BLK. COMM_BLK har en avanceret perifer bus-grænseflade (APB) og fungerer som en meddelelsespasserende kanal til at udveksle data med systemcontrolleren. Systemserviceanmodninger sendes til systemcontrolleren, og systemservicesvar sendes til CoreSysSerrvice gennem COMM BLK. Adresseplaceringen for COMM_BLK er tilgængelig inde i mikrocontroller-subsystemet (MSS)/high performance memory subsystem (HPMS). For detaljer, se UG0450: SmartFusion2 SoC og IGLOO2 FPGA System Controller.
Brugervejledning
Den følgende illustration viser systemservices dataflow.
Figur 1 • SystemservicedataflowdiagramMicrosemi UG0837 IGLOO2 og SmartFusion2 FPGA System Services Simulering - DataflowdiagramFor både IGLOO2- og SmartFusion2-systemservicesimulering skal du sende systemserviceanmodninger og kontrollere systemservicesvarene for at verificere, at simuleringen er korrekt. Dette trin er nødvendigt for at få adgang til systemcontrolleren, som leverer systemtjenesterne. Måden at skrive til og læse fra systemcontrolleren er anderledes for IGLOO2- og SmartFusion2-enheder. Til SmartFusion2 er Coretex-M3 tilgængelig, og du kan skrive og læse fra systemcontrolleren ved hjælp af BFM-kommandoer (bus functional model). For IGLOO2 er Cortex-M3 ikke tilgængelig, og systemcontrolleren er ikke tilgængelig ved hjælp af BFM-kommandoer.
2.1 Typer af tilgængelige systemtjenester
Tre forskellige typer af systemtjenester er tilgængelige, og hver type tjeneste har forskellige undertyper.
Simuleringsmeddelelsestjenester
Datapointertjenester
Databeskrivelsestjenester
Kapitlet Appendiks – Systemservicetyper (se side 19) i denne vejledning beskriver de forskellige typer systemtjenester. For mere information om systemtjenester, se UG0450: SmartFusion2 SoC og IGLOO2 FPGA System Controller User Guide.
2.2 IGLOO2 System Service Simulering
Systemtjenester involverer skrivning til og læsning fra systemcontrolleren. For at skrive til og læse fra systemcontrolleren til simuleringsformål skal du udføre trinene som følger.

  1. Instantiér CoreSysServices bløde IP-kerne, tilgængelig i SmartDesign-kataloget.
  2. Skriv HDL-koden for en finite state machine (FSM).

HDL FSM har grænseflader med CoreSysServices Core, som fungerer som stofmaster for AHBLite-bussen. CoreSysServices-kernen initierer systemserviceanmodning til COMM BLK og modtager systemservicesvar fra COMM BLK gennem FIC_0/1, fabric interface controlleren som vist i den følgende illustration.
Figur 2 • IGLOO2 System Services SimuleringstopologiMicrosemi UG0837 IGLOO2 og SmartFusion2 FPGA System Services Simulation - Dataflow Diagram 12.3 SmartFusion2 System Service Simulering
For at simulere systemtjenester i SmartFusion2-enheder skal du skrive til og læse fra systemcontrolleren. To muligheder er tilgængelige for at få adgang til systemcontrolleren til simuleringsformål.
Mulighed 1 — Skriv HDL-koden for en FSM for at interface med CoreSysService soft IP-kernen, som fungerer som en AHBLite-stofmaster og initierer systemserviceanmodning til COMM BLK og modtager systemservicesvar fra COMM BLK gennem FIC_0/1-strukturen interface som vist i den følgende illustration.
Figur 3 • SmartFusion2 System Services SimuleringstopologiMicrosemi UG0837 IGLOO2 og SmartFusion2 FPGA System Services Simulation - Dataflow Diagram 2

Mulighed 2 - Da Cortex-M3 er tilgængelig til SmartFusion2-enheder, kan du bruge BFM-kommandoer til direkte at skrive til og læse fra systemcontrollerens hukommelse.
Brug af BFM-kommandoer (mulighed 2) sparer behovet for at skrive HDL-koderne til FSM. I denne brugervejledning bruges mulighed 2 til at vise simulering af systemtjenester i SmartFusion2. Med denne mulighed får man adgang til systemcontrollerens hukommelsesplads for at finde ud af hukommelseskortet for COMM BLK og FIIC-blokken (stof interface interrupt controller), når du skriver dine BFM-kommandoer.
2.4 Simulering Eksamples
Brugervejledningen dækker følgende simuleringer.

  • IGLOO2 serienummerservicesimulering (se side 5)
  • SmartFusion2 serienummerservicesimulering (se side 8)
  • IGLOO2 Zeroization Service Simulation (se side 13)
  • SmartFusion2 Zeroization Service Simulation (se side 16)

Lignende simuleringsmetoder kan anvendes på andre systemtjenester. For en komplet liste over de forskellige tilgængelige systemtjenester, gå til Appendiks – Systemservicetyper (se side 19).

2.5 IGLOO2 serienummerservicesimulering
For at forberede IGLOO2 serienummerservicesimulering skal du udføre trinene som følger.

  1. Kald systembyggeren til at oprette din HPMS-blok.
  2. Marker afkrydsningsfeltet HPMS System Services på siden Enhedsfunktioner. Dette vil instruere systembyggeren om at afsløre HPMS_FIC_0 SYS_SERVICES_MASTER-busgrænsefladen (BIF).
  3. Lad alle andre afkrydsningsfelter være umarkerede.
  4. Accepter standarden på alle andre sider, og klik på Udfør for at fuldføre systembyggerblokken. I Libero® SoC's HDL-editor skal du skrive HDL-koden for FSM (File > Ny > HDL). Inkluder følgende tre tilstande i din FSM.
    INIT-tilstand (oprindelig tilstand)
    SERV_PHASE (serviceanmodningstilstand)
    RSP_PHASE (servicesvartilstand).
    Følgende figur viser de tre tilstande i FSM.
    Figur 4 • Tre-Stats FSM
  5. Microsemi UG0837 IGLOO2 og SmartFusion2 FPGA System Services Simulation - Three-State FSM 1I din HDL-kode til FSM skal du bruge den korrekte kommandokode ("01" Hex for serienummerservice) for at indtaste serviceanmodningstilstanden fra INIT-tilstanden.
  6. Gem din HDL file. FSM optræder som en komponent i designhierarkiet.
  7. Åbn SmartDesign. Træk og slip din systembyggerblok på øverste niveau og din FSM-blok i SmartDesign-lærredet. Fra kataloget skal du trække og slippe CoreSysService bløde IP-kerne i SmartDesign-lærredet.
  8. Højreklik på CoreSysService bløde IP-kerne for at åbne konfiguratoren. Marker afkrydsningsfeltet Serial Number Service (under Device and Design Information Services
    gruppe) for at aktivere serienummerservice.
  9. Lad alle andre afkrydsningsfelter være umarkerede. Klik på OK for at afslutte konfiguratoren.
    Figur 5 • CoreSysServices soft IP Core Configurator
    Microsemi UG0837 IGLOO2 og SmartFusion2 FPGA System Services Simulation - Core Configurator
  10. Forbind HPMS_FIC_0 SYS_SERVICES_MASTER BIF fra systembyggerblokken til AHBL_MASTER BIF i CoreSysService blokken.
  11. Tilslut udgangen på din HDL FSM-blok til indgangen på CoreSysService bløde IP-kerne. Foretag alle andre forbindelser i SmartDesign-lærredet som vist i følgende figur.
    Figur 6 • SmartDesign Canvas med HDL Block, CoreSysServices Soft IP og HPMS BlocksMicrosemi UG0837 IGLOO2 og SmartFusion2 FPGA System Services Simulering - HPMS-blokke
  12. Højreklik på >Generer komponent i SmartDesign-lærredet for at generere design på øverste niveau.
  13. I designhierarkiet view, højreklik på design på øverste niveau og vælg opret Testbench > HDL .
  14. Brug en teksteditor til at oprette en tekst file navngivet "status.txt" .
  15. Inkluder kommandoen til systemservice og 128-bit serienummeret. For mere information, se Tabel 1 (System Services Command/Response Values) i CoreSysServices v3.1 håndbog for kommandokoderne (Hex), der skal bruges til forskellige systemtjenester. For serienummerservice er kommandokoden "01" Hex.

Formatet på status.txt file for serienummerservice er som følger.
< 2 hex-cifret CMD><32 hex-cifret serienummer>
Example: 01A1A2A3A4B1B2B3B4C1C2C3C4D1D2D3D4
Gem status.txt file i simuleringsmappen i dit projekt. Designet er nu klar til simulering.
Når tjenesten er begyndt at udføre, vises en meddelelse, der angiver destinationsplaceringen og serienummeret, i ModelSim-transskriptionsvinduet, som vist i den følgende figur.
Figur 7 • Vinduet ModelSim Simulation TransscriptionMicrosemi UG0837 IGLOO2 og SmartFusion2 FPGA System Services Simulation - TransskriptionsvindueSystemcontrolleren udfører en AHB-skrivning til adressen med serienummeret. Efter afslutning af tjenesten vil COMM_BLK's RXFIFO blive indlæst med tjenestesvaret.
Bemærk: For en komplet liste over de kommandokoder, der skal bruges til forskellige systemtjenester, se Tabel 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 serienummerservicesimulering
I denne brugervejledning bruges BFM-kommandoer (mulighed 2) til at få adgang til systemcontrolleren til systemservice. BFM-kommandoer bruges, da Cortex-M3-processoren er tilgængelig på enheden til BFM-simulering. BFM-kommandoer giver dig mulighed for at skrive direkte til og læse fra COMM BLK, når du kender hukommelseskortlægningen af ​​COMM_BLK.
For at forberede dit design til SmartFusion2 serienummerservicesimulering skal du udføre følgende trin.

  1. Træk og slip MSS'en fra kataloget til dit projekts designlærred.
  2. Deaktiver alle MSS-ydre enheder undtagen MSS_CCC, Reset Controller, Interrupt Management og FIC_0, FIC_1 og FIC_2.
  3. Konfigurer afbrydelsesstyringen til at bruge MSS til at afbryde struktur.
  4. Forbered serienummer.bfm file i en teksteditor eller i Liberos HDL-editor. Gem serienummeret.bfm file i projektets Simulationsmappe. Serialnum.bfm skal indeholde følgende detaljer.
    • Hukommelsestilknytning til COMM BLK (CMBLK)
    • Hukommelseskortlægning for at afbryde perifer styring (FIIC)
    • Kommando for serienummersystemserviceanmodning (“01” Hex)
    • Adresse for placeringen af ​​serienummeret
    En eksample af serienummer.bfm file er som følger.
    memmap FIIC 0x40006000; #Hukommelseskortlægning for at afbryde styring
    memmap CMBLK 0x40016000; #Memory Mapping til COMM BLK
    memmap DESCRIPTOR_ADDR 0x20000000; #Adresseplacering for serienummer
    #Kommandokode i hexadecimal
    konstant CMD 0x1 # Kommandokode for serienummerservice
    #FIIC-konfigurationsregistre
    konstant FICC_INTERRUPT_ENABLE0 0x0
    #COMM_BLK Konfigurationsregistre
    konstant KONTROL 0x00
    konstant STATUS 0x04
    konstant INT_ENABLE 0x08
    konstant DATA8 0x10
    konstant DATA32 0x14
    konstant FRAME_START8 0x18
    konstant FRAME_START32 0x1C
    procedure serienummer;
    int x;
    skriv w FIIC FICC_INTERRUPT_ENABLE0 0x20000000 #Konfigurer
    #FICC_INTERRUPT_ENABLE0 # Registrer for at aktivere COMBLK_INTR #
    #afbrydelse fra COMM_BLK blok til stof
    #Anmodningsfase
    skriv w CMBLK CONTROL 0x10 # Konfigurer COMM BLK Control #Registrer til
    aktivere overførsler på COMM BLK-grænsefladen
    skriv w CMBLK INT_ENABLE 0x1 # Konfigurer COMM BLK Interrupt Enable
    #Registrer dig for at aktivere Interrupt for TXTOKAY (Tilsvarende bit i
    #Statusregister)
    waitint 19 # vent på COMM BLK Interrupt , Her venter #BFM
    #til COMBLK_INTR er hævdet
    readstore w CMBLK STATUS x # Læs COMM BLK Status Tilmeld dig #TXTOKAY
    # Afbryd
    sæt xx & 0x1
    hvis x
    skriv w CMBLK FRAME_START8 CMD # Konfigurer COMM BLK FRAME_START8
    #Registrer dig for at anmode om serienummerservice
    endif
    endif
    waitint 19 # vent på COMM BLK Interrupt , Her
    #BFM venter til COMBLK_INTR er hævdet
    readstore w CMBLK STATUS x # Læs COMM BLK Status Tilmeld dig for
    #TXTOKAY Afbrydelse
    sæt xx & 0x1
    sæt xx & 0x1
    hvis x
    skriv w CMBLK CONTROL 0x14 #Konfigurer COMM BLK Control
    #Registrer dig for at aktivere overførsler på COMM BLK-grænsefladen
    skriv w CMBLK DATA32 DESCRIPTOR_ADDR
    skriv w CMBLK INT_ENABLE 0x80
    skriv w CMBLK CONTROL 0x10
    endif
    vent 20
    #Responsfase
    vente 19
    readstore w CMBLK STATUS x
    sæt xx & 0x80
    hvis x
    readcheck w CMBLK FRAME_START8 CMD
    skriv w CMBLK INT_ENABLE 0x2
    endif
    vente 19
    readstore w CMBLK STATUS x
    sæt xx & 0x2
    hvis x
    readcheck w CMBLK DATA8 0x0
    skriv w CMBLK CONTROL 0x18
    endif
    vente 19
    gentjek med FIIC 0x8 0x20000000
    readstore w CMBLK STATUS x
    sæt xx & 0x2
    hvis x
    readcheck w CMBLK DATA32 DESCRIPTOR_ADDR
    endif
    readcheck w DESCRIPTOR_ADDR 0x0 0xE1E2E3E4; #Readcheck for at kontrollere S/N
    readcheck w DESCRIPTOR_ADDR 0x4 0xC1C2C3C4; #Readcheck for at kontrollere S/N
    readcheck w DESCRIPTOR_ADDR 0x8 0xB1B2B3B4; #Readcheck for at kontrollere S/N
    readcheck w DESCRIPTOR_ADDR 0xC 0xA1A2A3A4; #Readcheck for at kontrollere S/N
    returnere
  5. Opret status. txt file i Liberos HDL-editor eller en hvilken som helst teksteditor. Inkluder serienummersystemets servicekommando ("01" i Hex) og serienummeret i status . txt file. Se CoreSysServices v3.1-håndbogen for at bruge den korrekte kommandokode.
  6. Syntaksen af ​​dette file for serienummerservice er <2 hex-cifret CMD>< 32 hex-cifret serienummer> . Eksample: 01A1A2A3A4B1B2B3B4C1C2C3C4E1E2E3E4.
  7. Gem status .txt file i projektets Simulationsmappe.
  8. Rediger brugeren .bfm (placeret i simuleringsmappen) for at inkludere serienummeret. bfm file og ring til serienummerproceduren som vist i følgende kodestykke.
    inkludere "serialnum.bfm" #inkluder serienummeret.bfm
    procedure user_main;
    print "INFO:Simulation starter";
    print "INFO:Service Command Code i decimal:%0d", CMD ;
    opkald serienummer; #kald serienummerproceduren
    print "INFO:Simulering slutter";
    returnere
  9. I designhierarkiet view, generer testbænken (højreklik, Top Level Design > Create Testbench > HDL ), og du er klar til at køre serienummerservicesimulering.

Når tjenesten er begyndt at udføre, vises en meddelelse, der angiver destinationsplaceringen og serienummeret. Systemcontrolleren udfører en AHB-skrivning til adressen med serienummeret. Efter afslutning af tjenesten vil COMM_BLK's RXFIFO blive indlæst med tjenestesvaret. ModelSim-transskriptionsvinduet viser adressen og det modtagne serienummer som vist i følgende figur.
Figur 8 • SmartFusion2 Serienummer Service Simulering i ModelSim Transcript WindowMicrosemi UG0837 IGLOO2 og SmartFusion2 FPGA System Services Simulation - Transskriptionsvindue 1

2.7 IGLOO2 Zeroization Service Simulering
Udfør trinene som følger for at forberede IGLOO2 nulstillingstjenestesimulering.

  1. Kald systembyggeren til at oprette HPMS-blokken. Marker afkrydsningsfeltet HPMS System Services i Enhedsfunktioner SYS_SERVICES_MASTER BIF. Lad alle andre afkrydsningsfelter være umarkerede. Accepter standarden på alle andre sider, og klik på side. Dette instruerer systembyggeren i at afsløre HPMS_FIC_0 Finish for at fuldføre konfigurationen af ​​systembyggerblokken.
  2. Skriv HDL-koden for FSM i Libero SoC's HDL-editor. I din HDL-kode for FSM skal du inkludere følgende tre tilstande.
    INIT-tilstand (oprindelig tilstand)
    SERV_PHASE (serviceanmodningstilstand)
    RSP_PHASE (servicesvartilstand)
    Følgende figur viser de tre tilstande i FSM.
    Figur 9 • Tre-Stats FSMMicrosemi UG0837 IGLOO2 og SmartFusion2 FPGA System Services Simulation - Three-State FSM

     

  3. I din HDL-kode skal du bruge kommandokoden “F0″(Hex) for at indtaste serviceanmodningstilstanden fra INIT-tilstanden.
  4. Gem din HDL file.
  5. Åbn SmartDesign, træk og slip din systembyggerblok på øverste niveau og din HDL FSM-blok i SmartDesign-lærredet. Fra kataloget skal du trække og slippe CoreSysService bløde IP-kerne i SmartDesign-lærredet.
  6. Højreklik på CoreSysServices bløde IP-kerne for at åbne konfiguratoren og markere afkrydsningsfeltet Zeroization Service under gruppen Data Security Services. Lad alle andre afkrydsningsfelter være umarkerede. Klik for at afslutte OK.
    Figur 10 • CoreSysServices Configurator
    Microsemi UG0837 IGLOO2 og SmartFusion2 FPGA System Services Simulation - Core Configurator 1
  7. Forbind HPMS_FIC_0 SYS_SERVICES_MASTER BIF fra systembyggerblokken til AHBL_MASTER BIF i CoreSysService blokken.
  8. Tilslut udgangen på din HDL FSM-blok til indgangen på CoreSysService bløde IP-kerne. Foretag alle andre forbindelser i SmartDesign-lærredet.
    Figur 11 • SmartDesign Canvas med HDL Block, CoreSysServices Soft IP og HPMS Blocks
    Microsemi UG0837 IGLOO2 og SmartFusion2 FPGA System Services Simulation - HPMS Blocks 19. Generer design på øverste niveau i SmartDesign-lærredet (højreklik > Generer komponent).
    10. I designhierarkiet view, højreklik på design på øverste niveau og vælg opret Testbench > HDL. Du er nu klar til at køre simulering.
    Når tjenesten er begyndt at udføre, vises en meddelelse, der angiver, at nulstillingen er afsluttet på tidspunktet x, som vist i den følgende figur.
    Figur 12 • Vinduet IGLOO2 Zeroization System Service Simulation Transscription
    Microsemi UG0837 IGLOO2 og SmartFusion2 FPGA System Services Simulation - Transskriptionsvindue 3

Systemcontrolleren udfører en AHB-skrivning til adressen med serienummeret. Efter afslutning af tjenesten vil COMM_BLK's RXFIFO blive indlæst med tjenestesvaret. Det skal bemærkes, at simuleringsmodellen simulerer nulstilling ved at stoppe simuleringen i stedet for at nulstille selve designet.
Bemærk: For en komplet liste over de kommandokoder, der skal bruges til forskellige systemtjenester, se Tabel 1 (System Services Command/Response-værdier) i CoreSysServices v3.1 håndbog:. eller UG0450: Brugervejledning til SmartFusion2 SoC og IGLOO2 FPGA System Controller

2.8 SmartFusion2 Zeroization Service Simulering
I denne vejledning bruges BFM-kommandoer (mulighed 2) til at få adgang til systemcontrolleren til systemservice.
BFM-kommandoer bruges, da Cortex-M3-processoren er tilgængelig på enheden til BFM-simulering. BFM-kommandoer giver dig mulighed for at skrive direkte til og læse fra COMM BLK, når du kender hukommelseskortlægningen af ​​COMM_BLK. For at forberede dit design til SmartFusion2 nulstillingstjenestesimulering skal du udføre følgende trin.

  1. Træk og slip MSS'en fra kataloget til dit projekts designlærred.
  2. Deaktiver alle MSS-ydre enheder undtagen MSS_CCC, Reset Controller, Interrupt Management og FIC_0, FIC_1 og FIC_2.
  3. Konfigurer afbrydelsesstyringen til at bruge MSS til at afbryde struktur.
  4. Forbered zeroizaton.bfm file i en teksteditor eller i Liberos HDL-editor. Din nulstilling. bfm skal indeholde:
  • Hukommelsestilknytning til COMM BLK (CMBLK)
  • Hukommelseskortlægning for at afbryde perifer styring (FIIC)
  • Kommando for nulstillingsserviceanmodning ("F0" Hex for nulstilling)

En eksample af serienummer.bfm file er vist i den følgende figur.
Figur 13 • Zeroization.bfm til SmartFusion2 Zeroization System Services Simulation

Microsemi UG0837 IGLOO2 og SmartFusion2 FPGA System Services Simulation - Transskriptionsvindue 4

5. Gem nulstilling.bfm file i projektets Simulationsmappe. bruger.bfm
6. Rediger (placeret i mappen zeroization.bfm Simulation) for at inkludere den ved at bruge følgende kodestykke.
inkludere "zeroization.bfm" #include zeroization.bfm file procedure user_main;
print "INFO:Simulation starter";
print "INFO:Service Command Code i decimal:%0d", CMD ;
opkald nulstilling; #call nulstillingsprocedure retur
7. Generer testbænken i designhierarkiet (højreklik på øverste niveau > Opret testbænk > HDL ), og du er klar til at køre SmartFusion2 nulstillingssimuleringen.
Når tjenesten er begyndt at udføre, vises en meddelelse, der indikerer, at enheden er blevet nulstillet på tidspunktet x. Det skal bemærkes, at simuleringsmodellen simulerer nulstilling ved at stoppe simuleringen i stedet for at nulstille selve designet. ModelSim-transskriptionsvinduet i den følgende figur viser, at enheden er blevet nulstillet.

Figur 14 • SmartFusion2 Zeroization System Service Simulation Log

Microsemi UG0837 IGLOO2 og SmartFusion2 FPGA System Services Simulation - Transskriptionsvindue 5

Bilag: Typer af systemtjenester

Dette kapitel beskriver forskellige typer systemtjenester.
3.1 Simuleringsmeddelelsestjenester
De følgende afsnit beskriver forskellige typer af simuleringsmeddelelsestjenester.
3.1.1 Flash*Frys
Simuleringen går ind i Flash*Freeze-tilstanden, når den korrekte serviceanmodning sendes til COMM_BLK fra enten FIC (i tilfælde af IGLOO2-enheder) eller Cortex-M3 (i SmartFusion2-enheder). Når tjenesten er blevet detekteret af systemcontrolleren, vil simuleringen blive stoppet, og en meddelelse, der angiver, at systemet er gået ind i Flash*Freeze (sammen med den valgte mulighed) vil blive vist. Ved genoptagelse af simuleringen vil RXFIFO af COMM_BLK blive udfyldt med servicesvaret bestående af servicekommandoen og status. Det skal bemærkes, at der ikke er nogen simuleringsunderstøttelse for Flash*Freeze exit.
3.1.2 Nulstilling
Nulstilling er i øjeblikket den eneste højprioritetstjeneste inden for systemtjenester, der behandles af COMM_BLK. Simuleringen vil gå ind i nulstillingstilstanden, så snart den korrekte serviceanmodning detekteres af COMM_BLK. Udførelse af andre tjenester vil blive standset og kasseret af systemcontrolleren, og nulstillingstjenesten vil blive udført i stedet. Når anmodningen om nulstillingsservice er detekteret, stopper simuleringen, og der vises en meddelelse, der indikerer, at systemet er gået i nulstilling. Manuel genstart af simulering efter nulstilling er ugyldig.
3.2 Datapointertjenester
De følgende afsnit beskriver forskellige typer af datapointertjenester.
3.2.1 Serienummer
Serienummertjenesten vil skrive et 128-bit serienummer til en adresse, der er angivet som en del af serviceanmodningen. Denne 128-bit parameter kan indstilles ved hjælp af en System Service Simulation Support file (se side 22). Hvis 128-bit serienummerparameteren ikke er defineret i file, vil et standardserienummer på 0 blive brugt. Når tjenesten er begyndt at udføre, vises en meddelelse, der angiver destinationsplaceringen og serienummeret. Systemcontrolleren udfører en AHB-skrivning til adressen med serienummeret. Efter afslutning af tjenesten vil COMM_BLK's RXFIFO blive indlæst med tjenestesvaret.
3.2.2 Brugerkode
Brugerkodetjenesten skriver en 32-bit brugerkodeparameter til en adresseplacering, der er angivet som en del af tjenesteanmodningen. Denne 32-bit parameter kan indstilles ved hjælp af System Service Simulation Support file (se side 22). Hvis 32-bit parameteren ikke er defineret i file, bruges en standardværdi på 0. Når tjenesten er begyndt at udføre, vises en meddelelse, der angiver målplaceringen og brugerkoden. Systemcontrolleren udfører en AHB-skrivning til adressen med 32-bit parameteren. Efter afslutning af tjenesten indlæses COMM_BLK's RXFIFO med tjenestesvaret, som inkluderer tjenestekommandoen og måladressen.
3.3 Databeskrivelsestjenester
De følgende afsnit beskriver forskellige typer af databeskrivelsestjenester.

3.3.1 AES
Simuleringsunderstøttelsen for denne tjeneste handler kun om at flytte de originale data fra kilden til destinationen uden faktisk at udføre nogen kryptering/dekryptering af dataene. De data, der skal krypteres/dekrypteres, og datastrukturen skal skrives, før tjenesteanmodningen sendes. Når tjenesten er begyndt at udføre, vises en meddelelse, der angiver udførelsen af ​​AES-tjenesten. AES-tjenesten læser både datastrukturen og data, der skal krypteres/dekrypteres. De originale data kopieres og skrives til den adresse, der er angivet i datastrukturen. Når tjenesten er fuldført, skubbes kommandoen, status og datastrukturadressen ind i RXFIFO.
Note: Denne service er kun til 128-bit og 256-bit data, og både 128-bit og 256-bit data har forskellige datastrukturlængder.

3.3.2 SHA 256
Simuleringsunderstøttelsen for denne service er kun beskæftiget med at flytte dataene uden faktisk at udføre nogen hash på dataene. SHA 256-funktionen er designet til at generere en 256-bit hash-nøgle baseret på inputdata. De data, der skal hashes, og datastrukturen skal skrives til deres respektive adresser, før serviceanmodningen sendes til COMM_BLK. Længden i bit og pointer defineret i SHA 256-datastrukturen skal korrekt svare til længden og adressen på de data, der skal hash. Når tjenesten er begyndt at udføre, vises en meddelelse, der angiver udførelsen af ​​SHA 256-tjenesten. I stedet for at udføre den faktiske funktion, vil en standard hash-nøgle blive skrevet til destinationsmarkøren fra datastrukturen. Standard hash-nøglen er hex "ABCD1234". For at indstille en brugerdefineret tast, gå til afsnittet Parameterindstilling (se side 23). Efter afslutning af tjenesten indlæses RXFIFO'en med tjenestesvaret, der består af tjenestekommando, status og SHA 256-datastrukturmarkør.
3.3.3 HMAC
Simuleringsunderstøttelsen for denne tjeneste er kun beskæftiget med flytning af data, uden faktisk at udføre nogen hash på dataene. De data, der skal hashes, og datastrukturen skal skrives til deres respektive adresser, før serviceanmodningen sendes til COMM_BLK. HMAC-tjenesten kræver en 32-byte nøgle ud over længden i bytes, kildemarkør og destinationsmarkør. Når tjenesten er begyndt at udføre, vises en meddelelse, der angiver udførelsen af ​​HMAC-tjenesten. Nøglen læses, og 256-bit nøglen kopieres fra datastrukturen til destinationsmarkøren. Efter afslutning af tjenesten indlæses RXFIFO'en med tjenestesvaret bestående af tjenestekommando, status og HMAC-datastrukturmarkør.

3.3.4 DRBG Generer
Generering af tilfældige bits udføres af denne tjeneste. Det skal bemærkes, at simuleringsmodellen ikke nøjagtigt følger den samme metode til generering af tilfældige tal, som siliciumet anvender. Datastrukturen skal være korrekt skrevet ind i dens tilsigtede placering, før serviceanmodningen sendes til COMM_BLK. Datastrukturen, destinationsmarkøren, længden og andre relevante data læses af systemcontrolleren. DRBG-genereringstjenesten genererer et pseudo-tilfældigt sæt data af den ønskede længde (0-128). Systemcontrolleren skriver de tilfældige data ind i destinationsmarkøren. En meddelelse, der angiver udførelsen af ​​DRBG-genereringstjeneste, vises i simulering. Når tjenesten er fuldført, skubbes kommandoen, status og datastrukturadressen ind i RXFIFO. Hvis den anmodede datalængde ikke er inden for området 0-128, vil en fejlkode på "4" (Max Generate ) blive skubbet ind i RXFIFO'en. Hvis den ekstra datalængde ikke er inden for Request Too Big-området på 0-128, vil en fejlkode på "5" (Max Længde of Additional Data Exceeded) blive skubbet ind i RXFIFO. Hvis både den anmodede datalængde for generering og yderligere datalængde ikke er inden for deres definerede område (0-128), skubbes en fejlkode på "1" (katastrofisk fejl) ind i RXFIFO'en.

3.3.5 DRBG-nulstilling
Den faktiske nulstillingsfunktion udføres ved at fjerne DRBG-forekomster og nulstille DRBG. Når serviceanmodningen er blevet detekteret, viser simuleringen en DRBG Reset service completed-meddelelse. Svaret, som inkluderer tjenesten og status, skubbes ind i RXFIFO.
3.3.6 DRBG-selvtest
Simuleringsunderstøttelsen af ​​DRBG-selvtesten udfører faktisk ikke selvtestfunktionen. Når serviceanmodningen er blevet detekteret, vil simuleringen vise en DRBG-selvtestserviceudførelsesmeddelelse. Svaret, som inkluderer tjenesten og status, vil blive skubbet ind i RXFIFO.
3.3.7 DRBG Instantiate
Simuleringsunderstøttelsen for DRBG-instantieringstjenesten udfører faktisk ikke instantieringstjenesten. Datastrukturen skal være korrekt skrevet ind i dens tilsigtede placering, før serviceanmodningen sendes til COMM_BLK. Når serviceanmodningen er blevet opdaget, vil strukturen og personaliseringsstrengen, der er defineret i MSS-adresserummet, blive læst. Simuleringen vil vise en meddelelse, der indikerer, at DRBG Instantiate-tjenesten er begyndt at udføre. Når tjenesten er fuldført, vil svaret, som inkluderer tjenestekommandoen, status og pointer til datastrukturen, blive skubbet ind i RXFIFO. Hvis datalængden (PERSONALISERINGSLÆNGDE) ikke er inden for området 0-128, vil en fejlkode på "1" (katastrofisk fejl) blive skubbet ind i RXFIFO for status.
3.3.8 DRBG Afinstaller
Simuleringsunderstøttelsen for DRBG uninstantiate-tjenesten udfører faktisk ikke uninstantiate-tjenesten med at fjerne en tidligere instansieret DRBG, som silicium gør. Serviceanmodningen skal indeholde både kommandoen og DRBG-håndtaget. Når serviceanmodningen er blevet registreret, vil DRBG-håndtaget blive gemt. Simuleringen vil vise en meddelelse, der angiver, at DRBG uninstantiate-tjenesten er blevet initialiseret. Når servicen er fuldført, vil svaret, som inkluderer servicekommando, status og DRBG-håndtag, blive skubbet ind i RXFIFO.
3.3.9 DRBG Reseed
På grund af den simulative karakter af systemserviceblokken udføres DRBG-reseed-tjenesten i simulering ikke automatisk efter hver 65535 DRBG-generering. Datastrukturen skal være korrekt skrevet ind i dens tilsigtede placering, før serviceanmodningen sendes til COMM_BLK. Når serviceanmodningen er blevet detekteret, vil strukturen og den yderligere inputparameter i MSS-adresserummet blive læst. En meddelelse, der angiver, at DRBG reseed-tjenesten er begyndt at udføre, vil blive vist. Datastrukturen skal være korrekt skrevet ind i dens tilsigtede placering, før serviceanmodningen sendes til COMM_BLK. Når tjenesten er fuldført, vil svaret, som inkluderer tjenestekommandoen, status og pointer til datastrukturen, blive skubbet ind i RXFIFO.
3.3.10 Nøgletræ
Den faktiske funktion udføres ikke i simulering for KeyTree-tjenesten. KeyTree-tjenestens datastruktur består af en 32-byte nøgle, 7-bit optype data (MSB ignoreret) og 16-byte sti. Dataene i datastrukturen skal skrives til deres respektive adresser, før serviceanmodningen sendes til COMM_BLK. Når tjenesten er begyndt at udføre, vil en meddelelse, der angiver udførelsen af ​​KeyTree-tjenesten, blive vist. Indholdet af datastrukturen vil blive læst, 32-byte nøglen vil blive gemt, og den originale nøgle placeret i datastrukturen overskrives. Efter denne AHB-skrivning bør værdien af ​​nøglen i datastrukturen ikke ændre sig, men AHB-transaktioner for skrivningen vil forekomme. Efter afslutning af tjenesten indlæses RXFIFO'en med tjenestesvaret, der består af tjenestekommandoen, status og KeyTree-datastrukturmarkøren.
3.3.11 Udfordringssvar
Den faktiske funktion, som autentificering af enheden, udføres ikke i simulering for udfordringssvartjenesten. Datastrukturen for denne tjeneste kræver en pointer til bufferen for at modtage et 32-byte resultat, 7-bit optype og en 128-bit sti. Dataene i datastrukturen skal skrives til deres respektive adresser, før serviceanmodningen sendes til COMM_BLK. Når tjenesten er begyndt at udføre, vil en meddelelse, der angiver udførelsen af ​​udfordringssvar-tjenesten, blive vist. Et generisk 256-bit svar vil blive skrevet ind i markøren i datastrukturen. Standardnøglen er indstillet som hex "ABCD1234". For at få en brugerdefineret nøgle, tjek Parameterindstilling (se side 23). Efter afslutning af tjenesten vil RXFIFO'en blive indlæst med tjenestesvaret, bestående af servicekommando, status og udfordringssvar datastrukturmarkør.
3.4 Andre tjenester
De følgende afsnit beskriver forskellige andre systemtjenester.
3.4.1 Sammenfatningskontrol
Den faktiske funktion med at genberegne og sammenligne sammendrag af udvalgte komponenter udføres ikke for sammendragstjektjenesten i simulering. Denne serviceanmodning består af servicekommandoer og servicemuligheder (5-bit LSB). Når tjenesten er påbegyndt eksekvering, vises en meddelelse, der beskriver udførelsen af ​​sammenfatningskontroltjenesten, sammen med de valgte muligheder fra anmodningen. Efter afslutning af tjenesten vil RXFIFO'en blive indlæst med tjenestesvaret, bestående af servicekommandoen, og sammenfatningskontrollen bestået/bestået flag.
3.4.2 Ugenkendt kommandosvar
Når en ikke-genkendt tjenesteanmodning sendes til COMM_BLK, vil COMM_BLK automatisk svare med en ukendt kommandomeddelelse, der er skubbet ind i RXFIFO. Meddelelsen består af kommandoen sendt til COMM_BLK og den ikke-genkendte kommandostatus (252D). En displaymeddelelse, der angiver, at der er registreret en ikke-genkendt serviceanmodning, vil også blive vist. COMM_BLK vender tilbage til en inaktiv tilstand og venter på at acceptere den næste serviceanmodning.
3.4.3 Ikke-understøttede tjenester
Ikke-understøttede tjenester indstillet til COMM_BLK vil udløse en meddelelse i simulering, der indikerer, at tjenesteanmodningen ikke understøttes. COMM_BLK vender tilbage til en inaktiv tilstand og venter på at acceptere den næste serviceanmodning. PINTERRUPT vil ikke blive indstillet, hvilket antyder, at en tjeneste er blevet fuldført. Den aktuelle liste over ikke-understøttede tjenester omfatter: IAP, ISP, Device Certificate og DESIGNVER Service.
3.5 System Services Simulation Support File
For at understøtte simulering af systemtjenester, en tekst file kaldet "status.txt" kan bruges til at videregive instruktioner om simuleringsmodellens påkrævede adfærd til simuleringsmodellen. Det her file skal være placeret i samme mappe, som simuleringen køres fra. Det file kan blandt andet bruges til at fremtvinge visse fejlsvar for de understøttede systemtjenester eller endda til at indstille nogle parametre, der er nødvendige for simulering, (f.eks.ample, serienummer). Det maksimale antal linjer, der understøttes i "status.txt" file er 256. Instruktioner, der vises efter linje nummer 256, vil ikke blive brugt i simuleringen.
3.5.1 Fremtvinge fejlsvar
Brugeren kan fremtvinge et bestemt fejlsvar for en bestemt tjeneste under testning ved at videregive oplysningerne til simuleringsmodellen ved hjælp af "status.txt" file, som skal placeres i mappen simuleringen køres fra. For at fremtvinge fejlsvar til en bestemt tjeneste, skal kommandoen og det påkrævede svar skrives på samme linje i følgende format:ample, til Kommando> ; instruere simuleringsmodellen til at generere et MSS-hukommelsesadgangsfejlsvar på serienummertjenesten, er kommandoen som følger.
Service: Serienummer: 01
Anmodet om fejlmeddelelse: MSS Memory Access Fejl: 7F
Du skal have linjen 017F indtastet i "status.txt" file.
3.5.2 Parameterindstilling
"status.txt" file kan også bruges til at indstille nogle parametre, der er nødvendige i simulering. Som eksample, for at indstille 32-bit parameteren for brugerkoden, skal linjens format være i denne rækkefølge: <32 bit BRUGERKODE>; hvor begge værdier er indtastet i hexadecimal. For at indstille 128-bit parameteren for serienummeret skal linjens format være i denne rækkefølge: <128 bit serienummer [127:0]> ; hvor begge værdier er indtastet i hexadecimal. For at indstille 256-bit parameteren for SHA 256 nøglen; formatet af linjen skal være i denne rækkefølge: <256 bit nøgle [255:0]>; hvor begge værdier er indtastet i hexadecimal. For at indstille 256-bit parameteren for udfordringssvarnøglen skal linjens format være i denne rækkefølge: <256 bit nøgle [255:0]>;
hvor begge værdier er indtastet i hexadecimal.
3.5.3 Enhedsprioritet
Systemtjenester og COMM_BLK anvender et højt prioriteret system. I øjeblikket er den eneste højprioriterede tjeneste nulstilling. For at udføre en højprioritet service, mens en anden service udføres, standses den aktuelle service, og den højere prioriterede service vil blive udført i stedet for. COMM_BLK vil kassere den aktuelle tjeneste for at udføre tjenesten med højere prioritet. Hvis der sendes flere ikke-højprioritetstjenester før færdiggørelsen af ​​en aktuel tjeneste, vil disse tjenester blive sat i kø i TXFIFO'en. Når den aktuelle service er fuldført, vil den næste service i TXFIFO blive udført.

Microsemi giver ingen garanti, repræsentation eller garanti vedrørende informationen indeholdt heri eller egnetheden af ​​dets produkter og tjenester til et bestemt formål, og Microsemi påtager sig heller ikke noget som helst ansvar, der opstår som følge af anvendelsen eller brugen af ​​et produkt eller et kredsløb. Produkterne, der sælges nedenfor, og alle andre produkter, der sælges af Microsemi, har været genstand for begrænset testning og bør ikke bruges sammen med missionskritisk udstyr eller applikationer. Eventuelle ydeevnespecifikationer menes at være pålidelige, men er ikke verificerede, og Køber skal udføre og gennemføre al ydeevne og anden test af produkterne, alene og sammen med eller installeret i eventuelle slutprodukter. Køber må ikke stole på nogen data og ydeevnespecifikationer eller parametre leveret af Microsemi. Det er Købers ansvar selvstændigt at bestemme egnetheden af ​​ethvert produkt og at teste og verificere det samme. Oplysningerne leveret af Microsemi nedenfor leveres "som de er, hvor de er" og med alle fejl, og hele risikoen forbundet med sådanne oplysninger er udelukkende hos køberen. Microsemi giver ikke, eksplicit eller implicit, til nogen part nogen patentrettigheder, licenser eller andre IP-rettigheder, hvad enten det er med hensyn til sådan information selv eller noget, der er beskrevet af sådanne oplysninger. Oplysningerne i dette dokument tilhører Microsemi, og Microsemi forbeholder sig retten til at foretage enhver ændring af oplysningerne i dette dokument eller til produkter og tjenester til enhver tid uden varsel.
Microsemi, et helejet datterselskab af Microchip Technology Inc. (Nasdaq: MCHP), tilbyder en omfattende portefølje af halvleder- og systemløsninger til rumfart og forsvar, kommunikation, datacenter og industrielle markeder. Produkterne omfatter højtydende og strålingshærdede analoge blandede signal-integrerede kredsløb, FPGA'er, SoC'er og ASIC'er; strømstyring produkter; timing- og synkroniseringsenheder og præcise tidsløsninger, der sætter verdens standard for tid; stemmebehandlingsudstyr; RF-løsninger; diskrete komponenter; virksomhedsopbevaring og kommunikationsløsninger; sikkerhedsteknologier og skalerbar anti-tamper produkter; Ethernet-løsninger; Power-over-Ethernet IC'er og midspans; samt brugerdefinerede designmuligheder og tjenester. Microsemi har hovedkontor i Aliso Viejo, Californien, og har cirka 4,800 ansatte globalt. Lær mere på www.microsemi.com.

Microsemi logo

Microsemi hovedkvarter
One Enterprise, Aliso Viejo,
CA 92656 USA
Inden for USA: +1 800-713-4113
Uden for USA: +1 949-380-6100
Salg: +1 949-380-6136
Fax: +1 949-215-4996
E-mail: salg.support@microsemi.com
www.microsemi.com
© 2018 Microsemi. Alle rettigheder forbeholdes. Microsemi og Microsemi-logoet
er varemærker tilhørende Microsemi Corporation. Alle andre varemærker og service
mærker er deres respektive ejeres ejendom.

Dokumenter/ressourcer

Microsemi UG0837 IGLOO2 og SmartFusion2 FPGA System Services Simulation [pdfBrugervejledning
UG0837, UG0837 IGLOO2 og SmartFusion2 FPGA System Services Simulation, IGLOO2 og SmartFusion2 FPGA System Services Simulation, SmartFusion2 FPGA System Services Simulation, FPGA System Services Simulation, Services Simulation

Referencer

Efterlad en kommentar

Din e-mailadresse vil ikke blive offentliggjort. Påkrævede felter er markeret *