Logo Microsemi

UG0837
Používateľská príručka
IGLOO2 a SmartFusion2 FPGA
Simulácia systémových služieb
júna 2018

História revízií

História revízií popisuje zmeny, ktoré boli implementované v dokumente. Zmeny sú uvedené podľa revízií, počnúc najaktuálnejšou publikáciou.
1.1 Revízia 1.0
Revízia 1.0 bola zverejnená v júni 2018. Bola to prvá publikácia tohto dokumentu.

Simulácia systémových služieb IGLOO2 a SmartFusion2 FPGA

Blok systémových služieb rodiny SmartFusion®2 FPGA obsahuje súbor služieb zodpovedných za rôzne úlohy. Patria sem služby simulačných správ, služby ukazovateľov údajov a služby deskriptorov údajov. K systémovým službám je možné pristupovať cez Cortex-M3 v SmartFusion2 a z FPGA štruktúry cez fabric interface controller (FIC) pre SmartFusion2 aj IGLOO®2. Tieto prístupové metódy sa odosielajú do systémového ovládača prostredníctvom COMM_BLK. COMM_BLK má pokročilé rozhranie periférnej zbernice (APB) a funguje ako kanál na prenos správ na výmenu údajov s kontrolérom systému. Požiadavky na systémové služby sa odosielajú do ovládača systému a odpovede systémových služieb sa odosielajú do CoreSysSerrvice cez COMM BLK. Umiestnenie adresy pre COMM_BLK je dostupné vo vnútri subsystému mikrokontroléra (MSS)/vysokovýkonného pamäťového subsystému (HPMS). Podrobnosti nájdete v UG0450: SmartFusion2 SoC a IGLOO2 FPGA System Controller.
Používateľská príručka
Nasledujúca ilustrácia zobrazuje tok údajov systémových služieb.
Obrázok 1 • Diagram toku údajov systémovej službySimulácia systémových služieb Microsemi UG0837 IGLOO2 a SmartFusion2 FPGA - Diagram toku dátPre simuláciu systémových služieb IGLOO2 aj SmartFusion2 musíte odoslať požiadavky systémovej služby a skontrolovať odpovede systémových služieb, aby ste si overili, že simulácia je správna. Tento krok je potrebný na prístup k systémovému ovládaču, ktorý poskytuje systémové služby. Spôsob zapisovania a čítania z ovládača systému je odlišný pre zariadenia IGLOO2 a SmartFusion2. Pre SmartFusion2 je k dispozícii Coretex-M3 a môžete zapisovať a čítať zo systémového ovládača pomocou príkazov BFM (Bus Functional Model). Pre IGLOO2 nie je k dispozícii Cortex-M3 a systémový ovládač nie je prístupný pomocou príkazov BFM.
2.1 Typy dostupných systémových služieb
K dispozícii sú tri rôzne typy systémových služieb a každý typ služby má rôzne podtypy.
Služby simulačných správ
Služby ukazovateľov údajov
Služby deskriptorov údajov
Kapitola Príloha – Typy systémových služieb (pozrite si stranu 19) tejto príručky popisuje rôzne typy systémových služieb. Ďalšie informácie o systémových službách nájdete v UG0450: SmartFusion2 SoC a IGLOO2 FPGA System Controller User Guide.
2.2 Simulácia systémovej služby IGLOO2
Systémové služby zahŕňajú zápis a čítanie zo systémového radiča. Ak chcete zapisovať a čítať z ovládača systému na účely simulácie, musíte vykonať nasledujúce kroky.

  1. Okamžite vytvorte jadro soft IP CoreSysServices dostupné v katalógu SmartDesign.
  2. Napíšte HDL kód pre konečný automat (FSM).

HDL FSM je prepojený s CoreSysServices Core, ktoré slúži ako hlavný modul zbernice AHBLite. Jadro CoreSysServices iniciuje požiadavku na systémovú službu do COMM BLK a prijíma odpovede systémovej služby z COMM BLK cez FIC_0/1, radič rozhrania tkaniva, ako je znázornené na nasledujúcom obrázku.
Obrázok 2 • Topológia simulácie systémových služieb IGLOO2Simulácia systémových služieb Microsemi UG0837 IGLOO2 a SmartFusion2 FPGA - Diagram toku dát 12.3 Simulácia systémových služieb SmartFusion2
Ak chcete simulovať systémové služby v zariadeniach SmartFusion2, musíte zapisovať a čítať z ovládača systému. K dispozícii sú dve možnosti prístupu k systémovému ovládaču na účely simulácie.
Možnosť 1 – Napíšte kód HDL pre FSM na prepojenie s jadrom mäkkej IP adresy CoreSysService, ktoré slúži ako hlavný modul štruktúry AHBLite a iniciuje požiadavku na systémovú službu do COMM BLK a prijíma odpovede systémovej služby z COMM BLK cez štruktúru FIC_0/1 rozhranie, ako je znázornené na nasledujúcom obrázku.
Obrázok 3 • Topológia simulácie systémových služieb SmartFusion2Simulácia systémových služieb Microsemi UG0837 IGLOO2 a SmartFusion2 FPGA - Diagram toku dát 2

Možnosť 2 — Keďže Cortex-M3 je k dispozícii pre zariadenia SmartFusion2, môžete použiť príkazy BFM na priamy zápis a čítanie z pamäťového priestoru ovládača systému.
Použitie príkazov BFM (možnosť 2) šetrí potrebu zapisovania kódov HDL pre FSM. V tejto používateľskej príručke sa možnosť 2 používa na zobrazenie simulácie systémových služieb v SmartFusion2. Pomocou tejto možnosti sa pristupuje k pamäťovému priestoru ovládača systému, aby sa pri písaní príkazov BFM zistila mapa pamäte COMM BLK a bloku radiča prerušenia rozhrania tkaniny (FIIC).
2.4 Simulácia Pramples
Používateľská príručka obsahuje nasledujúce simulácie.

  • Simulácia služby sériového čísla IGLOO2 (pozrite si stranu 5)
  • Simulácia služby so sériovým číslom SmartFusion2 (pozri stranu 8)
  • Simulácia služby nulovania IGLOO2 (pozri stranu 13)
  • Simulácia služby nulovania SmartFusion2 (pozri stranu 16)

