Logotip de Microsemi

UG0837
Guia d'usuari
IGLOO2 i SmartFusion2 FPGA
Simulació de serveis del sistema
Juny 2018

Historial de revisions

L'historial de revisions descriu els canvis que es van implementar al document. Els canvis s'enumeren per revisió, començant per la publicació més actual.
1.1 Revisió 1.0
La revisió 1.0 es va publicar el juny de 2018. Va ser la primera publicació d'aquest document.

Simulació de serveis del sistema FPGA IGLOO2 i SmartFusion2

El bloc de serveis del sistema de la família SmartFusion®2 FPGA inclou una col·lecció de serveis responsables de diverses tasques. Aquests inclouen serveis de missatges de simulació, serveis de punter de dades i serveis de descriptors de dades. Es pot accedir als serveis del sistema mitjançant el Cortex-M3 a SmartFusion2 i des del teixit FPGA a través del controlador d'interfície de teixit (FIC) tant per a SmartFusion2 com per IGLOO®2. Aquests mètodes d'accés s'envien al controlador del sistema mitjançant COMM_BLK. El COMM_BLK té una interfície de bus perifèric avançat (APB) i actua com a conducte de transmissió de missatges per intercanviar dades amb el controlador del sistema. Les sol·licituds de servei del sistema s'envien al controlador del sistema i les respostes de servei del sistema s'envien al CoreSysServicie mitjançant COMM BLK. La ubicació de l'adreça del COMM_BLK està disponible dins del subsistema del microcontrolador (MSS)/subsistema de memòria d'alt rendiment (HPMS). Per obtenir-ne més informació, consulteu UG0450: SmartFusion2 SoC i IGLOO2 FPGA System Controller.
Guia d'usuari
La il·lustració següent mostra el flux de dades dels serveis del sistema.
Figura 1 • Diagrama de flux de dades del servei del sistemaSimulació de serveis del sistema FPGA Microsemi UG0837 IGLOO2 i SmartFusion2 - Diagrama de flux de dadesTant per a la simulació del servei del sistema IGLOO2 com per a SmartFusion2, heu d'enviar sol·licituds de servei del sistema i comprovar les respostes del servei del sistema per verificar que la simulació és correcta. Aquest pas és necessari per accedir al controlador del sistema, que proporciona els serveis del sistema. La manera d'escriure i llegir des del controlador del sistema és diferent per als dispositius IGLOO2 i SmartFusion2. Per a SmartFusion2, el Coretex-M3 està disponible i podeu escriure i llegir des del controlador del sistema mitjançant ordres de model funcional de bus (BFM). Per a IGLOO2, el Cortex-M3 no està disponible i el controlador del sistema no és accessible mitjançant ordres BFM.
2.1 Tipus de serveis del sistema disponibles
Hi ha tres tipus diferents de serveis del sistema disponibles i cada tipus de servei té diferents subtipus.
Serveis de missatgeria de simulació
Serveis de punter de dades
Serveis de descriptors de dades
El capítol Apèndix –Tipus de serveis del sistema (vegeu la pàgina 19) d'aquesta guia descriu els diferents tipus de serveis del sistema. Per obtenir més informació sobre els serveis del sistema, consulteu UG0450: SmartFusion2 SoC and IGLOO2 FPGA System Controller User Guide .
2.2 Simulació del servei del sistema IGLOO2
Els serveis del sistema impliquen escriure i llegir des del controlador del sistema. Per escriure i llegir des del controlador del sistema amb finalitats de simulació, heu de realitzar els passos següents.

  1. Instancia el nucli IP suau de CoreSysServices, disponible al catàleg SmartDesign.
  2. Escriu el codi HDL per a una màquina d'estats finits (FSM).

L'HDL FSM es connecta amb CoreSysServices Core, que serveix com a mestre de teixit del bus AHBLite. El nucli CoreSysServices inicia la sol·licitud de servei del sistema al COMM BLK i rep respostes del servei del sistema del COMM BLK a través del controlador d'interfície de teixit FIC_0/1, tal com es mostra a la il·lustració següent.
Figura 2 • Topologia de simulació de serveis del sistema IGLOO2Simulació de serveis del sistema FPGA Microsemi UG0837 IGLOO2 i SmartFusion2 - Diagrama de flux de dades 12.3 Simulació del servei del sistema SmartFusion2
Per simular els serveis del sistema en dispositius SmartFusion2, heu d'escriure i llegir des del controlador del sistema. Hi ha dues opcions disponibles per accedir al controlador del sistema amb finalitats de simulació.
Opció 1: escriviu el codi HDL perquè un FSM interfaci amb el nucli IP suau CoreSysService, que serveix com a mestre de teixit AHBLite i inicia la sol·licitud de servei del sistema al COMM BLK i rep respostes del servei del sistema del COMM BLK a través del teixit FIC_0/1. interfície tal com es mostra a la il·lustració següent.
Figura 3 • Topologia de simulació de serveis del sistema SmartFusion2Simulació de serveis del sistema FPGA Microsemi UG0837 IGLOO2 i SmartFusion2 - Diagrama de flux de dades 2

Opció 2 — Com que el Cortex-M3 està disponible per a dispositius SmartFusion2, podeu utilitzar ordres BFM per escriure i llegir directament des de l'espai de memòria del controlador del sistema.
L'ús d'ordres BFM (opció 2) estalvia la necessitat d'escriure els codis HDL per al FSM. En aquesta guia de l'usuari, l'opció 2 s'utilitza per mostrar la simulació de serveis del sistema a SmartFusion2. Amb aquesta opció, s'accedeix a l'espai de memòria del controlador del sistema per esbrinar el mapa de memòria del COMM BLK i el bloc del controlador d'interrupció de la interfície de teixit (FIIC) quan escriviu les vostres ordres BFM.
2.4 Simulació Examples
La guia d'usuari cobreix les simulacions següents.

  • Simulació de servei de números de sèrie IGLOO2 (vegeu la pàgina 5)
  • Simulació de servei de números de sèrie SmartFusion2 (vegeu la pàgina 8)
  • Simulació del servei de zeroització IGLOO2 (vegeu la pàgina 13)
  • Simulació del servei de zeroització SmartFusion2 (vegeu la pàgina 16)

