UG0837
Gebruikersgids
IGLOO2 en SmartFusion2 FPGA
Simulasie van stelseldienste
Junie 2018
Hersieningsgeskiedenis
Die hersieningsgeskiedenis beskryf die veranderinge wat in die dokument geïmplementeer is. Die veranderinge word volgens hersiening gelys, wat begin met die nuutste publikasie.
1.1 Hersiening 1.0
Hersiening 1.0 is in Junie 2018 gepubliseer. Dit was die eerste publikasie van hierdie dokument.
IGLOO2 en SmartFusion2 FPGA System Services Simulasie
Die SmartFusion®2 FPGA-familie se Stelseldienste-blok bevat 'n versameling dienste wat vir verskeie take verantwoordelik is. Dit sluit in simulasieboodskapdienste, datawyserdienste en databeskrywerdienste. Die stelseldienste kan verkry word deur die Cortex-M3 in SmartFusion2 en vanaf die FPGA-stof deur die stofkoppelvlakbeheerder (FIC) vir beide SmartFusion2 en IGLOO®2. Hierdie toegangsmetodes word deur die COMM_BLK na die stelselbeheerder gestuur. Die COMM_BLK het 'n gevorderde perifere bus (APB) koppelvlak en dien as 'n boodskap wat deurgee om data met die stelselbeheerder uit te ruil. Stelseldiensversoeke word na die stelselbeheerder gestuur en stelseldiensantwoorde word deur die COMM BLK na die CoreSysSerrvice gestuur. Die adresligging vir die COMM_BLK is beskikbaar binne die mikrobeheerder-substelsel (MSS)/hoëprestasiegeheue-substelsel (HPMS). Vir besonderhede, sien die UG0450: SmartFusion2 SoC en IGLOO2 FPGA System Controller.
Gebruikersgids
Die volgende illustrasie toon stelseldienste-datavloei.
Figuur 1 • StelseldiensdatavloeidiagramVir beide IGLOO2- en SmartFusion2-stelseldienssimulasie moet jy stelseldiensversoeke uitstuur en die stelseldiensreaksies nagaan om te verifieer dat die simulasie korrek is. Hierdie stap is nodig om toegang te verkry tot die stelselbeheerder, wat die stelseldienste verskaf. Die manier om na die stelselbeheerder te skryf en te lees is anders vir IGLOO2- en SmartFusion2-toestelle. Vir SmartFusion2 is die Coretex-M3 beskikbaar en jy kan skryf en lees vanaf die stelselbeheerder deur gebruik te maak van busfunksionele model (BFM) opdragte. Vir IGLOO2 is die Cortex-M3 nie beskikbaar nie en die stelselbeheerder is nie toeganklik met behulp van BFM-opdragte nie.
2.1 Tipes beskikbare stelseldienste
Drie verskillende tipes stelseldienste is beskikbaar en elke tipe diens het verskillende subtipes.
Simulasie boodskap dienste
Datawyserdienste
Databeskrywerdienste
Die Bylaag – Stelseldienstetipes (sien bladsy 19) hoofstuk van hierdie gids beskryf die verskillende tipes stelseldienste. Vir meer inligting oor stelseldienste, sien UG0450: SmartFusion2 SoC en IGLOO2 FPGA System Controller User Guide.
2.2 IGLOO2 Stelseldienssimulasie
Stelseldienste behels skryf na en lees vanaf die stelselbeheerder. Om te skryf na en te lees vanaf die stelselbeheerder vir simulasiedoeleindes, moet jy die stappe soos volg uitvoer.
- Instansieer die CoreSysServices sagte IP-kern, beskikbaar in die SmartDesign-katalogus.
- Skryf die HDL-kode vir 'n eindigetoestandmasjien (FSM).
Die HDL FSM koppel met die CoreSysServices Core, wat dien as die stofmeester van die AHBLite-bus. Die CoreSysServices-kern inisieer stelseldiensversoek na die COMM BLK en ontvang stelseldiensantwoorde van die COMM BLK deur die FIC_0/1, stofkoppelvlakbeheerder soos in die volgende illustrasie getoon.
Figuur 2 • IGLOO2 System Services Simulasie Topologie2.3 SmartFusion2-stelseldienssimulasie
Om stelseldienste in SmartFusion2-toestelle te simuleer, moet jy na die stelselbeheerder skryf en dit lees. Twee opsies is beskikbaar om toegang tot die stelselbeheerder vir simulasiedoeleindes te verkry.
Opsie 1 — Skryf die HDL-kode vir 'n FSM om met die CoreSysService sagte IP-kern te koppel, wat as 'n AHBLite-stofmeester dien en stelseldiensversoek na die COMM BLK inisieer en stelseldiensantwoorde van die COMM BLK deur die FIC_0/1-stof ontvang koppelvlak soos getoon in die volgende illustrasie.
Figuur 3 • SmartFusion2 System Services Simulasie Topologie
Opsie 2 - Aangesien die Cortex-M3 beskikbaar is vir SmartFusion2-toestelle, kan jy BFM-opdragte gebruik om direk na die geheuespasie van die stelselbeheerder te skryf en te lees.
Die gebruik van BFM-opdragte (opsie 2) spaar die behoefte om die HDL-kodes vir die FSM te skryf. In hierdie gebruikersgids word opsie 2 gebruik om stelseldienste-simulasie in SmartFusion2 te wys. Met hierdie opsie word toegang tot die stelselbeheerder se geheuespasie verkry om die geheuekaart van die COMM BLK en die stofkoppelvlak-onderbrekingbeheerder (FIIC)-blok uit te vind wanneer jy jou BFM-opdragte skryf.
2.4 Simulasie Bvamples
Die gebruikersgids dek die volgende simulasies.
- IGLOO2-reeksnommerdienssimulasie (sien bladsy 5)
- SmartFusion2-reeksnommerdienssimulasie (sien bladsy 8)
- IGLOO2-nuleringsdienssimulasie (sien bladsy 13)
- SmartFusion2 Zeroization Service Simulasie (sien bladsy 16)
Soortgelyke simulasiemetodes kan op ander stelseldienste toegepas word. Vir 'n volledige lys van die verskillende stelseldienste wat beskikbaar is, gaan na Bylaag – Stelseldienstetipes (sien bladsy 19).
2.5 IGLOO2-reeksnommerdienssimulasie
Om voor te berei vir IGLOO2-reeksnommerdienssimulasie, voer die stappe soos volg uit.
- Roep stelselbouer aan om jou HPMS-blok te skep.
- Merk die HPMS System Services-merkblokkie in die Toestelkenmerke-bladsy. Dit sal die stelselbouer opdrag gee om die HPMS_FIC_0 SYS_SERVICES_MASTER-buskoppelvlak (BIF) bloot te stel.
- Laat alle ander merkblokkies ongemerk.
- Aanvaar die verstek in alle ander bladsye en klik Voltooi om die stelselbouerblok te voltooi. In die Libero® SoC se HDL-redigeerder, skryf die HDL-kode vir die FSM (File > Nuut > HDL). Sluit die volgende drie state in jou FSM in.
INIT-toestand (aanvanklike toestand)
SERV_PHASE (diensversoekstatus)
RSP_PHASE (diensresponstoestand).
Die volgende figuur toon die drie state van FSM.
Figuur 4 • Drie-State FSM In jou HDL-kode vir die FSM, gebruik die korrekte opdragkode (“01” Hex vir reeksnommerdiens) om die diensversoektoestand vanaf die INIT-toestand in te voer.
- Stoor jou HDL file. Die FSM verskyn as 'n komponent in die Ontwerphiërargie.
- Maak SmartDesign oop. Sleep en los jou topvlak stelselboublok en jou FSM-blok in die SmartDesign-doek. Sleep en los die CoreSysService-sagte IP-kern in die SmartDesign-doek uit die katalogus.
- Regskliek op die CoreSysService sagte IP-kern om die konfigurator oop te maak. Merk die Reeksnommerdiens-merkblokkie (onder die Toestel- en Ontwerpinligtingsdienste
groep) om reeksnommerdiens te aktiveer. - Laat alle ander merkblokkies ongemerk. Klik OK om die konfigurator te verlaat.
Figuur 5 • CoreSysServices sagte IP Core Configurator
- Koppel die HPMS_FIC_0 SYS_SERVICES_MASTER BIF van die stelselboublok aan die AHBL_MASTER BIF van die CoreSysService-blok.
- Koppel die uitset van jou HDL FSM-blok aan die inset van die CoreSysService-sagte IP-kern. Maak alle ander verbindings in die SmartDesign-doek soos in die volgende figuur getoon.
Figuur 6 • SmartDesign Canvas met HDL Block, CoreSysServices Soft IP en HPMS Blocks - Regskliek op die SmartDesign-doek > Genereer komponent om die topvlakontwerp te genereer.
- In die Ontwerphiërargie view, klik met die rechtermuisknop op die topvlakontwerp en kies skep toetsbank > HDL .
- Gebruik 'n teksredigeerder om 'n teks te skep file genaamd "status.txt" .
- Sluit die opdrag vir stelseldiens en die 128-bis reeksnommer in. Vir meer inligting, sien Tabel 1 (System Services Command/Response Values) in die CoreSysServices v3.1-handboek vir die opdragkodes (Hex) om vir verskillende stelseldienste gebruik te word. Vir reeksnommerdiens is die opdragkode "01" Hex.
Die formaat van die status.txt file vir reeksnommer diens is soos volg.
< 2 Hex syfer CMD><32 Hex syfer reeksnommer>
Example: 01A1A2A3A4B1B2B3B4C1C2C3C4D1D2D3D4
Stoor die status.txt file in die Simulasie-lêergids van jou projek. Die ontwerp is nou gereed vir simulasie.
Sodra die diens begin uitvoer het, word 'n boodskap wat die bestemmingsligging en reeksnommer aandui in die ModelSim-transkripsievenster vertoon, soos in die volgende figuur getoon.
Figuur 7 • ModelSim Simulasie Transkripsie VensterDie stelselbeheerder voer 'n AHB-skryf na die adres met die reeksnommer. Na voltooiing van die diens sal die COMM_BLK se RXFIFO gelaai word met die diensreaksie.
Let wel: Vir 'n volledige lys van die opdragkodes wat vir verskillende stelseldienste gebruik moet word, sien Tabel 1 (Stelseldienste-opdrag/reaksiewaardes) in CoreSysServices v3.1-handboek of UG0450: SmartFusion2 SoC en IGLOO2 FPGA-stelselbeheerder Gebruikersgids.
2.6 SmartFusion2-reeksnommerdienssimulasie
In hierdie gebruikersgids word BFM-opdragte (opsie 2) gebruik om toegang tot die stelselbeheerder vir stelseldiens te verkry. BFM-opdragte word gebruik aangesien die Cortex-M3-verwerker op die toestel beskikbaar is vir BFM-simulasie. BFM-opdragte laat jou toe om direk na die COMM BLK te skryf en te lees sodra jy die geheuekartering van die COMM_BLK ken.
Om jou ontwerp vir SmartFusion2-reeksnommerdienssimulasie voor te berei, voer die volgende stappe uit.
- Sleep en los die MSS van die katalogus na die ontwerpdoek van jou projek.
- Deaktiveer alle MSS-randapparatuur behalwe die MSS_CCC, Herstelbeheerder, Onderbrekingsbestuur en FIC_0, FIC_1 en FIC_2.
- Stel die onderbrekingsbestuur op om MSS te gebruik om onderbreking te maak.
- Berei die reeksnommer.bfm voor file in 'n teksredigeerder of in die Libero se HDL-redigeerder. Stoor die reeksnommer.bfm file in die projek se Simulasie-lêergids. Die serialnum.bfm moet die volgende besonderhede insluit.
• Geheuekartering na die COMM BLK (CMBLK)
• Geheue kartering om bestuur perifere te onderbreek (FIIC)
• Opdrag vir reeksnommerstelseldiensversoek (“01” Hex)
• Adres vir die ligging van die reeksnommer
'N Example van die reeksnommer.bfm file is soos volg.
memmap FIIC 0x40006000; #Geheuekartering om bestuur te onderbreek
memmap CMBLK 0x40016000; #Geheuekartering na COMM BLK
memmap DESCRIPTOR_ADDR 0x20000000; # Adresligging vir reeksnommer
#Opdragkode in heksadesimale
konstante CMD 0x1 # Bevelkode vir reeksnommerdiens
#FIIC-konfigurasieregisters
konstante FICC_INTERRUPT_ENABLE0 0x0
#COMM_BLK konfigurasieregisters
konstante BEHEER 0x00
konstante STATUS 0x04
konstante INT_ENABLE 0x08
konstante DATA8 0x10
konstante DATA32 0x14
konstante FRAME_START8 0x18
konstante FRAME_START32 0x1C
prosedure serialnum;
int x;
skryf w FIIC FICC_INTERRUPT_ENABLE0 0x20000000 #Konfigureer
#FICC_INTERRUPT_ENABLE0 # Registreer om COMBLK_INTR te aktiveer #
#onderbreking van COMM_BLK-blok na stof
#Versoekfase
skryf w CMBLK CONTROL 0x10 # Konfigureer COMM BLK Control # Registreer na
aktiveer oordragte op die COMM BLK-koppelvlak
skryf w CMBLK INT_ENABLE 0x1 # Stel COMM BLK Onderbreking Aktiveer
#Registreer om onderbreking vir TXTOKAY te aktiveer (ooreenstemmende bietjie in die
#Statusregister)
wagint 19 # wag vir COMM BLK Interrupt , Hier wag #BFM
#totdat COMBLK_INTR beweer word
leeswinkel w CMBLK STATUS x # Lees COMM BLK Status Registreer vir #TXTOKAY
# Onderbreek
stel xx & 0x1
as x
skryf w CMBLK FRAME_START8 CMD # Stel COMM BLK FRAME_START8 op
#Registreer om reeksnommerdiens aan te vra
einde
einde
wagint 19 # wag vir COMM BLK Interrupt , Hier
#BFM wag totdat COMBLK_INTR beweer word
leeswinkel w CMBLK STATUS x # Lees COMM BLK Status Registreer vir
#TXTOKAY Onderbreking
stel xx & 0x1
stel xx & 0x1
as x
skryf w CMBLK CONTROL 0x14 #Configure COMM BLK Control
#Registreer om oordragte op die COMM BLK-koppelvlak moontlik te maak
skryf w CMBLK DATA32 DESCRIPTOR_ADDR
skryf w CMBLK INT_ENABLE 0x80
skryf w CMBLK CONTROL 0x10
einde
wag 20
#Reaksiefase
wag 19
leeswinkel w CMBLK STATUS x
stel xx & 0x80
as x
leeskontroleer w CMBLK FRAME_START8 CMD
skryf w CMBLK INT_ENABLE 0x2
einde
wag 19
leeswinkel w CMBLK STATUS x
stel xx & 0x2
as x
lees kontroleer w CMBLK DATA8 0x0
skryf w CMBLK CONTROL 0x18
einde
wag 19
lees na met FIIC 0x8 0x20000000
leeswinkel w CMBLK STATUS x
stel xx & 0x2
as x
leeskontroleer w CMBLK DATA32 DESCRIPTOR_ADDR
einde
leeskontroleer w DESCRIPTOR_ADDR 0x0 0xE1E2E3E4; #Leeskontrole om S/N na te gaan
leeskontroleer w DESCRIPTOR_ADDR 0x4 0xC1C2C3C4; #Leeskontrole om S/N na te gaan
leeskontrole w DESCRIPTOR_ADDR 0x8 0xB1B2B3B4; #Leeskontrole om S/N na te gaan
leeskontrole w DESCRIPTOR_ADDR 0xC 0xA1A2A3A4; #Leeskontrole om S/N na te gaan
terugkeer - Skep die status. txt file in Libero se HDL-redigeerder of enige teksredigeerder. Sluit die reeksnommerstelseldiensopdrag (“01” in Hex) en die reeksnommer by die status in. txt file. Sien die CoreSysServices v3.1-handboek vir die gebruik van die korrekte opdragkode.
- Die sintaksis hiervan file vir reeksnommer diens is, <2 Hex syfer CMD>< 32 Hex syfer reeksnommer> . Bvample: 01A1A2A3A4B1B2B3B4C1C2C3C4E1E2E3E4.
- Stoor die status .txt file in die projek se Simulasie-lêergids.
- Wysig die gebruiker .bfm (geleë in die Simulasie-lêergids) om die reeksnommer in te sluit. bfm file en bel die reeksnommerprosedure soos in die volgende kodebrokkie getoon.
sluit "serialnum.bfm" in #sluit die reeksnum.bfm in
prosedure gebruiker_hoof;
druk "INFO:Simulasie begin";
druk "INFO:Diensopdragkode in desimale:%0d", CMD ;
noem reeksnommer; #bel die reeksnommerprosedure
druk "INFO:Simulasie eindig";
terugkeer - In die Ontwerphiërargie view, genereer die toetsbank (regskliek, Topvlakontwerp > Skep toetsbank > HDL ) en jy is gereed om reeksnommerdienssimulasie uit te voer.
Sodra die diens begin uitvoer het, word 'n boodskap wat die bestemmingsligging en reeksnommer aandui, vertoon. Die stelselbeheerder voer 'n AHB-skryf na die adres met die reeksnommer. Na voltooiing van die diens sal die COMM_BLK se RXFIFO met die diensreaksie gelaai word. Die ModelSim-transkripsievenster vertoon die adres en die reeksnommer wat ontvang is soos in die volgende figuur getoon.
Figuur 8 • SmartFusion2-reeksnommerdienssimulasie in ModelSim-transkripsievenster
2.7 IGLOO2-nuleringsdienssimulasie
Om voor te berei vir IGLOO2-nuleringsdienssimulasie, voer die stappe soos volg uit.
- Roep stelselbouer aan om die HPMS-blok te skep. Merk die HPMS System Services-merkblokkie in die Toestelkenmerke SYS_SERVICES_MASTER BIF. Laat alle ander merkblokkies ongemerk. Aanvaar die verstek in alle ander bladsye en klik bladsy. Dit gee die stelselbouer opdrag om die HPMS_FIC_0 Finish bloot te stel om die konfigurasie van die stelselbouerblok te voltooi.
- Skryf die HDL-kode vir die FSM in die Libero SoC se HDL-redigeerder. In jou HDL-kode vir die FSM, sluit die volgende drie state in.
INIT-toestand (aanvanklike toestand)
SERV_PHASE (diensversoekstatus)
RSP_PHASE (diensresponstoestand)
Die volgende figuur toon die drie state van FSM.
Figuur 9 • Drie-State FSM - In jou HDL-kode, gebruik die opdragkode “F0″(Hex) om die diensversoekstatus vanaf die INIT-staat in te voer.
- Stoor jou HDL file.
- Maak SmartDesign oop, sleep en los jou topvlakstelselboublok en jou HDL FSM-blok in die SmartDesign-doek. Sleep en los die CoreSysService-sagte IP-kern in die SmartDesign-doek uit die katalogus.
- Regskliek op die CoreSysServices sagte IP-kern, om die konfigurator oop te maak en merk die Zeroization Service-merkblokkie onder die Data Security Services-groep. Laat alle ander merkblokkies ongemerk. Klik om OK te verlaat.
Figuur 10 • CoreSysServices Configurator
- Koppel die HPMS_FIC_0 SYS_SERVICES_MASTER BIF van die stelselboublok aan die AHBL_MASTER BIF van die CoreSysService-blok.
- Koppel die uitset van jou HDL FSM-blok aan die inset van die CoreSysService-sagte IP-kern. Maak alle ander verbindings in die SmartDesign-doek.
Figuur 11 • SmartDesign Canvas met HDL Block, CoreSysServices Soft IP, en HPMS Blocks
9. Genereer die topvlak-ontwerp in die SmartDesign-doek (Regsklik > Genereer komponent).
10. In die Ontwerphiërargie view, klik met die rechtermuisknop op die topvlak-ontwerp en kies skep toetsbank > HDL. Jy is nou gereed om simulasie uit te voer.
Sodra die diens begin uitvoer het, word 'n boodskap wat aandui dat die nulisering voltooi is op tyd x vertoon, soos in die volgende figuur getoon.
Figuur 12 • IGLOO2-nulstellingstelseldienssimulasietranskripsievenster
Die stelselbeheerder voer 'n AHB-skryf na die adres met die reeksnommer. Na voltooiing van die diens sal die COMM_BLK se RXFIFO gelaai word met die diensreaksie. Daar moet kennis geneem word dat die simulasiemodel nulisering simuleer deur die simulasie te stop eerder as om die ontwerp self te nul.
Let wel: Vir 'n volledige lys van die opdragkodes wat vir verskillende stelseldienste gebruik moet word, sien Tabel 1 (Stelseldienste-opdrag-/reaksiewaardes) in die CoreSysServices v3.1-handboek:. of UG0450: SmartFusion2 SoC en IGLOO2 FPGA System Controller Gebruikersgids
2.8 SmartFusion2 Zeroization Service Simulasie
In hierdie gids word BFM-opdragte (opsie 2) gebruik om toegang tot die stelselbeheerder vir stelseldiens te verkry.
BFM-opdragte word gebruik aangesien die Cortex-M3-verwerker op die toestel beskikbaar is vir BFM-simulasie. BFM-opdragte laat jou toe om direk na die COMM BLK te skryf en te lees sodra jy die geheuekartering van die COMM_BLK ken. Voer die volgende stappe uit om jou ontwerp vir SmartFusion2-nuleringsdienssimulasie voor te berei.
- Sleep en los die MSS van die katalogus na die ontwerpdoek van jou projek.
- Deaktiveer alle MSS-randapparatuur behalwe die MSS_CCC, Herstelbeheerder, Onderbrekingsbestuur en FIC_0, FIC_1 en FIC_2.
- Stel die onderbrekingsbestuur op om MSS te gebruik om onderbreking te maak.
- Berei die zeroizaton.bfm voor file in 'n teksredigeerder of in Libero se HDL-redigeerder. Jou nulisering. bfm moet insluit:
- Geheue kartering na die COMM BLK (CMBLK)
- Geheue kartering om bestuur perifere te onderbreek (FIIC)
- Opdrag vir zeroizaton-diensversoek ("F0" Hex vir nulstelling)
'N Example van die reeksnommer.bfm file word in die volgende figuur getoon.
Figuur 13 • Zeroization.bfm vir SmartFusion2 Zeroization System Services Simulasie
5. Stoor die zeroization.bfm file in die projek se Simulasie-lêergids. gebruiker.bfm
6. Wysig die (geleë in die zeroization.bfm Simulasie-lêergids) om die in te sluit deur die volgende kodebrokkie in te sluit.
sluit "zeroization.bfm" #include zeroization.bfm in file prosedure gebruiker_hoof;
druk "INFO:Simulasie begin";
druk "INFO:Diensopdragkode in desimale:%0d", CMD ;
oproep nulisering; #oproep nuliseringsprosedure terugkeer
7. Genereer die toetsbank in die ontwerphiërargie (Regskliek op boonste vlak > Skep toetsbank > HDL ) en jy is gereed om die SmartFusion2-nuleringssimulasie uit te voer.
Sodra die diens begin uitvoer het, word 'n boodskap vertoon wat aandui dat die toestel op tyd x nulgestel is. Daar moet kennis geneem word dat die simulasiemodel nulisering simuleer deur die simulasie te stop eerder as om die ontwerp self te nul. Die ModelSim-transkripsievenster in die volgende figuur wys dat die toestel nulgestel is.
Figuur 14 • SmartFusion2-nulstellingstelseldienssimulasielogboek
Bylaag: Tipes Stelseldienste
Hierdie hoofstuk beskryf verskeie tipes stelseldienste.
3.1 Simulasieboodskapdienste
Die volgende afdelings beskryf verskeie tipes simulasieboodskapdienste.
3.1.1 Flits*Vries
Die simulasie sal die Flash*Freeze-toestand binnegaan wanneer die behoorlike diensversoek na die COMM_BLK gestuur word vanaf óf die FIC (in die geval van IGLOO2-toestelle) óf die Cortex-M3 (in SmartFusion2-toestelle). Sodra die diens deur die stelselbeheerder opgespoor is, sal die simulasie gestop word en 'n boodskap wat aandui dat die stelsel Flash*Freeze ingegaan het (saam met die opsie wat gekies is) sal vertoon word. By hervatting van die simulasie sal die RXFIFO van die COMM_BLK gevul word met die diensreaksie wat bestaan uit die diensbevel en status. Daar moet kennis geneem word dat daar geen simulasie-ondersteuning vir Flash*Freeze-uitgang is nie.
3.1.2 Nulisering
Nulisering is tans die enigste hoë prioriteit diens binne stelseldienste wat deur die COMM_BLK verwerk word. Die simulasie sal die nuliseringstoestand betree sodra die korrekte diensversoek deur die COMM_BLK opgespoor word. Die uitvoering van ander dienste sal deur die stelselbeheerder gestaak en weggegooi word, en die nuliseringsdiens sal eerder uitgevoer word. Sodra die nuliseringdiensversoek bespeur is, stop die simulasie en 'n boodskap wat aandui dat die stelsel ingegaan het op nulisering, word vertoon. Handmatige herbegin van simulasie na nulisering is ongeldig.
3.2 Datawyserdienste
Die volgende afdelings beskryf verskeie tipes datawyserdienste.
3.2.1 Reeksnommer
Die reeksnommerdiens sal 'n 128-bis-reeksnommer skryf na 'n adresligging wat as deel van die diensversoek verskaf word. Hierdie 128-bis parameter kan ingestel word met behulp van 'n stelseldienssimulasieondersteuning file (sien bladsy 22). As die 128-bis reeksnommer parameter nie gedefinieer is binne die file, 'n verstek reeksnommer van 0 sal gebruik word. Sodra die diens begin uitvoer het, word 'n boodskap wat die bestemmingsligging en reeksnommer aandui, vertoon. Die stelselbeheerder voer 'n AHB-skryf na die adres met die reeksnommer. Na voltooiing van die diens sal die COMM_BLK se RXFIFO gelaai word met die diensreaksie.
3.2.2 Gebruikerskode
Die gebruikerkodediens skryf 'n 32-bis gebruikerskodeparameter na 'n adresligging wat as deel van die diensversoek verskaf word. Hierdie 32-bis parameter kan ingestel word met behulp van die System Service Simulation Support file (sien bladsy 22). As die 32-bis parameter nie gedefinieer is binne die file, word 'n verstekwaarde van 0 gebruik. Sodra die diens begin uitvoer het, word 'n boodskap wat die teikenligging en gebruikerskode aandui, vertoon. Die stelselbeheerder voer 'n AHB-skryf na die adres met die 32-bis parameter. Na voltooiing van die diens word die COMM_BLK se RXFIFO gelaai met die diensrespons, wat die diensbevel en teikenadres insluit.
3.3 Databeskrywingdienste
Die volgende afdelings beskryf verskeie tipes databeskrywerdienste.
3.3.1 AES
Die simulasie-ondersteuning vir hierdie diens is slegs gemoeid met die verskuiwing van die oorspronklike data van die bron na die bestemming, sonder om werklik enige enkripsie/dekripsie op die data uit te voer. Die data wat geënkripteer/gedekripteer moet word en die datastruktuur moet geskryf word voordat die diensversoek gestuur word. Sodra die diens begin uitvoer het, word 'n boodskap wat die uitvoering van die AES-diens aandui, vertoon. Die AES-diens lees beide die datastruktuur en data wat geïnkripteer/gedekripteer moet word. Die oorspronklike data word gekopieer en geskryf na die adres wat in die datastruktuur verskaf word. Sodra die diens voltooi is, word die opdrag, status en datastruktuuradres in die RXFIFO gedruk.
Let wel: Hierdie diens is slegs vir 128-bis en 256-bis data, en beide 128-bis en 256-bis data het verskillende datastruktuurlengtes.
3.3.2 SHA 256
Die simulasie-ondersteuning vir hierdie diens is slegs gemoeid met die verskuiwing van die data, sonder om werklik enige hashing op die data uit te voer. Die SHA 256-funksie is ontwerp om 'n 256-bis hash-sleutel te genereer gebaseer op die invoerdata. Die data wat gehash moet word en die datastruktuur moet na hul onderskeie adresse geskryf word voordat die diensversoek na die COMM_BLK gestuur word. Die lengte in bisse en wyser wat binne die SHA 256-datastruktuur gedefinieer word, moet korrek ooreenstem met die lengte en adres van die data wat gehas moet word. Sodra die diens begin uitvoer het, word 'n boodskap wat die uitvoering van die SHA 256-diens aandui, vertoon. Eerder as om die werklike funksie uit te voer, sal 'n verstek hash-sleutel na die bestemmingswyser vanaf die datastruktuur geskryf word. Die verstek hash-sleutel is hex "ABCD1234". Vir die opstel van 'n pasgemaakte sleutel, gaan na die Parameterinstelling (sien bladsy 23) afdeling. Na voltooiing van die diens word die RXFIFO gelaai met die diensreaksie wat bestaan uit die diensopdrag, status en SHA 256-datastruktuurwyser.
3.3.3 HMAC
Die simulasie-ondersteuning vir hierdie diens is slegs gemoeid met die verskuiwing van data, sonder om werklik enige hashing op die data uit te voer. Die data wat gehash moet word en die datastruktuur moet na hul onderskeie adresse geskryf word voordat die diensversoek na die COMM_BLK gestuur word. Die HMAC-diens vereis 'n 32-grepe sleutel bykomend tot die lengte in grepe, bronwyser en bestemmingswyser. Sodra die diens begin uitvoer het, word 'n boodskap wat die uitvoering van die HMAC-diens aandui, vertoon. Die sleutel word gelees en die 256-bis sleutel word vanaf die datastruktuur na die bestemmingswyser gekopieer. Na voltooiing van die diens word die RXFIFO gelaai met die diensreaksie wat bestaan uit die diensopdrag, status en HMAC-datastruktuurwyser.
3.3.4 DRBG Genereer
Generering van ewekansige bisse word deur hierdie diens uitgevoer. Daar moet kennis geneem word dat die simulasiemodel nie presies dieselfde ewekansige getalgenereringsmetodologie volg wat deur die silikon gebruik word nie. Die datastruktuur moet korrek in die beoogde plek geskryf word voordat die diensversoek na die COMM_BLK gestuur word. Die datastruktuur, bestemmingswyser, lengte en ander relevante data word deur die stelselbeheerder gelees. Die DRBG genereer diens genereer 'n pseudo ewekansige stel data van die verlangde lengte (0-128). Die stelselbeheerder skryf die ewekansige data in die bestemmingswyser. 'n Boodskap wat die uitvoering van DRBG-genereerdiens aandui, word in simulasie vertoon. Sodra die diens voltooi is, word die opdrag, status en datastruktuuradres in die RXFIFO gedruk. As die verlangde datalengte nie binne die reeks van 0-128 is nie, sal 'n foutkode van "4" (Max Generate ) in die RXFIFO gedruk word. As die bykomende datalengte nie binne die Request Too Big-reeks van 0-128 is nie, sal 'n foutkode van "5" (Maksimum Lengte van Addisionele Data oorskry) in die RXFIFO gedruk word. As beide die gevraagde datalengte vir genereer en addisionele datalengte nie binne hul gedefinieerde reeks (0-128) is nie, word 'n foutkode van "1" (Katastrofiese Fout) in die RXFIFO gedruk.
3.3.5 DRBG-terugstelling
Die werklike terugstelfunksie word uitgevoer deur DRBG-instansies te verwyder en DRBG terug te stel. Sodra die diensversoek opgespoor is, vertoon die simulasie 'n DRBG-terugsteldiens voltooi-boodskap. Die antwoord, wat die diens en status insluit, word in die RXFIFO ingedruk.
3.3.6 DRBG Selftoets
Die simulasie-ondersteuning vir die DRBG-selftoets voer nie eintlik die selftoetsfunksie uit nie. Sodra die diensversoek opgespoor is, sal die simulasie 'n DRBG-selftoetsdiensuitvoeringsboodskap vertoon. Die antwoord, wat die diens en status insluit, sal in die RXFIFO gedruk word.
3.3.7 DRBG-instansieer
Die simulasie-ondersteuning vir die DRBG-instansiediens voer nie eintlik die instansieerdiens uit nie. Die datastruktuur moet korrek in die beoogde plek geskryf word voordat die diensversoek na die COMM_BLK gestuur word. Sodra die diensversoek bespeur is, sal die struktuur en verpersoonlikingstring wat binne die MSS-adresspasie gedefinieer is, gelees word. Die simulasie sal 'n boodskap vertoon wat aandui dat die DRBG Instantiate-diens begin uitvoer het. Sodra die diens voltooi is, sal die antwoord, wat die diensopdrag, status en wyser na die datastruktuur insluit, in die RXFIFO gedruk word. As die datalengte (PERSONALISATIONLENGTH) nie binne die reeks van 0-128 is nie, sal 'n foutkode van "1" (Katastrofiese Fout) in die RXFIFO gedruk word vir die status.
3.3.8 DRBG Oninstansieer
Die simulasie-ondersteuning vir die DRBG-on-instansie-diens voer nie eintlik die un-instansie-diens uit om 'n voorheen geïnstantieerde DRBG te verwyder, soos die silikon doen nie. Die diensversoek moet beide die opdrag en DRBG-handvatsel insluit. Sodra die diensversoek opgespoor is, sal die DRBG-handvatsel gestoor word. Die simulasie sal 'n boodskap vertoon wat aandui dat die DRBG-oninstansiediens geïnisialiseer is. Sodra die diens voltooi is, sal die antwoord, wat die diensopdrag, status en DRBG-handvatsel insluit, in die RXFIFO gedruk word.
3.3.9 DRBG Reseed
As gevolg van die simulatiewe aard van die stelseldiensteblok, word die DRBG-hersiendiens in simulasie nie outomaties uitgevoer na elke 65535 DRBG-genereer dienste nie. Die datastruktuur moet korrek in die beoogde plek geskryf word voordat die diensversoek na die COMM_BLK gestuur word. Sodra die diensversoek opgespoor is, sal die struktuur en bykomende invoerparameter in die MSS-adresspasie gelees word. 'n Boodskap wat aandui dat die DRBG-herlaaidiens begin uitvoer het, sal vertoon word. Die datastruktuur moet korrek in die beoogde plek geskryf word voordat die diensversoek na die COMM_BLK gestuur word. Sodra die diens voltooi is, sal die antwoord, wat die diensopdrag, status en wyser na die datastruktuur insluit, in die RXFIFO gedruk word.
3.3.10 Sleutelboom
Die werklike funksie word nie in simulasie vir die KeyTree-diens uitgevoer nie. Die KeyTree-diensdatastruktuur bestaan uit 'n 32-grepe sleutel, 7-bis optipe data (MSB geïgnoreer), en 16-grepe pad. Die data binne die datastruktuur moet na hul onderskeie adresse geskryf word, voordat die diensversoek na die COMM_BLK gestuur word. Sodra die diens begin uitvoer het, sal 'n boodskap wat die uitvoering van die KeyTree diens aandui, vertoon word. Die inhoud van die datastruktuur sal gelees word, die 32-grepe sleutel sal gestoor word, en die oorspronklike sleutel wat binne die datastruktuur geleë is, word oorskryf. Na hierdie AHB-skryf, behoort die waarde van die sleutel binne die datastruktuur nie te verander nie, maar AHB-transaksies vir die skryf sal plaasvind. Na voltooiing van die diens word die RXFIFO gelaai met die diensreaksie, wat bestaan uit die diensopdrag, status en die KeyTree-datastruktuurwyser.
3.3.11 Uitdagingsreaksie
Die werklike funksie, soos verifikasie van die toestel, word nie in simulasie vir die uitdagingsreaksiediens uitgevoer nie. Die datastruktuur vir hierdie diens vereis 'n wyser na die buffer, om 'n 32-grepe resultaat, 7-bis optipe en 'n 128-bis pad te ontvang. Die data binne die datastruktuur moet na hul onderskeie adresse geskryf word voordat die diensversoek na die COMM_BLK gestuur word. Sodra die diens begin uitvoer het, sal 'n boodskap wat die uitvoering van die uitdagingsreaksiediens aandui, vertoon word. 'n Generiese 256-bis-antwoord sal in die wyser wat in die datastruktuur verskaf word, geskryf word. Die versteksleutel is gestel as hex "ABCD1234". Om 'n pasgemaakte sleutel te kry, gaan Parameterinstelling na (sien bladsy 23). Na voltooiing van die diens, sal die RXFIFO gelaai word met die diensreaksie, wat bestaan uit die diensopdrag, status en uitdagingsreaksie-datastruktuurwyser.
3.4 Ander dienste
Die volgende afdelings beskryf verskeie ander stelseldienste.
3.4.1 Digest Check
Die werklike funksie van herberekening en vergelyking van samevattings van geselekteerde komponente word nie vir die digest check-diens in simulasie uitgevoer nie. Hierdie diensversoek bestaan uit diensopdragte en diensopsies (5-bis LSB). Sodra die diens begin uitvoer het, sal 'n boodskap met besonderhede oor die uitvoering van die digest check-diens vertoon word, saam met die geselekteerde opsies uit die versoek. Na voltooiing van die diens, sal die RXFIFO gelaai word met die diensreaksie, bestaande uit die diensopdrag, en die digest check slaag/misluk vlae.
3.4.2 Onherkenbare bevelreaksie
Wanneer 'n onherkende diensversoek na die COMM_BLK gestuur word, sal die COMM_BLK outomaties antwoord met 'n onherkende opdragboodskap wat in die RXFIFO gedruk word. Die boodskap bestaan uit die opdrag wat na die COMM_BLK gestuur is en die onherkenbare opdragstatus (252D). 'n Vertoonboodskap wat aandui dat 'n onherkende diensversoek bespeur is, sal ook vertoon word. Die COMM_BLK sal terugkeer na 'n ledige toestand en wag om die volgende diensversoek te aanvaar.
3.4.3 Onondersteunde dienste
Ongesteunde dienste wat op die COMM_BLK gestel is, sal 'n boodskap in simulasie aktiveer wat aandui dat die diensversoek nie ondersteun word nie. Die COMM_BLK sal terugkeer na 'n ledige toestand en wag om die volgende diensversoek te aanvaar. Die PINTERRUPT sal nie gestel word nie, wat aandui dat 'n diens voltooi is. Die huidige lys nie-ondersteunde dienste sluit in: IAP, ISP, Toestelsertifikaat en die DESIGNVER-diens.
3.5 Simulasieondersteuning vir stelseldienste File
Om stelseldienste-simulasie te ondersteun, 'n teks file genoem, "status.txt" kan gebruik word om instruksies oor die vereiste gedrag van die simulasiemodel na die simulasiemodel deur te gee. Hierdie file moet in dieselfde vouer geleë wees waaruit die simulasie uitgevoer word. Die file kan onder andere gebruik word om sekere foutreaksies af te dwing vir die stelseldienste wat ondersteun word of selfs om sekere parameters in te stel wat nodig is vir simulasie, (bv.ample, reeksnommer). Die maksimum aantal reëls wat in die "status.txt" ondersteun word file is 256. Instruksies wat na reël nommer 256 verskyn, sal nie in die simulasie gebruik word nie.
3.5.1 Afdwing van foutreaksies
Die gebruiker kan 'n sekere foutreaksie vir 'n spesifieke diens afdwing tydens toetsing deur die inligting na die simulasiemodel deur te gee deur die "status.txt" te gebruik. file, wat in die gids geplaas moet word waaruit die simulasie uitgevoer word. Om foutreaksies op 'n sekere diens af te dwing, moet die opdrag en die vereiste antwoord in dieselfde reël in die volgende formaat getik word:ample, na Bevel> ; die simulasiemodel opdrag gee om 'n MSS-geheuetoegangsfoutreaksie op die reeksnommerdiens te genereer, is die opdrag soos volg.
Diens: Reeksnommer: 01
Foutboodskap versoek: MSS Memory Access Fout: 7F
Jy moet die reël 017F in "status.txt" hê file.
3.5.2 Parameterinstelling
Die "status.txt" file kan ook gebruik word om sekere parameters in te stel wat nodig is in simulasie. As eksample, om die 32-bis parameter vir die gebruikerkode te stel, moet die formaat van die lyn in hierdie volgorde wees: <32 Bit GEBRUIKERSKODE>; waar beide waardes in heksadesimale ingevoer word. Om die 128-bis parameter vir die reeksnommer te stel, moet die formaat van die lyn in hierdie volgorde wees: <128 Bit reeksnommer [127:0]> ; waar beide waardes in heksadesimale ingevoer word. Om die 256-bis parameter vir die SHA 256 sleutel te stel; die formaat van die reël moet in hierdie volgorde wees: <256 Bit Key [255:0]>; waar beide waardes in heksadesimale ingevoer word. Om die 256-bis-parameter vir die uitdagingsantwoordsleutel te stel, moet die formaat van die lyn in hierdie volgorde wees: <256 Bit Key [255:0]>;
waar beide waardes in heksadesimale ingevoer word.
3.5.3 Toestelprioriteit
Stelseldienste en die COMM_BLK gebruik 'n hoë prioriteitstelsel. Tans is die enigste hoë prioriteit diens nulisering. Om 'n hoë-prioriteitdiens te verrig, terwyl 'n ander diens uitgevoer word, word die huidige diens gestaak en die hoërprioriteitdiens sal in die plek daarvan uitgevoer word. Die COMM_BLK sal die huidige diens weggooi om die hoër prioriteit diens uit te voer. As verskeie nie-hoë-prioriteit dienste gestuur word voor die voltooiing van 'n huidige diens, sal hierdie dienste in die tou in die TXFIFO geplaas word. Sodra die huidige diens voltooi is, sal die volgende diens in die TXFIFO uitgevoer word.
Microsemi gee geen waarborg, voorstelling of waarborg aangaande die inligting hierin vervat of die geskiktheid van sy produkte en dienste vir enige spesifieke doel nie, en Microsemi aanvaar ook geen aanspreeklikheid hoegenaamd wat voortspruit uit die toepassing of gebruik van enige produk of stroombaan nie. Die produkte wat hieronder verkoop word en enige ander produkte wat deur Microsemi verkoop word, is onderhewig aan beperkte toetsing en moet nie saam met missiekritieke toerusting of toepassings gebruik word nie. Enige prestasiespesifikasies word geglo betroubaar te wees, maar word nie geverifieer nie, en Koper moet alle prestasie- en ander toetse van die produkte uitvoer en voltooi, alleen en saam met, of geïnstalleer in, enige eindprodukte. Koper sal nie staatmaak op enige data en prestasiespesifikasies of parameters wat deur Microsemi verskaf word nie. Dit is die Koper se verantwoordelikheid om onafhanklik die geskiktheid van enige produkte te bepaal en om dieselfde te toets en te verifieer. Die inligting wat hieronder deur Microsemi verskaf word, word verskaf "soos dit is, waar is" en met alle foute, en die hele risiko verbonde aan sodanige inligting is geheel en al by die Koper. Microsemi verleen nie, uitdruklik of implisiet, aan enige party enige patentregte, lisensies of enige ander IP-regte nie, hetsy met betrekking tot sodanige inligting self of enigiets wat deur sodanige inligting beskryf word. Inligting wat in hierdie dokument verskaf word, is die eiendom van Microsemi, en Microsemi behou die reg voor om enige veranderinge aan die inligting in hierdie dokument of aan enige produkte en dienste te eniger tyd sonder kennisgewing aan te bring.
Microsemi, 'n volfiliaal van Microchip Technology Inc. (Nasdaq: MCHP), bied 'n omvattende portefeulje van halfgeleier- en stelseloplossings vir lugvaart en verdediging, kommunikasie, datasentrums en industriële markte. Produkte sluit in hoëwerkverrigting en straling-geharde analoog gemengde-sein geïntegreerde stroombane, FPGA's, SoC's en ASIC's; kragbestuurprodukte; tydsberekening en sinchronisasie toestelle en presiese tyd oplossings, stel die wêreld se standaard vir tyd; stemverwerkingstoestelle; RF oplossings; diskrete komponente; onderneming berging en kommunikasie oplossings; sekuriteit tegnologieë en skaalbare anti-tamper produkte; Ethernet-oplossings; Power-over-Ethernet IC's en midspans; sowel as persoonlike ontwerp vermoëns en dienste. Microsemi het sy hoofkwartier in Aliso Viejo, Kalifornië, en het ongeveer 4,800 XNUMX werknemers wêreldwyd. Kom meer te wete by www.microsemi.com.
Mikrosemi Hoofkwartier
One Enterprise, Aliso Viejo,
CA 92656 VSA
Binne die VSA: +1 800-713-4113
Buite die VSA: +1 949-380-6100
Verkope: +1 949-380-6136
Faks: +1 949-215-4996
E-pos: verkope.support@microsemi.com
www.microsemi.com
© 2018 Microsemi. Alle regte voorbehou. Microsemi en die Microsemi-logo
is handelsmerke van Microsemi Corporation. Alle ander handelsmerke en diens
merke is die eiendom van hul onderskeie eienaars.
Dokumente / Hulpbronne
![]() |
Microsemi UG0837 IGLOO2 en SmartFusion2 FPGA System Services Simulasie [pdf] Gebruikersgids UG0837, UG0837 IGLOO2 en SmartFusion2 FPGA System Services Simulasie, IGLOO2 en SmartFusion2 FPGA System Services Simulasie, SmartFusion2 FPGA System Services Simulasie, FPGA System Services Simulasie, Dienste Simulasie |