Podobné simulačné metódy možno aplikovať aj na iné systémové služby. Úplný zoznam rôznych dostupných systémových služieb nájdete v časti Príloha – Typy systémových služieb (pozri stranu 19).

2.5 Simulácia služby sériového čísla IGLOO2
Ak sa chcete pripraviť na simuláciu služby sériového čísla IGLOO2, vykonajte nasledujúce kroky.

  1. Vyvolajte tvorcu systému na vytvorenie bloku HPMS.
  2. Začiarknite políčko Systémové služby HPMS na stránke Funkcie zariadenia. To dá pokyn tvorcovi systému, aby odhalil rozhranie zbernice HPMS_FIC_0 SYS_SERVICES_MASTER (BIF).
  3. Všetky ostatné políčka nechajte nezačiarknuté.
  4. Prijmite predvolené nastavenie na všetkých ostatných stránkach a kliknutím na tlačidlo Dokončiť dokončite blok tvorcu systému. V HDL editore Libero® SoC napíšte HDL kód pre FSM (File > Nové > HDL) . Do svojho FSM zahrňte nasledujúce tri štáty.
    Stav INIT (počiatočný stav)
    SERV_PHASE (stav požiadavky na službu)
    RSP_PHASE (stav odpovede služby).
    Nasledujúci obrázok ukazuje tri stavy FSM.
    Obrázok 4 • Trojštátne MFŠ
  5. Simulácia systémových služieb Microsemi UG0837 IGLOO2 a SmartFusion2 FPGA – trojstavový FSM 1Vo svojom HDL kóde pre FSM použite správny kód príkazu („01“ Hex pre službu sériového čísla) na zadanie stavu požiadavky na službu zo stavu INIT.
  6. Uložte si HDL file. FSM sa objaví ako komponent v Hierarchii dizajnu.
  7. Otvorte SmartDesign. Presuňte svoj blok tvorcu systému najvyššej úrovne a blok FSM na plátno SmartDesign. Z katalógu presuňte jadro CoreSysService soft IP na plátno SmartDesign.
  8. Kliknutím pravým tlačidlom myši na jadro soft IP CoreSysService otvorte konfigurátor. Začiarknite políčko Služba sériového čísla (v časti Informácie o zariadení a dizajne
    skupina), aby ste povolili službu sériového čísla.
  9. Všetky ostatné políčka nechajte nezačiarknuté. Kliknutím na tlačidlo OK opustíte konfigurátor.
    Obrázok 5 • CoreSysServices soft IP Core Configurator
    Simulácia systémových služieb Microsemi UG0837 IGLOO2 a SmartFusion2 FPGA – hlavný konfigurátor
  10. Pripojte HPMS_FIC_0 SYS_SERVICES_MASTER BIF bloku tvorcu systému k AHBL_MASTER BIF bloku CoreSysService.
  11. Pripojte výstup vášho HDL FSM bloku k vstupu CoreSysService soft IP jadra. Vykonajte všetky ostatné pripojenia na plátne SmartDesign, ako je znázornené na nasledujúcom obrázku.
    Obrázok 6 • SmartDesign Canvas s HDL blokom, CoreSysServices Soft IP a HPMS blokmiSimulácia systémových služieb Microsemi UG0837 IGLOO2 a SmartFusion2 FPGA - bloky HPMS
  12. Na plátne SmartDesign kliknite pravým tlačidlom myši na >Generovať komponent, aby ste vygenerovali návrh najvyššej úrovne.
  13. V Hierarchii dizajnu view, kliknite pravým tlačidlom myši na dizajn najvyššej úrovne a vyberte vytvoriť Testbench > HDL .
  14. Na vytvorenie textu použite textový editor file s názvom „status.txt“ .
  15. Zahrňte príkaz pre systémovú službu a 128-bitové sériové číslo. Ďalšie informácie nájdete v tabuľke 1 (Hodnoty príkazu/odozvy systémových služieb) v dokumente Príručka CoreSysServices v3.1 pre príkazové kódy (Hex), ktoré sa majú použiť pre rôzne systémové služby. Pre službu sériového čísla je príkazový kód „01“ Hex.

