Logo Microsemi

UG0837
Uživatelská příručka
IGLOO2 a SmartFusion2 FPGA
Simulace systémových služeb
června 2018

Historie revizí

Historie revizí popisuje změny, které byly v dokumentu implementovány. Změny jsou uvedeny podle revizí, počínaje nejnovější publikací.
1.1 Revize 1.0
Revize 1.0 byla zveřejněna v červnu 2018. Byla to první publikace tohoto dokumentu.

Simulace systémových služeb IGLOO2 a SmartFusion2 FPGA

Blok System Services rodiny SmartFusion®2 FPGA obsahuje sadu služeb odpovědných za různé úkoly. Patří mezi ně služby simulačních zpráv, služby ukazatelů dat a služby deskriptorů dat. K systémovým službám lze přistupovat prostřednictvím Cortex-M3 v SmartFusion2 a z FPGA tkaniny prostřednictvím řadiče rozhraní tkaniny (FIC) pro SmartFusion2 i IGLOO®2. Tyto přístupové metody jsou odesílány do systémového řadiče prostřednictvím COMM_BLK. COMM_BLK má pokročilé rozhraní periferní sběrnice (APB) a funguje jako kanál pro předávání zpráv pro výměnu dat s řídicí jednotkou systému. Požadavky na systémové služby se odesílají systémovému řadiči a odpovědi systémové služby se odesílají do CoreSysSerrvice prostřednictvím COMM BLK. Umístění adresy pro COMM_BLK je k dispozici uvnitř subsystému mikrokontroléru (MSS) / subsystému vysoce výkonné paměti (HPMS). Podrobnosti viz UG0450: SmartFusion2 SoC a IGLOO2 FPGA System Controller.
Uživatelská příručka
Následující obrázek ukazuje tok dat systémových služeb.
Obrázek 1 • Diagram toku dat systémové službySimulace systémových služeb Microsemi UG0837 IGLOO2 a SmartFusion2 FPGA - Diagram toku datPro simulaci systémové služby IGLOO2 i SmartFusion2 musíte odeslat požadavky na systémové služby a zkontrolovat odpovědi systémové služby, abyste ověřili, že je simulace správná. Tento krok je nezbytný pro přístup k systémovému řadiči, který poskytuje systémové služby. Způsob zápisu a čtení ze systémového řadiče se u zařízení IGLOO2 a SmartFusion2 liší. Pro SmartFusion2 je k dispozici Coretex-M3 a můžete zapisovat a číst ze systémového řadiče pomocí příkazů BFM (bus Functional Model). Pro IGLOO2 není Cortex-M3 k dispozici a systémový ovladač není přístupný pomocí příkazů BFM.
2.1 Typy dostupných systémových služeb
K dispozici jsou tři různé typy systémových služeb a každý typ služby má různé podtypy.
Služby simulačních zpráv
Služby ukazatelů dat
Služby deskriptorů dat
Kapitola Příloha – Typy systémových služeb (viz strana 19) této příručky popisuje různé typy systémových služeb. Další informace o systémových službách naleznete v UG0450: SmartFusion2 SoC and IGLOO2 FPGA System Controller User Guide .
2.2 Simulace systémové služby IGLOO2
Systémové služby zahrnují zápis a čtení ze systémového řadiče. Chcete-li zapisovat a číst z řídicí jednotky systému pro účely simulace, musíte provést následující kroky.

  1. Instantizujte jádro soft IP CoreSysServices dostupné v katalogu SmartDesign.
  2. Napište HDL kód pro konečný automat (FSM).

HDL FSM se propojuje s CoreSysServices Core, které slouží jako hlavní struktura sběrnice AHBLite. Jádro CoreSysServices zahájí požadavek systémové služby na COMM BLK a přijímá odpovědi systémové služby z COMM BLK prostřednictvím FIC_0/1, řadiče rozhraní tkaniny, jak je znázorněno na následujícím obrázku.
Obrázek 2 • Topologie simulace systémových služeb IGLOO2Simulace systémových služeb Microsemi UG0837 IGLOO2 a SmartFusion2 FPGA – Diagram toku dat 12.3 Simulace služeb systému SmartFusion2
Chcete-li simulovat systémové služby v zařízeních SmartFusion2, musíte zapisovat a číst z ovladače systému. K dispozici jsou dvě možnosti přístupu k systémovému ovladači pro účely simulace.
Možnost 1 — Napište HDL kód pro FSM pro rozhraní s CoreSysService soft IP jádrem, které slouží jako hlavní struktura AHBLite a zahajuje požadavek na systémové služby na COMM BLK a přijímá odpovědi systémové služby z COMM BLK přes Fabric FIC_0/1 rozhraní, jak je znázorněno na následujícím obrázku.
Obrázek 3 • Topologie simulace systémových služeb SmartFusion2Simulace systémových služeb Microsemi UG0837 IGLOO2 a SmartFusion2 FPGA – Diagram toku dat 2

Možnost 2 — Protože Cortex-M3 je k dispozici pro zařízení SmartFusion2, můžete pomocí příkazů BFM přímo zapisovat a číst z paměťového prostoru systémového řadiče.
Použití příkazů BFM (volba 2) ušetří nutnost psát kódy HDL pro FSM. V této uživatelské příručce se volba 2 používá k zobrazení simulace systémových služeb v SmartFusion2. S touto volbou se přistupuje k paměťovému prostoru systémového řadiče za účelem zjištění paměťové mapy COMM BLK a bloku řadiče přerušení rozhraní tkaniny (FIIC), když píšete příkazy BFM.
2.4 Simulace Přamples
Uživatelská příručka obsahuje následující simulace.

  • Simulace služby se sériovým číslem IGLOO2 (viz strana 5)
  • Simulace služby se sériovým číslem SmartFusion2 (viz strana 8)
  • Simulace služby nulování IGLOO2 (viz strana 13)
  • Simulace služby nulování SmartFusion2 (viz strana 16)