Es poden aplicar mètodes de simulació similars a altres serveis del sistema. Per obtenir una llista completa dels diferents serveis del sistema disponibles, aneu a l'Apèndix – Tipus de serveis del sistema (vegeu la pàgina 19).

2.5 Simulació del servei de números de sèrie IGLOO2
Per preparar-se per a la simulació del servei de números de sèrie IGLOO2, seguiu els passos següents.

  1. Invoqueu el creador del sistema per crear el vostre bloc HPMS.
  2. Marqueu la casella Serveis del sistema HPMS a la pàgina Funcions del dispositiu. Això indicarà al creador del sistema que exposi la interfície de bus HPMS_FIC_0 SYS_SERVICES_MASTER (BIF).
  3. Deixeu totes les altres caselles de selecció sense marcar.
  4. Accepteu el valor predeterminat a totes les altres pàgines i feu clic a Finalitza per completar el bloc del creador del sistema. A l'editor HDL del Libero® SoC, escriviu el codi HDL per al FSM (File > Nou > HDL). Incloeu els tres estats següents al vostre FSM.
    Estat INIT (estat inicial)
    SERV_PHASE (estat de sol·licitud de servei)
    RSP_PHASE (estat de resposta del servei).
    La figura següent mostra els tres estats de FSM.
    Figura 4 • FSM de tres estats
  5. Simulació de serveis del sistema FPGA Microsemi UG0837 IGLOO2 i SmartFusion2: FSM 1 de tres estatsAl vostre codi HDL per al FSM, utilitzeu el codi d'ordre correcte ("01" Hex per al servei de números de sèrie) per introduir l'estat de sol·licitud de servei des de l'estat INIT.
  6. Guarda el teu HDL file. L'FSM apareix com un component a la jerarquia de disseny.
  7. Obriu SmartDesign. Arrossegueu i deixeu anar el vostre bloc de creació de sistemes de nivell superior i el vostre bloc FSM al llenç SmartDesign. Des del catàleg, arrossegueu i deixeu anar el nucli IP suau CoreSysService al llenç de SmartDesign.
  8. Feu clic amb el botó dret al nucli IP suau CoreSysService per obrir el configurador. Marqueu la casella de selecció Servei de números de sèrie (a la secció Serveis d'informació de dispositius i dissenys
    grup) per habilitar el servei de números de sèrie.
  9. Deixeu totes les altres caselles de selecció sense marcar. Feu clic a D'acord per sortir del configurador.
    Figura 5 • CoreSysServices soft IP Core Configurator
    Simulació de serveis del sistema FPGA Microsemi UG0837 IGLOO2 i SmartFusion2 - Configurador bàsic
  10. Connecteu el BIF HPMS_FIC_0 SYS_SERVICES_MASTER del bloc del creador del sistema al BIF AHBL_MASTER del bloc CoreSysService.
  11. Connecteu la sortida del vostre bloc HDL FSM a l'entrada del nucli IP suau CoreSysService. Feu totes les altres connexions al llenç de SmartDesign tal com es mostra a la figura següent.
    Figura 6 • SmartDesign Canvas amb HDL Block, CoreSysServices Soft IP i HPMS BlocksSimulació de serveis del sistema FPGA Microsemi UG0837 IGLOO2 i SmartFusion2 - blocs HPMS
  12. Al llenç d'SmartDesign, feu clic amb el botó dret a >Genera component per generar el disseny de nivell superior.
  13. A la jerarquia de disseny view, feu clic amb el botó dret al disseny de nivell superior i seleccioneu crear un banc de proves > HDL .
  14. Utilitzeu un editor de text per crear un text file anomenat "status.txt".
  15. Inclou l'ordre per al servei del sistema i el número de sèrie de 128 bits. Per obtenir més informació, vegeu la Taula 1 (Valors d'ordres/resposta dels serveis del sistema) a CoreSysServices v3.1 Manual per als codis d'ordres (hexadecimal) que s'utilitzaran per a diferents serveis del sistema. Per al servei de números de sèrie, el codi d'ordre és "01" Hex.