Formát súboru status.txt file pre službu sériového čísla je nasledovné.
< 2 hexadecimálne číslo CMD><32 šestnástkové sériové číslo>
Example: 01A1A2A3A4B1B2B3B4C1C2C3C4D1D2D3D4
Uložte súbor status.txt file v priečinku Simulácia vášho projektu. Dizajn je teraz pripravený na simuláciu.
Po spustení služby sa v okne prepisu ModelSim zobrazí správa označujúca cieľové umiestnenie a sériové číslo, ako je znázornené na nasledujúcom obrázku.
Obrázok 7 • Okno prepisu simulácie ModelSimSimulácia systémových služieb Microsemi UG0837 IGLOO2 a SmartFusion2 FPGA – okno prepisuRiadiaca jednotka systému vykoná zápis AHB na adresu so sériovým číslom. Po dokončení služby sa načíta RXFIFO COMM_BLK s odpoveďou služby.
Poznámka: Úplný zoznam kódov príkazov, ktoré sa majú použiť pre rôzne systémové služby, nájdete v tabuľke 1 (Hodnoty príkazov a odoziev systémových služieb) v príručke CoreSysServices v3.1 Handbook alebo UG0450: SmartFusion2 SoC and IGLOO2 FPGA System Controller User Guide.
2.6 Simulácia služby sériového čísla SmartFusion2
V tejto používateľskej príručke sa príkazy BFM (možnosť 2) používajú na prístup k systémovému ovládaču pre systémový servis. Príkazy BFM sa používajú, pretože procesor Cortex-M3 je na zariadení k dispozícii na simuláciu BFM. Príkazy BFM vám umožňujú priamo zapisovať a čítať z COMM BLK, keď poznáte mapovanie pamäte COMM_BLK.
Ak chcete pripraviť svoj návrh na simuláciu služby sériového čísla SmartFusion2, vykonajte nasledujúce kroky.

  1. Presuňte MSS z katalógu na dizajnové plátno vášho projektu.
  2. Zakážte všetky periférie MSS okrem MSS_CCC, Reset Controller, Interrupt Management a FIC_0, FIC_1 a FIC_2.
  3. Nakonfigurujte správu prerušení tak, aby používala MSS na prerušenie štruktúry.
  4. Pripravte serialnum.bfm file v textovom editore alebo v HDL editore libera. Uložte serialnum.bfm file v priečinku Simulácia projektu. Serialnum.bfm by mal obsahovať nasledujúce podrobnosti.
    • Mapovanie pamäte na COMM BLK (CMBLK)
    • Mapovanie pamäte na perifériu správy prerušení (FIIC)
    • Príkaz pre požiadavku na servis systému so sériovým číslom („01“ Hex)
    • Adresa pre umiestnenie sériového čísla
    Bývalýampsúbor serialnum.bfm file je nasledovný.
    memmap FIIC 0x40006000; #Mapovanie pamäte na správu prerušení
    memmap CMBLK 0x40016000; #Mapovanie pamäte na COMM BLK
    memmap DESCRIPTOR_ADDR 0x20000000; #Umiestnenie adresy pre sériové číslo
    #Príkazový kód v hexadecimálnom formáte
    konštanta CMD 0x1 # Kód príkazu pre Serial NumberService
    #Konfiguračné registre FIIC
    konštanta FICC_INTERRUPT_ENABLE0 0x0
    #COMM_BLK Konfiguračné registre
    konštantná KONTROLA 0x00
    konštanta STATUS 0x04
    konštanta INT_ENABLE 0x08
    konštantné DATA8 0x10
    konštantné DATA32 0x14
    konštanta FRAME_START8 0x18
    konštanta FRAME_START32 0x1C
    postup serialnum;
    int x;
    zápis w FIIC FICC_INTERRUPT_ENABLE0 0x20000000 #Configure
    #FICC_INTERRUPT_ENABLE0 # Zaregistrujte sa a povoľte COMBLK_INTR #
    #interrupt z COMM_BLK bloku do tkaniny
    #Fáza žiadosti
    zápis w CMBLK CONTROL 0x10 # Konfigurácia COMM BLK Control #Registrovať do
    povoliť prenosy na rozhraní COMM BLK
    write w CMBLK INT_ENABLE 0x1 # Konfigurácia COMM BLK Interrupt Enable
    #Zaregistrujte sa, aby ste povolili prerušenie pre TXTOKAY (zodpovedajúci bit v
    #Status Register)
    waitint 19 # čakať na prerušenie COMM BLK , tu čaká #BFM
    #til sa uplatní COMBLK_INTR
    readstore w CMBLK STATUS x # Čítanie stavu COMM BLK Zaregistrujte sa pre #TXTOKAY
    # Prerušiť
    nastaviť xx & 0x1
    ak x
    zápis w CMBLK FRAME_START8 CMD # Konfigurácia COMM BLK FRAME_START8
    #Zaregistrujte sa a požiadajte o službu sériového čísla
    endif
    endif
    waitint 19 # čakať na prerušenie COMM BLK, tu
    #BFM čaká, kým sa potvrdí COMBLK_INTR
    readstore w CMBLK STATUS x # Čítanie stavu COMM BLK Registrovať pre
    #TXTOKAY Prerušenie
    nastaviť xx & 0x1
    nastaviť xx & 0x1
    ak x
    zápis w CMBLK CONTROL 0x14 #Configure COMM BLK Control
    # Zaregistrujte sa a povoľte prenosy na rozhraní COMM BLK
    zápis w CMBLK DATA32 DESCRIPTOR_ADDR
    napíšte w CMBLK INT_ENABLE 0x80
    napíšte w CMBLK CONTROL 0x10
    endif
    počkaj 20
    #Fáza odozvy
    čakať 19
    readstore w CMBLK STATUS x
    nastaviť xx & 0x80
    ak x
    readcheck w CMBLK FRAME_START8 CMD
    napíšte w CMBLK INT_ENABLE 0x2
    endif
    čakať 19
    readstore w CMBLK STATUS x
    nastaviť xx & 0x2
    ak x
    readcheck w CMBLK DATA8 0x0
    napíšte w CMBLK CONTROL 0x18
    endif
    čakať 19
    readcheck w FIIC 0x8 0x20000000
    readstore w CMBLK STATUS x
    nastaviť xx & 0x2
    ak x
    readcheck w CMBLK DATA32 DESCRIPTOR_ADDR
    endif
    readcheck w DESCRIPTOR_ADDR 0x0 0xE1E2E3E4; #Readcheck pre kontrolu S/N
    readcheck w DESCRIPTOR_ADDR 0x4 0xC1C2C3C4; #Readcheck pre kontrolu S/N
    readcheck w DESCRIPTOR_ADDR 0x8 0xB1B2B3B4; #Readcheck pre kontrolu S/N
    readcheck w DESCRIPTOR_ADDR 0xC 0xA1A2A3A4; #Readcheck pre kontrolu S/N
    vrátiť
  5. Vytvorte stav. TXT file v HDL editore Libera alebo v akomkoľvek textovom editore. Zahrňte sériové číslo systémového servisného príkazu („01“ v Hex) a sériové číslo do stavu . TXT file. Informácie o používaní správneho príkazového kódu nájdete v príručke CoreSysServices v3.1 Handbook.
  6. Syntax tohto file pre službu sériového čísla je <2 hexadecimálne číslice CMD>< 32 hexadecimálne sériové číslo> . Naprample: 01A1A2A3A4B1B2B3B4C1C2C3C4E1E2E3E4.
  7. Uložte stavový .txt file v priečinku Simulácia projektu.
  8. Upravte používateľský .bfm (umiestnený v priečinku Simulation) tak, aby obsahoval sériové číslo. bfm file a zavolajte procedúru sériového čísla, ako je uvedené v nasledujúcom útržku kódu.
    include “serialnum.bfm” #include serialnum.bfm
    procedúra user_main;
    vytlačte „INFO:Spustí sa simulácia“;
    vytlačiť “INFO:Servisný príkazový kód v desiatkovej sústave:%0d”, CMD ;
    volať serialnum; #zavolajte procedúru serialnum
    vytlačiť „INFO:Simulácia končí“;
    vrátiť
  9. V Hierarchii dizajnu view, vygenerujte testovaciu plochu (kliknite pravým tlačidlom myši, návrh najvyššej úrovne > Vytvoriť testovaciu plochu > HDL ) a ste pripravení spustiť simuláciu služby sériového čísla.