Podobné simulační metody lze aplikovat i na další systémové služby. Úplný seznam různých dostupných systémových služeb naleznete v části Příloha – Typy systémových služeb (viz strana 19).

2.5 Simulace služby sériového čísla IGLOO2
Chcete-li se připravit na simulaci služby sériového čísla IGLOO2, proveďte následující kroky.

  1. Vyvolejte tvůrce systému k vytvoření bloku HPMS.
  2. Zaškrtněte políčko Systémové služby HPMS na stránce Funkce zařízení. To dá pokyn tvůrci systému, aby odhalil rozhraní sběrnice HPMS_FIC_0 SYS_SERVICES_MASTER (BIF).
  3. Všechna ostatní políčka ponechte nezaškrtnutá.
  4. Přijměte výchozí nastavení na všech ostatních stránkách a kliknutím na Dokončit dokončete blok pro tvorbu systému. V editoru HDL Libero® SoC napište HDL kód pro FSM (File > Nové > HDL). Zahrňte do svého FSM následující tři stavy.
    Stav INIT (počáteční stav)
    SERV_PHASE (stav požadavku na službu)
    RSP_PHASE (stav odezvy služby).
    Následující obrázek ukazuje tři stavy FSM.
    Obrázek 4 • Třístátní FSM
  5. Simulace systémových služeb Microsemi UG0837 IGLOO2 a SmartFusion2 FPGA – třístavový FSM 1Ve svém HDL kódu pro FSM použijte správný příkazový kód („01“ Hex pro službu se sériovým číslem) pro zadání stavu požadavku na službu ze stavu INIT.
  6. Uložte si HDL file. FSM se objeví jako součást v Hierarchii návrhu.
  7. Otevřete SmartDesign. Přetáhněte svůj blok stavitele systému nejvyšší úrovně a blok FSM na plátno SmartDesign. Z katalogu přetáhněte jádro soft IP CoreSysService na plátno SmartDesign.
  8. Kliknutím pravým tlačítkem na jádro soft IP CoreSysService otevřete konfigurátor. Zaškrtněte políčko Služba sériového čísla (v části Informační služby o zařízení a designu
    group), abyste povolili službu sériového čísla.
  9. Všechna ostatní políčka ponechte nezaškrtnutá. Kliknutím na OK opustíte konfigurátor.
    Obrázek 5 • CoreSysServices soft IP Core Configurator
    Simulace systémových služeb Microsemi UG0837 IGLOO2 a SmartFusion2 FPGA – základní konfigurátor
  10. Připojte HPMS_FIC_0 SYS_SERVICES_MASTER BIF bloku stavitele systému k AHBL_MASTER BIF bloku CoreSysService.
  11. Připojte výstup vašeho HDL FSM bloku ke vstupu jádra CoreSysService soft IP. Proveďte všechna ostatní připojení na plátně SmartDesign, jak je znázorněno na následujícím obrázku.
    Obrázek 6 • SmartDesign Canvas s HDL blokem, CoreSysServices Soft IP a HPMS blokySimulace systémových služeb Microsemi UG0837 IGLOO2 a SmartFusion2 FPGA – bloky HPMS
  12. Na plátně SmartDesign klikněte pravým tlačítkem na >Generovat komponentu a vygenerujte návrh nejvyšší úrovně.
  13. V Hierarchii designu view, klikněte pravým tlačítkem na návrh nejvyšší úrovně a vyberte vytvořit Testbench > HDL .
  14. K vytvoření textu použijte textový editor file s názvem „status.txt“ .
  15. Zahrňte příkaz pro systémovou službu a 128bitové sériové číslo. Další informace naleznete v tabulce 1 (Hodnoty příkazů/odezvě systémových služeb) v Příručka CoreSysServices v3.1 pro příkazové kódy (hexadecimální), které mají být použity pro různé systémové služby. Pro službu sériového čísla je příkazový kód „01“ Hex.