El format de status.txt file per al servei de números de sèrie és el següent.
< 2 dígits hexadecimals CMD><32 dígits hexadecimals Número de sèrie>
Example: 01A1A2A3A4B1B2B3B4C1C2C3C4D1D2D3D4
Deseu el status.txt file a la carpeta Simulació del vostre projecte. El disseny ja està preparat per a la simulació.
Un cop s'ha iniciat l'execució del servei, es mostra un missatge que indica la ubicació de destinació i el número de sèrie a la finestra de transcripció del ModelSim, tal com es mostra a la figura següent.
Figura 7 • Finestra de transcripció de la simulació ModelSimSimulació de serveis del sistema FPGA Microsemi UG0837 IGLOO2 i SmartFusion2 - Finestra de transcripcióEl controlador del sistema realitza una escriptura AHB a l'adreça amb el número de sèrie. Un cop finalitzat el servei, el RXFIFO de COMM_BLK es carregarà amb la resposta del servei.
Nota: Per obtenir una llista completa dels codis d'ordres que s'han d'utilitzar per als diferents serveis del sistema, consulteu la Taula 1 (Valors d'ordres/resposta dels serveis del sistema) al manual CoreSysServices v3.1 o UG0450: Guia d'usuari del controlador del sistema SmartFusion2 SoC i IGLOO2 FPGA.
2.6 Simulació del servei de números de sèrie SmartFusion2
En aquesta guia de l'usuari, les ordres BFM (opció 2) s'utilitzen per accedir al controlador del sistema per al servei del sistema. Les ordres BFM s'utilitzen ja que el processador Cortex-M3 està disponible al dispositiu per a la simulació BFM. Les ordres BFM us permeten escriure directament i llegir-ne el COMM BLK un cop coneixeu el mapa de memòria del COMM_BLK.
Per preparar el vostre disseny per a la simulació del servei de números de sèrie SmartFusion2, seguiu els passos següents.

  1. Arrossegueu i deixeu anar el MSS del catàleg al llenç de disseny del vostre projecte.
  2. Desactiveu tots els perifèrics MSS excepte MSS_CCC, Restableix el controlador, Gestió d'interrupcions i FIC_0, FIC_1 i FIC_2.
  3. Configureu la gestió d'interrupcions per utilitzar MSS per a la interrupció de teixit.
  4. Prepareu el serialnum.bfm file en un editor de text o en l'editor HDL del Libero. Deseu el serialnum.bfm file a la carpeta Simulació del projecte. El serialnum.bfm hauria d'incloure els detalls següents.
    • Assignació de memòria a COMM BLK (CMBLK)
    • Mapeig de memòria per al perifèric de gestió d'interrupcions (FIIC)
    • Ordre per a la sol·licitud de servei del sistema de números de sèrie (“01” Hex)
    • Adreça per a la ubicació del número de sèrie
    Un exampel del serialnum.bfm file és el següent.
    memmap FIIC 0x40006000; #Mapeig de memòria per a la gestió d'interrupcions
    memmap CMBLK 0x40016000; #Mapeig de memòria a COMM BLK
    memmap DESCRIPTOR_ADDR 0x20000000; #Ubicació de l'adreça per al número de sèrie
    #Codi de comandament en hexadecimal
    CMD constant 0x1 # Codi de comanda per al servei del número de sèrie
    Registres de configuració #FIIC
    constant FICC_INTERRUPT_ENABLE0 0x0
    #COMM_BLK Registres de configuració
    CONTROL constant 0x00
    constant STATUS 0x04
    constant INT_ENABLE 0x08
    constant DATA8 0x10
    constant DATA32 0x14
    constant FRAME_START8 0x18
    constant FRAME_START32 0x1C
    procediment número de sèrie;
    int x;
    escriure w FIIC FICC_INTERRUPT_ENABLE0 0x20000000 #Configurar
    #FICC_INTERRUPT_ENABLE0 # Registreu-vos per habilitar COMBLK_INTR #
    #interrupt del bloc COMM_BLK al teixit
    #Fase de sol·licitud
    escriure w CMBLK CONTROL 0x10 # Configura COMM BLK Control #Registrar-se a
    habiliteu les transferències a la interfície COMM BLK
    escriure w CMBLK INT_ENABLE 0x1 # Configura l'habilitació d'interrupció COMM BLK
    #Registreu-vos per habilitar la interrupció per a TXTOKAY (bit corresponent al fitxer
    #Registre d'estat)
    waitint 19 # wait for COMM BLK Interrupt , aquí #BFM espera
    #fins que s'afirma COMBLK_INTR
    readstore w CMBLK STATUS x # Read COMM BLK Status Registre per a #TXTOKAY
    # Interrupció
    establir xx i 0x1
    si x
    escriure w CMBLK FRAME_START8 CMD # Configura COMM BLK FRAME_START8
    #Registreu-vos per sol·licitar el servei de número de sèrie
    endif
    endif
    waitint 19 # espereu la interrupció COMM BLK, aquí
    #BFM espera fins que s'afirmi COMBLK_INTR
    readstore w CMBLK STATUS x # Read COMM BLK Status Registre per
    #TXTOKAY Interrupció
    establir xx i 0x1
    establir xx i 0x1
    si x
    escriure w CMBLK CONTROL 0x14 #Configurar COMM BLK Control
    #Registreu-vos per habilitar les transferències a la interfície COMM BLK
    escriviu w CMBLK DATA32 DESCRIPTOR_ADDR
    escriviu w CMBLK INT_ENABLE 0x80
    escriviu w CMBLK CONTROL 0x10
    endif
    espera 20
    #Fase de resposta
    espera 19
    readstore w CMBLK STATUS x
    establir xx i 0x80
    si x
    verificació de lectura w CMBLK FRAME_START8 CMD
    escriviu w CMBLK INT_ENABLE 0x2
    endif
    espera 19
    readstore w CMBLK STATUS x
    establir xx i 0x2
    si x
    verificació de lectura w CMBLK DATA8 0x0
    escriviu w CMBLK CONTROL 0x18
    endif
    espera 19
    verificació de lectura w FIIC 0x8 0x20000000
    readstore w CMBLK STATUS x
    establir xx i 0x2
    si x
    verificació de lectura w CMBLK DATA32 DESCRIPTOR_ADDR
    endif
    verificació de lectura w DESCRIPTOR_ADDR 0x0 0xE1E2E3E4; #Readcheck per comprovar el S/N
    verificació de lectura w DESCRIPTOR_ADDR 0x4 0xC1C2C3C4; #Readcheck per comprovar el S/N
    verificació de lectura w DESCRIPTOR_ADDR 0x8 0xB1B2B3B4; #Readcheck per comprovar el S/N
    verificació de lectura w DESCRIPTOR_ADDR 0xC 0xA1A2A3A4; #Readcheck per comprovar el S/N
    tornar
  5. Creeu l'estat. txt file a l'editor HDL de Libero o a qualsevol editor de text. Incloeu l'ordre de servei del sistema de números de sèrie ("01" en hexadecimal) i el número de sèrie a l'estat . txt file. Consulteu el manual CoreSysServices v3.1 per utilitzar el codi d'ordre correcte.
  6. La sintaxi d'això file per al servei de números de sèrie és <2 dígits hexadecimal CMD>< 32 dígits hexadecimals Número de sèrie> . Example: 01A1A2A3A4B1B2B3B4C1C2C3C4E1E2E3E4.
  7. Deseu l'estat .txt file a la carpeta Simulació del projecte.
  8. Editeu l'usuari .bfm (situat dins de la carpeta Simulation) per incloure el número de sèrie. bfm file i truqueu al procediment del número de sèrie tal com es mostra al fragment de codi següent.
    inclou "serialnum.bfm" #inclou el serialnum.bfm
    procediment user_main;
    imprimir "INFO:Comença la simulació";
    imprimir "INFO: Codi d'ordres de servei en decimal:%0d", CMD ;
    trucar a número de sèrie; #truca el procediment del número de sèrie
    imprimir "INFO: Finalitza la simulació";
    tornar
  9. A la jerarquia de disseny view, genereu el banc de proves (feu clic amb el botó dret, Disseny de nivell superior > Crea un banc de proves > HDL ) i ja esteu preparat per executar la simulació del servei de números de sèrie.