Po spustení služby sa zobrazí správa označujúca cieľové umiestnenie a sériové číslo. Riadiaca jednotka systému vykoná zápis AHB na adresu so sériovým číslom. Po dokončení služby sa načíta RXFIFO COMM_BLK s odpoveďou služby. Okno prepisu ModelSim zobrazuje prijatú adresu a sériové číslo, ako je znázornené na nasledujúcom obrázku.
Obrázok 8 • Simulácia služby sériového čísla SmartFusion2 v okne prepisu ModelSimSimulácia systémových služieb Microsemi UG0837 IGLOO2 a SmartFusion2 FPGA - Okno prepisu 1

2.7 Simulácia služby nulovania IGLOO2
Na prípravu na simuláciu služby nulovania IGLOO2 vykonajte nasledujúce kroky.

  1. Vyvolajte tvorcu systému na vytvorenie bloku HPMS. Začiarknite políčko Systémové služby HPMS v časti Funkcie zariadenia SYS_SERVICES_MASTER BIF. Všetky ostatné políčka nechajte nezačiarknuté. Prijmite predvolené nastavenie na všetkých ostatných stránkach a kliknite na stránku. Toto prikáže tvorcovi systému, aby odhalil HPMS_FIC_0 Finish, aby dokončil konfiguráciu bloku tvorcu systému.
  2. V HDL editore Libero SoC napíšte HDL kód pre FSM. Vo svojom HDL kóde pre FSM zahrňte nasledujúce tri stavy.
    Stav INIT (počiatočný stav)
    SERV_PHASE (stav požiadavky na službu)
    RSP_PHASE (stav odpovede služby)
    Nasledujúci obrázok ukazuje tri stavy FSM.
    Obrázok 9 • Trojštátne MFŠSimulácia systémových služieb Microsemi UG0837 IGLOO2 a SmartFusion2 FPGA – trojstavové FSM

     

  3. Vo svojom HDL kóde použite príkazový kód “F0″(Hex) na zadanie stavu požiadavky na službu zo stavu INIT.
  4. Uložte si HDL file.
  5. Otvorte SmartDesign, presuňte svoj blok tvorcu systému najvyššej úrovne a blok HDL FSM na plátno SmartDesign. Z katalógu presuňte jadro CoreSysService soft IP na plátno SmartDesign.
  6. Kliknite pravým tlačidlom myši na jadro soft IP CoreSysServices, otvorte konfigurátor a začiarknite políčko Zeroization Service v skupine Data Security Services. Všetky ostatné políčka nechajte nezačiarknuté. Kliknutím na tlačidlo OK ukončíte.
    Obrázok 10 • Konfigurátor CoreSysServices
    Simulácia systémových služieb Microsemi UG0837 IGLOO2 a SmartFusion2 FPGA – Core Configurator 1
  7. Pripojte HPMS_FIC_0 SYS_SERVICES_MASTER BIF bloku tvorcu systému k AHBL_MASTER BIF bloku CoreSysService.
  8. Pripojte výstup vášho HDL FSM bloku k vstupu CoreSysService soft IP jadra. Všetky ostatné pripojenia vytvorte na plátne SmartDesign.
    Obrázok 11 • SmartDesign Canvas s HDL blokom, CoreSysServices Soft IP a HPMS blokmi
    Simulácia systémových služieb Microsemi UG0837 IGLOO2 a SmartFusion2 FPGA - HPMS bloky 19. Na plátne SmartDesign vygenerujte návrh najvyššej úrovne (kliknite pravým tlačidlom myši > Generovať komponent).
    10. V Hierarchii dizajnu view, kliknite pravým tlačidlom myši na dizajn najvyššej úrovne a vyberte vytvoriť Testbench > HDL. Teraz ste pripravení spustiť simuláciu.
    Keď sa služba začne vykonávať, zobrazí sa správa oznamujúca, že nulovanie bolo dokončené v čase x, ako je znázornené na nasledujúcom obrázku.
    Obrázok 12 • Okno simulácie prepisu služby nulovacieho systému IGLOO2
    Simulácia systémových služieb Microsemi UG0837 IGLOO2 a SmartFusion2 FPGA - Okno prepisu 3

Riadiaca jednotka systému vykoná zápis AHB na adresu so sériovým číslom. Po dokončení služby sa načíta RXFIFO COMM_BLK s odpoveďou služby. Treba poznamenať, že simulačný model simuluje nulovanie zastavením simulácie, a nie nulovaním samotného návrhu.
Poznámka: Úplný zoznam kódov príkazov, ktoré sa majú použiť pre rôzne systémové služby, nájdete v tabuľke 1 (Hodnoty príkazu/odozvy systémových služieb) v Príručka CoreSysServices v3.1:. alebo UG0450: Používateľská príručka ovládača systému SmartFusion2 SoC a IGLOO2 FPGA

2.8 Simulácia služby nulovania SmartFusion2
V tejto príručke sa príkazy BFM (možnosť 2) používajú na prístup k systémovému ovládaču pre systémovú službu.
Príkazy BFM sa používajú, pretože procesor Cortex-M3 je na zariadení k dispozícii na simuláciu BFM. Príkazy BFM vám umožňujú priamo zapisovať a čítať z COMM BLK, keď poznáte mapovanie pamäte COMM_BLK. Ak chcete pripraviť svoj návrh na simuláciu služby nulovania SmartFusion2, vykonajte nasledujúce kroky.

  1. Presuňte MSS z katalógu na dizajnové plátno vášho projektu.
  2. Zakážte všetky periférie MSS okrem MSS_CCC, Reset Controller, Interrupt Management a FIC_0, FIC_1 a FIC_2.
  3. Nakonfigurujte správu prerušení tak, aby používala MSS na prerušenie štruktúry.
  4. Pripravte zeroizaton.bfm file v textovom editore alebo v HDL editore Libera. Vaše nulovanie. bfm by mal obsahovať:
  • Mapovanie pamäte na COMM BLK (CMBLK)
  • Mapovanie pamäte na perifériu správy prerušení (FIIC)
  • Príkaz pre požiadavku na službu nulovania („F0“ Hex pre nulovanie)