Formát souboru status.txt file pro službu sériového čísla je následující.
< 2 hexadecimální číslice CMD><32 hexadecimální sériové číslo>
Example: 01A1A2A3A4B1B2B3B4C1C2C3C4D1D2D3D4
Uložte soubor status.txt file ve složce Simulace vašeho projektu. Návrh je nyní připraven k simulaci.
Jakmile je služba zahájena, v okně přepisu ModelSim se zobrazí zpráva s uvedením umístění cíle a sériového čísla, jak je znázorněno na následujícím obrázku.
Obrázek 7 • Okno přepisu simulace ModelSimSimulace systémových služeb Microsemi UG0837 IGLOO2 a SmartFusion2 FPGA – okno přepisuŘídicí jednotka systému provede zápis AHB na adresu se sériovým číslem. Po dokončení služby bude RXFIFO COMM_BLK načten s odpovědí služby.
Poznámka: Úplný seznam kódů příkazů, které se mají použít pro různé systémové služby, naleznete v tabulce 1 (Hodnoty příkazů/odezvě systémových služeb) v příručce CoreSysServices v3.1 Handbook nebo UG0450: SmartFusion2 SoC and IGLOO2 FPGA System Controller User Guide.
2.6 Simulace služby sériových čísel SmartFusion2
V této uživatelské příručce se příkazy BFM (volba 2) používají pro přístup k systémovému ovladači pro systémový servis. BFM příkazy se používají, protože procesor Cortex-M3 je k dispozici na zařízení pro simulaci BFM. Příkazy BFM vám umožňují přímo zapisovat a číst z COMM BLK, jakmile znáte mapování paměti COMM_BLK.
Chcete-li připravit svůj návrh pro simulaci služby sériového čísla SmartFusion2, proveďte následující kroky.

  1. Přetáhněte MSS z katalogu na designové plátno vašeho projektu.
  2. Zakažte všechna periferní zařízení MSS kromě MSS_CCC, Reset Controller, Interrupt Management a FIC_0, FIC_1 a FIC_2.
  3. Nakonfigurujte správu přerušení tak, aby používala MSS k přerušení sítě.
  4. Připravte serialnum.bfm file v textovém editoru nebo v HDL editoru Libera. Uložte serialnum.bfm file ve složce Simulace projektu. Serialnum.bfm by měl obsahovat následující podrobnosti.
    • Mapování paměti na COMM BLK (CMBLK)
    • Mapování paměti na periferní zařízení pro správu přerušení (FIIC)
    • Příkaz pro požadavek systémové služby se sériovým číslem („01“ Hex)
    • Adresa pro umístění sériového čísla
    Bývalýampsoubor serialnum.bfm file je následující.
    memmap FIIC 0x40006000; #Mapování paměti na správu přerušení
    memmap CMBLK 0x40016000; #Mapování paměti na COMM BLK
    memmap DESCRIPTOR_ADDR 0x20000000; # Umístění adresy pro sériové číslo
    #Příkazový kód v šestnáctkové soustavě
    konstantní CMD 0x1 # Kód příkazu pro Serial NumberService
    #Konfigurační registry FIIC
    konstanta FICC_INTERRUPT_ENABLE0 0x0
    #COMM_BLK Konfigurační registry
    konstantní CONTROL 0x00
    konstanta STATUS 0x04
    konstanta INT_ENABLE 0x08
    konstantní DATA8 0x10
    konstantní DATA32 0x14
    konstanta FRAME_START8 0x18
    konstanta FRAME_START32 0x1C
    procedura serialnum;
    int x;
    zápis w FIIC FICC_INTERRUPT_ENABLE0 0x20000000 #Configure
    #FICC_INTERRUPT_ENABLE0 # Zaregistrujte se a povolte COMBLK_INTR #
    #interrupt z COMM_BLK bloku do tkaniny
    #Fáze žádosti
    write w CMBLK CONTROL 0x10 # Konfigurace COMM BLK Control #Registrace do
    povolit přenosy na rozhraní COMM BLK
    write w CMBLK INT_ENABLE 0x1 # Konfigurace COMM BLK přerušení Povolit
    # Zaregistrujte se, abyste povolili přerušení pro TXTOKAY (odpovídající bit v
    #Status Register)
    waitint 19 # čekat na přerušení COMM BLK , zde #BFM čeká
    # dokud není potvrzen COMBLK_INTR
    readstore w CMBLK STATUS x # Read COMM BLK Status Zaregistrujte se pro #TXTOKAY
    # Přerušit
    sada xx & 0x1
    pokud x
    zápis w CMBLK FRAME_START8 CMD # Konfigurace COMM BLK FRAME_START8
    # Zaregistrujte se a vyžádejte si službu sériového čísla
    endif
    endif
    waitint 19 # čekat na přerušení COMM BLK, zde
    #BFM čeká, dokud nebude potvrzen COMBLK_INTR
    readstore w CMBLK STATUS x # Číst COMM BLK Status Registrovat pro
    #TXTOKAY Přerušení
    sada xx & 0x1
    sada xx & 0x1
    pokud x
    write w CMBLK CONTROL 0x14 #Configure COMM BLK Control
    #Zaregistrujte se, abyste povolili přenosy na rozhraní COMM BLK
    zápis w CMBLK DATA32 DESCRIPTOR_ADDR
    napište w CMBLK INT_ENABLE 0x80
    napište w CMBLK CONTROL 0x10
    endif
    počkat 20
    #Fáze odezvy
    čekat 19
    readstore w CMBLK STATUS x
    sada xx & 0x80
    pokud x
    readcheck w CMBLK FRAME_START8 CMD
    napište w CMBLK INT_ENABLE 0x2
    endif
    čekat 19
    readstore w CMBLK STATUS x
    sada xx & 0x2
    pokud x
    readcheck w CMBLK DATA8 0x0
    napište w CMBLK CONTROL 0x18
    endif
    čekat 19
    readcheck w FIIC 0x8 0x20000000
    readstore w CMBLK STATUS x
    sada xx & 0x2
    pokud x
    readcheck w CMBLK DATA32 DESCRIPTOR_ADDR
    endif
    readcheck w DESCRIPTOR_ADDR 0x0 0xE1E2E3E4; #Readcheck pro kontrolu S/N
    readcheck w DESCRIPTOR_ADDR 0x4 0xC1C2C3C4; #Readcheck pro kontrolu S/N
    readcheck w DESCRIPTOR_ADDR 0x8 0xB1B2B3B4; #Readcheck pro kontrolu S/N
    readcheck w DESCRIPTOR_ADDR 0xC 0xA1A2A3A4; #Readcheck pro kontrolu S/N
    návrat
  5. Vytvořte stav. txt file v HDL editoru Libero nebo v jakémkoli textovém editoru. Zahrňte sériové číslo příkazu systémové služby („01“ v hexadecimálním tvaru) a sériové číslo do stavu . txt file. Informace o použití správného příkazového kódu naleznete v příručce CoreSysServices v3.1 Handbook.
  6. Syntaxe tohoto file pro službu sériového čísla je <2 Hexadecimální CMD>< 32 Hexadecimální sériové číslo> . Přample: 01A1A2A3A4B1B2B3B4C1C2C3C4E1E2E3E4.
  7. Uložte stav .txt file ve složce Simulace projektu.
  8. Upravte uživatelský .bfm (umístěný ve složce Simulation) tak, aby obsahoval sériové číslo. bfm file a zavolejte proceduru sériového čísla, jak je znázorněno v následujícím fragmentu kódu.
    include “serialnum.bfm” #include serialnum.bfm
    procedura user_main;
    vytisknout „INFO:Spuštění simulace“;
    tisk “INFO:Kód servisního příkazu v desítkové soustavě:%0d”, CMD ;
    volání serialnum; #zavolejte proceduru serialnum
    vytisknout „INFO:Simulace končí“;
    návrat
  9. V Hierarchii designu view, vygenerujte testbench (klikněte pravým tlačítkem, Top Level Design > Create Testbench > HDL ) a jste připraveni spustit simulaci služby sériového čísla.