Un cop s'ha iniciat l'execució del servei, es mostra un missatge que indica la ubicació de destinació i el número de sèrie. El controlador del sistema realitza una escriptura AHB a l'adreça amb el número de sèrie. Un cop finalitzat el servei, el RXFIFO de COMM_BLK es carregarà amb la resposta del servei. La finestra de transcripció de ModelSim mostra l'adreça i el número de sèrie rebuts tal com es mostra a la figura següent.
Figura 8 • Simulació del servei de números de sèrie SmartFusion2 a la finestra de transcripció del ModelSimSimulació de serveis del sistema FPGA Microsemi UG0837 IGLOO2 i SmartFusion2 - Finestra de transcripció 1

2.7 Simulació del servei de zeroització IGLOO2
Per preparar-se per a la simulació del servei de zeroització IGLOO2, seguiu els passos següents.

  1. Invoqueu el creador del sistema per crear el bloc HPMS. Marqueu la casella Serveis del sistema HPMS a les funcions del dispositiu SYS_SERVICES_MASTER BIF. Deixeu totes les altres caselles de selecció sense marcar. Accepteu el valor predeterminat a totes les altres pàgines i feu clic a pàgina. Això indica al creador del sistema que exposi l'HPMS_FIC_0 Finalització per completar la configuració del bloc del creador del sistema.
  2. A l'editor HDL del Libero SoC, escriviu el codi HDL per al FSM. Al vostre codi HDL per al FSM, incloeu els tres estats següents.
    Estat INIT (estat inicial)
    SERV_PHASE (estat de sol·licitud de servei)
    RSP_PHASE (estat de resposta del servei)
    La figura següent mostra els tres estats de FSM.
    Figura 9 • FSM de tres estatsSimulació de serveis del sistema FPGA Microsemi UG0837 IGLOO2 i SmartFusion2: FSM de tres estats

     

  3. Al vostre codi HDL, utilitzeu el codi d'ordre "F0" (hexadecimal) per introduir l'estat de sol·licitud de servei des de l'estat INIT.
  4. Guarda el teu HDL file.
  5. Obriu SmartDesign, arrossegueu i deixeu anar el vostre bloc de creació de sistemes de nivell superior i el vostre bloc HDL FSM al llenç de SmartDesign. Des del catàleg, arrossegueu i deixeu anar el nucli IP suau CoreSysService al llenç de SmartDesign.
  6. Feu clic amb el botó dret al nucli IP suau de CoreSysServices per obrir el configurador i marcar la casella de selecció Servei de zeroització al grup Serveis de seguretat de dades. Deixeu totes les altres caselles de selecció sense marcar. Feu clic per sortir d'acord.
    Figura 10 • Configurador de CoreSysServices
    Simulació de serveis del sistema FPGA Microsemi UG0837 IGLOO2 i SmartFusion2 - Configurador bàsic 1
  7. Connecteu el BIF HPMS_FIC_0 SYS_SERVICES_MASTER del bloc del creador del sistema al BIF AHBL_MASTER del bloc CoreSysService.
  8. Connecteu la sortida del vostre bloc HDL FSM a l'entrada del nucli IP suau CoreSysService. Feu totes les altres connexions al llenç de SmartDesign.
    Figura 11 • SmartDesign Canvas amb HDL Block, CoreSysServices Soft IP i HPMS Blocks
    Simulació de serveis del sistema FPGA Microsemi UG0837 IGLOO2 i SmartFusion2 - Blocs HPMS 19. Al llenç de SmartDesign, genereu el disseny de nivell superior (clic dret > Genera component).
    10. A la jerarquia de disseny view, feu clic amb el botó dret al disseny de nivell superior i seleccioneu crear Testbench > HDL. Ara esteu preparat per executar la simulació.
    Un cop s'ha iniciat l'execució del servei, es mostra un missatge que indica que la zeroització s'ha completat en el moment x, tal com es mostra a la figura següent.
    Figura 12 • Finestra de transcripció de la simulació del servei del sistema de zeroització IGLOO2
    Simulació de serveis del sistema FPGA Microsemi UG0837 IGLOO2 i SmartFusion2 - Finestra de transcripció 3

El controlador del sistema realitza una escriptura AHB a l'adreça amb el número de sèrie. Un cop finalitzat el servei, el RXFIFO de COMM_BLK es carregarà amb la resposta del servei. Cal tenir en compte que el model de simulació simula la zero aturant la simulació en lloc de posar a zero el propi disseny.
Nota: Per obtenir una llista completa dels codis d'ordres que s'han d'utilitzar per a diferents serveis del sistema, consulteu la Taula 1 (Valors de comanda/resposta dels serveis del sistema) a la CoreSysServices v3.1 Manual:. o UG0450: Guia d'usuari del controlador del sistema SmartFusion2 SoC i IGLOO2 FPGA