Bývalýampsúbor serialnum.bfm file je znázornený na nasledujúcom obrázku.
Obrázok 13 • Zeroization.bfm pre SmartFusion2 Zeroization System Services Simulation

Simulácia systémových služieb Microsemi UG0837 IGLOO2 a SmartFusion2 FPGA - Okno prepisu 4

5. Uložte súbor zeroization.bfm file v priečinku Simulácia projektu. user.bfm
6. Upravte súbor (nachádza sa v priečinku zeroization.bfm Simulation) tak, aby obsahoval nasledujúci útržok kódu.
include “zeroization.bfm” #include zeroization.bfm file procedúra user_main;
vytlačte „INFO:Spustí sa simulácia“;
vytlačiť “INFO:Servisný príkazový kód v desiatkovej sústave:%0d”, CMD ;
nulovanie hovorov; # návrat procedúry nulovania volania
7. V Hierarchii dizajnu vygenerujte Testbench (kliknite pravým tlačidlom myši na najvyššiu úroveň > Create Testbench > HDL) a ste pripravení spustiť simuláciu nulovania SmartFusion2.
Po spustení služby sa zobrazí správa, že zariadenie bolo vynulované v čase x. Treba poznamenať, že simulačný model simuluje nulovanie zastavením simulácie, a nie nulovaním samotného návrhu. Okno prepisu ModelSim na nasledujúcom obrázku ukazuje, že zariadenie bolo vynulované.

Obrázok 14 • Záznam simulácie služby nulovacieho systému SmartFusion2

Simulácia systémových služieb Microsemi UG0837 IGLOO2 a SmartFusion2 FPGA - Okno prepisu 5

Príloha: Typy systémových služieb

Táto kapitola popisuje rôzne typy systémových služieb.
3.1 Služby simulačných správ
Nasledujúce časti popisujú rôzne typy služieb simulačných správ.
3.1.1 Flash*Freeze
Simulácia prejde do stavu Flash*Freeze, keď sa do COMM_BLK odošle správna servisná požiadavka buď z FIC (v prípade zariadení IGLOO2) alebo Cortex-M3 (v zariadeniach SmartFusion2). Po zistení služby ovládačom systému sa simulácia zastaví a zobrazí sa správa, že systém vstúpil do režimu Flash*Freeze (spolu s vybratou možnosťou). Po obnovení simulácie sa RXFIFO COMM_BLK vyplní servisnou odpoveďou pozostávajúcou zo servisného príkazu a stavu. Treba poznamenať, že neexistuje žiadna podpora simulácie pre ukončenie Flash*Freeze.
3.1.2 Nulovanie
Nulovanie je v súčasnosti jedinou službou s vysokou prioritou v rámci systémových služieb, ktoré spracováva COMM_BLK. Simulácia vstúpi do stavu nulovania, akonáhle COMM_BLK zistí správnu požiadavku na službu. Vykonávanie iných služieb bude zastavené a zrušené riadiacim systémom systému a namiesto toho sa vykoná služba nulovania. Po zistení požiadavky nulovacej služby sa simulácia zastaví a zobrazí sa správa oznamujúca, že systém vstúpil do nulovania. Ručné reštarty simulácie po vynulovaní sú neplatné.
3.2 Služby dátového ukazovateľa
Nasledujúce časti popisujú rôzne typy služieb ukazovateľov údajov.
3.2.1 Sériové číslo
Služba sériového čísla zapíše 128-bitové sériové číslo na adresu uvedenú ako súčasť servisnej požiadavky. Tento 128-bitový parameter možno nastaviť pomocou podpory simulácie systémových služieb file (pozri stranu 22). Ak parameter 128-bitového sériového čísla nie je definovaný v rámci file, použije sa predvolené sériové číslo 0. Po spustení služby sa zobrazí správa označujúca cieľové umiestnenie a sériové číslo. Riadiaca jednotka systému vykoná zápis AHB na adresu so sériovým číslom. Po dokončení služby sa načíta RXFIFO COMM_BLK s odpoveďou služby.
3.2.2 Používateľský kód
Služba užívateľského kódu zapíše 32-bitový parameter užívateľského kódu na miesto adresy poskytnuté ako súčasť servisnej požiadavky. Tento 32-bitový parameter možno nastaviť pomocou podpory simulácie systémových služieb file (pozri stranu 22). Ak 32-bitový parameter nie je definovaný v rámci file, použije sa predvolená hodnota 0. Po spustení služby sa zobrazí správa označujúca cieľové umiestnenie a kód používateľa. Riadiaca jednotka systému vykoná zápis AHB na adresu s 32-bitovým parametrom. Po dokončení služby sa do RXFIFO COMM_BLK načíta odpoveď služby, ktorá obsahuje príkaz služby a cieľovú adresu.
3.3 Služby deskriptorov údajov
Nasledujúce časti popisujú rôzne typy služieb deskriptorov údajov.

3.3.1 AES
Simulačná podpora pre túto službu sa týka iba presunu pôvodných údajov zo zdroja do cieľa bez toho, aby sa v skutočnosti vykonalo akékoľvek šifrovanie/dešifrovanie údajov. Dáta, ktoré je potrebné zašifrovať/dešifrovať, a dátová štruktúra by sa mali zapísať pred odoslaním požiadavky na službu. Po spustení služby sa zobrazí správa označujúca vykonanie služby AES. Služba AES číta štruktúru údajov aj údaje, ktoré sa majú zašifrovať/dešifrovať. Pôvodné dáta sa skopírujú a zapíšu na adresu uvedenú v dátovej štruktúre. Po dokončení služby sa príkaz, stav a adresa dátovej štruktúry vložia do RXFIFO.
Poznámka: Táto služba je určená len pre 128-bitové a 256-bitové údaje a 128-bitové aj 256-bitové údaje majú rôzne dĺžky štruktúry údajov.

