UG0837
Uzantgvidilo
IGLOO2 kaj SmartFusion2 FPGA
Sistemo Servoj Simulado
junio 2018
Historio de Revizio
La reviziohistorio priskribas la ŝanĝojn kiuj estis efektivigitaj en la dokumento. La ŝanĝoj estas listigitaj laŭ revizio, komencante de la plej aktuala publikigo.
1.1 Revizio 1.0
Revizio 1.0 estis publikigita en junio 2018. Ĝi estis la unua publikigo de ĉi tiu dokumento.
IGLOO2 kaj SmartFusion2 FPGA System Services Simulation
La bloko de Sistemservoj de la SmartFusion®2 FPGA-familio prezentas kolekton de servoj respondecaj por diversaj taskoj. Tiuj inkludas simulajn mesaĝservojn, datenmontriloservojn, kaj datenpriskribilservojn. La sistemaj servoj povas esti aliritaj per la Cortex-M3 en SmartFusion2 kaj de la FPGA-ŝtofo tra la ŝtofa interfacregilo (FIC) por kaj SmartFusion2 kaj IGLOO®2. Ĉi tiuj alirmetodoj estas senditaj al la sistemregilo per la COMM_BLK. La COMM_BLK havas progresintan periferian buson (APB) interfacon kaj funkcias kiel mesaĝo pasanta kanalon por interŝanĝi datenojn kun la sistemregilo. Sistemaj servpetoj estas senditaj al la sistemregilo kaj sistemaj servorespondoj estas senditaj al la CoreSysSerrvice tra la COMM BLK. La adresloko por la COMM_BLK estas havebla ene de la mikroregila subsistemo (MSS)/alta rendimenta memorsubsistemo (HPMS). Por detaloj, vidu la UG0450: SmartFusion2 SoC kaj IGLOO2 FPGA Sistemregilo.
Uzantgvidilo
La sekva ilustraĵo montras sistemajn servojn datumfluon.
Figuro 1 • Diagramo de Fluo de Datumoj de SistemoPor kaj IGLOO2 kaj SmartFusion2-sistema servosimulado, vi devas sendi sistemajn servajn petojn kaj kontroli la sistemajn servajn respondojn por kontroli, ke la simulado estas ĝusta. Ĉi tiu paŝo estas necesa por aliri la sisteman regilon, kiu provizas la sistemajn servojn. La maniero skribi al kaj legi de la sistema regilo estas malsama por aparatoj IGLOO2 kaj SmartFusion2. Por SmartFusion2, la Coretex-M3 disponeblas kaj vi povas skribi kaj legi de la sistemregilo uzante komandojn de busfunkcia modelo (BFM). Por IGLOO2, la Cortex-M3 ne haveblas kaj la sistemregilo ne estas alirebla per BFM-komandoj.
2.1 Tipoj de Disponeblaj Sistemservoj
Tri malsamaj specoj de sistemaj servoj estas haveblaj kaj ĉiu speco de servo havas malsamajn subtipojn.
Simulaj mesaĝservoj
Servoj de datummontriloj
Datumaj priskribaj servoj
La ĉapitro de Apendico –Sistemaj Servoj Tipoj (vidu paĝon 19) de ĉi tiu gvidilo priskribas la malsamajn specojn de sistemaj servoj. Por pliaj informoj pri sistemaj servoj, vidu UG0450: SmartFusion2 SoC kaj IGLOO2 FPGA System Controller User Guide.
2.2 IGLOO2 Sistemo-Serva Simulado
Sistemservoj implikas skribi al kaj legi de la sistemregilo. Por skribi kaj legi de la sistema regilo por simulaj celoj, vi devas plenumi la paŝojn jene.
- Instancigu la molan IP-kernon de CoreSysServices, disponeblan en la katalogo de SmartDesign.
- Skribu la HDL-kodon por finhava ŝtatmaŝino (FSM).
La HDL FSM interfacas kun la CoreSysServices Kerno, kiu funkcias kiel la ŝtofomastro de la buso AHBLite. La CoreSysServices-kerno iniciatas sisteman servopeton al la COMM BLK kaj ricevas sistemajn servrespondojn de la COMM BLK tra la FIC_0/1, ŝtofa interfacregilo kiel montrite en la sekva ilustraĵo.
Figuro 2 • IGLOO2 System Services Simulation Topology2.3 SmartFusion2 Sistemo-Serva Simulado
Por simuli sistemajn servojn en aparatoj SmartFusion2, vi devas skribi kaj legi de la sistemregilo. Du opcioj estas disponeblaj por aliri la sistemregilon por simulaj celoj.
Opcio 1 — Skribu la HDL-kodon por FSM al interfaco kun la mola IP-kerno CoreSysService, kiu funkcias kiel AHBLite-ŝtofo-majstro kaj iniciatas sisteman servopeton al la COMM BLK kaj ricevas sistemajn servajn respondojn de la COMM BLK tra la FIC_0/1-ŝtofo. interfaco kiel montrite en la sekva ilustraĵo.
Figuro 3 • SmartFusion2 System Services Simulation Topology
Opcio 2 - Ĉar la Cortex-M3 disponeblas por SmartFusion2-aparatoj, vi povas uzi BFM-komandojn por rekte skribi kaj legi el la memorspaco de la sistemregilo.
Uzado de BFM-komandoj (opcio 2) ŝparas la bezonon skribi la HDL-kodojn por la FSM. En ĉi tiu uzantgvidilo, opcio 2 estas uzata por montri simuladon de sistemaj servoj en SmartFusion2. Kun ĉi tiu opcio, la memorspaco de la sistemregilo estas alirita por ekscii la memormapon de la COMM BLK kaj la ŝtofa interfaco-interrompa regilo (FIIC) bloko kiam vi skribas viajn BFM-komandojn.
2.4 Simulado Ekzamples
La uzantgvidilo kovras la sekvajn simuladojn.
- Simulado pri Servo de IGLOO2 (vidu paĝon 5)
- SmartFusion2 Serial Number Service Simulation (vidu paĝon 8)
- Simulado de Servo de Nuligo de IGLOO2 (vidu paĝon 13)
- SmartFusion2 Zeroization Servo Simulado (vidu paĝon 16)
Similaj simuladmetodoj povas esti aplikitaj al aliaj sistemservoj. Por kompleta listo de la malsamaj sistemaj servoj disponeblaj, iru al Apendico – Tipoj de Sistemaj Servoj (vidu paĝon 19).
2.5 IGLOO2 Serial Number Service Simulation
Por prepariĝi por simulado de servo de seria numero de IGLOO2, faru la paŝojn jene.
- Alvoku sisteman konstruiston por krei vian HPMS-blokon.
- Marku la markobutonon de HPMS-Sistemaj Servoj en la paĝo de Aparato-Trajtoj. Ĉi tio instruos la sistemkonstruiston elmontri la HPMS_FIC_0 SYS_SERVICES_MASTER businterfacon (BIF).
- Lasu ĉiujn aliajn markobutonojn nemarkitaj.
- Akceptu la defaŭlton en ĉiuj aliaj paĝoj kaj alklaku Fini por kompletigi la sistemkonstruan blokon. En la HDL-redaktilo de Libero® SoC, skribu la HDL-kodon por la FSM (File > Nova > HDL). Enmetu la jenajn tri ŝtatojn en via FSM.
INIT-stato (komenca stato)
SERV_PHASE (servopeta stato)
RSP_PHASE (servoresponda stato).
La sekva figuro montras la tri statojn de FSM.
Figuro 4 • Tri-ŝtata FSM En via HDL-kodo por la FSM, uzu la ĝustan komandan kodon ("01" Hex por seria numero-servo) por eniri la servopeton de la INIT-ŝtato.
- Konservu vian HDL file. La FSM aperas kiel komponanto en la Dezajna Hierarkio.
- Malfermu SmartDesign. Trenu kaj faligi vian supranivelan sisteman konstruan blokon kaj vian FSM-blokon en la SmartDesign-kanvason. El la katalogo, trenu kaj faligi la molan IP-kernon de CoreSysService en la SmartDesign-kanvason.
- Dekstre alklaku la molan IP-kernon de CoreSysService por malfermi la agordilon. Marku la markobutonon de Servo-Numera Servo (sub la Aparato kaj Dezajno-Informservoj
grupo) por ebligi servon de seria numero. - Lasu ĉiujn aliajn markobutonojn nemarkitaj. Alklaku OK por eliri la agordilon.
Figuro 5 • CoreSysServices mola IP Core Configurator
- Konektu la HPMS_FIC_0 SYS_SERVICES_MASTER BIF de la sistemo-konstruaĵbloko al la AHBL_MASTER BIF de la CoreSysService-bloko.
- Konektu la eliron de via HDL FSM-bloko al la enigo de la mola IP-kerno CoreSysService. Faru ĉiujn aliajn konektojn en la SmartDesign-kanvaso kiel montrite en la sekva figuro.
Figuro 6 • SmartDesign Canvas kun HDL-Bloko, CoreSysServices Soft IP kaj HPMS-Blokoj - En la SmartDesign-kanvaso, dekstre alklaku >Generu Komponanton por generi la supran Nivelan Dezajnon.
- En la Dezajna Hierarkio view, dekstre alklaku la altnivelan dezajnon kaj elektu krei Testbenkon > HDL .
- Uzu tekstredaktilon por krei tekston file nomita "status.txt" .
- Inkluzivi la komandon por sistema servo kaj la 128-bita seria numero. Por pliaj informoj, vidu Tabelon 1 (Komando/Respondaj Valoroj de Sistemo Servoj) en la CoreSysServices v3.1 Manlibro por la komandkodoj (Heks) esti uzataj por malsamaj sistemaj servoj. Por seria numero-servo, la komandkodo estas "01" Hex.
La formato de status.txt file por seria numero servo estas kiel sekvas.
< 2 Hekscifero CMD><32 Hekscifera Seria Numero>
Example: 01A1A2A3A4B1B2B3B4C1C2C3C4D1D2D3D4
Konservu la status.txt file en la dosierujo de Simulado de via projekto. La dezajno nun estas preta por simulado.
Post kiam la servo komenciĝis ekzekuto, mesaĝo indikanta la cellokon kaj serian numeron estas montrita en la ModelSim transskriba fenestro, kiel montrite en la sekva figuro.
Figuro 7 • ModelSim Simulation Transcript FenestroLa sistemregilo faras AHB-skribon al la adreso kun la seria numero. Post kompletigo de la servo, la RXFIFO de COMM_BLK estos ŝarĝita kun la servorespondo.
Notu: Por kompleta listo de la komandkodoj uzeblaj por malsamaj sistemaj servoj, vidu Tabelon 1 (Komando-/Respondaj Valoroj de Sistemoj) en CoreSysServices v3.1 Manlibro aŭ UG0450: SmartFusion2 SoC kaj IGLOO2 FPGA System Controller User Guide.
2.6 SmartFusion2 Serial Number Service Simulation
En ĉi tiu uzantgvidilo, BFM-komandoj (opcio 2) estas uzataj por aliri la sistemregilon por sistema servo. BFM-komandoj estas utiligitaj ĉar la Cortex-M3-procesoro estas havebla sur la aparato por BFM-simulado. BFM-komandoj permesas vin skribi rekte al kaj legi de la COMM BLK post kiam vi konas la memormapadon de la COMM_BLK.
Por prepari vian dezajnon por simulado de servo de la serio SmartFusion2, faru la sekvajn paŝojn.
- Trenu kaj faligi la MSS de la katalogo al la desegna kanvaso de via projekto.
- Malebligu ĉiujn MSS-ekspoziciojn krom la MSS_CCC, Restarigi Regilon, Interrompan Administradon kaj FIC_0, FIC_1 kaj FIC_2.
- Agordi la interrompan administradon por uzi MSS por ŝtopi interrompon.
- Preparu la serialnum.bfm file en tekstredaktilo aŭ en la HDL-redaktilo de Libero. Konservu la serialnum.bfm file en la dosierujo de Simulado de la projekto. La serialnum.bfm devus inkluzivi la sekvajn detalojn.
• Memormapado al la COMM BLK (CMBLK)
• Memormapado por interrompi administran periferion (FIIC)
• Komando por peto de servo de seria numero-sistemo ("01" Hex)
• Adreso por la loko de la seria numero
Eksample de la serialnum.bfm file estas kiel sekvas.
memmap FIIC 0x40006000; #Memoria Mapado al Interrompi Administradon
memmap CMBLK 0x40016000; #Memoria Mapado al COMM BLK
memmap DESCRIPTOR_ADDR 0x20000000; #Adresa loko por Seria Num
#Komanda Kodo en Deksesuma
konstanta CMD 0x1 # Komanda kodo por Serial NumberService
#FIIC-Agordaj Registroj
konstanta FICC_INTERRUPT_ENABLE0 0x0
#COMM_BLK-Agordaj Registroj
konstanta KONTROLO 0x00
konstanta STATO 0x04
konstanta INT_ENABLE 0x08
konstanta DATO8 0x10
konstanta DATO32 0x14
konstanta FRAME_START8 0x18
konstanta FRAME_START32 0x1C
proceduro serianum;
entjero x;
skribi w FIIC FICC_INTERRUPT_ENABLE0 0x20000000 #Agordu
#FICC_INTERRUPT_ENABLE0 # Registriĝi por ebligi COMBLK_INTR #
#interrompo de COMM_BLK-bloko al ŝtofo
#Petofazo
skribu w CMBLK CONTROL 0x10 # Agordi COMM BLK-kontrolo #Registriĝi al
ebligu translokigojn sur la COMM BLK-Interfaco
skribu w CMBLK INT_ENABLE 0x1 # Agordu COMM BLK Interrupt Enable
#Registriĝi por ebligi Interrompon por TXTOKAY (Korespondanta bito en la
#Statusa Registro)
waitint 19 # wait for COMM BLK Interrupt , Ĉi tie #BFM atendas
#till COMBLK_INTR estas asertita
readstore w CMBLK-STATO x # Legu COMM BLK-Stato Registru por #TXTOKAY
# Interrompi
agordu xx & 0x1
se x
skribu w CMBLK FRAME_START8 CMD # Agordu COMM BLK FRAME_START8
#Registriĝu por peti Servonumeron
endif
endif
waitint 19 # atendu COMM BLK Interrupt , Ĉi tie
#BFM atendas ĝis COMBLK_INTR estas asertita
readstore w CMBLK-STATO x # Legu COMM BLK-Stato Registru por
#TXTOKAY Interrompo
agordu xx & 0x1
agordu xx & 0x1
se x
skribu w CMBLK CONTROL 0x14 #Agordu COMM BLK-kontrolon
#Registriĝi por ebligi translokigojn sur la COMM BLK-Interfaco
skribu w CMBLK DATA32 DESCRIPTOR_ADDR
skribu w CMBLK INT_ENABLE 0x80
skribu w CMBLK CONTROL 0x10
endif
atendi 20
#Responda Fazo
atendu 19
readstore w CMBLK STATUS x
agordu xx & 0x80
se x
legkontrolo w CMBLK FRAME_START8 CMD
skribu w CMBLK INT_ENABLE 0x2
endif
atendu 19
readstore w CMBLK STATUS x
agordu xx & 0x2
se x
readcheck w CMBLK DATA8 0x0
skribu w CMBLK CONTROL 0x18
endif
atendu 19
readcheck w FIIC 0x8 0x20000000
readstore w CMBLK STATUS x
agordu xx & 0x2
se x
readcheck w CMBLK DATA32 DESCRIPTOR_ADDR
endif
readcheck w DESCRIPTOR_ADDR 0x0 0xE1E2E3E4; #Readcheck por kontroli S/N
readcheck w DESCRIPTOR_ADDR 0x4 0xC1C2C3C4; #Readcheck por kontroli S/N
readcheck w DESCRIPTOR_ADDR 0x8 0xB1B2B3B4; #Readcheck por kontroli S/N
readcheck w DESCRIPTOR_ADDR 0xC 0xA1A2A3A4; #Readcheck por kontroli S/N
reveni - Kreu la statuson. txt file en la HDL-redaktilo de Libero aŭ iu ajn tekstredaktilo. Inkluzivi la komandon de servo de la seria numero-sistema ("01" en Hex) kaj la seria numero en la statuso. txt file. Vidu la Manlibron de CoreSysServices v3.1 por uzi la ĝustan komandan kodon.
- La sintakso de ĉi tio file por serialnumera servo estas, <2 Hex-cifera CMD>< 32 Hex-cifera Seria Numero> . Ekzample: 01A1A2A3A4B1B2B3B4C1C2C3C4E1E2E3E4.
- Konservu la staton .txt file en la dosierujo de Simulado de la projekto.
- Redaktu la uzanton .bfm (situanta en la dosierujo Simulado) por inkluzivi la serianumeron. bfm file kaj voku la serian numeron proceduron kiel montrite en la sekva koda fragmento.
inkluzivi “serialnum.bfm” #include the serialnum.bfm
proceduro uzanto_ĉefa;
print "INFO:Simulado Komencas";
print "INFO:Serva Komando Kodo en Decimalo:%0d", CMD ;
voki serialnum; #voku la serianuman proceduron
print "INFO:Simulado Finiĝas";
reveni - En la Dezajna Hierarkio view, generu la testbenkon (Dekstre-klaku, Supra Nivela Dezajno> Krei Testbenkon> HDL) kaj vi pretas ruli serian numeron-servan simuladon.
Post kiam la servo komenciĝis ekzekuto, mesaĝo indikanta la cellokon kaj serian numeron estas montrata. La sistemregilo faras AHB-skribon al la adreso kun la seria numero. Post kompletigo de la servo, la RXFIFO de COMM_BLK estos ŝarĝita kun la servorespondo. La transskriba fenestro de ModelSim montras la adreson kaj la serian numeron ricevitan kiel montrite en la sekva figuro.
Figuro 8 • SmartFusion2 Serial Number Service Simulation en ModelSim Transcript Fenestro
2.7 IGLOO2 Zeroization Servo Simulado
Por prepariĝi por simulado de servo de nuligo de IGLOO2, faru la paŝojn jene.
- Alvoku sisteman konstruiston por krei la HPMS-blokon. Marku la markobutonon de HPMS-Sistemaj Servoj en la Aparato Trajtoj SYS_SERVICES_MASTER BIF. Lasu ĉiujn aliajn markobutonojn nemarkitaj. Akceptu la defaŭlton en ĉiuj aliaj paĝoj kaj alklaku paĝon. Ĉi tio instrukcias la sistemkonstruiston elmontri la HPMS_FIC_0 Fini por kompletigi la agordon de la sistemkonstruanto bloko.
- En la HDL-redaktilo de Libero SoC, skribu la HDL-kodon por la FSM. En via HDL-kodo por la FSM, inkludu la sekvajn tri ŝtatojn.
INIT-stato (komenca stato)
SERV_PHASE (servopeta stato)
RSP_PHASE (serva responda stato)
La sekva figuro montras la tri statojn de FSM.
Figuro 9 • Tri-ŝtata FSM - En via HDL-kodo, uzu la komandan kodon "F0" (Hex) por eniri la servopeton de la INIT-ŝtato.
- Konservu vian HDL file.
- Malfermu SmartDesign, trenu kaj faligi vian supranivelan sistemkonstruan blokon kaj vian HDL FSM-blokon en la SmartDesign-kanvason. El la katalogo, trenu kaj faligi la molan IP-kernon de CoreSysService en la SmartDesign-kanvason.
- Dekstre alklaku la molan IP-kernon de CoreSysServices, por malfermi la agordilon kaj kontroli la markobutonon de Zeroization Service sub la grupo de Datumaj Servoj. Lasu ĉiujn aliajn markobutonojn nemarkitaj. Klaku por OK eliri.
Figuro 10 • CoreSysServices Configurator
- Konektu la HPMS_FIC_0 SYS_SERVICES_MASTER BIF de la sistemo-konstruaĵbloko al la AHBL_MASTER BIF de la CoreSysService-bloko.
- Konektu la eliron de via HDL FSM-bloko al la enigo de la mola IP-kerno CoreSysService. Faru ĉiujn aliajn konektojn en la SmartDesign-kanvaso.
Figuro 11 • SmartDesign Canvas kun HDL-Bloko, CoreSysServices Soft IP kaj HPMS-Blokoj
9. En la SmartDesign-kanvaso, generu la altnivelan dezajnon (dekstre alklaku > Generu Komponon).
10. En la Dezajna Hierarkio view, dekstre alklaku la altnivelan dezajnon kaj elektu krei Testbench > HDL. Vi nun pretas ruli simuladon.
Post kiam la servo komencis ekzekuton, mesaĝo indikante ke la nuligo estis kompletigita en la tempo x estas montrata kiel montrite en la sekva figuro.
Figuro 12 • IGLOO2 Zeroization System Service Simulation Transcript Fenestro
La sistemregilo faras AHB-skribon al la adreso kun la seria numero. Post kompletigo de la servo, la RXFIFO de COMM_BLK estos ŝarĝita kun la servorespondo. Devus notiĝi ke la simuladmodelo simulas nuligon ĉesigante la simuladon prefere ol nuligante la dezajnon mem.
Noto: Por kompleta listo de la komandkodoj uzotaj por malsamaj sistemaj servoj, vidu Tabelon 1 (Komandaj/Respondaj Valoroj de Sistemaj Servoj) en la CoreSysServices v3.1 Manlibro:. aŭ UG0450: SmartFusion2 SoC kaj IGLOO2 FPGA System Controller User Guide
2.8 SmartFusion2 Zeroization Servo Simulado
En ĉi tiu gvidilo, BFM-komandoj (opcio 2) estas uzataj por aliri la sisteman regilon por sistema servo.
BFM-komandoj estas utiligitaj ĉar la Cortex-M3-procesoro estas havebla sur la aparato por BFM-simulado. BFM-komandoj permesas vin skribi rekte al kaj legi de la COMM BLK post kiam vi konas la memormapadon de la COMM_BLK. Por prepari vian dezajnon por simulado de servo de nuligo de SmartFusion2, faru la sekvajn paŝojn.
- Trenu kaj faligi la MSS de la katalogo al la desegna kanvaso de via projekto.
- Malebligu ĉiujn MSS-ekspoziciojn krom la MSS_CCC, Restarigi Regilon, Interrompan Administradon kaj FIC_0, FIC_1 kaj FIC_2.
- Agordi la interrompan administradon por uzi MSS por ŝtopi interrompon.
- Preparu la zeroizaton.bfm file en tekstredaktilo aŭ en HDL-redaktilo de Libero. Via nuligo. bfm devus inkluzivi:
- Memormapado al la COMM BLK (CMBLK)
- Memormapado por interrompi administradan periferion (FIIC)
- Komando por nuligita servopeto ("F0" Hex por zeroigo)
Eksample de la serialnum.bfm file estas montrita en la sekva figuro.
Figuro 13 • Zeroization.bfm por SmartFusion2 Zeroization System Services Simulation
5. Konservu la zeroization.bfm file en la dosierujo de Simulado de la projekto. uzanto.bfm
6. Redaktu la (situantan en la dosierujo zeroization.bfm Simulation) por inkluzivi la uzante la sekvan kodon.
inkluzivi “zeroization.bfm” #include zeroization.bfm file proceduro uzanto_ĉefa;
print "INFO:Simulado Komencas";
print "INFO:Serva Komando Kodo en Decimalo:%0d", CMD ;
voki nuligon; #voko nuligita proceduro reveno
7. En la Dezajna Hierarkio , generu la Testbenkon (Dekstre alklaku supran nivelon > Krei Testbenkon > HDL ) kaj vi pretas ruli la SmartFusion2 nuligitan simuladon.
Post kiam la servo komencis ekzekuti, mesaĝo indikante ke la aparato estis nuligita je la tempo x estas montrata. Devus notiĝi ke la simuladmodelo simulas nuligon ĉesigante la simuladon prefere ol nuligante la dezajnon mem. La transskriba fenestro de ModelSim en la sekva figuro montras, ke la aparato estis nuligita.
Figuro 14 • SmartFusion2 Zeroization System Service Simulation Log
Apendico: Specoj De Sistemaj Servoj
Ĉi tiu ĉapitro priskribas diversajn specojn de sistemaj servoj.
3.1 Simulaj Mesaĝaj Servoj
La sekvaj sekcioj priskribas diversajn specojn de simulaj mesaĝservoj.
3.1.1 Ekbrilo*Flosi
La simulado eniros la staton Flash*Freeze kiam la taŭga serva peto estas sendita al la COMM_BLK de aŭ la FIC (kaze de IGLOO2-aparatoj) aŭ la Cortex-M3 (en SmartFusion2-aparatoj). Post kiam la servo estis detektita de la sistemregilo, la simulado estos ĉesigita kaj mesaĝo indikante ke la sistemo eniris Flash*Freeze (kune kun la elekto elektita) estos montrata. Post rekomenco de la simulado, la RXFIFO de la COMM_BLK estos plenigita kun la servorespondo konsistanta el la servokomando kaj statuso. Oni devas rimarki, ke ne ekzistas simuladsubteno por Flash*Freeze-eliro.
3.1.2 Nuligo
Nuligo estas nuntempe la nura altprioritata servo ene de sistemaj servoj prilaboritaj de la COMM_BLK. La simulado eniros la nuligan staton tuj kiam la ĝusta serva peto estos detektita de la COMM_BLK. Ekzekuto de aliaj servoj estos ĉesigita kaj forĵetita de la sistemregilo, kaj la nuligita servo estos efektivigita anstataŭe. Post kiam la nuligo-servopeto estas detektita, la simulado ĉesas kaj mesaĝo indikante ke la sistemo eniris nuligon estas montrita. Manaj rekomencoj de simulado post nuligo estas nevalidaj.
3.2 Servoj pri Datumoj
La sekvaj sekcioj priskribas diversajn specojn de datummontriloj.
3.2.1 Seria Numero
La seria numero-servo skribos 128-bitan serian numeron al adresloko provizita kiel parto de la serva peto. Ĉi tiu 128-bita parametro povas esti agordita per Sistemservo-Simula Subteno file (vidu paĝon 22). Se la 128-bita seria numero-parametro ne estas difinita ene de la file, defaŭlta seria numero de 0 estos uzata. Post kiam la servo komenciĝis ekzekuto, mesaĝo indikanta la cellokon kaj serian numeron estas montrata. La sistemregilo faras AHB-skribon al la adreso kun la seria numero. Post kompletigo de la servo, la RXFIFO de COMM_BLK estos ŝarĝita kun la servorespondo.
3.2.2 Uzantkodo
La uzantkodservo skribas 32-bitan uzantkodan parametron al adresloko disponigita kiel parto de la servopeto. Ĉi tiu 32-bita parametro povas esti agordita per la Sistemo-Serva Simulado-Subteno file (vidu paĝon 22). Se la 32-bita parametro ne estas difinita ene de la file, defaŭlta valoro de 0 estas uzata. Post kiam la servo komenciĝis ekzekuto, mesaĝo indikanta la cellokon kaj uzantkodon estas montrata. La sistemregilo faras AHB-skribon al la adreso kun la 32-bita parametro. Post kompletigo de la servo, la RXFIFO de la COMM_BLK estas ŝarĝita kun la servorespondo, kiu inkludas la servokomandon kaj celadreson.
3.3 Servoj pri Datumaj Priskribantoj
La sekvaj sekcioj priskribas diversajn specojn de datumpriskribilaj servoj.
3.3.1 AES
La simuladsubteno por ĉi tiu servo temas nur pri movi la originajn datumojn de la fonto al la celloko, sen efektive fari ajnan ĉifradon/malĉifradon de la datumoj. La datumoj, kiuj devas esti ĉifritaj/malĉifritaj kaj la datumstrukturo, devas esti skribitaj antaŭ ol la serva peto estas sendita. Post kiam la servo komenciĝis ekzekuto, mesaĝo indikanta la ekzekuton de la AES-servo estas montrata. La AES-servo legas kaj la datumstrukturon kaj datumojn por esti ĉifrita/malĉifrita. La originaj datumoj estas kopiitaj kaj skribitaj al la adreso disponigita ene de la datumstrukturo. Post kiam la servo estas kompletigita, la komando, statuso kaj datumstrukturadreso estas puŝitaj en la RXFIFO.
Notu: Ĉi tiu servo estas nur por 128-bitaj kaj 256-bitaj datenoj, kaj ambaŭ 128-bitaj kaj 256-bitaj datenoj havas malsamajn datumstrukturlongojn.
3.3.2 SHA 256
La simuladsubteno por ĉi tiu servo temas nur pri movi la datumojn, sen efektive fari ajnan hashing sur la datumoj. La funkcio SHA 256 estas desegnita por generi 256-bitan hash-ŝlosilon bazitan sur la eniga datumoj. La datumoj kiuj devas esti hakitaj kaj la datumstrukturo devas esti skribitaj al siaj respektivaj adresoj antaŭ ol la servopeto estas sendita al la COMM_BLK. La longo en bitoj kaj montrilo difinita ene de la SHA 256 datenstrukturo devas ĝuste egalrilati al la longo kaj adreso de la datenoj por esti haŝita. Post kiam la servo komenciĝis ekzekuto, mesaĝo indikanta la ekzekuton de la SHA 256 servo estas montrata. Prefere ol ekzekuti la realan funkcion, defaŭlta hashklavo estos skribita al la celmontrilo de la datumstrukturo. La defaŭlta hashŝlosilo estas heks "ABCD1234". Por agordi kutiman ŝlosilon, iru al la sekcio de Parametra Agordo (vidu paĝon 23). Post kompletigo de la servo, la RXFIFO estas ŝarĝita kun la servorespondo konsistanta el la servokomando, statuso, kaj SHA 256 datenstrukturmontrilo.
3.3.3 HMAC
La simuladsubteno por ĉi tiu servo temas nur pri movo de datumoj, sen efektive fari ajnan hashing sur la datumoj. La datumoj kiuj devas esti hakitaj kaj la datumstrukturo devas esti skribitaj al siaj respektivaj adresoj antaŭ ol la servopeto estas sendita al la COMM_BLK. La HMAC-servo postulas 32-bajtan ŝlosilon aldone al la longo en bajtoj, fontmontrilo, kaj celmontrilo. Post kiam la servo komencis ekzekuton, mesaĝo indikanta la ekzekuton de la HMAC-servo estas montrata. La ŝlosilo estas legita kaj la 256-bita ŝlosilo estas kopiita de la datumstrukturo al la celmontrilo. Post kompletigo de la servo, la RXFIFO estas ŝarĝita kun la servorespondo konsistanta el la servokomando, statuso, kaj HMAC-datenstrukturmontrilo.
3.3.4 DRBG Generu
Generado de hazardaj bitoj estas farita de ĉi tiu servo. Devus notiĝi ke la simuladmodelo ne precize sekvas la saman hazardan nombrogeneracian metodaron uzatan de la silicio. La datumstrukturo devas esti ĝuste skribita en sian celitan lokon antaŭ ol la servopeto estas sendita al la COMM_BLK. La datumstrukturo, celmontrilo, longo kaj aliaj koncernaj datumoj estas legitaj de la sistemregilo. La DRBG genera servo generas pseŭdohazardan aron de datumoj de la petita longo (0-128). La sistemregilo skribas la hazardajn datumojn en la celmontrilon. Mesaĝo indikanta la ekzekuton de DRBG genera servo estas montrita en simulado. Post kiam la servo estas kompletigita, la komando, statuso kaj datumstrukturadreso estas puŝitaj en la RXFIFO. Se la petita datumlongo ne estas en la intervalo de 0-128, erarkodo de "4" (Max Generate) estos puŝita en la RXFIFO. Se la plia datumlongo ne estas ene de la Peto Tro Granda gamo de 0-128, erarkodo de "5" (Maksimuma Longo de Pliaj Datumoj Superita) estos puŝita en la RXFIFO. Se kaj la petita datenlongo por generi kaj plia datumlongo ne estas ene de ilia difinita intervalo (0-128), erarkodo de "1" ( Katastrofa Eraro) estas puŝita en la RXFIFO.
3.3.5 DRBG Restarigi
La fakta rekomencigita funkcio estas plenumita forigante DRBG-instancigojn kaj restarigante DRBG. Post kiam la serva peto estas detektita, la simulado montras mesaĝon de DRBG-Restarigi servon finitan. La respondo, kiu inkluzivas la servon kaj statuson, estas puŝita en la RXFIFO.
3.3.6 Memtesto de DRBG
La simuladsubteno por la DRBG-memtesto ne efektive efektivigas la mem-testfunkcion. Post kiam la servopeto estas detektita, la simulado montros DRBG-memtestan servo-ekzekutan mesaĝon. La respondo, kiu inkluzivas la servon kaj statuson, estos puŝita en la RXFIFO.
3.3.7 DRBG Instanciigi
La simuladsubteno por la DRBG instantiate servo ne fakte elfaras la instantiate servo. La datumstrukturo devas esti ĝuste skribita en sian celitan lokon antaŭ ol la servopeto estas sendita al la COMM_BLK. Post kiam la serva peto estas detektita, la strukturo kaj personigoŝnuro difinitaj ene de la MSS-adresspaco estos legitaj. La simulado montros mesaĝon indikante, ke la DRBG Instantiate-servo komencis ekzekuton. Post kiam la servo estas kompleta, la respondo, kiu inkluzivas la servokomandon, statuson kaj montrilon al la datumstrukturo, estos puŝita en la RXFIFO. Se la datumlongo (PERSONALIZATIONLENGTH) ne estas ene de la intervalo de 0-128, erarkodo de "1" ( Katastrofa Eraro ) estos puŝita en la RXFIFO por la statuso.
3.3.8 DRBG Neinstancigi
La simuladsubteno por la DRBG neinstanciigita servo ne efektive elfaras la seninstanciigitan servon de forigado de antaŭe instantiigita DRBG, kiel la silicio faras. La servopeto devas inkluzivi kaj la komandon kaj DRBG-tenilon. Post kiam la servopeto estas detektita, la DRBG-tenilo estos konservita. La simulado montros mesaĝon indikante ke la DRBG neinstanciigita servo estis pravigita. Post kiam la servo estas kompleta, la respondo, kiu inkluzivas la servokomandon, statuson kaj DRBG-tenilon, estos puŝita en la RXFIFO.
3.3.9 DRBG Resemo
Pro la simula naturo de la sistemservobloko, la DRBG-resema servo en simulado ne estas efektivigita aŭtomate post kiam ĉiu 65535 DRBG generas servojn. La datumstrukturo devas esti ĝuste skribita en sian celitan lokon antaŭ ol la servopeto estas sendita al la COMM_BLK. Post kiam la servopeto estas detektita, la strukturo kaj kroma eniga parametro en la MSS-adresspaco estos legitaj. Mesaĝo indikante, ke la DRBG-reseedservo komenciĝis ekzekutita, estos montrata. La datumstrukturo devas esti ĝuste skribita en sian celitan lokon antaŭ ol la servopeto estas sendita al la COMM_BLK. Post kiam la servo estas kompleta, la respondo, kiu inkluzivas la servokomandon, statuson kaj montrilon al la datumstrukturo, estos puŝita en la RXFIFO.
3.3.10 Ŝlosilarbo
La fakta funkcio ne estas efektivigita en simulado por la servo KeyTree. La KeyTree-serva datenstrukturo konsistas el 32-bajta ŝlosilo, 7-bita optipdatenoj (MSB ignorita), kaj 16-bajta pado. La datumoj ene de la datumstrukturo devas esti skribitaj al siaj respektivaj adresoj, antaŭ ol la servopeto estas sendita al la COMM_BLK. Post kiam la servo komenciĝis ekzekuto, mesaĝo indikanta la ekzekuton de la servo KeyTree estos montrata. La enhavo de la datumstrukturo estos legita, la 32-bajta ŝlosilo estos stokita, kaj la origina ŝlosilo situanta ene de la datumstrukturo estas anstataŭita. Post ĉi tiu AHB-skribo, la valoro de la ŝlosilo ene de la datumstrukturo ne devus ŝanĝiĝi, sed AHB-transakcioj por la skribo okazos. Post kompletigo de la servo, la RXFIFO estas ŝarĝita kun la servorespondo, konsistante el la servokomando, statuso, kaj la KeyTree-datumstrukturmontrilo.
3.3.11 Defia Respondo
La fakta funkcio, kiel aŭtentikigo de la aparato, ne estas efektivigita en simulado por la defia respondservo. La datumstrukturo por ĉi tiu servo postulas montrilon al la bufro, por ricevi 32-bitan rezulton, 7-bitan optipon kaj 128-bitan padon. La datumoj ene de la datumstrukturo devas esti skribitaj al siaj respektivaj adresoj antaŭ ol la servopeto estas sendita al la COMM_BLK. Post kiam la servo komenciĝis ekzekuto, mesaĝo indikanta la ekzekuton de la defia respondservo estos montrita. Senmarka 256-bita respondo estos skribita en la montrilon disponigitan ene de la datumstrukturo. La defaŭlta ŝlosilo estas agordita kiel heks "ABCD1234". Por akiri propran ŝlosilon, kontrolu Parametran Agordon (vidu paĝon 23). Post kompletigo de la servo, la RXFIFO estos ŝarĝita kun la servorespondo, konsistante el la servokomando, statuso, kaj defioresponda datumstrukturmontrilo.
3.4 Aliaj Servoj
La sekvaj sekcioj priskribas diversajn aliajn sistemajn servojn.
3.4.1 Digesta Kontrolo
La fakta funkcio de rekalkulado kaj komparado de digestoj de elektitaj komponentoj ne estas efektivigita por la digestkontrolservo en simulado. Ĉi tiu serva peto konsistas el servaj komandoj kaj servaj elektoj (5-bita LSB). Post kiam la servo komenciĝis ekzekuto, mesaĝo detaliganta la ekzekuton de la digesta kontrolo servo estos montrita, kune kun la elektitaj opcioj de la peto. Post kompletigo de la servo, la RXFIFO estos ŝarĝita kun la servorespondo, konsistante el la servo-komando, kaj la digesta kontrolo-paso/malsukcesa flagoj.
3.4.2 Nerekonita Komando-Respondo
Kiam nerekonita serva peto estas sendita al la COMM_BLK, la COMM_BLK aŭtomate respondos per nerekonita komandmesaĝo puŝita en la RXFIFO. La mesaĝo konsistas el la komando sendita en la COMM_BLK kaj la nerekonita komanda statuso (252D). Vidiĝa mesaĝo indikante ke nerekonita servopeto estis detektita ankaŭ estos montrata. La COMM_BLK revenos al neaktiva stato, atendante akcepti la sekvan servopeton.
3.4.3 Nesubtenataj Servoj
Nesubtenitaj servoj agordita al la COMM_BLK ekigos mesaĝon en simulado indikante ke la servopeto estas nesubtenata. La COMM_BLK revenos al neaktiva stato, atendante akcepti la sekvan servopeton. La PINTERRUPT ne estos agordita, indikante ke servo finiĝis. La nuna listo de nesubtenataj servoj inkluzivas: IAP, ISP, Aparato-Atestilo, kaj la DESIGNVER-Servo.
3.5 Sistemo Servoj Simulado Subteno File
Por subteni sistemajn servojn simuladon, tekston file vokis, "status.txt" povas esti uzata por pasi instrukciojn pri la postulata konduto de la simuladmodelo al la simuladmodelo. Ĉi tio file devus troviĝi en la sama dosierujo, de kiu la simulado estas kurita. La file povas esti uzata, interalie, por devigi certajn erarrespondojn por la sistemservoj subtenataj aŭ eĉ por fiksi kelkajn parametrojn necesajn por simulado, (ekz.ample, seria numero). La maksimuma nombro da linioj subtenataj en la "status.txt" file estas 256. Instrukcioj kiuj aperas post linio numero 256 ne estos uzataj en la simulado.
3.5.1 Devigi Erarajn Respondojn
La uzanto povas devigi certan erarrespondon por aparta servo dum testado pasante la informojn al la simuladmodelo uzante la "status.txt" file, kiu devus esti metita en la dosierujon de la simulado estas rulita. Por devigi erarajn respondojn al certa servo, la komando kaj la bezonata respondo estu tajpita en la sama linio en la sekva formato:ample, al Command> ; instrukcii la simuladmodelon generi MSS-memor-aliran erarrespondon al la seria numero-servo, la komando estas kiel sekvas.
Servo: Seria Numero: 01
Erarmesaĝo petita: MSS Memory Access Eraro: 7F
Vi devus havi la linion 017F enigita en "status.txt" file.
3.5.2 Parametro-Agordo
La "status.txt" file ankaŭ povas esti uzata por agordi kelkajn parametrojn necesajn en simulado. Kiel eksample, por agordi la 32-bitan parametron por la uzantkodo, la formato de la linio devas esti en ĉi tiu ordo: <32 Bitoj UZERKODO>; kie ambaŭ valoroj estas enmetitaj en deksesuma. Por agordi la 128-bitan parametron por la seria numero, la formato de la linio devas esti en ĉi tiu sinsekvo: <128 Bita Seria Numero [127:0]> ; kie ambaŭ valoroj estas enmetitaj en deksesuma. Por agordi la 256-bitan parametron por la Ŝlosilo SHA 256; la formato de la linio devas esti en ĉi tiu ordo: <256 Bita Ŝlosilo [255:0]>; kie ambaŭ valoroj estas enmetitaj en deksesuma. Por agordi la 256-bitan parametron por la defia respondŝlosilo, la formato de la linio devas esti en ĉi tiu sinsekvo: <256 Bita Ŝlosilo [255:0]>;
kie ambaŭ valoroj estas enmetitaj en deksesuma.
3.5.3 Aparato Prioritato
Sistemservoj kaj la COMM_BLK utiligas altan prioritatan sistemon. Nuntempe, la nura altprioritata servo estas nuliĝo. Por plenumi altprioritan servon, dum alia servo estas ekzekutita, la nuna servo estas haltita kaj la pli alta prioritata servo estos ekzekutita anstataŭe. La COMM_BLK forĵetos la nunan servon por plenumi la pli altan prioritatan servon. Se pluraj ne-altprioritaj servoj estas senditaj antaŭ la kompletigo de nuna servo, tiuj servoj estos vicigitaj ene de la TXFIFO. Post kiam la nuna servo finiĝos, la sekva servo en la TXFIFO estos efektivigita.
Microsemi faras neniun garantion, reprezentadon aŭ garantion koncerne la informojn enhavitajn ĉi tie aŭ la taŭgecon de ĝiaj produktoj kaj servoj por iu ajn aparta celo, nek Microsemi supozas ajnan respondecon de la apliko aŭ uzo de ajna produkto aŭ cirkvito. La produktoj venditaj ĉi-suba kaj ĉiuj aliaj produktoj venditaj de Microsemi estis submetitaj al limigitaj provoj kaj ne devus esti uzataj kune kun misi-kritika ekipaĵo aŭ aplikoj. Oni kredas, ke ajnaj agadospecifoj estas fidindaj sed ne estas kontrolitaj, kaj Aĉetanto devas fari kaj plenumi ĉiujn agadojn kaj aliajn provojn de la produktoj, sole kaj kune kun aŭ instalitaj en iuj finaj produktoj. Aĉetanto ne dependas de iuj datumoj kaj agado-specifoj aŭ parametroj provizitaj de Microsemi. Estas la respondeco de la Aĉetanto sendepende determini taŭgecon de iuj produktoj kaj testi kaj kontroli la samon. La informoj provizitaj de Microsemi ĉi-sube estas provizitaj "kiel estas, kie estas" kaj kun ĉiuj misfunkciadoj, kaj la tuta risko asociita kun tiaj informoj estas tute kun la Aĉetanto. Microsemi ne donas, eksplicite aŭ implicite, al iu ajn partio ajnajn patentajn rajtojn, licencojn, aŭ ajnajn aliajn IP-rajtojn, ĉu koncerne tiajn informojn mem aŭ io ajn priskribitan per tiaj informoj. Informoj provizitaj en ĉi tiu dokumento estas proprieta de Microsemi, kaj Microsemi rezervas la rajton fari ajnajn ŝanĝojn al la informoj en ĉi tiu dokumento aŭ al ajnaj produktoj kaj servoj iam ajn sen avizo.
Microsemi, tute posedata filio de Microchip Technology Inc. (Nasdaq: MCHP), ofertas ampleksan biletujon de duonkonduktaĵoj kaj sistemaj solvoj por aerospaco kaj defendo, komunikado, datumcentro kaj industriaj merkatoj. Produktoj inkluzivas alt-efikecajn kaj radiad-harditajn analogajn mikssignalajn integrajn cirkvitojn, FPGAojn, SoCojn kaj ASICojn; produktoj pri administrado de potenco; tempaj kaj sinkronigaj aparatoj kaj precizaj tempsolvoj, fiksante la mondan normon por tempo; aparatoj pri voĉa prilaborado; RF-solvoj; diskretaj komponantoj; entreprenaj stokado kaj komunikado solvoj; sekureco teknologioj kaj skalebla anti-tamper produktoj; Eterretaj solvoj; Power-over-Ethernet ICs kaj midspans; same kiel laŭmendajn dezajnokapablojn kaj servojn. Microsemi havas ĉefsidejon en Aliso Viejo, Kalifornio, kaj havas ĉirkaŭ 4,800 dungitojn tutmonde. Lernu pli ĉe www.microsemi.com.
Microsemi Ĉefsidejo
One Enterprise, Aliso Viejo,
CA 92656 Usono
Ene de Usono: +1 800-713-4113
Ekster Usono: +1 949-380-6100
Vendo: +1 949-380-6136
Fakso: +1 949-215-4996
Retpoŝto: vendoj.support@microsemi.com
www.microsemi.com
© 2018 Microsemi. Ĉiuj rajtoj rezervitaj. Microsemi kaj la Microsemi-emblemo
estas varmarkoj de Microsemi Corporation. Ĉiuj aliaj varmarkoj kaj servo
markoj estas posedaĵo de iliaj respektivaj posedantoj.
Dokumentoj/Rimedoj
![]() |
Microsemi UG0837 IGLOO2 kaj SmartFusion2 FPGA Sistemo Servoj Simulado [pdf] Uzantogvidilo UG0837, UG0837 IGLOO2 kaj SmartFusion2 FPGA System Services Simulation, IGLOO2 kaj SmartFusion2 FPGA System Services Simulation, SmartFusion2 FPGA System Services Simulation, FPGA System Services Simulation, Services Simulation |