2.8 Simulació del servei de zeroització SmartFusion2
En aquesta guia, les ordres BFM (opció 2) s'utilitzen per accedir al controlador del sistema per al servei del sistema.
Les ordres BFM s'utilitzen ja que el processador Cortex-M3 està disponible al dispositiu per a la simulació BFM. Les ordres BFM us permeten escriure directament i llegir-ne el COMM BLK un cop coneixeu el mapa de memòria del COMM_BLK. Per preparar el vostre disseny per a la simulació del servei de zeroització SmartFusion2, feu els passos següents.

  1. Arrossegueu i deixeu anar el MSS del catàleg al llenç de disseny del vostre projecte.
  2. Desactiveu tots els perifèrics MSS excepte MSS_CCC, Restableix el controlador, Gestió d'interrupcions i FIC_0, FIC_1 i FIC_2.
  3. Configureu la gestió d'interrupcions per utilitzar MSS per a la interrupció de teixit.
  4. Prepareu el zeroization.bfm file en un editor de text o en l'editor HDL de Libero. La teva zeroització. bfm hauria d'incloure:
  • Mapeig de memòria a COMM BLK (CMBLK)
  • Mapeig de memòria per al perifèric de gestió d'interrupcions (FIIC)
  • Ordre per a la sol·licitud de servei de zeroització ("F0" Hex per a la zeroització)

Un exampel del serialnum.bfm file es mostra a la figura següent.
Figura 13 • Zeroization.bfm per a la simulació de serveis del sistema de Zeroization SmartFusion2

Simulació de serveis del sistema FPGA Microsemi UG0837 IGLOO2 i SmartFusion2 - Finestra de transcripció 4

5. Deseu el zeroization.bfm file a la carpeta Simulació del projecte. user.bfm
6. Editeu el (situat a la carpeta de simulació zeroization.bfm) per incloure-lo mitjançant el fragment de codi següent.
inclou "zeroization.bfm" #include zeroization.bfm file procediment user_main;
imprimir "INFO:Comença la simulació";
imprimir "INFO: Codi d'ordres de servei en decimal:%0d", CMD ;
trucada a zero; #truca el retorn del procediment de zeroització
7. A la jerarquia de disseny , genereu el banc de proves (feu clic amb el botó dret al nivell superior > Crea un banc de proves > HDL ) i esteu preparat per executar la simulació de zeroització SmartFusion2.
Un cop s'ha iniciat l'execució del servei, es mostra un missatge que indica que el dispositiu s'ha posat a zero en el moment x. Cal tenir en compte que el model de simulació simula la zero aturant la simulació en lloc de posar a zero el propi disseny. La finestra de transcripció de ModelSim de la figura següent mostra que el dispositiu s'ha zero.

Figura 14 • Registre de simulació del servei del sistema de zeroització SmartFusion2

Simulació de serveis del sistema FPGA Microsemi UG0837 IGLOO2 i SmartFusion2 - Finestra de transcripció 5

Apèndix: Tipus de serveis del sistema

Aquest capítol descriu diversos tipus de serveis del sistema.
3.1 Serveis de missatgeria de simulació
Les seccions següents descriuen diversos tipus de serveis de missatges de simulació.
3.1.1 Flash*Freeze
La simulació entrarà a l'estat Flash*Freeze quan s'enviï la sol·licitud de servei adequada a COMM_BLK des del FIC (en el cas dels dispositius IGLOO2) o del Cortex-M3 (en els dispositius SmartFusion2). Un cop detectat el servei pel controlador del sistema, la simulació s'aturarà i es mostrarà un missatge que indica que el sistema ha entrat Flash*Freeze (juntament amb l'opció seleccionada). Després de la represa de la simulació, el RXFIFO del COMM_BLK s'omplirà amb la resposta del servei que consisteix en l'ordre i l'estat del servei. Cal tenir en compte que no hi ha suport de simulació per a la sortida de Flash*Freeze.
3.1.2 Zeroització
La zeroització és actualment l'únic servei d'alta prioritat dins dels serveis del sistema processats pel COMM_BLK. La simulació entrarà a l'estat de zero tan aviat com el COMM_BLK detecti la sol·licitud de servei correcta. L'execució d'altres serveis serà aturada i descartada pel controlador del sistema, i en el seu lloc s'executarà el servei de zero. Un cop detectada la sol·licitud de servei de zeroització, la simulació s'atura i es mostra un missatge que indica que el sistema ha entrat en zero. Els reinicis manuals de la simulació després de la zero no són vàlids.
3.2 Serveis de punter de dades
Les seccions següents descriuen diversos tipus de serveis de punter de dades.
3.2.1 Número de sèrie
El servei de números de sèrie escriurà un número de sèrie de 128 bits a una ubicació d'adreça proporcionada com a part de la sol·licitud de servei. Aquest paràmetre de 128 bits es pot configurar mitjançant un suport de simulació de servei del sistema file (vegeu la pàgina 22). Si el paràmetre del número de sèrie de 128 bits no està definit dins del fitxer file, s'utilitzarà un número de sèrie predeterminat de 0. Un cop s'ha iniciat l'execució del servei, es mostra un missatge que indica la ubicació de destinació i el número de sèrie. El controlador del sistema realitza una escriptura AHB a l'adreça amb el número de sèrie. Un cop finalitzat el servei, el RXFIFO de COMM_BLK es carregarà amb la resposta del servei.
3.2.2 Codi d'usuari
El servei de codi d'usuari escriu un paràmetre de codi d'usuari de 32 bits a una ubicació d'adreça proporcionada com a part de la sol·licitud de servei. Aquest paràmetre de 32 bits es pot configurar mitjançant el suport de simulació del servei del sistema file (vegeu la pàgina 22). Si el paràmetre de 32 bits no està definit dins del fitxer file, s'utilitza un valor predeterminat de 0. Un cop s'ha iniciat l'execució del servei, es mostra un missatge que indica la ubicació de destinació i el codi d'usuari. El controlador del sistema realitza una escriptura AHB a l'adreça amb el paràmetre de 32 bits. Un cop finalitzat el servei, el RXFIFO del COMM_BLK es carrega amb la resposta del servei, que inclou l'ordre del servei i l'adreça de destinació.
3.3 Serveis de descriptors de dades
Les seccions següents descriuen diversos tipus de serveis de descriptors de dades.