3.3.2 SHA 256
Simulačná podpora pre túto službu sa zaoberá iba presunom údajov bez toho, aby sa v skutočnosti vykonalo akékoľvek hašovanie údajov. Funkcia SHA 256 je navrhnutá tak, aby generovala 256-bitový hash kľúč na základe vstupných údajov. Údaje, ktoré je potrebné hashovať, a dátová štruktúra by sa mali zapísať na ich príslušné adresy pred odoslaním požiadavky na službu do COMM_BLK. Dĺžka v bitoch a ukazovateľ definovaný v dátovej štruktúre SHA 256 musí správne zodpovedať dĺžke a adrese údajov, ktoré sa majú hašovať. Po spustení služby sa zobrazí správa označujúca vykonanie služby SHA 256. Namiesto vykonania skutočnej funkcie sa do cieľového ukazovateľa zo štruktúry údajov zapíše predvolený hash kľúč. Predvolený hash kľúč je hex „ABCD1234“. Ak chcete nastaviť vlastný kľúč, prejdite do časti Nastavenie parametrov (pozrite si stranu 23). Po dokončení služby sa do RXFIFO načíta odpoveď služby pozostávajúca z príkazu služby, stavu a ukazovateľa dátovej štruktúry SHA 256.
3.3.3 HMAC
Simulačná podpora pre túto službu sa týka iba presunu údajov bez toho, aby sa v skutočnosti vykonalo akékoľvek hašovanie údajov. Údaje, ktoré je potrebné hashovať, a dátová štruktúra by sa mali zapísať na ich príslušné adresy pred odoslaním požiadavky na službu do COMM_BLK. Služba HMAC vyžaduje okrem dĺžky v bajtoch, ukazovateľa zdroja a ukazovateľa cieľa aj 32-bajtový kľúč. Po spustení služby sa zobrazí správa označujúca vykonanie služby HMAC. Kľúč sa načíta a 256-bitový kľúč sa skopíruje z dátovej štruktúry do cieľového ukazovateľa. Po dokončení služby sa do RXFIFO načíta servisná odpoveď pozostávajúca z príkazu služby, stavu a ukazovateľa dátovej štruktúry HMAC.

3.3.4 Generovanie DRBG
Táto služba vykonáva generovanie náhodných bitov. Je potrebné poznamenať, že simulačný model sa presne neriadi rovnakou metodikou generovania náhodných čísel, akú používa kremík. Pred odoslaním servisnej požiadavky do COMM_BLK musí byť dátová štruktúra správne zapísaná na zamýšľané miesto. Štruktúru údajov, cieľový ukazovateľ, dĺžku a ďalšie relevantné údaje číta systémový kontrolér. Služba generovania DRBG generuje pseudonáhodnú množinu údajov požadovanej dĺžky (0-128). Systémový kontrolér zapíše náhodné údaje do cieľového ukazovateľa. V simulácii sa zobrazí správa označujúca vykonanie služby generovania DRBG. Po dokončení služby sa príkaz, stav a adresa dátovej štruktúry vložia do RXFIFO. Ak požadovaná dĺžka dát nie je v rozsahu 0-128, do RXFIFO sa vloží chybový kód „4“ (Max Generate ). Ak dĺžka dodatočných údajov nie je v rozsahu Request Too Big 0-128, do RXFIFO sa vloží chybový kód „5“ ( Max Length of Additional Data Exceeded ). Ak dĺžka požadovaných údajov na generovanie a dĺžka dodatočných údajov nie sú v ich definovanom rozsahu (0-128), do RXFIFO sa vloží chybový kód „1“ (Catastrophic Error).

