UG0837
Guida d'usu
IGLOO2 è SmartFusion2 FPGA
Simulazione di servizii di sistema
ghjugnu 2018
Storia di rivisione
A storia di rivisione descrive i cambiamenti chì sò stati implementati in u documentu. I cambiamenti sò listati per rivisione, cuminciendu cù a publicazione più attuale.
1.1 Revisione 1.0
A Revision 1.0 hè stata publicata in June 2018. Era a prima publicazione di stu documentu.
Simulazione di servizii di sistema FPGA IGLOO2 è SmartFusion2
U bloccu di servizii di sistema di a famiglia SmartFusion®2 FPGA presenta una cullizzioni di servizii rispunsevuli di diverse attività. Questi includenu servizii di messagiu di simulazione, servizii di puntatore di dati è servizii di descrittore di dati. I servizii di u sistema ponu accede à traversu u Cortex-M3 in SmartFusion2 è da u tissu FPGA attraversu u controller d'interfaccia di tissu (FIC) per SmartFusion2 è IGLOO®2. Questi metudi d'accessu sò mandati à u cuntrollu di u sistema attraversu COMM_BLK. U COMM_BLK hà una interfaccia avanzata di bus periferica (APB) è agisce cum'è un passaghju di messagiu per scambià dati cù u controller di u sistema. E dumande di serviziu di u sistema sò mandate à u cuntrollu di u sistema è e risposte di u serviziu di u sistema sò mandate à u CoreSysService attraversu u COMM BLK. U locu di l'indirizzu per u COMM_BLK hè dispunibule in u subsistema di microcontroller (MSS) / sottumetu di memoria d'altu rendiment (HPMS). Per i dettagli, vede u UG0450: SmartFusion2 SoC è IGLOO2 FPGA System Controller.
Guida d'usu
L'illustrazione seguente mostra u flussu di dati di i servizii di u sistema.
Figura 1 • Diagramma di flussu di dati di u serviziu di u sistemaPer a simulazione di serviziu di u sistema IGLOO2 è SmartFusion2, avete bisognu di mandà richieste di serviziu di u sistema è verificate e risposte di u serviziu di u sistema per verificà chì a simulazione hè curretta. Stu passu hè necessariu per accede à u controller di u sistema, chì furnisce i servizii di u sistema. A manera di scrive è leghje da u cuntrollu di u sistema hè diversu per i dispositi IGLOO2 è SmartFusion2. Per SmartFusion2, u Coretex-M3 hè dispunibule è pudete scrive è leghje da u controller di u sistema utilizendu cumandamenti di u modellu funziunale di bus (BFM). Per IGLOO2, u Cortex-M3 ùn hè micca dispunibule è u cuntrollu di u sistema ùn hè micca accessibile cù cumandamenti BFM.
2.1 Tipi di servizii di sistema dispunibuli
Trè tippi diffirenti di servizii di sistema sò dispunibuli è ogni tipu di serviziu hà diversi sottotipi.
servizii di messagiu di simulazione
servizii di puntatore di dati
servizii di descrizzione di dati
U capitulu Appendice -Tipi di servizii di sistema (vede a pagina 19) di sta guida descrive i diversi tipi di servizii di sistema. Per più infurmazione nantu à i servizii di u sistema, vede UG0450: SmartFusion2 SoC è IGLOO2 FPGA System Controller User Guide .
2.2 IGLOO2 System Service Simulation
I servizii di u sistema implicanu scrittura è lettura da u controller di u sistema. Per scrive è leghje da u cuntrollu di u sistema per scopi di simulazione, avete bisognu di fà i passi cum'è seguita.
- Instanziate u core IP soft CoreSysServices, dispunibule in u catalogu SmartDesign.
- Scrivite u codice HDL per una macchina à stati finiti (FSM).
L'interfaccia HDL FSM cù u CoreSysServices Core, chì serve cum'è u maestru di a tela di u bus AHBLite. U core CoreSysServices inizia a dumanda di serviziu di u sistema à u COMM BLK è riceve risposte di u serviziu di u sistema da u COMM BLK attraversu u FIC_0/1, u controller di l'interfaccia di tela cum'è mostra in l'illustrazione seguente.
Figura 2 • IGLOO2 System Services Simulation Topology2.3 Simulazione di serviziu di u sistema SmartFusion2
Per simulà i servizii di u sistema in i dispositi SmartFusion2, avete bisognu di scrive è leghje da u controller di u sistema. Dui opzioni sò dispunibili per accede à u controller di u sistema per scopi di simulazione.
Opzione 1 - Scrivite u codice HDL per un FSM per interfaccia cù u core IP soft CoreSysService, chì serve cum'è un maestru di tela AHBLite è inizia a dumanda di serviziu di u sistema à COMM BLK è riceve risposte di serviziu di u sistema da COMM BLK attraversu l'interfaccia di tela FIC_0/1 cum'è mostra in l'illustrazione seguente.
Figura 3 • SmartFusion2 System Services Simulation Topology
Opzione 2 - Cume u Cortex-M3 hè dispunibule per i dispositi SmartFusion2, pudete aduprà cumandamenti BFM per scrive direttamente è leghje da u spaziu di memoria di u controller di u sistema.
Utilizà i cumandamenti BFM (opzione 2) salva a necessità di scrive i codici HDL per l'FSM. In questa guida d'utilizatore, l'opzione 2 hè aduprata per mostrà a simulazione di servizii di sistema in SmartFusion2. Cù sta opzione, u spaziu di memoria di u cuntrollu di u sistema hè accessu per scopre a mappa di memoria di u COMM BLK è u bloccu di u cuntrollu di interruzzione di l'interfaccia di tissu (FIIC) quandu scrivite i vostri cumandamenti BFM.
2.4 Simulazione Esamples
A guida d'utilizatore copre e seguenti simulazioni.
- IGLOO2 Serial Number Service Simulation (vede a pagina 5)
- Simulazione di serviziu di u numeru di serie SmartFusion2 (vede a pagina 8)
- IGLOO2 Zeroization Service Simulation (vede a pagina 13)
- SmartFusion2 Zeroization Service Simulation (vede a pagina 16)
I metudi di simulazione simili ponu esse applicati à altri servizii di sistema. Per una lista cumpleta di i diversi servizii di sistema dispunibuli, andate à Appendice – Tipi di servizii di sistema (vede a pagina 19).
2.5 IGLOO2 Serial Number Service Simulation
Per preparà a simulazione di serviziu di u numeru di serie IGLOO2, eseguite i passi cum'è seguita.
- Invocate u costruttore di sistema per creà u vostru bloccu HPMS.
- Verificate a casella di cuntrollu di i servizii di u sistema HPMS in a pagina Funzioni di u dispositivu. Questu hà urdinatu à u custruttore di u sistema per espose l'interfaccia di bus HPMS_FIC_0 SYS_SERVICES_MASTER (BIF).
- Lasciate tutte l'altri caselle di spunta micca marcate.
- Accettate u predeterminatu in tutte l'altri pagine è cliccate Finisci per compie u bloccu di u custruttore di u sistema. In l'editore HDL di Libero® SoC, scrive u codice HDL per u FSM (File > Novu > HDL). Includite i seguenti trè stati in u vostru FSM.
Statu INIT (statu iniziale)
SERV_PHASE (statu di dumanda di serviziu)
RSP_PHASE (statu di risposta di serviziu).
A figura seguente mostra i trè stati di FSM.
Figura 4 • FSM à trè stati In u vostru codice HDL per u FSM, utilizate u codice di cumanda curretta ("01" Hex per u serviziu di u numeru di serie) per entre in u statu di dumanda di serviziu da u statu INIT.
- Salvà u vostru HDL file. U FSM appare cum'è un cumpunente in a Gerarchia di Design.
- Aprite SmartDesign. Trascinate è lasciate u vostru bloccu di custruttore di sistema di livellu superiore è u vostru bloccu FSM in a tela SmartDesign. Da u catalogu, drag and drop the CoreSysService soft core IP in u canvas SmartDesign.
- Cliccate cù u dirittu nantu à u core IP soft CoreSysService per apre u configuratore. Verificate a casella di cuntrollu di u Serviziu di Numeru di Seria (sottu à i servizii d'infurmazione di Disegnu è Disegnu
gruppu) per attivà u serviziu di u numeru di serie. - Lasciate tutte l'altri caselle di spunta micca marcate. Cliccate OK per esce da u configuratore.
Figura 5 • CoreSysServices soft IP Core Configurator
- Cunnette u HPMS_FIC_0 SYS_SERVICES_MASTER BIF di u bloccu di custruttore di u sistema à u AHBL_MASTER BIF di u bloccu CoreSysService.
- Cunnette l'output di u vostru bloccu HDL FSM à l'input di u core IP soft CoreSysService. Fate tutte e altre cunnessione in u canvas SmartDesign cum'è mostra in a figura seguente.
Figura 6 • SmartDesign Canvas cù HDL Block, CoreSysServices Soft IP è HPMS Blocks - In u canvas SmartDesign, cliccate right>Generate Component per generà u Top Level Design.
- In a Gerarchia di Design view, cliccate right-click u disignu di u livellu superiore è selezziunate creà Testbench> HDL .
- Aduprate un editore di testu per creà un testu file chjamatu "status.txt".
- Includite u cumandimu per u serviziu di u sistema è u numeru di serie 128-bit. Per più infurmazione, vede a Tabella 1 (Valori di cummandu / Risposta di i servizii di sistema) in u CoreSysServices v3.1 Manuale per i codici di cumandamentu (Hex) per esse usatu per i servizii di u sistema. Per u serviziu di u numeru di serie, u codice di cumanda hè "01" Hex.
U furmatu di u status.txt file per u serviziu di u numeru di serie hè a siguenti.
< 2 Cifri Hex CMD><32 Cifre Hex Numeru di Seria>
Example: 01A1A2A3A4B1B2B3B4C1C2C3C4D1D2D3D4
Salvà u status.txt file in u cartulare Simulation di u vostru prughjettu. U disignu hè avà prontu per a simulazione.
Una volta chì u serviziu hà iniziatu l'esekzione, un missaghju chì indica u locu di destinazione è u numeru di serie hè visualizatu in a finestra di trascrizione di ModelSim, cum'è mostra in a figura seguente.
Figura 7 • ModelSim Simulation Transcript WindowU cuntrollu di u sistema cunduce una scrittura AHB à l'indirizzu cù u numeru di serie. À a fine di u serviziu, u RXFIFO di COMM_BLK serà carricu cù a risposta di u serviziu.
Nota: Per un elencu cumpletu di i codici di cumanda da esse utilizati per i servizii di u sistema differenti, vede a Tabella 1 (Valori di cummandu / Risposta di i servizii di sistema) in CoreSysServices v3.1 Handbook o UG0450: SmartFusion2 SoC è IGLOO2 FPGA System Controller User Guide.
2.6 SmartFusion2 Serial Number Service Simulation
In questa guida d'utilizatore, i cumandamenti BFM (opzione 2) sò usati per accede à u cuntrollu di u sistema per u serviziu di u sistema. I cumandamenti BFM sò usati cum'è u processatore Cortex-M3 hè dispunibule nantu à u dispusitivu per a simulazione BFM. I cumandamenti BFM permettenu di scrive direttamente è leghje da u COMM BLK una volta chì cunnosce a mappa di memoria di u COMM_BLK.
Per preparà u vostru disignu per a simulazione di serviziu di u numeru di serie SmartFusion2, fate i seguenti passi.
- Arrastate è lasciate u MSS da u catalogu à u canvas di disignu di u vostru prughjettu.
- Disattiva tutti i periferichi MSS eccettu MSS_CCC, Reset Controller, Interrupt Management, è FIC_0, FIC_1 è FIC_2.
- Configurate a gestione di l'interruzzione per utilizà MSS à l'interruzzione di tissu.
- Preparate u serialnum.bfm file in un editore di testu o in l'editore HDL di Libero. Salvà u serialnum.bfm file in u cartulare Simulation di u prugettu. U serialnum.bfm deve include i seguenti dettagli.
• Mappatura di memoria à u COMM BLK (CMBLK)
• Mappatura di memoria per interrompe a periferica di gestione (FIIC)
• Cumandamentu per a dumanda di serviziu di u sistema di numeri di serie ("01" Hex)
• Indirizzu per u locu di u numeru seriale
Un esample di u serialnum.bfm file hè cum'è seguita.
memmap FIIC 0x40006000; #Mapping di Memoria per Interruzzione di Gestione
memmap CMBLK 0x40016000; #Mapping di memoria à COMM BLK
memmap DESCRIPTOR_ADDR 0x20000000; # Locu di l'indirizzu per Serial Num
#Codice di comando in esadecimale
constant CMD 0x1 # Codice di cummanda per Serial NumberService
Registri di cunfigurazione #FIIC
constante FICC_INTERRUPT_ENABLE0 0x0
#COMM_BLK Registri di cunfigurazione
constant CONTROL 0x00
constant STATUS 0x04
constant INT_ENABLE 0x08
constant DATA8 0x10
constant DATA32 0x14
custanti FRAME_START8 0x18
custanti FRAME_START32 0x1C
prucedura serialnum;
int x;
scrive w FIIC FICC_INTERRUPT_ENABLE0 0x20000000 #Configure
#FICC_INTERRUPT_ENABLE0 # Registrate per attivà COMBLK_INTR #
#interrupt da u bloccu COMM_BLK à u tissu
#Fase di dumanda
scrive w CMBLK CONTROL 0x10 # Configurate COMM BLK Control #Registrate à
attivà i trasferimenti nantu à l'interfaccia COMM BLK
scrive w CMBLK INT_ENABLE 0x1 # Configure COMM BLK Interrupt Enable
#Register per attivà l'interruzzione per TXTOKAY (bit currispundenti in u
#Status Register)
waitint 19 # aspetta per COMM BLK Interrupt, quì #BFM aspetta
#till COMBLK_INTR hè assicuratu
readstore w CMBLK STATUS x # Read COMM BLK Status Register for #TXTOKAY
# Interruzzione
set xx & 0x1
se x
scrivi w CMBLK FRAME_START8 CMD # Configura COMM BLK FRAME_START8
#Registrate per dumandà u serviziu di u numeru di serie
endif
endif
waitint 19 # aspetta l'Interruzzione COMM BLK, quì
#BFM aspetta finu à chì COMBLK_INTR hè assicuratu
readstore w CMBLK STATUS x # Read COMM BLK Status Register for
#TXTOKAY Interruzzione
set xx & 0x1
set xx & 0x1
se x
scrive w CMBLK CONTROL 0x14 #Configure COMM BLK Control
#Register per attivà i trasferimenti nantu à l'interfaccia COMM BLK
scrive w CMBLK DATA32 DESCRIPTOR_ADDR
scrive w CMBLK INT_ENABLE 0x80
scrive w CMBLK CONTROL 0x10
endif
aspetta 20
#Fase di Risposta
aspetta 19
readstore w CMBLK STATUS x
set xx & 0x80
se x
verificate di lettura w CMBLK FRAME_START8 CMD
scrive w CMBLK INT_ENABLE 0x2
endif
aspetta 19
readstore w CMBLK STATUS x
set xx & 0x2
se x
verifica di lettura w CMBLK DATA8 0x0
scrive w CMBLK CONTROL 0x18
endif
aspetta 19
readcheck w FIIC 0x8 0x20000000
readstore w CMBLK STATUS x
set xx & 0x2
se x
verifica di lettura w CMBLK DATA32 DESCRIPTOR_ADDR
endif
verificate di lettura w DESCRIPTOR_ADDR 0x0 0xE1E2E3E4; #Readcheck per verificà S/N
readcheck w DESCRIPTOR_ADDR 0x4 0xC1C2C3C4; #Readcheck per verificà S/N
readcheck w DESCRIPTOR_ADDR 0x8 0xB1B2B3B4; #Readcheck per verificà S/N
verificate di lettura w DESCRIPTOR_ADDR 0xC 0xA1A2A3A4; #Readcheck per verificà S/N
torna - Crea u statutu. txt file in l'editore HDL di Libero o qualsiasi editore di testu. Includite u cumandimu di serviziu di u sistema di numeri di serie ("01" in Hex) è u numeru di serie in u statutu. txt file. Vede u CoreSysServices v3.1 Handbook per utilizà u codice di cumanda curretta.
- A sintassi di questu file per u serviziu di u numeru di serie hè, <2 Cifri Hex CMD>< 32 Cifri Hex Numeru di Seria> . Esample: 01A1A2A3A4B1B2B3B4C1C2C3C4E1E2E3E4.
- Salvà u statutu .txt file in u cartulare Simulation di u prugettu.
- Edite l'utilizatori .bfm (situatu in u cartulare Simulazione) per include u serialnum. bfm file è chjamate a prucedura di u numeru di seriale cum'è mostra in u frammentu di codice seguente.
include "serialnum.bfm" #include u serialnum.bfm
prucedura user_main;
stampa "INFO: A simulazione principia";
stampa "INFO: Codice di cumandamentu di serviziu in Decimal:% 0d", CMD;
chjamate serialnum; #chjamà a prucedura serialnum
stampa "INFO: Simulazione finisce";
torna - In a Gerarchia di Design view, generà u testbench (Clic drittu, Top Level Design> Crea Testbench> HDL ) è site prontu à eseguisce a simulazione di serviziu di u numeru di serie.
Una volta chì u serviziu hà cuminciatu à esecutà, un missaghju chì indica u locu di destinazione è u numeru di serie hè visualizatu. U cuntrollu di u sistema cunduce una scrittura AHB à l'indirizzu cù u numeru di serie. À a fine di u serviziu, u RXFIFO di COMM_BLK serà carricu cù a risposta di u serviziu. A finestra di trascrizione di ModelSim mostra l'indirizzu è u numeru di serie ricevutu cum'è mostra in a figura seguente.
Figura 8 • SmartFusion2 Serial Number Service Simulation in ModelSim Transcript Window
2.7 IGLOO2 Zeroization Service Simulation
Per preparà per a simulazione di serviziu di zeroizazione IGLOO2, eseguite i passi cum'è seguita.
- Invocate u costruttore di sistema per creà u bloccu HPMS. Verificate a casella di cuntrollu di i servizii di u sistema HPMS in u Dispositivu Features SYS_SERVICES_MASTER BIF. Lasciate tutte l'altri checkboxes senza marcatu. Accettate u predefinitu in tutte e altre pagine è cliccate pagina. Questu urdineghja u custruttore di u sistema per espose l'HPMS_FIC_0 Finish per compie a cunfigurazione di u bloccu di u custruttore di u sistema.
- In l'editore HDL di Libero SoC, scrive u codice HDL per u FSM. In u vostru codice HDL per u FSM, include i seguenti trè stati.
Statu INIT (statu iniziale)
SERV_PHASE (statu di dumanda di serviziu)
RSP_PHASE (statu di risposta di serviziu)
A figura seguente mostra i trè stati di FSM.
Figura 9 • FSM à trè stati - In u vostru codice HDL, utilizate u codice di cumanda "F0" (Hex) per entre in u statu di dumanda di serviziu da u statu INIT.
- Salvà u vostru HDL file.
- Aprite SmartDesign, trascinate è lasciate u vostru bloccu di custruttore di sistema di livellu superiore è u vostru bloccu HDL FSM in a tela SmartDesign. Da u catalogu, drag and drop the CoreSysService soft core IP in u canvas SmartDesign.
- Fate un clic right in CoreSysServices soft core IP, per apre u configuratore è verificate a casella di verificazione Zeroization Service sottu u gruppu Data Security Services. Lasciate tutte l'altri checkboxes senza marcatu. Cliccate per esce OK.
Figura 10 • CoreSysServices Configurator
- Cunnette u HPMS_FIC_0 SYS_SERVICES_MASTER BIF di u bloccu di custruttore di u sistema à u AHBL_MASTER BIF di u bloccu CoreSysService.
- Cunnette l'output di u vostru bloccu HDL FSM à l'input di u core IP soft CoreSysService. Fate tutte l'altri cunnessione in u canvas SmartDesign.
Figura 11 • SmartDesign Canvas cù HDL Block, CoreSysServices Soft IP, è HPMS Blocks
9. In u canvas SmartDesign, generà u disignu di primu livellu (Clic right-click> Generate Component).
10. In a Ghjerarchia di Design view, cliccate right-click u disignu di u primu livellu è selezziunate creà Testbench> HDL. Avà site prontu à eseguisce a simulazione.
Una volta chì u serviziu hà iniziatu l'esekzione, un missaghju chì indica chì a zeroizazione hè stata finita à u tempu x hè visualizatu cum'è mostra in a figura seguente.
Figura 12 • IGLOO2 Zeroization System Service Simulation Transcript Window
U cuntrollu di u sistema cunduce una scrittura AHB à l'indirizzu cù u numeru di serie. À a fine di u serviziu, u RXFIFO di COMM_BLK serà carricu cù a risposta di u serviziu. Hè devi esse nutatu chì u mudellu di simulazione simula a zeroing per stopping the simulation piuttostu chè zeroizing u disignu stessu.
Nota: Per una lista cumpleta di i codici di cumandamentu da esse utilizati per i servizii di u sistema differenti, vede a Tabella 1 (Valori di cumandamentu / Risposta di i servizii di sistema) in u CoreSysServices v3.1 Manuale:. o UG0450: SmartFusion2 SoC è IGLOO2 FPGA System Controller Guida d'Usuariu
2.8 SmartFusion2 Zeroization Service Simulation
In questa guida, i cumandamenti BFM (opzione 2) sò usati per accede à u cuntrollu di u sistema per u serviziu di u sistema.
I cumandamenti BFM sò usati cum'è u processatore Cortex-M3 hè dispunibule nantu à u dispusitivu per a simulazione BFM. I cumandamenti BFM permettenu di scrive direttamente è leghje da u COMM BLK una volta chì cunnosce a mappa di memoria di u COMM_BLK. Per preparà u vostru disignu per a simulazione di u serviziu di zeroization SmartFusion2, fate i seguenti passi.
- Arrastate è lasciate u MSS da u catalogu à u canvas di disignu di u vostru prughjettu.
- Disattiva tutti i periferichi MSS eccettu MSS_CCC, Reset Controller, Interrupt Management, è FIC_0, FIC_1 è FIC_2.
- Configurate a gestione di l'interruzzione per utilizà MSS à l'interruzzione di tissu.
- Preparate u zeroizaton.bfm file in un editore di testu o in l'editore HDL di Libero. A vostra zeroizazione. bfm deve include:
- Mappatura di memoria à u COMM BLK (CMBLK)
- Mappatura di memoria per interrompe a periferica di gestione (FIIC)
- Cumandamentu per a dumanda di serviziu di zeroizazione ("F0" Hex per a zerozazione)
Un esample di u serialnum.bfm file hè mostratu in a figura seguente.
Figura 13 • Zeroization.bfm per SmartFusion2 Zeroization System Services Simulation
5. Salvà u zeroization.bfm file in u cartulare Simulation di u prugettu. user.bfm
6. Edite u (situatu in u cartulare di simulazione zeroization.bfm) per include u usu di u frammentu di codice seguente.
include "zeroization.bfm" #include zeroization.bfm file prucedura user_main;
stampa "INFO: A simulazione principia";
stampa "INFO: Codice di cumandamentu di serviziu in Decimal:% 0d", CMD;
chjamate zeroization; #chjamà a prucedura di zeroizazione di ritornu
7. In a Ghjerarchia di Design , generà u Testbench (Clicca drittu à u livellu superiore > Crea Testbench > HDL ) è site prontu à eseguisce a simulazione di zeroization SmartFusion2.
Una volta chì u serviziu hà iniziatu l'esekzione, un missaghju chì indica chì u dispusitivu hè statu zero à u tempu x hè visualizatu. Hè devi esse nutatu chì u mudellu di simulazione simula a zeroing per stopping the simulation piuttostu chè zeroizing u disignu stessu. A finestra di trascrizione ModelSim in a figura seguente mostra chì u dispusitivu hè stata zeroized.
Figura 14 • SmartFusion2 Zeroization System Service Simulation Log
Appendice: Tipi di servizii di sistema
Stu capitulu descrive diversi tipi di servizii di sistema.
3.1 Servizii di messagiu di simulazione
I seguenti rùbbriche descrizanu diversi tipi di servizii di messagiu di simulazione.
3.1.1 Flash*Freeze
A simulazione entre in u statu Flash * Freeze quandu a dumanda di serviziu propiu hè mandata à COMM_BLK da u FIC (in u casu di i dispositi IGLOO2) o da u Cortex-M3 (in i dispositi SmartFusion2). Una volta chì u serviziu hè statu rilevatu da u cuntrollu di u sistema, a simulazione serà fermata è un missaghju chì indica chì u sistema hè intrutu in Flash * Freeze (inseme cù l'opzione scelta) serà visualizatu. Dopu à a ripresa di a simulazione, u RXFIFO di u COMM_BLK serà cumpletu cù a risposta di serviziu cumpostu di u cumandimu di serviziu è u statutu. Si deve esse nutatu chì ùn ci hè micca supportu di simulazione per u Flash * Freeze exit.
3.1.2 Zeroization
Zeroization hè attualmente l'unicu serviziu di priorità alta in i servizii di sistema processati da COMM_BLK. A simulazione entre in u statu di zeroization appena a dumanda di serviziu curretta hè rilevata da u COMM_BLK. L'esecuzione di altri servizii serà fermata è scartata da u cuntrollu di u sistema, è u serviziu di zeroizazione serà eseguitu invece. Una volta chì a dumanda di u serviziu di zeroization hè rilevata, a simulazione si ferma è un missaghju chì indica chì u sistema hè entratu in zeroization hè visualizatu. I riavviamenti manuali di simulazione dopu a zeroizazione ùn sò micca validi.
3.2 Servizi di puntatore di dati
I seguenti sezzioni descrizanu diversi tipi di servizii di puntatore di dati.
3.2.1 Serial Number
U serviziu di u numeru di serie scriverà un numeru di serie 128-bit à un locu di indirizzu furnitu cum'è parte di a dumanda di serviziu. Stu paràmetru 128-bit pò esse stabilitu utilizendu un Supportu di Simulazione di Serviziu di Sistema file (vede a pagina 22). Se u paràmetru di u numeru di serie 128-bit ùn hè micca definitu in u file, un numeru di serie predeterminatu di 0 serà utilizatu. Una volta chì u serviziu hà cuminciatu à esecutà, un missaghju chì indica u locu di destinazione è u numeru di serie hè visualizatu. U cuntrollu di u sistema cunduce una scrittura AHB à l'indirizzu cù u numeru di serie. À a fine di u serviziu, u RXFIFO di COMM_BLK serà carricu cù a risposta di u serviziu.
3.2.2 Usercode
U serviziu di codice d'utilizatore scrive un paràmetru di codice d'utilizatore di 32 bit à un locu di indirizzu furnitu cum'è parte di a dumanda di serviziu. Stu paràmetru 32-bit pò esse stabilitu cù u Supportu di Simulazione di u Serviziu di Sistema file (vede a pagina 22). Se u paràmetru 32-bit ùn hè micca definitu in u file, un valore predeterminatu di 0 hè utilizatu. Quandu u serviziu hà iniziatu l'esekzione, un missaghju chì indica u locu di destinazione è u codice d'utilizatore hè visualizatu. U cuntrollu di u sistema cunduce una scrittura AHB à l'indirizzu cù u paràmetru 32-bit. À a fine di u serviziu, u RXFIFO di COMM_BLK hè carricu cù a risposta di u serviziu, chì include u cumandamentu di u serviziu è l'indirizzu di destinazione.
3.3 Servizi di descrittore di dati
I seguenti rùbbriche descrizanu diversi tipi di servizii di descrittore di dati.
3.3.1 AES
U supportu di simulazione per stu serviziu hè solu preoccupatu di trasfurmà e dati originali da a fonte à a destinazione, senza realizà alcuna criptografia / decifrazione nantu à e dati. I dati chì deve esse criptati / decriptati è a struttura di dati deve esse scritti prima chì a dumanda di serviziu hè mandata. Quandu u serviziu hà iniziatu l'esekzione, un missaghju chì indica l'esekzione di u serviziu AES hè visualizatu. U serviziu AES leghje a struttura di dati è e dati per esse criptati / decifrati. I dati originali sò copiati è scritti à l'indirizzu furnitu in a struttura di dati. Quandu u serviziu hè cumpletu, u cumandamentu, u statutu è l'indirizzu di a struttura di dati sò imbuttati in u RXFIFO.
Nota: Stu serviziu hè solu per i dati 128-bit è 256-bit, è i dati 128-bit è 256-bit anu diverse lunghezze di struttura di dati.
3.3.2 SHA 256
U supportu di simulazione per stu serviziu hè solu cuncernatu cù u muvimentu di e dati, senza realizà alcunu hashing nantu à e dati. A funzione SHA 256 hè pensata per generà una chjave hash 256-bit basatu nantu à i dati di input. I dati chì deve esse hashed è a struttura di dati deve esse scritti à i so indirizzi rispettivi prima chì a dumanda di serviziu hè mandata à u COMM_BLK. A lunghezza in bits è u puntatore definitu in a struttura di dati SHA 256 deve currispundenu currettamente à a lunghezza è l'indirizzu di e dati per esse hash. Quandu u serviziu hà iniziatu l'esekzione, un messagiu chì indica l'esekzione di u serviziu SHA 256 hè visualizatu. Invece di eseguisce a funzione attuale, una chjave di hash predeterminata serà scritta à l'indicatore di destinazione da a struttura di dati. A chjave hash predeterminata hè hex "ABCD1234". Per stabilisce una chjave persunalizata, andate à a sezione Parameter Setting (vede a pagina 23). Dopu à u cumpletu di u serviziu, u RXFIFO hè carricu cù a risposta di u serviziu custituita da u cumandamentu di u serviziu, u statutu è l'indicatore di struttura di dati SHA 256.
3.3.3 HMAC
U supportu di simulazione per stu serviziu hè solu cuncernatu cù u muvimentu di e dati, senza esse realizatu alcunu hashing nantu à e dati. I dati chì deve esse hashed è a struttura di dati deve esse scritti à i so indirizzi rispettivi prima chì a dumanda di serviziu hè mandata à u COMM_BLK. U serviziu HMAC richiede una chjave di 32 byte in più di a lunghezza in byte, puntatore di fonte è puntatore di destinazione. Quandu u serviziu hà iniziatu l'esekzione, un missaghju chì indica l'esekzione di u serviziu HMAC hè visualizatu. A chjave hè letta è a chjave 256-bit hè copiata da a struttura di dati à u punteru di destinazione. Dopu à u cumpletu di u serviziu, u RXFIFO hè carricu cù a risposta di u serviziu custituita da u cumandamentu di u serviziu, u statutu è l'indicatore di struttura di dati HMAC.
3.3.4 DRBG Generate
A generazione di bits aleatoriu hè realizatu da stu serviziu. Hè da nutà chì u mudellu di simulazione ùn seguita micca esattamente a stessa metodulugia di generazione di numeri aleatorii utilizata da u siliciu. A struttura di dati deve esse scritta currettamente in u so locu destinatu prima chì a dumanda di serviziu hè mandata à COMM_BLK. A struttura di dati, l'indicatore di destinazione, a lunghezza è altri dati pertinenti sò letti da u cuntrollu di u sistema. U serviziu di generazione DRBG genera un settore pseudo aleatoriu di dati di a lunghezza dumandata (0-128). U cuntrollu di u sistema scrive i dati aleatorii in u puntatore di destinazione. Un missaghju chì indica l'esekzione di u serviziu di generazione DRBG hè visualizatu in simulazione. Quandu u serviziu hè cumpletu, u cumandamentu, u statutu è l'indirizzu di a struttura di dati sò imbuttati in u RXFIFO. Se a lunghezza di dati dumandata ùn hè micca in a gamma di 0-128, un codice d'errore di "4" (Max Generate) serà imbuttatu in u RXFIFO. Se a lunghezza di dati supplementari ùn hè micca in a gamma Request Too Big di 0-128, un codice d'errore di "5" (Lunghezza massima di dati supplementari superata) serà imbuttatu in u RXFIFO. Se a lunghezza di dati dumandata per generà è a lunghezza di dati supplementari ùn sò micca in u so intervallu definitu (0-128), un codice d'errore di "1" (Errore Catastròficu) hè imbuttatu in u RXFIFO.
3.3.5 DRBG Reset
A funzione di reset attuale hè realizata rimuovendu l'istanziazioni DRBG è resetting DRBG. Una volta chì a dumanda di serviziu hè stata rilevata, a simulazione mostra un missaghju DRBG Reset serviziu cumpletu. A risposta, chì include u serviziu è u statutu, hè imbuttata in u RXFIFO.
3.3.6 DRBG Self Test
U supportu di simulazione per l'autotest DRBG ùn eseguisce micca a funzione d'autotest. Una volta chì a dumanda di serviziu hè stata rilevata, a simulazione mostrarà un missaghju di esecuzione di serviziu d'autotest DRBG. A risposta, chì include u serviziu è u statutu, serà imbuttata in u RXFIFO.
3.3.7 DRBG Instanziate
U supportu di simulazione per u serviziu di instantiate DRBG ùn eseguisce micca veramente u serviziu di instantiate. A struttura di dati deve esse scritta currettamente in u so locu destinatu prima chì a dumanda di serviziu hè mandata à COMM_BLK. Una volta chì a dumanda di serviziu hè stata rilevata, a struttura è a stringa di persunalizazione definita in u spaziu di l'indirizzu MSS seranu leghjite. A simulazione mostrarà un missaghju chì indica chì u serviziu DRBG Instantiate hà iniziatu l'esecuzione. Quandu u serviziu hè cumpletu, a risposta, chì include u cumandamentu di u serviziu, u statutu è l'indicatore à a struttura di dati, serà imbuttata in u RXFIFO. Se a lunghezza di dati (PERSONALIZATIONLENGTH) ùn hè micca in a gamma di 0-128, un codice d'errore di "1" (Errore Catastròficu) serà imbuttatu in u RXFIFO per u statutu.
3.3.8 DRBG Uninstantiate
U supportu di simulazione per u serviziu di uninstantiate DRBG ùn eseguisce micca veramente u serviziu di uninstantiate di caccià un DRBG instantiatu prima, cum'è u siliciu. A dumanda di serviziu deve include u cumandamentu è u manicu DRBG. Una volta chì a dumanda di serviziu hè stata rilevata, u manicu DRBG serà almacenatu. A simulazione mostrarà un missaghju chì indica chì u serviziu di uninstantiate DRBG hè statu inizializatu. Quandu u serviziu hè cumpletu, a risposta, chì include u cumandamentu di u serviziu, u statutu è u manicu DRBG, serà imbuttatu in u RXFIFO.
3.3.9 DRBG Reseed
A causa di a natura simulativa di u bloccu di i servizii di u sistema, u serviziu di reseed DRBG in simulazione ùn hè micca eseguitu automaticamente dopu ogni 65535 DRBG generà servizii. A struttura di dati deve esse scritta currettamente in u so locu destinatu prima chì a dumanda di serviziu hè mandata à COMM_BLK. Una volta chì a dumanda di serviziu hè stata rilevata, a struttura è u paràmetru di input supplementu in u spaziu di l'indirizzu MSS seranu leghje. Un missaghju chì indica chì u serviziu di reseed DRBG hà iniziatu eseguitu, serà visualizatu. A struttura di dati deve esse scritta currettamente in u so locu destinatu prima chì a dumanda di serviziu hè mandata à COMM_BLK. Quandu u serviziu hè cumpletu, a risposta, chì include u cumandamentu di u serviziu, u statutu è l'indicatore à a struttura di dati, serà imbuttata in u RXFIFO.
3.3.10 KeyTree
A funzione attuale ùn hè micca eseguita in simulazione per u serviziu KeyTree. A struttura di dati di u serviziu di KeyTree hè custituita da una chjave di 32 byte, dati d'optipu di 7 bit (MSB ignoratu) è una strada di 16 byte. I dati in a struttura di dati deve esse scritti à i so indirizzi rispettivi, prima chì a dumanda di serviziu hè mandata à COMM_BLK. Quandu u serviziu hà iniziatu l'esekzione, un missaghju chì indica l'esekzione di u serviziu KeyTree serà visualizatu. U cuntenutu di a struttura di dati serà lettu, a chjave di 32 byte serà guardata, è a chjave originale situata in a struttura di dati hè soprascritta. Dopu à sta scrittura AHB, u valore di a chjave in a struttura di dati ùn deve micca cambià, ma e transacciones AHB per a scrittura si facianu. Dopu à u cumpletu di u serviziu, u RXFIFO hè carricu cù a risposta di u serviziu, custituitu da u cumandamentu di u serviziu, u statutu è u puntatore di a struttura di dati KeyTree.
3.3.11 Risposta di sfida
A funzione attuale, cum'è l'autentificazione di u dispusitivu, ùn hè micca eseguita in simulazione per u serviziu di risposta di sfida. A struttura di dati per stu serviziu richiede un punteru à u buffer, per riceve un risultatu di 32-byte, 7-bit optype, è una strada di 128-bit. I dati in a struttura di dati deve esse scritti à i so indirizzi rispettivi prima chì a dumanda di serviziu hè mandata à COMM_BLK. Una volta chì u serviziu hà iniziatu l'esecuzione, un missaghju chì indica l'esekzione di u serviziu di risposta à a sfida serà visualizatu. Una risposta generica di 256 bit serà scritta in u puntatore furnitu in a struttura di dati. A chjave predeterminata hè impostata cum'è hex "ABCD1234". Per uttene una chjave persunalizata, verificate Parameter Setting (vede a pagina 23). Dopu à a fine di u serviziu, u RXFIFO serà carricu cù a risposta di u serviziu, custituitu da u cumandamentu di u serviziu, u statutu è u punteru di a struttura di dati di risposta di sfida.
3.4 Altri servizii
E sezioni seguenti descrizanu diversi altri servizii di sistema.
3.4.1 Digest Check
A funzione attuale di ricalculà è paragunà digeriti di cumpunenti selezziunati ùn hè micca eseguitu per u serviziu di cuntrollu di digest in simulazione. Questa dumanda di serviziu hè custituita da cumandamenti di serviziu, è opzioni di serviziu (LSB 5-bit). Una volta chì u serviziu hà iniziatu l'esekzione, un missaghju chì detalla l'esekzione di u serviziu di verificazione digest serà visualizatu, cù l'opzioni scelte da a dumanda. À a fine di u serviziu, u RXFIFO serà carricu cù a risposta di u serviziu, custituitu da u cumandamentu di u serviziu, è u digest check pass/fail flags.
3.4.2 Risposta Command Unrecognized
Quandu una dumanda di serviziu micca ricunnisciuta hè mandata à u COMM_BLK, u COMM_BLK risponde automaticamente cù un missaghju di cumanda micca ricunnisciutu imbuttatu in u RXFIFO. U missaghju hè custituitu da u cumandimu mandatu in u COMM_BLK è u statutu di cumanda micca ricunnisciutu (252D). Un missaghju di visualizazione chì indica chì una dumanda di serviziu micca ricunnisciuta hè stata rilevata serà ancu affissata. U COMM_BLK tornerà à un statu inattivu, aspittendu per accettà a prossima dumanda di serviziu.
3.4.3 Servizi senza supportu
I servizii micca supportati stabiliti à COMM_BLK attivanu un messagiu in simulazione chì indica chì a dumanda di serviziu ùn hè micca supportata. U COMM_BLK tornerà à un statu inattivu, aspittendu per accettà a prossima dumanda di serviziu. U PINTERRUPT ùn serà micca stabilitu, indicà chì un serviziu hè statu cumpletu. A lista attuale di servizii micca supportati include: IAP, ISP, Certificatu di Dispositivu, è u Serviziu DESIGNVER.
3.5 Supportu di simulazione di servizii di sistema File
Per sustene a simulazione di servizii di sistema, un testu file chjamatu, "status.txt" pò esse usatu per passà struzzioni nantu à u cumpurtamentu necessariu di u mudellu di simulazione à u mudellu di simulazione. Questu file deve esse situatu in u listessu cartulare, chì a simulazione hè curritu da. U file pò esse usatu, frà altre cose, per furzà certe risposte d'errore per i servizii di sistema supportati o ancu per stabilisce alcuni parametri necessarii per a simulazione, (per es.ample, numeru di serie). U numeru massimu di linee supportate in u "status.txt" file hè 256. Istruzzioni chì appariscenu dopu à u numeru di linea 256 ùn saranu micca utilizati in a simulazione.
3.5.1 Forcing Error Responses
L'utilizatore pò furzà una certa risposta d'errore per un serviziu particulari durante a prova passendu l'infurmazioni à u mudellu di simulazione cù u "status.txt" file, chì deve esse piazzatu in u cartulare da a simulazione. Per furzà e risposti d'errore à un certu serviziu, u cumandamentu è a risposta necessaria deve esse digitate in a listessa linea in u seguente formatu:ample, à Command> ; Instruisce u mudellu di simulazione per generà una risposta d'errore d'accessu à a memoria MSS à u serviziu di u numeru di seriale, u cumandimu hè cusì.
Serviziu: Numeru di Seria: 01
Missaghju d'errore dumandatu: Errore d'accessu à a memoria MSS: 7F
Duvete avè a linea 017F inserita in "status.txt" file.
3.5.2 Impostazione di i paràmetri
U "statu.txt" file pò ancu esse usatu per stabilisce alcuni paràmetri necessarii in a simulazione. Cum'è example, per stabilisce u paràmetru 32-bit per u codice d'utilizatore, u formatu di a linea deve esse in questu ordine: <32 Bit USERCODE>; induve i dui valori sò inseriti in esadecimale. Per stabilisce u paràmetru 128-bit per u numeru di serie, u formatu di a linea deve esse in questu ordine: <128 Bit Serial Number [127: 0]> ; induve i dui valori sò inseriti in esadecimale. Per stabilisce u paràmetru 256-bit per a chjave SHA 256; u formatu di a linea deve esse in questu ordine: <256 Bit Key [255: 0]>; induve i dui valori sò inseriti in esadecimale. Per stabilisce u paràmetru 256-bit per a chjave di risposta di sfida, u formatu di a linea deve esse in questu ordine: <256 Bit Key [255: 0]>;
induve i dui valori sò inseriti in esadecimale.
3.5.3 Priorità Dispositivu
I servizii di sistemi è u COMM_BLK utilizanu un sistema di priorità alta. Attualmente, l'unicu serviziu d'alta priorità hè a zeroizazione. Per fà un serviziu d'alta priorità, mentre chì un altru serviziu hè esecutatu, u serviziu attuale hè arrestatu è u serviziu di priorità più altu serà eseguitu in u so locu. U COMM_BLK scartà u serviziu attuale per fà u serviziu di priorità più altu. Se parechji servizii non-alta priorità sò mandati prima di u cumpletu di un serviziu attuale, questi servizii saranu in fila in u TXFIFO. Quandu u serviziu attuale hè cumpletu, u prossimu serviziu in u TXFIFO serà eseguitu.
Microsemi ùn dà alcuna garanzia, rapprisentazione, o guaranzia in quantu à l'infurmazioni cuntenuti quì o l'adattabilità di i so prudutti è servizii per un scopu particulare, nè Microsemi assume alcuna responsabilità chì deriva da l'applicazione o l'usu di qualsiasi pruduttu o circuitu. I prudutti venduti quì sottu è qualsiasi altri prudutti venduti da Microsemi sò stati sottumessi à una prova limitata è ùn deve micca esse aduprati in cunjunzione cù l'equipaggiu o l'applicazioni critichi per a missione. Ogni specificazione di prestazione hè ritenuta affidabile, ma ùn hè micca verificata, è u Cumpratore deve fà è compie tutte e prestazioni è altre teste di i prudutti, solu è inseme cù, o installati in qualsiasi prudutti finali. L'Acquirente ùn s'appoghjanu micca nantu à e specifiche di dati è di prestazione o parametri furniti da Microsemi. Hè a rispunsabilità di u Cumparatore di determinà indipindentamente l'adattabilità di qualsiasi pruduttu è di pruvà è verificà u listessu. L'infurmazioni furnite da Microsemi quì sottu sò furnite "cum'è, induve hè" è cù tutti i difetti, è tuttu u risicu assuciatu cù tali informazioni hè interamente cù u Cumpratore. Microsemi ùn cuncede, esplicitamente o implicitamente, à alcuna parte alcunu diritti di patenti, licenze, o qualsiasi altri diritti IP, sia in quantu à tali infurmazione stessa o qualcosa descritta da tali informazioni. L'infurmazione furnita in stu documentu hè di proprietà di Microsemi, è Microsemi si riserva u dirittu di fà qualsiasi cambiamenti à l'infurmazioni in stu documentu o à qualsiasi prudutti è servizii in ogni mumentu senza avvisu.
Microsemi, una subsidiaria di Microchip Technology Inc. (Nasdaq: MCHP), offre una cartera cumpleta di soluzioni di semiconductor è sistemi per l'aerospaziale è a difesa, a cumunicazione, i centri di dati è i mercati industriali. I prudutti includenu circuiti integrati di signali mixti analogici d'alta prestazione è radiazioni, FPGA, SoC è ASIC; prudutti di gestione di energia; i dispusitivi di timing è di sincronizazione è suluzione di u tempu precisu, chì stabiliscenu u standard di u mondu per u tempu; dispusitivi di trasfurmazioni di voce; suluzione RF; cumpunenti discreti; suluzioni di almacenamiento è cumunicazione di l'impresa; tecnulugia di sicurità è scalable anti-tampi prudutti; suluzioni Ethernet; Power-over-Ethernet IC è midspans; cume capacità è servizii di cuncepimentu persunalizati. Microsemi hà a sede in Aliso Viejo, California, è hà circa 4,800 impiegati in u mondu. Sapete più à www.microsemi.com.
Sede Microsemi
One Enterprise, Aliso Viejo,
CA 92656 USA
In i Stati Uniti: +1 800-713-4113
Fora di i Stati Uniti: +1 949-380-6100
Vendite: +1 949-380-6136
Fax: +1 949-215-4996
E-mail: vendite.support@microsemi.com
www.microsemi.com
© 2018 Microsemi. Tutti i diritti riservati. Microsemi è u logu Microsemi
sò marchi di Microsemi Corporation. Tutti l'altri marchi è serviziu
i marchi sò a pruprietà di i so rispettivi pruprietarii.
Documenti / Risorse
![]() |
Simulazione di servizii di sistema Microsemi UG0837 IGLOO2 è SmartFusion2 FPGA [pdfGuida di l'utente UG0837, UG0837 IGLOO2 è SmartFusion2 Simulazione di servizii di sistema FPGA, IGLOO2 è SmartFusion2 Simulazione di servizii di sistema FPGA, Simulazione di servizii di sistema SmartFusion2 FPGA, Simulazione di servizii di sistema FPGA, simulazione di servizii |