3.3.1 AES
El suport de simulació d'aquest servei només es preocupa de moure les dades originals de la font a la destinació, sense realitzar cap xifratge/desxifrat de les dades. Les dades que s'han de xifrar/desxifrar i l'estructura de dades s'han d'escriure abans d'enviar la sol·licitud de servei. Un cop s'ha iniciat l'execució del servei, es mostra un missatge que indica l'execució del servei AES. El servei AES llegeix tant l'estructura de dades com les dades que s'han de xifrar/desxifrar. Les dades originals es copien i escriuen a l'adreça proporcionada a l'estructura de dades. Un cop finalitzat el servei, l'ordre, l'estat i l'adreça de l'estructura de dades s'envien al RXFIFO.
Nota: Aquest servei només és per a dades de 128 bits i 256 bits, i les dades de 128 i 256 bits tenen longituds d'estructura de dades diferents.

3.3.2 SHA 256
El suport de simulació d'aquest servei només s'ocupa de moure les dades, sense realitzar cap hash a les dades. La funció SHA 256 està dissenyada per generar una clau hash de 256 bits a partir de les dades d'entrada. Les dades que s'han de calcular i l'estructura de dades s'han d'escriure a les seves respectives adreces abans que la sol·licitud de servei s'enviï a COMM_BLK. La longitud en bits i el punter definits dins de l'estructura de dades SHA 256 han de correspondre correctament a la longitud i l'adreça de les dades que s'han de calcular. Un cop s'ha iniciat l'execució del servei, es mostra un missatge que indica l'execució del servei SHA 256. En lloc d'executar la funció real, s'escriurà una clau hash predeterminada al punter de destinació des de l'estructura de dades. La clau hash predeterminada és hexadecimal "ABCD1234". Per configurar una clau personalitzada, aneu a la secció Configuració de paràmetres (vegeu la pàgina 23). Un cop finalitzat el servei, el RXFIFO es carrega amb la resposta del servei que consisteix en l'ordre del servei, l'estat i el punter d'estructura de dades SHA 256.
3.3.3 HMAC
El suport de simulació d'aquest servei només s'ocupa del moviment de dades, sense realitzar cap hash a les dades. Les dades que s'han de calcular i l'estructura de dades s'han d'escriure a les seves respectives adreces abans que la sol·licitud de servei s'enviï a COMM_BLK. El servei HMAC requereix una clau de 32 bytes a més de la longitud en bytes, el punter d'origen i el punter de destinació. Un cop s'ha iniciat l'execució del servei, es mostra un missatge que indica l'execució del servei HMAC. La clau es llegeix i la clau de 256 bits es copia de l'estructura de dades al punter de destinació. Un cop finalitzat el servei, el RXFIFO es carrega amb la resposta del servei que consisteix en l'ordre del servei, l'estat i el punter d'estructura de dades HMAC.

3.3.4 Generació de DRBG
La generació de bits aleatoris la realitza aquest servei. Cal tenir en compte que el model de simulació no segueix exactament la mateixa metodologia de generació de nombres aleatoris que utilitza el silici. L'estructura de dades s'ha d'escriure correctament a la ubicació prevista abans que la sol·licitud de servei s'enviï a COMM_BLK. El controlador del sistema llegeix l'estructura de dades, el punter de destinació, la longitud i altres dades rellevants. El servei de generació DRBG genera un conjunt pseudoaleatori de dades de la longitud sol·licitada (0-128). El controlador del sistema escriu les dades aleatòries al punter de destinació. A la simulació es mostra un missatge que indica l'execució del servei de generació de DRBG. Un cop finalitzat el servei, l'ordre, l'estat i l'adreça de l'estructura de dades s'envien al RXFIFO. Si la longitud de dades sol·licitada no es troba dins del rang de 0-128, s'enviarà un codi d'error de "4" (Max Generate ) al RXFIFO. Si la longitud de dades addicionals no es troba dins de l'interval de sol·licitud massa gran de 0 a 128, s'enviarà un codi d'error de "5" (Llargada màxima de dades addicionals superades) al RXFIFO. Si tant la longitud de dades sol·licitada per generar com la longitud de dades addicionals no estan dins del seu interval definit (0-128), s'envia un codi d'error "1" (Error catastròfic) al RXFIFO.