Jakmile služba zahájí provádění, zobrazí se zpráva s uvedením cílového umístění a sériového čísla. Řídicí jednotka systému provede zápis AHB na adresu se sériovým číslem. Po dokončení služby bude RXFIFO COMM_BLK načten s odpovědí služby. Okno přepisu ModelSim zobrazuje přijatou adresu a sériové číslo, jak je znázorněno na následujícím obrázku.
Obrázek 8 • Simulace služby sériového čísla SmartFusion2 v okně přepisu ModelSimSimulace systémových služeb Microsemi UG0837 IGLOO2 a SmartFusion2 FPGA – okno přepisu 1

2.7 Simulace služby nulování IGLOO2
Chcete-li se připravit na simulaci služby nulování IGLOO2, proveďte následující kroky.

  1. Vyvolejte systémového tvůrce k vytvoření bloku HPMS. Zaškrtněte políčko Systémové služby HPMS v části Funkce zařízení SYS_SERVICES_MASTER BIF. Všechna ostatní políčka ponechte nezaškrtnutá. Přijměte výchozí nastavení na všech ostatních stránkách a klikněte na stránku. To instruuje tvůrce systému, aby odhalil HPMS_FIC_0 Finish, aby dokončil konfiguraci bloku tvůrce systému.
  2. V editoru HDL Libero SoC napište kód HDL pro FSM. V kódu HDL pro FSM zahrňte následující tři stavy.
    Stav INIT (počáteční stav)
    SERV_PHASE (stav požadavku na službu)
    RSP_PHASE (stav odezvy služby)
    Následující obrázek ukazuje tři stavy FSM.
    Obrázek 9 • Třístátní FSMSimulace systémových služeb Microsemi UG0837 IGLOO2 a SmartFusion2 FPGA – třístavový FSM

     

  3. V kódu HDL použijte kód příkazu „F0″(Hex) pro zadání stavu požadavku na službu ze stavu INIT.
  4. Uložte si HDL file.
  5. Otevřete SmartDesign, přetáhněte svůj blok pro tvůrce systému nejvyšší úrovně a blok HDL FSM na plátno SmartDesign. Z katalogu přetáhněte jádro soft IP CoreSysService na plátno SmartDesign.
  6. Klikněte pravým tlačítkem na jádro soft IP CoreSysServices, otevřete konfigurátor a zaškrtněte políčko Zeroization Service ve skupině Data Security Services. Všechna ostatní políčka ponechte nezaškrtnutá. Klepnutím na tlačítko OK ukončíte.
    Obrázek 10 • Konfigurátor CoreSysServices
    Simulace systémových služeb Microsemi UG0837 IGLOO2 a SmartFusion2 FPGA – Core Configurator 1
  7. Připojte HPMS_FIC_0 SYS_SERVICES_MASTER BIF bloku stavitele systému k AHBL_MASTER BIF bloku CoreSysService.
  8. Připojte výstup vašeho HDL FSM bloku ke vstupu jádra CoreSysService soft IP. Všechna ostatní připojení proveďte na plátně SmartDesign.
    Obrázek 11 • SmartDesign Canvas s HDL blokem, CoreSysServices Soft IP a HPMS bloky
    Simulace systémových služeb FPGA Microsemi UG0837 IGLOO2 a SmartFusion2 - HPMS bloky 19. Na plátně SmartDesign vygenerujte návrh nejvyšší úrovně (klikněte pravým tlačítkem > Generovat komponentu).
    10. V hierarchii návrhu view, klikněte pravým tlačítkem na návrh nejvyšší úrovně a vyberte vytvořit Testbench > HDL. Nyní jste připraveni spustit simulaci.
    Jakmile služba zahájí provádění, zobrazí se zpráva oznamující, že nulování bylo dokončeno v čase x, jak je znázorněno na následujícím obrázku.
    Obrázek 12 • Okno přepisu simulace služby nulovacího systému IGLOO2
    Simulace systémových služeb Microsemi UG0837 IGLOO2 a SmartFusion2 FPGA – okno přepisu 3

Řídicí jednotka systému provede zápis AHB na adresu se sériovým číslem. Po dokončení služby bude RXFIFO COMM_BLK načten s odpovědí služby. Je třeba poznamenat, že simulační model simuluje nulování zastavením simulace spíše než nulováním samotného návrhu.
Poznámka: Úplný seznam kódů příkazů, které se mají použít pro různé systémové služby, naleznete v tabulce 1 (Hodnoty příkazů/odezvě systémových služeb) v Příručka CoreSysServices v3.1:. nebo UG0450: Uživatelská příručka SmartFusion2 SoC a IGLOO2 FPGA System Controller