3.3.5 Resetovanie DRBG
Skutočná funkcia resetovania sa vykonáva odstránením inštancií DRBG a resetovaním DRBG. Po zistení servisnej požiadavky simulácia zobrazí správu o dokončení služby DRBG Reset. Odpoveď, ktorá zahŕňa službu a stav, sa vloží do RXFIFO.
3.3.6 Autotest DRBG
Simulačná podpora pre autotest DRBG v skutočnosti nevykonáva funkciu autotestu. Po zistení požiadavky na službu simulácia zobrazí správu o vykonaní služby autotestu DRBG. Odpoveď, ktorá zahŕňa službu a stav, bude vložená do RXFIFO.
3.3.7 DRBG Instantiate
Simulačná podpora pre službu instantiate DRBG v skutočnosti nevykonáva službu instantiate. Pred odoslaním servisnej požiadavky do COMM_BLK musí byť dátová štruktúra správne zapísaná na zamýšľané miesto. Po zistení požiadavky na službu sa načíta štruktúra a reťazec personalizácie definovaný v adresnom priestore MSS. Simulácia zobrazí správu oznamujúcu, že služba DRBG Instantiate sa začala vykonávať. Po dokončení služby sa odpoveď, ktorá obsahuje príkaz služby, stav a ukazovateľ na dátovú štruktúru, vloží do RXFIFO. Ak dĺžka údajov (PERSONALIZATIONLENGTH) nie je v rozsahu 0-128, do RXFIFO sa vloží chybový kód „1“ (Catastrophic Error) pre stav.
3.3.8 DRBG Bez inštancie
Simulačná podpora pre službu DRBG v skutočnosti nevykonáva bezprostrednú službu odstránenia predtým vytvoreného DRBG, ako to robí kremík. Požiadavka na službu musí obsahovať príkaz aj rukoväť DRBG. Po zistení požiadavky na službu sa rukoväť DRBG uloží. Simulácia zobrazí správu oznamujúcu, že služba DRBG bola inicializovaná. Po dokončení služby sa odpoveď, ktorá zahŕňa príkaz služby, stav a rukoväť DRBG, vloží do RXFIFO.
3.3.9 DRBG Reseed
Kvôli simulatívnej povahe bloku systémových služieb sa služba DRBG reseed v simulácii nevykonáva automaticky po každých 65535 XNUMX vygenerovaných službách DRBG. Pred odoslaním servisnej požiadavky do COMM_BLK musí byť dátová štruktúra správne zapísaná na zamýšľané miesto. Po zistení požiadavky na službu sa načíta štruktúra a dodatočný vstupný parameter v adresnom priestore MSS. Zobrazí sa správa oznamujúca, že služba DRBG reseed sa začala vykonávať. Pred odoslaním servisnej požiadavky do COMM_BLK musí byť dátová štruktúra správne zapísaná na zamýšľané miesto. Po dokončení služby sa odpoveď, ktorá obsahuje príkaz služby, stav a ukazovateľ na dátovú štruktúru, vloží do RXFIFO.
3.3.10 Kľúčový strom
Skutočná funkcia sa nevykoná v simulácii pre službu KeyTree. Štruktúra údajov služby KeyTree pozostáva z 32-bajtového kľúča, 7-bitových údajov typu optype (MSB ignorované) a 16-bajtovej cesty. Dáta v dátovej štruktúre by sa mali zapísať na ich príslušné adresy pred odoslaním požiadavky na službu do COMM_BLK. Po spustení služby sa zobrazí správa označujúca vykonanie služby KeyTree. Obsah dátovej štruktúry sa načíta, 32-bajtový kľúč sa uloží a pôvodný kľúč nachádzajúci sa v dátovej štruktúre sa prepíše. Po tomto zápise AHB by sa hodnota kľúča v dátovej štruktúre nemala meniť, ale vyskytnú sa transakcie AHB pre zápis. Po dokončení služby sa do RXFIFO načíta servisná odpoveď, ktorá pozostáva z príkazu služby, stavu a ukazovateľa dátovej štruktúry KeyTree.
3.3.11 Odpoveď na výzvu
Skutočná funkcia, ako je autentifikácia zariadenia, sa pri simulácii služby odozvy na výzvu nevykonáva. Štruktúra údajov pre túto službu vyžaduje ukazovateľ na vyrovnávaciu pamäť, aby sa získal 32-bajtový výsledok, 7-bitový optype a 128-bitová cesta. Dáta v rámci dátovej štruktúry by sa mali zapísať na ich príslušné adresy pred odoslaním požiadavky na službu do COMM_BLK. Po spustení služby sa zobrazí správa označujúca vykonanie služby odpovede na výzvu. Do ukazovateľa poskytnutého v dátovej štruktúre sa zapíše všeobecná 256-bitová odpoveď. Predvolený kľúč je nastavený ako hex „ABCD1234“. Ak chcete získať vlastný kľúč, skontrolujte Nastavenie parametrov (pozrite si stranu 23). Po dokončení služby sa do RXFIFO načíta servisná odpoveď, ktorá pozostáva z príkazu služby, stavu a dátovej štruktúry odpovede na výzvu.
3.4 Ďalšie služby
Nasledujúce časti popisujú rôzne ďalšie systémové služby.
3.4.1 Kontrola trávenia
Vlastná funkcia prepočítania a porovnania súhrnov vybraných komponentov sa pre službu kontroly súhrnu v simulácii nevykonáva. Táto servisná požiadavka pozostáva zo servisných príkazov a servisných volieb (5-bitové LSB). Po spustení služby sa zobrazí správa s podrobnosťami o vykonaní služby kontroly súhrnu spolu s vybratými možnosťami z požiadavky. Po dokončení služby sa do RXFIFO načíta servisná odpoveď, ktorá pozostáva z príkazu služby a príznakov vyhovenia/zlyhania kontroly súhrnu.
3.4.2 Nerozpoznaná odozva príkazu
Keď sa do COMM_BLK odošle nerozpoznaná požiadavka na službu, COMM_BLK automaticky odpovie nerozpoznanou príkazovou správou vloženou do RXFIFO. Správa sa skladá z príkazu odoslaného do COMM_BLK a nerozpoznaného stavu príkazu (252D). Zobrazí sa aj správa na displeji oznamujúca, že bola zistená nerozpoznaná servisná požiadavka. COMM_BLK sa vráti do nečinného stavu a čaká na prijatie ďalšej servisnej požiadavky.
3.4.3 Nepodporované služby
Nepodporované služby nastavené na COMM_BLK spustia simulačnú správu označujúcu, že požiadavka na službu nie je podporovaná. COMM_BLK sa vráti do nečinného stavu a čaká na prijatie ďalšej servisnej požiadavky. PINTERRUPT sa nenastaví, čo znamená, že služba bola dokončená. Aktuálny zoznam nepodporovaných služieb zahŕňa: IAP, ISP, Certifikát zariadenia a Služba DESIGNVER.
3.5 Podpora simulácie systémových služieb File
Na podporu simulácie systémových služieb, text file s názvom „status.txt“ možno použiť na odovzdanie pokynov o požadovanom správaní simulačného modelu do simulačného modelu. Toto file by mal byť umiestnený v rovnakom priečinku, z ktorého sa spúšťa simulácia. The file možno použiť okrem iného na vynútenie určitých chybových odpovedí pre podporované systémové služby alebo aj na nastavenie niektorých parametrov potrebných na simuláciu (napr.ample, sériové číslo). Maximálny počet riadkov podporovaných v súbore „status.txt“ file je 256. Pokyny, ktoré sa objavia po riadku číslo 256, sa v simulácii nepoužijú.
3.5.1 Vynútenie odpovedí na chyby
Používateľ si môže počas testovania vynútiť určitú chybovú odpoveď pre konkrétnu službu odovzdaním informácií do simulačného modelu pomocou súboru „status.txt“ file, ktorý by mal byť umiestnený v priečinku, z ktorého sa simulácia spúšťa. Ak chcete vynútiť chybové odpovede určitej službe, príkaz a požadovaná odpoveď by mali byť napísané v rovnakom riadku v nasledujúcom formáte:ample, na príkaz> ; inštruovať simulačný model, aby vygeneroval odpoveď na chybu prístupu do pamäte MSS službe sériového čísla, príkaz je nasledujúci.
Služba: Sériové číslo: 01
Požadované chybové hlásenie: Chyba prístupu do pamäte MSS: 7F
V „status.txt“ by ste mali mať zadaný riadok 017F file.
3.5.2 Nastavenie parametrov
Súbor „status.txt“ file možno použiť aj na nastavenie niektorých parametrov potrebných pri simulácii. Ako example, ak chcete nastaviť 32-bitový parameter pre kód používateľa, formát riadku musí byť v tomto poradí: <32 bit USERCODE>; kde sú obe hodnoty zadané v šestnástkovej sústave. Aby bolo možné nastaviť 128-bitový parameter pre sériové číslo, formát riadku musí byť v tomto poradí: <128-bitové sériové číslo [127:0]> ; kde sú obe hodnoty zadané v šestnástkovej sústave. Ak chcete nastaviť 256-bitový parameter pre kľúč SHA 256; formát riadku musí byť v tomto poradí: <256-bitový kľúč [255:0]>; kde sú obe hodnoty zadané v šestnástkovej sústave. Ak chcete nastaviť 256-bitový parameter pre kľúč odpovede na výzvu, formát riadku musí byť v tomto poradí: <256-bitový kľúč [255:0]>;
kde sú obe hodnoty zadané v šestnástkovej sústave.
3.5.3 Priorita zariadenia
Systémové služby a COMM_BLK využívajú systém s vysokou prioritou. V súčasnosti je jedinou službou s vysokou prioritou nulovanie. Aby sa vykonala služba s vysokou prioritou, kým sa vykonáva iná služba, aktuálna služba sa zastaví a namiesto nej sa vykoná služba s vyššou prioritou. COMM_BLK zruší aktuálnu službu, aby mohla vykonávať službu s vyššou prioritou. Ak sa pred dokončením aktuálnej služby odošle viacero služieb bez vysokej priority, tieto služby sa zaradia do frontu v rámci TXFIFO. Po dokončení aktuálnej služby sa vykoná ďalšia služba v TXFIFO.

Microsemi neposkytuje žiadnu záruku, zastúpenie ani záruku týkajúcu sa informácií uvedených v tomto dokumente alebo vhodnosti svojich produktov a služieb na akýkoľvek konkrétny účel, ani nepreberá žiadnu zodpovednosť vyplývajúcu z aplikácie alebo používania akéhokoľvek produktu alebo okruhu. Produkty predávané nižšie a akékoľvek iné produkty predávané spoločnosťou Microsemi boli predmetom obmedzeného testovania a nemali by sa používať v spojení s kritickými zariadeniami alebo aplikáciami. Akékoľvek výkonnostné špecifikácie sa považujú za spoľahlivé, ale nie sú overené a Kupujúci musí vykonať a dokončiť všetky výkonnostné a iné testovanie produktov, a to samostatne a spolu s akýmikoľvek koncovými produktmi alebo v nich nainštalovaných. Kupujúci sa nebude spoliehať na žiadne údaje a výkonové špecifikácie alebo parametre poskytnuté Microsemi. Je zodpovednosťou kupujúceho, aby nezávisle určil vhodnosť akýchkoľvek produktov a otestoval ich a overil. Informácie poskytované spoločnosťou Microsemi nižšie sú poskytované „tak ako sú, kde sú“ a so všetkými chybami a celé riziko spojené s týmito informáciami znáša výlučne Kupujúci. Microsemi neudeľuje, explicitne ani implicitne, žiadnej strane žiadne patentové práva, licencie ani iné práva duševného vlastníctva, či už ide o takéto informácie samotné alebo čokoľvek opísané v takýchto informáciách. Informácie uvedené v tomto dokumente sú majetkom spoločnosti Microsemi a spoločnosť Microsemi si vyhradzuje právo kedykoľvek bez upozornenia vykonať akékoľvek zmeny informácií v tomto dokumente alebo akýchkoľvek produktov a služieb.
Microsemi, XNUMX% dcérska spoločnosť Microchip Technology Inc. (Nasdaq: MCHP), ponúka komplexné portfólio polovodičových a systémových riešení pre letectvo a obranu, komunikáciu, dátové centrá a priemyselné trhy. Produkty zahŕňajú vysokovýkonné a radiačne tvrdené analógové integrované obvody so zmiešaným signálom, FPGA, SoC a ASIC; produkty na správu napájania; časovacie a synchronizačné zariadenia a presné časové riešenia, ktoré stanovujú svetový štandard pre čas; Zariadenia na spracovanie hlasu; RF riešenia; diskrétne komponenty; podnikové úložné a komunikačné riešenia; bezpečnostné technológie a škálovateľné anti-tamper produkty; Ethernetové riešenia; Integrované obvody Power-over-Ethernet a stredné rozpätia; ako aj možnosti a služby vlastného dizajnu. Microsemi má sídlo v Aliso Viejo v Kalifornii a celosvetovo má približne 4,800 XNUMX zamestnancov. Viac sa dozviete na www.microsemi.com.

Logo Microsemi

Ústredie Microsemi
Jeden podnik, Aliso Viejo,
CA 92656 USA
V rámci USA: +1 800-713-4113
Mimo USA: +1 949-380-6100
Predaj: +1 949-380-6136
Fax: +1 949-215-4996
Email: predaj.podpora@microsemi.com
www.microsemi.com
© 2018 Microsemi. Všetky práva vyhradené. Microsemi a logo Microsemi
sú ochranné známky spoločnosti Microsemi Corporation. Všetky ostatné ochranné známky a služby
známky sú majetkom ich príslušných vlastníkov.

Dokumenty / zdroje

Simulácia systémových služieb Microsemi UG0837 IGLOO2 a SmartFusion2 FPGA [pdf] Používateľská príručka
UG0837, UG0837 Simulácia systémových služieb FPGA IGLOO2 a SmartFusion2, Simulácia systémových služieb FPGA IGLOO2 a SmartFusion2, Simulácia systémových služieb FPGA SmartFusion2, Simulácia systémových služieb FPGA, Simulácia služieb

Referencie

Zanechajte komentár

Vaša emailová adresa nebude zverejnená. Povinné polia sú označené *