3.3.5 Restabliment DRBG
La funció de restabliment real es realitza eliminant les instàncies de DRBG i restablint DRBG. Un cop detectada la sol·licitud de servei, la simulació mostra un missatge de restabliment del servei DRBG completat. La resposta, que inclou el servei i l'estat, s'envia al RXFIFO.
3.3.6 Autoprova DRBG
El suport de simulació per a l'autoprova DRBG no executa realment la funció d'autoprova. Un cop detectada la sol·licitud de servei, la simulació mostrarà un missatge d'execució del servei d'autoprova DRBG. La resposta, que inclou el servei i l'estat, s'enviarà al RXFIFO.
3.3.7 Instanciació DRBG
El suport de simulació per al servei d'instanciació DRBG no realitza realment el servei d'instanciació. L'estructura de dades s'ha d'escriure correctament a la ubicació prevista abans que la sol·licitud de servei s'enviï a COMM_BLK. Un cop detectada la sol·licitud de servei, es llegirà l'estructura i la cadena de personalització definida dins l'espai d'adreces MSS. La simulació mostrarà un missatge que indica que el servei DRBG Instantiate ha començat l'execució. Un cop finalitzat el servei, la resposta, que inclou l'ordre del servei, l'estat i el punter a l'estructura de dades, s'enviarà al RXFIFO. Si la longitud de les dades (PERSONALIZATIONLENGTH) no es troba dins de l'interval de 0 a 128, s'enviarà un codi d'error "1" (Error catastròfic) al RXFIFO per a l'estat.
3.3.8 DRBG Desinstanciar
El suport de simulació per al servei d'instanciació DRBG no realitza realment el servei d'eliminació d'un DRBG instància prèviament, com ho fa el silici. La sol·licitud de servei ha d'incloure tant l'ordre com l'identificador DRBG. Un cop detectada la sol·licitud de servei, s'emmagatzemarà l'identificador DRBG. La simulació mostrarà un missatge que indica que el servei d'instanciació DRBG s'ha inicialitzat. Un cop finalitzat el servei, la resposta, que inclou l'ordre del servei, l'estat i la identificació DRBG, s'enviarà al RXFIFO.
3.3.9 Rellavor DRBG
A causa de la naturalesa simulativa del bloc de serveis del sistema, el servei de reinici de DRBG en simulació no s'executa automàticament després de cada 65535 serveis de generació de DRBG. L'estructura de dades s'ha d'escriure correctament a la ubicació prevista abans que la sol·licitud de servei s'enviï a COMM_BLK. Un cop detectada la sol·licitud de servei, es llegirà l'estructura i el paràmetre d'entrada addicional a l'espai d'adreces MSS. Es mostrarà un missatge que indica que el servei de rellavor DRBG ha començat a executar-se. L'estructura de dades s'ha d'escriure correctament a la ubicació prevista abans que la sol·licitud de servei s'enviï a COMM_BLK. Un cop finalitzat el servei, la resposta, que inclou l'ordre del servei, l'estat i el punter a l'estructura de dades, s'enviarà al RXFIFO.
3.3.10 Arbre de claus
La funció real no s'executa en simulació per al servei KeyTree. L'estructura de dades del servei KeyTree consta d'una clau de 32 bytes, dades d'optip de 7 bits (MSB ignorat) i un camí de 16 bytes. Les dades dins de l'estructura de dades s'han d'escriure a les seves respectives adreces, abans que la sol·licitud de servei s'enviï a COMM_BLK. Un cop s'ha iniciat l'execució del servei, es mostrarà un missatge que indica l'execució del servei KeyTree. Es llegirà el contingut de l'estructura de dades, s'emmagatzemarà la clau de 32 bytes i se sobreescriurà la clau original situada dins de l'estructura de dades. Després d'aquesta escriptura AHB, el valor de la clau dins de l'estructura de dades no hauria de canviar, però es produiran transaccions AHB per a l'escriptura. Un cop finalitzat el servei, el RXFIFO es carrega amb la resposta del servei, que consta de l'ordre del servei, l'estat i el punter de l'estructura de dades de KeyTree.
3.3.11 Resposta al desafiament
La funció real, com l'autenticació del dispositiu, no s'executa en simulació per al servei de resposta al desafiament. L'estructura de dades d'aquest servei requereix un punter a la memòria intermèdia per rebre un resultat de 32 bytes, un tipus d'opció de 7 bits i un camí de 128 bits. Les dades de l'estructura de dades s'han d'escriure a les seves respectives adreces abans que la sol·licitud de servei s'enviï a COMM_BLK. Un cop s'hagi iniciat l'execució del servei, es mostrarà un missatge que indica l'execució del servei de resposta al desafiament. S'escriurà una resposta genèrica de 256 bits al punter proporcionat a l'estructura de dades. La clau predeterminada s'estableix com a hexadecimal "ABCD1234". Per obtenir una clau personalitzada, comproveu la configuració de paràmetres (vegeu la pàgina 23). Un cop finalitzat el servei, el RXFIFO es carregarà amb la resposta del servei, que consta de l'ordre del servei, l'estat i el punter d'estructura de dades de resposta al desafiament.
3.4 Altres serveis
Les seccions següents descriuen altres serveis del sistema.
3.4.1 Comprovació del resum
La funció real de recalcular i comparar resums dels components seleccionats no s'executa per al servei de comprovació de resum en simulació. Aquesta sol·licitud de servei consta d'ordres de servei i opcions de servei (LSB de 5 bits). Un cop s'ha iniciat l'execució del servei, es mostrarà un missatge que detalla l'execució del servei de comprovació de resum, juntament amb les opcions seleccionades a la sol·licitud. Un cop finalitzat el servei, el RXFIFO es carregarà amb la resposta del servei, que consisteix en l'ordre del servei i els indicadors d'aprovació/error de comprovació del resum.
3.4.2 Resposta de comandament no reconeguda
Quan s'envia una sol·licitud de servei no reconeguda al COMM_BLK, el COMM_BLK respondrà automàticament amb un missatge d'ordre no reconegut enviat al RXFIFO. El missatge consta de l'ordre enviada a COMM_BLK i l'estat de l'ordre no reconegut (252D). També es mostrarà un missatge que indica que s'ha detectat una sol·licitud de servei no reconeguda. El COMM_BLK tornarà a un estat inactiu, esperant per acceptar la següent sol·licitud de servei.
3.4.3 Serveis no compatibles
Els serveis no compatibles establerts a COMM_BLK activaran un missatge en simulació que indicarà que la sol·licitud de servei no és compatible. El COMM_BLK tornarà a un estat inactiu, esperant per acceptar la següent sol·licitud de servei. La PINTERRUPT no s'establirà, indicant que un servei s'ha completat. La llista actual de serveis no compatibles inclou: IAP, ISP, certificat de dispositiu i el servei DESIGNVER.
3.5 Suport de simulació de serveis del sistema File
Per donar suport a la simulació de serveis del sistema, un text file anomenat "status.txt" es pot utilitzar per passar instruccions sobre el comportament requerit del model de simulació al model de simulació. Això file s'ha d'ubicar a la mateixa carpeta des de la qual s'executa la simulació. El file es pot utilitzar, entre altres coses, per forçar determinades respostes d'error per als serveis del sistema suportats o fins i tot per establir alguns paràmetres necessaris per a la simulació (per exempleample, número de sèrie). El nombre màxim de línies admeses al "status.txt" file és 256. Les instruccions que apareixen després de la línia número 256 no s'utilitzaran a la simulació.
3.5.1 Forçar respostes d'error
L'usuari pot forçar una resposta d'error determinada per a un servei concret durant la prova passant la informació al model de simulació mitjançant el "status.txt" file, que s'ha de col·locar a la carpeta des de la qual s'executa la simulació. Per forçar les respostes d'error a un determinat servei, l'ordre i la resposta requerida s'han d'escriure a la mateixa línia amb el format següent:ample, a Command> ; indiqueu al model de simulació que generi una resposta d'error d'accés a la memòria MSS al servei de número de sèrie, l'ordre és la següent.
Servei: Número de sèrie: 01
Missatge d'error sol·licitat: Error d'accés a la memòria MSS: 7F
Hauríeu d'introduir la línia 017F a "status.txt" file.
3.5.2 Configuració de paràmetres
El "status.txt" file també es pot utilitzar per establir alguns paràmetres necessaris en la simulació. Com a example, per establir el paràmetre de 32 bits per al codi d'usuari, el format de la línia ha de ser en aquest ordre: <CODI D'USUARI de 32 bits>; on tots dos valors s'introdueixen en hexadecimal. Per establir el paràmetre de 128 bits per al número de sèrie, el format de la línia ha de ser en aquest ordre: <Número de sèrie de 128 bits [127:0]> ; on tots dos valors s'introdueixen en hexadecimal. Per establir el paràmetre de 256 bits per a la clau SHA 256; el format de la línia ha de ser en aquest ordre: <Clau de 256 bits [255:0]>; on tots dos valors s'introdueixen en hexadecimal. Per establir el paràmetre de 256 bits per a la clau de resposta al desafiament, el format de la línia ha de ser en aquest ordre: <Clau de 256 bits [255:0]>;
on tots dos valors s'introdueixen en hexadecimal.
3.5.3 Prioritat del dispositiu
Els serveis de sistemes i el COMM_BLK utilitzen un sistema d'alta prioritat. Actualment, l'únic servei d'alta prioritat és la zeroització. Per a la realització d'un servei de màxima prioritat, mentre s'executa un altre servei, s'atura el servei actual i s'executarà en el seu lloc el de major prioritat. El COMM_BLK descartarà el servei actual per tal de realitzar el servei de prioritat més alta. Si s'envien diversos serveis no prioritaris abans de la finalització d'un servei actual, aquests serveis es posaran en cua dins del TXFIFO. Un cop finalitzat el servei actual, s'executarà el següent servei al TXFIFO.