2.8 Simulace služby nulování SmartFusion2
V této příručce se příkazy BFM (volba 2) používají pro přístup k systémovému ovladači pro systémové služby.
BFM příkazy se používají, protože procesor Cortex-M3 je k dispozici na zařízení pro simulaci BFM. Příkazy BFM vám umožňují přímo zapisovat a číst z COMM BLK, jakmile znáte mapování paměti COMM_BLK. Chcete-li připravit svůj návrh pro simulaci služby nulování SmartFusion2, proveďte následující kroky.

  1. Přetáhněte MSS z katalogu na designové plátno vašeho projektu.
  2. Zakažte všechna periferní zařízení MSS kromě MSS_CCC, Reset Controller, Interrupt Management a FIC_0, FIC_1 a FIC_2.
  3. Nakonfigurujte správu přerušení tak, aby používala MSS k přerušení sítě.
  4. Připravte zeroizaton.bfm file v textovém editoru nebo v HDL editoru Libero. Vaše nulování. bfm by měl obsahovat:
  • Mapování paměti na COMM BLK (CMBLK)
  • Mapování paměti na periferní zařízení pro správu přerušení (FIIC)
  • Příkaz pro požadavek na službu nulování („F0“ Hex pro nulování)

Bývalýampsoubor serialnum.bfm file je zobrazen na následujícím obrázku.
Obrázek 13 • Zeroization.bfm pro SmartFusion2 Zeroization System Services Simulation

Simulace systémových služeb Microsemi UG0837 IGLOO2 a SmartFusion2 FPGA – okno přepisu 4

5. Uložte soubor zeroization.bfm file ve složce Simulace projektu. user.bfm
6. Upravte soubor (umístěný ve složce zeroization.bfm Simulation) tak, aby obsahoval následující fragment kódu.
include “zeroization.bfm” #include zeroization.bfm file procedura user_main;
vytisknout „INFO:Spuštění simulace“;
tisk “INFO:Kód servisního příkazu v desítkové soustavě:%0d”, CMD ;
nulování volání; #volání nulovací procedura návrat
7. V Hierarchii návrhu vygenerujte Testbench (klikněte pravým tlačítkem na nejvyšší úroveň > Vytvořit Testbench > HDL) a jste připraveni spustit simulaci nulování SmartFusion2.
Jakmile služba zahájí provádění, zobrazí se zpráva oznamující, že zařízení bylo vynulováno v čase x. Je třeba poznamenat, že simulační model simuluje nulování zastavením simulace spíše než nulováním samotného návrhu. Okno přepisu ModelSim na následujícím obrázku ukazuje, že zařízení bylo vynulováno.

Obrázek 14 • Protokol simulace služby nulovacího systému SmartFusion2

Simulace systémových služeb Microsemi UG0837 IGLOO2 a SmartFusion2 FPGA – okno přepisu 5

Dodatek: Typy systémových služeb

Tato kapitola popisuje různé typy systémových služeb.
3.1 Služby simulačních zpráv
Následující části popisují různé typy služeb simulačních zpráv.
3.1.1 Flash*Freeze
Simulace přejde do stavu Flash*Freeze, když je do COMM_BLK odeslán správný servisní požadavek buď z FIC (v případě zařízení IGLOO2) nebo Cortex-M3 (v zařízeních SmartFusion2). Jakmile systémový ovladač detekuje službu, simulace se zastaví a zobrazí se zpráva oznamující, že systém vstoupil do Flash*Freeze (spolu s vybranou možností). Po obnovení simulace bude RXFIFO COMM_BLK vyplněn servisní odpovědí sestávající z servisního příkazu a stavu. Je třeba poznamenat, že neexistuje žádná podpora simulace pro ukončení Flash*Freeze.
3.1.2 Nulování
Nulování je v současnosti jedinou službou s vysokou prioritou v rámci systémových služeb zpracovávaných COMM_BLK. Simulace vstoupí do stavu nulování, jakmile COMM_BLK detekuje správný servisní požadavek. Provádění ostatních služeb bude zastaveno a zrušeno systémovým kontrolérem a místo toho bude spuštěna služba nulování. Jakmile je detekován požadavek na službu nulování, simulace se zastaví a zobrazí se zpráva oznamující, že systém vstoupil do nulování. Ruční restarty simulace po vynulování jsou neplatné.
3.2 Služby datového ukazatele
Následující části popisují různé typy služeb ukazatelů dat.
3.2.1 Sériové číslo
Služba sériového čísla zapíše 128bitové sériové číslo na umístění adresy poskytnuté jako součást požadavku na službu. Tento 128bitový parametr lze nastavit pomocí podpory simulace systémové služby file (viz strana 22). Pokud parametr 128bitového sériového čísla není definován v rámci file, bude použito výchozí sériové číslo 0. Jakmile služba zahájí provádění, zobrazí se zpráva s uvedením cílového umístění a sériového čísla. Řídicí jednotka systému provede zápis AHB na adresu se sériovým číslem. Po dokončení služby bude RXFIFO COMM_BLK načten s odpovědí služby.
3.2.2 Uživatelský kód
Služba uživatelského kódu zapíše 32bitový parametr uživatelského kódu do umístění adresy poskytnutého jako součást požadavku na službu. Tento 32bitový parametr lze nastavit pomocí podpory simulace systémové služby file (viz strana 22). Pokud 32bitový parametr není definován v rámci file, použije se výchozí hodnota 0. Jakmile je služba spuštěna, zobrazí se zpráva označující cílové umístění a uživatelský kód. Systémový kontrolér provede zápis AHB na adresu s 32bitovým parametrem. Po dokončení služby se do RXFIFO COMM_BLK načte odpověď služby, která zahrnuje příkaz služby a cílovou adresu.
3.3 Služby deskriptorů dat
Následující části popisují různé typy služeb deskriptorů dat.

3.3.1 AES
Simulační podpora pro tuto službu se zabývá pouze přesunem původních dat ze zdroje do cíle, aniž by ve skutečnosti prováděla jakékoli šifrování/dešifrování dat. Data, která je třeba zašifrovat/dešifrovat, a datová struktura by měly být zapsány před odesláním požadavku na službu. Jakmile služba zahájí provádění, zobrazí se zpráva indikující provádění služby AES. Služba AES čte jak datovou strukturu, tak data, která mají být zašifrována/dešifrována. Původní data jsou zkopírována a zapsána na adresu uvedenou v datové struktuře. Jakmile je služba dokončena, příkaz, stav a adresa datové struktury jsou vloženy do RXFIFO.
Poznámka: Tato služba je určena pouze pro 128bitová a 256bitová data a 128bitová i 256bitová data mají různé délky datové struktury.

3.3.2 SHA 256
Simulační podpora pro tuto službu se zabývá pouze přesunem dat, aniž by ve skutečnosti prováděla jakékoli hašování dat. Funkce SHA 256 je navržena tak, aby na základě vstupních dat generovala 256bitový hash klíč. Data, která je třeba hashovat, a datová struktura by měly být zapsány na jejich příslušné adresy před odesláním požadavku na službu do COMM_BLK. Délka v bitech a ukazatel definovaný v datové struktuře SHA 256 musí správně odpovídat délce a adrese dat, která mají být hašována. Jakmile služba zahájí provádění, zobrazí se zpráva indikující provádění služby SHA 256. Namísto provedení skutečné funkce bude do cílového ukazatele z datové struktury zapsán výchozí hash klíč. Výchozí hash klíč je hex „ABCD1234“. Chcete-li nastavit vlastní klíč, přejděte do části Nastavení parametrů (viz strana 23). Po dokončení služby se do RXFIFO načte odezva služby sestávající z příkazu služby, stavu a ukazatele datové struktury SHA 256.
3.3.3 HMAC
Simulační podpora pro tuto službu se zabývá pouze přesunem dat, aniž by ve skutečnosti prováděla jakékoli hašování dat. Data, která je třeba hashovat, a datová struktura by měly být zapsány na jejich příslušné adresy před odesláním požadavku na službu do COMM_BLK. Služba HMAC vyžaduje kromě délky v bajtech, ukazatele zdroje a ukazatele cíle také 32bajtový klíč. Jakmile služba zahájí provádění, zobrazí se zpráva indikující provádění služby HMAC. Klíč je přečten a 256bitový klíč je zkopírován z datové struktury do cílového ukazatele. Po dokončení služby se do RXFIFO načte servisní odpověď sestávající z příkazu služby, stavu a ukazatele datové struktury HMAC.

3.3.4 Generování DRBG
Tato služba provádí generování náhodných bitů. Je třeba poznamenat, že simulační model se přesně neřídí stejnou metodikou generování náhodných čísel, kterou používá křemík. Před odesláním požadavku na službu do COMM_BLK musí být datová struktura správně zapsána do zamýšleného umístění. Struktura dat, cílový ukazatel, délka a další relevantní data jsou čtena systémovým kontrolérem. Služba generování DRBG generuje pseudonáhodnou sadu dat požadované délky (0-128). Řadič systému zapíše náhodná data do cílového ukazatele. V simulaci se zobrazí zpráva indikující provedení služby generování DRBG. Jakmile je služba dokončena, příkaz, stav a adresa datové struktury jsou vloženy do RXFIFO. Pokud požadovaná délka dat není v rozsahu 0-128, bude do RXFIFO vložen chybový kód „4“ (Max Generate ). Pokud délka dodatečných dat není v rozsahu Request Too Big 0-128, bude do RXFIFO vložen chybový kód „5“ ( Max Length of Additional Data Exceeded ). Pokud jak požadovaná délka dat pro generování, tak délka dodatečných dat nejsou v jejich definovaném rozsahu (0-128), je do RXFIFO vložen chybový kód „1“ (Catastrophic Error).

3.3.5 Resetování DRBG
Vlastní resetovací funkce se provádí odstraněním instancí DRBG a resetováním DRBG. Jakmile je požadavek na servis detekován, simulace zobrazí zprávu o dokončení služby DRBG Reset. Odpověď, která zahrnuje službu a stav, je vložena do RXFIFO.
3.3.6 Autotest DRBG
Simulační podpora pro autotest DRBG ve skutečnosti neprovádí funkci autotestu. Jakmile je požadavek na službu detekován, simulace zobrazí zprávu o provedení služby autotestu DRBG. Odpověď, která zahrnuje službu a stav, bude vložena do RXFIFO.
3.3.7 DRBG Instantiate
Simulační podpora pro službu instantiate DRBG ve skutečnosti službu instantiate neprovádí. Před odesláním požadavku na službu do COMM_BLK musí být datová struktura správně zapsána do zamýšleného umístění. Jakmile je požadavek na službu detekován, bude načtena struktura a řetězec personalizace definovaný v adresním prostoru MSS. Simulace zobrazí zprávu oznamující, že služba DRBG Instantiate byla zahájena. Jakmile je služba dokončena, odpověď, která zahrnuje příkaz služby, stav a ukazatel na datovou strukturu, bude vložena do RXFIFO. Pokud délka dat (PERSONALIZATIONLENGTH) není v rozsahu 0-128, do RXFIFO bude vložen chybový kód „1“ ( Catastrophic Error ) pro stav.
3.3.8 DRBG Uninstantiate
Simulační podpora pro DRBG neinstanciální službu ve skutečnosti neprovádí bezinstantní službu odstranění dříve vytvořené DRBG, jako to dělá křemík. Požadavek na službu musí obsahovat jak příkaz, tak popisovač DRBG. Jakmile je požadavek na službu detekován, bude uložen popisovač DRBG. Simulace zobrazí zprávu oznamující, že byla inicializována služba DRBG uninstantiate. Jakmile je služba dokončena, odpověď, která zahrnuje servisní příkaz, stav a DRBG handle, bude vložena do RXFIFO.
3.3.9 DRBG Reseed
Kvůli simulativní povaze bloku systémových služeb se služba DRBG reseed v simulaci nespouští automaticky po každých 65535 DRBG vygenerovaných službách. Před odesláním požadavku na službu do COMM_BLK musí být datová struktura správně zapsána do zamýšleného umístění. Jakmile je požadavek na službu detekován, bude načtena struktura a další vstupní parametr v adresním prostoru MSS. Zobrazí se zpráva oznamující, že služba DRBG reseed byla zahájena. Před odesláním požadavku na službu do COMM_BLK musí být datová struktura správně zapsána do zamýšleného umístění. Jakmile je služba dokončena, odpověď, která zahrnuje příkaz služby, stav a ukazatel na datovou strukturu, bude vložena do RXFIFO.
3.3.10 Klíčový strom
Skutečná funkce není v simulaci pro službu KeyTree provedena. Struktura dat služby KeyTree se skládá z 32bajtového klíče, 7bitových dat typu optype (MSB ignorováno) a 16bajtové cesty. Data v rámci datové struktury by měla být zapsána na jejich příslušné adresy před odesláním požadavku na službu do COMM_BLK. Jakmile služba zahájí provádění, zobrazí se zpráva indikující provádění služby KeyTree. Obsah datové struktury bude načten, 32bajtový klíč bude uložen a původní klíč umístěný v datové struktuře bude přepsán. Po tomto zápisu AHB by se hodnota klíče v rámci datové struktury neměla změnit, ale dojde k transakcím AHB pro zápis. Po dokončení služby se do RXFIFO načte servisní odpověď, která se skládá z příkazu služby, stavu a ukazatele datové struktury KeyTree.
3.3.11 Odpověď na výzvu
Vlastní funkce, jako je autentizace zařízení, se v simulaci pro službu odezvy na výzvu neprovádí. Datová struktura pro tuto službu vyžaduje ukazatel na vyrovnávací paměť, aby bylo možné získat 32bajtový výsledek, 7bitový optype a 128bitovou cestu. Data v rámci datové struktury by měla být zapsána na jejich příslušné adresy před odesláním požadavku na službu do COMM_BLK. Jakmile služba zahájí provádění, zobrazí se zpráva indikující provedení služby odpovědi na výzvu. Obecná 256bitová odpověď bude zapsána do ukazatele poskytnutého v datové struktuře. Výchozí klíč je nastaven jako hexadecimální „ABCD1234“. Chcete-li získat vlastní klíč, zkontrolujte Nastavení parametrů (viz strana 23). Po dokončení služby bude do RXFIFO načtena odpověď služby, která se skládá z ukazatele datové struktury příkazu služby, stavu a odpovědi na výzvu.
3.4 Další služby
Následující části popisují různé další systémové služby.
3.4.1 Kontrola trávení
Vlastní funkce přepočítávání a porovnávání výtahů vybraných komponent se pro službu kontroly výtahu v simulaci neprovádí. Tento požadavek na službu se skládá z příkazů služby a možností služby (5bitové LSB). Jakmile služba zahájí provádění, zobrazí se zpráva s podrobnostmi o provedení služby kontroly souhrnu spolu s vybranými možnostmi z požadavku. Po dokončení služby bude do RXFIFO načtena odpověď služby, která se skládá z příkazu služby a příznaků kontroly digest/prošlo.
3.4.2 Nerozpoznaná odezva na příkaz
Když je do COMM_BLK odeslán nerozpoznaný požadavek na službu, COMM_BLK automaticky odpoví nerozpoznanou příkazovou zprávou vloženou do RXFIFO. Zpráva se skládá z příkazu odeslaného do COMM_BLK a nerozpoznaného stavu příkazu (252D). Zobrazí se také zpráva na displeji oznamující, že byl zjištěn nerozpoznaný servisní požadavek. COMM_BLK se vrátí do klidového stavu a čeká na přijetí dalšího servisního požadavku.
3.4.3 Nepodporované služby
Nepodporované služby nastavené na COMM_BLK spustí zprávu v simulaci označující, že požadavek na službu není podporován. COMM_BLK se vrátí do klidového stavu a čeká na přijetí dalšího servisního požadavku. PINTERRUPT nebude nastaven, což znamená, že služba byla dokončena. Aktuální seznam nepodporovaných služeb zahrnuje: IAP, ISP, Certifikát zařízení a Služba DESIGNVER.
3.5 Podpora simulace systémových služeb File
Pro podporu simulace systémových služeb, text file s názvem „status.txt“ lze použít k předání instrukcí o požadovaném chování simulačního modelu do simulačního modelu. Tento file by měl být umístěn ve stejné složce, ze které se spouští simulace. The file lze mimo jiné použít k vynucení určitých chybových reakcí pro podporované systémové služby nebo dokonce k nastavení některých parametrů potřebných pro simulaci (např.ample, sériové číslo). Maximální počet řádků podporovaných v souboru „status.txt“ file je 256. Pokyny, které se objeví za číslem řádku 256, nebudou v simulaci použity.
3.5.1 Vynucení chybových odpovědí
Uživatel si může během testování vynutit určitou chybovou odezvu pro konkrétní službu předáním informací do simulačního modelu pomocí „status.txt“ file, který by měl být umístěn ve složce, ze které se simulace spouští. Chcete-li určité službě vynutit chybové reakce, měly by být příkaz a požadovaná odpověď napsány na stejném řádku v následujícím formátu:ample, na příkaz > ; instruovat simulační model, aby vygeneroval odezvu na chybu přístupu do paměti MSS službě sériového čísla, příkaz je následující.
Služba: Sériové číslo: 01
Požadovaná chybová zpráva: Chyba přístupu do paměti MSS: 7F
Měli byste mít řádek 017F zadaný v „status.txt“ file.
3.5.2 Nastavení parametrů
"status.txt" file lze také použít k nastavení některých parametrů potřebných v simulaci. Jako example, aby bylo možné nastavit 32bitový parametr pro uživatelský kód, formát řádku musí být v tomto pořadí: <32bitový UŽIVATELSKÝ KÓD>; kde jsou obě hodnoty zadány v šestnáctkové soustavě. Aby bylo možné nastavit 128bitový parametr pro sériové číslo, formát řádku musí být v tomto pořadí: <128bitové sériové číslo [127:0]> ; kde jsou obě hodnoty zadány v šestnáctkové soustavě. Chcete-li nastavit 256bitový parametr pro klíč SHA 256; formát řádku musí být v tomto pořadí: <256bitový klíč [255:0]>; kde jsou obě hodnoty zadány v šestnáctkové soustavě. Aby bylo možné nastavit 256bitový parametr pro klíč odpovědi na výzvu, musí být formát řádku v tomto pořadí: <256bitový klíč [255:0]>;
kde jsou obě hodnoty zadány v šestnáctkové soustavě.
3.5.3 Priorita zařízení
Systémové služby a COMM_BLK využívají systém s vysokou prioritou. V současnosti je jedinou službou s vysokou prioritou nulování. Aby bylo možné provést službu s vysokou prioritou, zatímco se provádí jiná služba, aktuální služba se zastaví a místo ní se provede služba s vyšší prioritou. COMM_BLK zruší aktuální službu, aby mohla provést službu s vyšší prioritou. Pokud je před dokončením aktuální služby odesláno více služeb bez vysoké priority, budou tyto služby zařazeny do fronty v rámci TXFIFO. Jakmile je aktuální služba dokončena, bude provedena další služba v TXFIFO.

Microsemi neposkytuje žádnou záruku, prohlášení ani záruku týkající se informací zde obsažených nebo vhodnosti svých produktů a služeb pro jakýkoli konkrétní účel, ani nepřebírá žádnou odpovědnost vyplývající z aplikace nebo použití jakéhokoli produktu nebo okruhu. Zde prodávané produkty a jakékoli další produkty prodávané společností Microsemi byly podrobeny omezenému testování a neměly by být používány ve spojení s kritickým vybavením nebo aplikacemi. Jakékoli výkonnostní specifikace jsou považovány za spolehlivé, ale nejsou ověřeny, a Kupující musí provést a dokončit veškeré výkonnostní a další testování produktů, a to samostatně a společně s jakýmikoli koncovými produkty nebo v nich instalované. Kupující se nebude spoléhat na žádná data a výkonové specifikace nebo parametry poskytnuté společností Microsemi. Je odpovědností kupujícího nezávisle určit vhodnost jakýchkoli produktů a testovat a ověřit je. Informace poskytované společností Microsemi níže jsou poskytovány „tak, jak jsou, kde jsou“ a se všemi chybami a veškerá rizika spojená s těmito informacemi nese výhradně Kupující. Microsemi neuděluje, explicitně ani implicitně, žádné straně žádná patentová práva, licence nebo jakákoli jiná práva duševního vlastnictví, ať už se jedná o takové informace samotné nebo cokoli popsaného v těchto informacích. Informace uvedené v tomto dokumentu jsou majetkem společnosti Microsemi a společnost Microsemi si vyhrazuje právo kdykoli bez upozornění provést jakékoli změny informací v tomto dokumentu nebo jakýchkoli produktů a služeb.
Microsemi, 100% dceřiná společnost Microchip Technology Inc. (Nasdaq: MCHP), nabízí komplexní portfolio polovodičových a systémových řešení pro letectví a obranu, komunikace, datová centra a průmyslové trhy. Produkty zahrnují vysoce výkonné a radiací zesílené analogové integrované obvody se smíšeným signálem, FPGA, SoC a ASIC; produkty pro řízení spotřeby; časovací a synchronizační zařízení a přesná časová řešení, stanovující světový standard pro čas; zařízení pro zpracování hlasu; RF řešení; diskrétní součásti; podniková úložiště a komunikační řešení; bezpečnostní technologie a škálovatelné anti-tamper produkty; Ethernetová řešení; Integrované obvody Power-over-Ethernet a střední rozpětí; stejně jako možnosti a služby vlastního návrhu. Microsemi má centrálu v Aliso Viejo v Kalifornii a má přibližně 4,800 XNUMX zaměstnanců po celém světě. Více se dozvíte na www.microsemi.com.

Logo Microsemi

Centrála Microsemi
Jedna Enterprise, Aliso Viejo,
CA 92656 USA
V rámci USA: +1 800-713-4113
Mimo USA: +1 949-380-6100
Prodej: +1 949-380-6136
Fax: +1 949-215-4996
Email: prodej.podpora@microsemi.com
www.microsemi.com
© 2018 Microsemi. Všechna práva vyhrazena. Microsemi a logo Microsemi
jsou ochranné známky společnosti Microsemi Corporation. Všechny ostatní ochranné známky a služby
známky jsou majetkem jejich příslušných vlastníků.

Dokumenty / zdroje

Simulace systémových služeb Microsemi UG0837 IGLOO2 a SmartFusion2 FPGA [pdfUživatelská příručka
UG0837, UG0837 Simulace systémových služeb FPGA IGLOO2 a SmartFusion2, Simulace systémových služeb FPGA IGLOO2 a SmartFusion2, Simulace systémových služeb FPGA SmartFusion2, Simulace systémových služeb FPGA, Simulace služeb

Reference

Zanechte komentář

Vaše emailová adresa nebude zveřejněna. Povinná pole jsou označena *