Microsemi no fa cap garantia, representació o garantia sobre la informació continguda aquí o la idoneïtat dels seus productes i serveis per a cap propòsit particular, ni tampoc assumeix cap responsabilitat derivada de l'aplicació o l'ús de cap producte o circuit. Els productes que es venen a continuació i qualsevol altre producte venut per Microsemi han estat subjectes a proves limitades i no s'han d'utilitzar juntament amb equips o aplicacions crítiques. Es creu que qualsevol especificació de rendiment és fiable, però no es verifica, i el comprador ha de dur a terme i completar totes les proves de rendiment i altres dels productes, sols i juntament amb, o instal·lats en qualsevol producte final. El comprador no es basarà en les dades i les especificacions de rendiment o els paràmetres proporcionats per Microsemi. És responsabilitat del comprador determinar de manera independent la idoneïtat de qualsevol producte i provar-lo i verificar-lo. La informació proporcionada per Microsemi a continuació es proporciona "tal com és, on és" i amb tots els errors, i tot el risc associat amb aquesta informació és totalment del comprador. Microsemi no atorga, de manera explícita o implícita, a cap part cap dret de patent, llicència o qualsevol altre dret de propietat intel·lectual, ja sigui pel que fa a aquesta informació en si o a qualsevol cosa descrita per aquesta informació. La informació proporcionada en aquest document és propietat de Microsemi, i Microsemi es reserva el dret de fer qualsevol canvi a la informació d'aquest document o a qualsevol producte i servei en qualsevol moment sense previ avís.
Microsemi, una filial de propietat total de Microchip Technology Inc. (Nasdaq: MCHP), ofereix una cartera completa de solucions de sistemes i semiconductors per a l'aeronàutica i defensa, comunicacions, centres de dades i mercats industrials. Els productes inclouen circuits integrats de senyal mixt analògic d'alt rendiment i endurits per la radiació, FPGA, SoC i ASIC; productes de gestió d'energia; dispositius de cronometratge i sincronització i solucions de temps precises, establint l'estàndard mundial en temps; dispositius de processament de veu; solucions de RF; components discrets; solucions d'emmagatzematge i comunicació empresarial; tecnologies de seguretat i anti-t escalablesamper productes; solucions Ethernet; Circuits integrats i midspans d'alimentació a través d'Ethernet; així com capacitats i serveis de disseny personalitzat. Microsemi té la seu a Aliso Viejo, Califòrnia, i té aproximadament 4,800 empleats a tot el món. Més informació a www.microsemi.com.

Logotip de Microsemi

Seu Microsemi
One Enterprise, Aliso Viejo,
CA 92656 EUA
Dins dels EUA: +1 800-713-4113
Fora dels EUA: +1 949-380-6100
Vendes: +1 949-380-6136
Fax: +1 949-215-4996
Correu electrònic: vendes.support@microsemi.com
www.microsemi.com
© 2018 Microsemi. Tots els drets reservats. Microsemi i el logotip de Microsemi
són marques comercials de Microsemi Corporation. Totes les altres marques comercials i serveis
les marques són propietat dels seus respectius propietaris.

Documents/Recursos

Simulació de serveis del sistema Microsemi UG0837 IGLOO2 i SmartFusion2 FPGA [pdfGuia de l'usuari
UG0837, UG0837 Simulació de serveis del sistema FPGA IGLOO2 i SmartFusion2, Simulació de serveis del sistema FPGA IGLOO2 i SmartFusion2, Simulació de serveis del sistema SmartFusion2 FPGA, Simulació de serveis del sistema FPGA, simulació de serveis

Referències

Deixa un comentari

La teva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats *