Microsemi logo

UG0837
Kasutusjuhend
IGLOO2 ja SmartFusion2 FPGA
Süsteemiteenuste simulatsioon
juuni 2018

Läbivaatamise ajalugu

Redaktsiooniajalugu kirjeldab dokumendis rakendatud muudatusi. Muudatused on loetletud redaktsioonide kaupa, alustades kõige värskemast väljaandest.
1.1 Redaktsioon 1.0
Redaktsioon 1.0 avaldati juunis 2018. See oli selle dokumendi esimene avaldamine.

IGLOO2 ja SmartFusion2 FPGA süsteemiteenuste simulatsioon

SmartFusion®2 FPGA perekonna süsteemiteenuste plokis on teenuste kogum, mis vastutavad erinevate ülesannete eest. Nende hulka kuuluvad simulatsioonisõnumiteenused, andmeosutiteenused ja andmekirjeldusteenused. Süsteemiteenustele pääseb ligi Cortex-M3 kaudu SmartFusion2-s ja FPGA-kangast kangasliidese kontrolleri (FIC) kaudu nii SmartFusion2 kui ka IGLOO®2 jaoks. Need juurdepääsumeetodid saadetakse süsteemikontrollerile COMM_BLK kaudu. COMM_BLK-l on täiustatud perifeerse siini (APB) liides ja see toimib sõnumite edastamise kanalina, et vahetada andmeid süsteemikontrolleriga. Süsteemiteenuse taotlused saadetakse süsteemikontrollerile ja süsteemiteenuse vastused CoreSysSerrvice'ile COMM BLK kaudu. COMM_BLK aadressi asukoht on saadaval mikrokontrolleri alamsüsteemis (MSS) / suure jõudlusega mälu alamsüsteemis (HPMS). Üksikasju vaadake jaotisest UG0450: SmartFusion2 SoC ja IGLOO2 FPGA süsteemikontroller.
Kasutusjuhend
Järgmisel joonisel on kujutatud süsteemiteenuste andmevoogu.
Joonis 1 • Süsteemiteenuse andmevoo diagrammMicrosemi UG0837 IGLOO2 ja SmartFusion2 FPGA süsteemiteenuste simulatsioon – andmevoo diagrammNii IGLOO2 kui ka SmartFusion2 süsteemiteenuse simulatsiooni jaoks peate saatma välja süsteemiteenuse päringud ja kontrollima süsteemiteenuse vastuseid, et veenduda simulatsiooni õigsuses. See samm on vajalik, et pääseda juurde süsteemikontrollerile, mis pakub süsteemiteenuseid. Süsteemikontrollerisse kirjutamise ja sealt lugemise viis on IGLOO2 ja SmartFusion2 seadmete puhul erinev. SmartFusion2 jaoks on saadaval Coretex-M3 ning saate kirjutada ja lugeda süsteemikontrollerist, kasutades siini funktsionaalse mudeli (BFM) käske. IGLOO2 jaoks pole Cortex-M3 saadaval ja süsteemikontrollerile ei pääse BFM-käskude abil juurde.
2.1 Saadaolevate süsteemiteenuste tüübid
Saadaval on kolm erinevat tüüpi süsteemiteenuseid ja igal teenusetüübil on erinevad alamtüübid.
Simulatsioonisõnumiteenused
Andmekursori teenused
Andmete kirjeldamise teenused
Selle juhendi peatükis Lisa – Süsteemiteenuste tüübid (vt lk 19) kirjeldatakse erinevaid süsteemiteenuste tüüpe. Süsteemiteenuste kohta lisateabe saamiseks vaadake UG0450: SmartFusion2 SoC ja IGLOO2 FPGA süsteemikontrolleri kasutusjuhend .
2.2 IGLOO2 süsteemiteenuse simulatsioon
Süsteemiteenused hõlmavad süsteemikontrollerile kirjutamist ja lugemist. Simulatsiooni eesmärgil süsteemikontrollerisse kirjutamiseks ja sealt lugemiseks peate tegema järgmised toimingud.

  1. Looge CoreSysServicesi pehme IP-tuum, mis on saadaval SmartDesigni kataloogis.
  2. Kirjutage lõpliku olekuga masina (FSM) HDL-kood.

HDL FSM liidestub CoreSysServices Core'iga, mis toimib AHBLite siini kangameistrina. CoreSysServicesi tuum algatab süsteemiteenuse päringu COMM BLK-le ja võtab vastu süsteemiteenuse vastused COMM BLK-lt FIC_0/1, kanga liidese kontrolleri kaudu, nagu on näidatud järgmisel joonisel.
Joonis 2 • IGLOO2 süsteemiteenuste simulatsiooni topoloogiaMicrosemi UG0837 IGLOO2 ja SmartFusion2 FPGA süsteemiteenuste simulatsioon – andmevoo diagramm 12.3 SmartFusion2 süsteemiteenuse simulatsioon
Süsteemiteenuste simuleerimiseks SmartFusion2 seadmetes peate süsteemikontrollerisse kirjutama ja sealt lugema. Süsteemikontrollerile simulatsiooni eesmärgil juurdepääsemiseks on kaks võimalust.
Valik 1 – kirjutage FSM-i HDL-kood liideseks CoreSysService'i pehme IP-südamikuga, mis toimib AHBLite'i kanga ülemseadmena ja algatab süsteemiteenuse taotluse COMM BLK-le ning võtab vastu süsteemiteenuse vastuseid COMM BLK-lt kanga FIC_0/1 kaudu. liides, nagu on näidatud järgmisel joonisel.
Joonis 3 • SmartFusion2 System Services Simulation TopologyMicrosemi UG0837 IGLOO2 ja SmartFusion2 FPGA süsteemiteenuste simulatsioon – andmevoo diagramm 2

2. võimalus – Kuna Cortex-M3 on saadaval SmartFusion2 seadmete jaoks, võite kasutada BFM-i käske, et otse süsteemikontrolleri mäluruumi kirjutada ja sealt lugeda.
BFM-i käskude kasutamine (valik 2) säästab FSM-i HDL-koodide kirjutamise vajaduse. Selles kasutusjuhendis kasutatakse 2. valikut süsteemiteenuste simulatsiooni kuvamiseks rakenduses SmartFusion2. Selle valikuga pääseb juurde süsteemikontrolleri mäluruumile, et teada saada BFM-käskude kirjutamisel COMM BLK ja kangaliidese katkestuskontrolleri (FIIC) ploki mälukaart.
2.4 Simulatsioon Näitamples
Kasutusjuhend hõlmab järgmisi simulatsioone.

  • IGLOO2 seerianumbri teenuse simulatsioon (vt lk 5)
  • SmartFusion2 seerianumbri teenuse simulatsioon (vt lk 8)
  • IGLOO2 nullimisteenuse simulatsioon (vt lk 13)
  • SmartFusion2 nullimisteenuse simulatsioon (vt lk 16)

Sarnaseid simulatsioonimeetodeid saab rakendada ka muude süsteemiteenuste puhul. Erinevate saadaolevate süsteemiteenuste täieliku loendi leiate jaotisest Lisa – Süsteemiteenuste tüübid (vt lk 19).

2.5 IGLOO2 seerianumbri teenuse simulatsioon
IGLOO2 seerianumbri teenuse simulatsiooni ettevalmistamiseks toimige järgmiselt.

  1. HPMS-i ploki loomiseks käivitage süsteemiehitaja.
  2. Märkige seadme funktsioonide lehel ruut HPMS süsteemiteenused. See juhendab süsteemiehitajat paljastama HPMS_FIC_0 SYS_SERVICES_MASTER siiniliidese (BIF).
  3. Jätke kõik muud märkeruudud märkimata.
  4. Nõustuge kõikidel teistel lehtedel vaikeväärtusega ja klõpsake süsteemi koostaja ploki lõpetamiseks nuppu Lõpeta. Libero® SoC HDL-redaktorisse kirjutage FSM-i HDL-kood (File > Uus > HDL). Lisage oma FSM-i järgmised kolm olekut.
    INIT olek (algseisund)
    SERV_PHASE (teenusetaotluse olek)
    RSP_PHASE (teenuse vastuse olek).
    Järgmine joonis näitab Mikroneesia kolme olekut.
    Joonis 4 • Kolme osariigi Mikroneesia
  5. Microsemi UG0837 IGLOO2 ja SmartFusion2 FPGA süsteemiteenuste simulatsioon – kolme olekuga FSM 1Kasutage oma FSM-i HDL-koodis õiget käsukoodi (“01” Hex seerianumbri teenuse jaoks), et siseneda teenusepäringu olekust INIT-olekust.
  6. Salvestage oma HDL file. FSM ilmub disainihierarhias komponendina.
  7. Avage SmartDesign. Lohistage oma tipptasemel süsteemiehitaja plokk ja FSM-plokk SmartDesigni lõuendile. Lohistage kataloogist CoreSysService'i pehme IP-tuum SmartDesigni lõuendile.
  8. Konfiguraatori avamiseks paremklõpsake CoreSysService'i pehmet IP-tuuma. Märkige ruut Seerianumbri teenus (seadme ja disaini teabeteenuste all
    grupp), et võimaldada seerianumbri teenust.
  9. Jätke kõik muud märkeruudud märkimata. Konfiguraatorist väljumiseks klõpsake nuppu OK.
    Joonis 5 • CoreSysServicesi pehme IP Core Configurator
    Microsemi UG0837 IGLOO2 ja SmartFusion2 FPGA süsteemiteenuste simulatsioon – põhikonfiguraator
  10. Ühendage süsteemiehitaja ploki HPMS_FIC_0 SYS_SERVICES_MASTER BIF ja CoreSysService ploki AHBL_MASTER BIF.
  11. Ühendage oma HDL FSM ploki väljund CoreSysService'i pehme IP-südamiku sisendiga. Tehke kõik muud ühendused SmartDesigni lõuendil, nagu on näidatud järgmisel joonisel.
    Joonis 6 • SmartDesigni lõuend HDL-bloki, CoreSysServicesi pehme IP- ja HPMS-plokkidegaMicrosemi UG0837 IGLOO2 ja SmartFusion2 FPGA süsteemiteenuste simulatsioon – HPMS-i plokid
  12. Paremklõpsake SmartDesigni lõuendil > Generata komponent, et luua ülemise taseme kujundus.
  13. Disaini hierarhias view, paremklõpsake tipptasemel kujundust ja valige Loo Testbench > HDL .
  14. Kasutage teksti loomiseks tekstiredaktorit file nimega "status.txt" .
  15. Lisage süsteemiteenuse käsk ja 128-bitine seerianumber. Lisateabe saamiseks vaadake tabelit 1 (Süsteemiteenuste käsu/vastuse väärtused) CoreSysServices v3.1 käsiraamat käsukoodide (Hex) jaoks, mida kasutatakse erinevate süsteemiteenuste jaoks. Seerianumbrite teenuse puhul on käsukood “01” Hex.

Faili status.txt vorming file seerianumbri teenuse jaoks on järgmine.
< 2 kuueteistkümnekohaline CMD><32 kuueteistkümnendkohaline seerianumber>
Example: 01A1A2A3A4B1B2B3B4C1C2C3C4D1D2D3D4
Salvestage fail status.txt file oma projekti kaustas Simulatsioon. Disain on nüüd simulatsiooniks valmis.
Kui teenus on käivitatud, kuvatakse ModelSimi ärakirja aknas teade, mis näitab sihtkoha asukohta ja seerianumbrit, nagu on näidatud järgmisel joonisel.
Joonis 7 • ModelSim Simulation Transcript WindowMicrosemi UG0837 IGLOO2 ja SmartFusion2 FPGA süsteemiteenuste simulatsioon – ärakirja akenSüsteemikontroller viib läbi AHB-kirjutuse seerianumbriga aadressile. Pärast teenuse lõpetamist laaditakse COMM_BLK RXFIFO koos teenuse vastusega.
Märkus. Erinevate süsteemiteenuste jaoks kasutatavate käsukoodide täieliku loendi leiate tabelist 1 (Süsteemiteenuste käsu/vastuse väärtused) CoreSysServices v3.1 käsiraamatus või UG0450: SmartFusion2 SoC ja IGLOO2 FPGA süsteemikontrolleri kasutusjuhendis.
2.6 SmartFusion2 seerianumbri teenuse simulatsioon
Selles kasutusjuhendis kasutatakse BFM-i käske (valik 2), et pääseda juurde süsteemikontrollerile süsteemiteenuse osutamiseks. BFM-käske kasutatakse, kuna Cortex-M3 protsessor on seadmes BFM-i simuleerimiseks saadaval. BFM-käsud võimaldavad teil kirjutada otse COMM BLK-sse ja sealt lugeda, kui teate COMM_BLK mälu vastendust.
SmartFusion2 seerianumbri teenuse simulatsiooni jaoks disaini ettevalmistamiseks tehke järgmised toimingud.

  1. Lohistage MSS kataloogist oma projekti kujunduslõuendile.
  2. Keelake kõik MSS-i välisseadmed, välja arvatud MSS_CCC, Reset Controller, Interrupt Management ja FIC_0, FIC_1 ja FIC_2.
  3. Konfigureerige katkestuste haldamine nii, et see kasutaks katkestamiseks MSS-i.
  4. Valmistage ette fail serialnum.bfm file tekstiredaktoris või Libero HDL-redaktoris. Salvestage fail serialnum.bfm file projekti Simulatsiooni kaustas. Serialnum.bfm peaks sisaldama järgmisi üksikasju.
    • Mälu vastendamine seadmega COMM BLK (CMBLK)
    • Mälu kaardistamine haldusvälisseadmete (FIIC) katkestamiseks
    • Käsk seerianumbrite süsteemi teenusepäringu jaoks ("01" Hex)
    • Seerianumbri asukoha aadress
    Endineample serialnum.bfm file on järgmine.
    memmap FIIC 0x40006000; #Mälu kaardistamine katkestuste haldamiseks
    memmap CMBLK 0x40016000; #Mälu kaardistamine COMM BLK-ga
    memmap DESCRIPTOR_ADDR 0x20000000; #Seerianumbri aadressi asukoht
    #Käsukood kuueteistkümnendsüsteemis
    konstantne CMD 0x1 # Seerianumbriteenuse käsukood
    #FIIC konfiguratsiooniregistrid
    konstant FICC_INTERRUPT_ENABLE0 0x0
    #COMM_BLK Konfiguratsiooniregistrid
    konstantne JUHTIMINE 0x00
    konstantne OLEK 0x04
    konstant INT_ENABLE 0x08
    konstantne DATA8 0x10
    konstantne DATA32 0x14
    konstant FRAME_START8 0x18
    konstant FRAME_START32 0x1C
    protseduuri seerianumber;
    int x;
    kirjuta w FIIC FICC_INTERRUPT_ENABLE0 0x20000000 #Configure
    #FICC_INTERRUPT_ENABLE0 # Registreerige COMBLK_INTR # lubamiseks
    #katkestus COMM_BLK plokist kangale
    #Taotluse faas
    kirjuta w CMBLK CONTROL 0x10 # Konfigureeri COMM BLK Control #Registreeru
    lubada ülekandeid COMM BLK liideses
    write w CMBLK INT_ENABLE 0x1 # Konfigureeri COMM BLK katkestuse lubamine
    #Registreeruge, et lubada katkestus TXTOKAY jaoks (vastav bitt
    #olekuregister)
    oota 19 # oota COMM-i BLK Katkestus , Siin ootab #BFM
    #kuni COMBLK_INTR on kinnitatud
    readstore w CMBLK STATUS x # Loe COMM BLK olekut Registreerige #TXTOKAY
    # Vahele segama
    seadke xx ja 0x1
    kui x
    kirjuta w CMBLK FRAME_START8 CMD # Konfigureeri COMM BLK FRAME_START8
    #Registreeruge seerianumbri teenuse taotlemiseks
    endif
    endif
    oota 19 # oota COMM-i BLK Katkestus , siin
    #BFM ootab, kuni COMBLK_INTR on kinnitatud
    readstore w CMBLK OLEK x # Loe KOMM BLK olek Registreeri
    #TXTOKAY Katkestus
    seadke xx ja 0x1
    seadke xx ja 0x1
    kui x
    kirjuta w CMBLK CONTROL 0x14 #Configure COMM BLK Control
    #Registreeruge, et lubada ülekandeid COMM BLK liideses
    kirjuta w CMBLK DATA32 DESCRIPTOR_ADDR
    kirjuta w CMBLK INT_ENABLE 0x80
    kirjuta w CMBLK CONTROL 0x10
    endif
    oota 20
    #Reageerimisfaas
    ootan 19
    readstore w CMBLK STATUS x
    seadke xx ja 0x80
    kui x
    lugemiskontroll w CMBLK FRAME_START8 CMD
    kirjuta w CMBLK INT_ENABLE 0x2
    endif
    ootan 19
    readstore w CMBLK STATUS x
    seadke xx ja 0x2
    kui x
    lugemiskontroll w CMBLK DATA8 0x0
    kirjuta w CMBLK CONTROL 0x18
    endif
    ootan 19
    kontrollige w FIIC 0x8 0x20000000
    readstore w CMBLK STATUS x
    seadke xx ja 0x2
    kui x
    lugemiskontroll w CMBLK DATA32 DESCRIPTOR_ADDR
    endif
    lugemiskontroll w DESCRIPTOR_ADDR 0x0 0xE1E2E3E4; #Readcheck et kontrollida S/N
    loe kontrolli w DESCRIPTOR_ADDR 0x4 0xC1C2C3C4; #Readcheck et kontrollida S/N
    lugemiskontroll w DESCRIPTOR_ADDR 0x8 0xB1B2B3B4; #Readcheck et kontrollida S/N
    lugemiskontroll w DESCRIPTOR_ADDR 0xC 0xA1A2A3A4; #Readcheck et kontrollida S/N
    tagasi
  5. Looge olek. txt file Libero HDL-redaktoris või mis tahes tekstiredaktoris. Lisage olekusse seerianumbri süsteemi teenusekäsk ("01" kuueteistkümnendikul) ja seerianumber. txt file. Õige käsukoodi kasutamise kohta vaadake CoreSysServices v3.1 käsiraamatut.
  6. Selle süntaks file seerianumbri teenuse jaoks on <2 kuueteistkümnekohaline CMD>< 32 kuueteistkümnekohaline seerianumber> . Ntample: 01A1A2A3A4B1B2B3B4C1C2C3C4E1E2E3E4.
  7. Salvestage olek .txt file projekti Simulatsiooni kaustas.
  8. Redigeerige kasutaja faili .bfm (asub kaustas Simulatsioon), et lisada seerianumber. bfm file ja helistage seerianumbri protseduurile, nagu on näidatud järgmises koodilõigul.
    kaasake "serialnum.bfm" #include the serialnum.bfm
    protseduur user_main;
    print "INFO:Simulatsioon algab";
    print “INFO:Service Command Code in Decimal:%0d”, CMD ;
    helistage seerianumbrile; #kutsuge seerianumbri protseduur
    print "INFO:Simulatsioon lõpeb";
    tagasi
  9. Disaini hierarhias view, genereerige testbench (paremklõps, Tipptaseme kujundus > Loo testbench > HDL ) ja oletegi valmis käivitama seerianumbri teenuse simulatsiooni.

Kui teenus on käivitatud, kuvatakse teade, mis näitab sihtkoha asukohta ja seerianumbrit. Süsteemikontroller viib läbi AHB-kirjutuse seerianumbriga aadressile. Pärast teenuse lõpetamist laaditakse COMM_BLK RXFIFO koos teenuse vastusega. ModelSimi ärakirja aknas kuvatakse saadud aadress ja seerianumber, nagu on näidatud järgmisel joonisel.
Joonis 8 • SmartFusion2 seerianumbri teenuse simulatsioon ModelSimi transkriptsiooniaknasMicrosemi UG0837 IGLOO2 ja SmartFusion2 FPGA süsteemiteenuste simulatsioon – ärakirja aken 1

2.7 IGLOO2 nullimisteenuse simulatsioon
IGLOO2 nullimisteenuse simulatsiooni ettevalmistamiseks toimige järgmiselt.

  1. HPMS-i ploki loomiseks käivitage süsteemiehitaja. Märkige ruut HPMS-i süsteemiteenused jaotises Seadme funktsioonid SYS_SERVICES_MASTER BIF. Jätke kõik muud märkeruudud märkimata. Nõustuge kõigi teiste lehtede vaikeväärtusega ja klõpsake nuppu Lehekülg. See juhendab süsteemiehitajat paljastama HPMS_FIC_0 Finish, et lõpetada süsteemikoostaja ploki konfigureerimine.
  2. Kirjutage Libero SoC HDL-redaktorisse FSM-i HDL-kood. Lisage oma FSM-i HDL-koodi kolm järgmist olekut.
    INIT olek (algseisund)
    SERV_PHASE (teenusetaotluse olek)
    RSP_PHASE (teenuse vastuse olek)
    Järgmine joonis näitab Mikroneesia kolme olekut.
    Joonis 9 • Kolme osariigi MikroneesiaMicrosemi UG0837 IGLOO2 ja SmartFusion2 FPGA süsteemiteenuste simulatsioon – kolme olekuga FSM

     

  3. Kasutage oma HDL-koodis käsukoodi "F0" (Hex), et siseneda INIT-olekust teenusepäringu olekusse.
  4. Salvestage oma HDL file.
  5. Avage SmartDesign, pukseerige oma tipptasemel süsteemiehitaja plokk ja HDL FSM-plokk SmartDesigni lõuendile. Lohistage kataloogist CoreSysService'i pehme IP-tuum SmartDesigni lõuendile.
  6. Paremklõpsake CoreSysServicesi pehmet IP-tuuma, et avada konfiguraator ja märkige ruut Zeroization Service rühmas Andmeturbeteenused. Jätke kõik muud märkeruudud märkimata. Väljumiseks klõpsake nuppu OK.
    Joonis 10 • CoreSysServices Configurator
    Microsemi UG0837 IGLOO2 ja SmartFusion2 FPGA süsteemiteenuste simulatsioon – Core Configurator 1
  7. Ühendage süsteemiehitaja ploki HPMS_FIC_0 SYS_SERVICES_MASTER BIF ja CoreSysService ploki AHBL_MASTER BIF.
  8. Ühendage oma HDL FSM ploki väljund CoreSysService'i pehme IP-südamiku sisendiga. Looge kõik muud ühendused SmartDesigni lõuendil.
    Joonis 11 • SmartDesign Canvas HDL-bloki, CoreSysServices Soft IP-i ja HPMS-i plokkidega
    Microsemi UG0837 IGLOO2 ja SmartFusion2 FPGA süsteemiteenuste simulatsioon – HPMS-i plokid 19. Looge SmartDesigni lõuendil tipptaseme kujundus (paremklõps > Generate Component).
    10. Disaini hierarhias view, paremklõpsake tipptasemel kujundust ja valige Loo Testbench > HDL. Nüüd olete simulatsiooni käivitamiseks valmis.
    Kui teenus on käivitatud, kuvatakse teade, mis näitab, et nullimine on ajahetkel x lõpule viidud, nagu on näidatud järgmisel joonisel.
    Joonis 12 • IGLOO2 nullimissüsteemi teenuse simulatsiooni ärakirja aken
    Microsemi UG0837 IGLOO2 ja SmartFusion2 FPGA süsteemiteenuste simulatsioon – ärakirja aken 3

Süsteemikontroller viib läbi AHB-kirjutuse seerianumbriga aadressile. Pärast teenuse lõpetamist laaditakse COMM_BLK RXFIFO koos teenuse vastusega. Tuleb märkida, et simulatsioonimudel simuleerib nullimist, peatades simulatsiooni, mitte nullides disaini enda.
Märkus. Erinevate süsteemiteenuste jaoks kasutatavate käsukoodide täieliku loendi vaatamiseks vaadake tabelit 1 (Süsteemiteenuste käsu/vastuse väärtused). CoreSysServices v3.1 käsiraamat:. või UG0450: SmartFusion2 SoC ja IGLOO2 FPGA süsteemikontrolleri kasutusjuhend

2.8 SmartFusion2 nullimisteenuse simulatsioon
Selles juhendis kasutatakse BFM-i käske (valik 2), et pääseda juurde süsteemikontrollerile süsteemiteenuse osutamiseks.
BFM-käske kasutatakse, kuna Cortex-M3 protsessor on seadmes BFM-i simuleerimiseks saadaval. BFM-käsud võimaldavad teil kirjutada otse COMM BLK-sse ja sealt lugeda, kui teate COMM_BLK mälu vastendust. Disaini ettevalmistamiseks SmartFusion2 nullimisteenuse simulatsiooniks tehke järgmised toimingud.

  1. Lohistage MSS kataloogist oma projekti kujunduslõuendile.
  2. Keelake kõik MSS-i välisseadmed, välja arvatud MSS_CCC, Reset Controller, Interrupt Management ja FIC_0, FIC_1 ja FIC_2.
  3. Konfigureerige katkestuste haldamine nii, et see kasutaks katkestamiseks MSS-i.
  4. Valmistage ette fail zeroizaton.bfm file tekstiredaktoris või Libero HDL-redaktoris. Sinu nullimine. bfm peaks sisaldama:
  • Mälu vastendamine COMM BLK-ga (CMBLK)
  • Mälu kaardistamine haldusvälisseadmete (FIIC) katkestamiseks
  • Käsk nullimise teenusepäringu jaoks (“F0” kuueteistkümnend nullimise jaoks)

Endineample serialnum.bfm file on näidatud järgmisel joonisel.
Joonis 13 • Zeroization.bfm SmartFusion2 nullimissüsteemi teenuste simulatsiooni jaoks

Microsemi UG0837 IGLOO2 ja SmartFusion2 FPGA süsteemiteenuste simulatsioon – ärakirja aken 4

5. Salvestage fail zeroization.bfm file projekti Simulatsiooni kaustas. user.bfm
6. Redigeerige (asub kaustas zeroization.bfm Simulation), et lisada see, kasutades järgmist koodilõiku.
kaasake "zeroization.bfm" #include zeroization.bfm file protseduur user_main;
print "INFO:Simulatsioon algab";
print “INFO:Service Command Code in Decimal:%0d”, CMD ;
kõne nullimine; #kõne nullimisprotseduuri tagastamine
7. Disainihierarhias genereerige Testbench (paremklõps ülatasemel > Create Testbench > HDL ) ja oletegi valmis SmartFusion2 nullimise simulatsiooni käivitama.
Kui teenus on käivitatud, kuvatakse teade, mis näitab, et seade on hetkel x nullitud. Tuleb märkida, et simulatsioonimudel simuleerib nullimist, peatades simulatsiooni, mitte nullides disaini enda. ModelSimi ärakirja aken järgmisel joonisel näitab, et seade on nullitud.

Joonis 14 • SmartFusion2 nullimissüsteemi teenuse simulatsioonilogi

Microsemi UG0837 IGLOO2 ja SmartFusion2 FPGA süsteemiteenuste simulatsioon – ärakirja aken 5

Lisa: Süsteemiteenuste tüübid

Selles peatükis kirjeldatakse erinevat tüüpi süsteemiteenuseid.
3.1 Simulatsioonisõnumiteenused
Järgmistes jaotistes kirjeldatakse erinevat tüüpi simulatsioonisõnumiteenuseid.
3.1.1 Flash*Freeze
Simulatsioon läheb olekusse Flash*Freeze, kui FIC-ilt (IGLOO2 seadmete puhul) või Cortex-M3-lt (SmartFusion2 seadmetes) saadetakse õige teenusepäring numbrile COMM_BLK. Kui süsteemikontroller on teenuse tuvastanud, peatatakse simulatsioon ja kuvatakse teade, mis näitab, et süsteem on sisenenud Flash*Freeze'i (koos valitud valikuga). Simulatsiooni jätkamisel täidetakse COMM_BLK RXFIFO teenuse vastusega, mis koosneb teenusekäsust ja olekust. Tuleb märkida, et Flash*Freeze'i väljumisel simulatsioonitugi puudub.
3.1.2 Nullimine
Nullimine on praegu ainus kõrge prioriteediga teenus süsteemiteenustes, mida töötleb COMM_BLK. Simulatsioon läheb nullimisolekusse niipea, kui COMM_BLK tuvastab õige teenusepäringu. Süsteemikontroller peatab ja loobub teiste teenuste täitmisest ning selle asemel käivitatakse nullimisteenus. Kui nullimisteenuse taotlus tuvastatakse, simulatsioon peatub ja kuvatakse teade, mis näitab, et süsteem on nullimise alustanud. Simulatsiooni käsitsi taaskäivitamine pärast nullimist on kehtetu.
3.2 Andmeosuti teenused
Järgmistes jaotistes kirjeldatakse erinevat tüüpi andmeosutaja teenuseid.
3.2.1 Seerianumber
Seerianumbri teenus kirjutab 128-bitise seerianumbri teenusepäringu osana esitatud aadressi asukohta. Seda 128-bitist parameetrit saab seadistada süsteemiteenuse simulatsiooni toe abil file (vt lk 22) . Kui 128-bitise seerianumbri parameeter pole parameetris määratletud file, kasutatakse vaikimisi seerianumbrit 0. Kui teenus on käivitatud, kuvatakse teade, mis näitab sihtkoha asukohta ja seerianumbrit. Süsteemikontroller viib läbi AHB-kirjutuse seerianumbriga aadressile. Pärast teenuse lõpetamist laaditakse COMM_BLK RXFIFO koos teenuse vastusega.
3.2.2 Kasutajakood
Kasutajakoodi teenus kirjutab 32-bitise kasutajakoodi parameetri teenusepäringu osana esitatud aadressi asukohta. Seda 32-bitist parameetrit saab seadistada süsteemiteenuse simulatsiooni toe abil file (vt lk 22). Kui 32-bitine parameeter pole jaotises määratletud file, kasutatakse vaikeväärtust 0. Kui teenus on käivitatud, kuvatakse teade, mis näitab sihtasukohta ja kasutajakoodi. Süsteemikontroller viib läbi AHB-kirjutuse 32-bitise parameetriga aadressile. Pärast teenuse lõpetamist laaditakse COMM_BLK RXFIFO-sse teenuse vastus, mis sisaldab teenusekäsku ja sihtaadressi.
3.3 Andmekirjelduse teenused
Järgmistes jaotistes kirjeldatakse erinevat tüüpi andmekirjeldusteenuseid.

3.3.1 AES
Selle teenuse simulatsioonitugi on seotud ainult algandmete teisaldamisega allikast sihtkohta, ilma andmete krüptimist/dekrüpteerimist tegemata. Enne teenusepäringu saatmist tuleks kirjutada krüpteerimist/dekrüpteerimist vajavad andmed ja andmestruktuur. Kui teenus on käivitatud, kuvatakse teade, mis näitab AES-teenuse käitamist. AES-teenus loeb nii andmestruktuuri kui ka krüpteeritavaid/dekrüpteeritavaid andmeid. Algandmed kopeeritakse ja kirjutatakse andmestruktuuris antud aadressile. Kui teenus on lõpetatud, surutakse käsk, olek ja andmestruktuuri aadress RXFIFO-sse.
Märkus. See teenus on mõeldud ainult 128-bitiste ja 256-bitiste andmete jaoks ning nii 128- ja 256-bitistel andmetel on erinev andmestruktuuri pikkus.

3.3.2 SHA 256
Selle teenuse simulatsioonitugi on seotud ainult andmete teisaldamisega, ilma andmete räsimiseta. Funktsioon SHA 256 on loodud sisendandmete põhjal 256-bitise räsivõtme genereerimiseks. Räsitavad andmed ja andmestruktuur tuleks kirjutada nende vastavatele aadressidele enne teenusepäringu saatmist aadressile COMM_BLK. SHA 256 andmestruktuuris määratletud pikkus bittides ja osuti peab õigesti vastama räsitavate andmete pikkusele ja aadressile. Kui teenus on käivitatud, kuvatakse teade, mis näitab SHA 256 teenuse täitmist. Tegeliku funktsiooni täitmise asemel kirjutatakse andmestruktuurist sihtkoha osutile vaikimisi räsivõti. Vaikimisi räsivõti on hex “ABCD1234”. Kohandatud võtme seadistamiseks minge jaotisse Parameetrite seadistus (vt lk 23). Pärast teenuse lõpetamist laaditakse RXFIFO-sse teenuse vastus, mis koosneb teenusekäsust, olekust ja SHA 256 andmestruktuuri osutist.
3.3.3 HMAC
Selle teenuse simulatsioonitugi puudutab ainult andmete teisaldamist, ilma andmete räsimiseta. Räsitavad andmed ja andmestruktuur tuleks kirjutada nende vastavatele aadressidele enne teenusepäringu saatmist aadressile COMM_BLK. HMAC-teenus nõuab lisaks pikkusele baitides, lähte- ja sihtkoha osutile ka 32-baidist võtit. Kui teenus on käivitatud, kuvatakse teade, mis näitab HMAC-teenuse käitamist. Võti loetakse ja 256-bitine võti kopeeritakse andmestruktuurist sihtkoha osutisse. Pärast teenuse lõpetamist laaditakse RXFIFO-sse teenuse vastus, mis koosneb teenusekäsust, olekust ja HMAC-i andmestruktuuri osutist.

3.3.4 DRBG loomine
See teenus genereerib juhuslikke bitte. Tuleb märkida, et simulatsioonimudel ei järgi täpselt sama juhuslike arvude genereerimise metoodikat, mida kasutab räni. Andmestruktuur peab olema õigesti kirjutatud ettenähtud asukohta enne teenusepäringu saatmist aadressile COMM_BLK. Andmestruktuuri, sihtkoha osutit, pikkust ja muid asjakohaseid andmeid loeb süsteemikontroller. DRBG genereerimisteenus genereerib nõutud pikkusega (0-128) pseudojuhusliku andmekogumi. Süsteemikontroller kirjutab juhuslikud andmed sihtkoha osutisse. Simulatsioonis kuvatakse teade, mis näitab DRBG genereerimisteenuse täitmist. Kui teenus on lõpetatud, surutakse käsk, olek ja andmestruktuuri aadress RXFIFO-sse. Kui nõutud andmete pikkus ei jää vahemikku 0–128, surutakse RXFIFO-sse veakood “4” (Max Generate ). Kui täiendavate andmete pikkus ei jää liiga suure taotluse vahemikku 0–128, surutakse RXFIFO-sse veakood „5” (täiendavate andmete maksimaalne pikkus ületatud). Kui nii genereerimise kui ka täiendava andmepikkus ei ole nende määratletud vahemikus (0–128), surutakse RXFIFO-sse veakood “1” (katastroofiline viga).

3.3.5 DRBG lähtestamine
Tegelik lähtestamisfunktsioon teostatakse DRBG eksemplaride eemaldamise ja DRBG lähtestamise teel. Kui teenusetaotlus on tuvastatud, kuvatakse simulatsioonis teade DRBG Reset service complete. Vastus, mis sisaldab teenust ja olekut, surutakse RXFIFO-sse.
3.3.6 DRBG enesetest
DRBG enesetesti simulatsioonitugi tegelikult enesetesti funktsiooni ei täida. Kui teenusetaotlus on tuvastatud, kuvatakse simulatsioonis DRBG enesetesti teenuse käivitussõnum. Vastus, mis sisaldab teenust ja olekut, lükatakse RXFIFO-sse.
3.3.7 DRBG Instantieerimine
DRBG käivitamisteenuse simulatsioonitugi ei paku tegelikkuses käivitamisteenust. Andmestruktuur peab olema õigesti kirjutatud ettenähtud asukohta enne teenusepäringu saatmist aadressile COMM_BLK. Kui teenusepäring on tuvastatud, loetakse MSS-i aadressiruumis määratletud struktuur ja isikupärastamise string. Simulatsioon kuvab teate, mis näitab, et teenus DRBG Instantiate on käivitanud. Kui teenus on lõpetatud, lükatakse vastus, mis sisaldab teenusekäsku, olekut ja andmestruktuuri osutit, RXFIFO-sse. Kui andmete pikkus (PERSONALISEERIMISE pikkus) ei jää vahemikku 0–128, surutakse oleku jaoks RXFIFO-sse veakood „1” (katastroofiline viga).
3.3.8 DRBG tühistamine
DRBG instantimata teenuse simulatsioonitugi ei teosta tegelikult varem instantseeritud DRBG eemaldamise teenust, nagu seda teeb räni. Teenusetaotlus peab sisaldama nii käsku kui ka DRBG-käepidet. Kui teenusepäring on tuvastatud, salvestatakse DRBG käepide. Simulatsioon kuvab teate, mis näitab, et DRBG instantieerimata teenus on lähtestatud. Kui teenus on lõpetatud, lükatakse vastus, mis sisaldab teenusekäsku, olekut ja DRBG-käepidet, RXFIFO-sse.
3.3.9 DRBG uuesti külvamine
Süsteemiteenuste ploki simuleeriva olemuse tõttu ei käivitata simulatsioonis DRBG uuesti esitamise teenust automaatselt pärast iga 65535 DRBG genereerimise teenust. Andmestruktuur peab olema õigesti kirjutatud ettenähtud asukohta enne teenusepäringu saatmist aadressile COMM_BLK. Kui teenusepäring on tuvastatud, loetakse MSS-i aadressiruumi struktuur ja täiendav sisendparameeter. Kuvatakse teade, mis näitab, et DRBG taaskasutuse teenus on käivitatud. Andmestruktuur peab olema õigesti kirjutatud ettenähtud asukohta enne teenusepäringu saatmist aadressile COMM_BLK. Kui teenus on lõpetatud, lükatakse vastus, mis sisaldab teenusekäsku, olekut ja andmestruktuuri osutit, RXFIFO-sse.
3.3.10 KeyTree
Tegelikku funktsiooni KeyTree teenuse simulatsioonis ei käivitata. KeyTree teenuse andmestruktuur koosneb 32-baidisest võtmest, 7-bitisest optilise tüübi andmetest (MSB ignoreeritakse) ja 16-baidisest teest. Andmestruktuuris olevad andmed tuleks kirjutada nende vastavatele aadressidele enne teenusepäringu saatmist aadressile COMM_BLK. Kui teenus on käivitatud, kuvatakse teade, mis näitab KeyTree teenuse käivitamist. Andmestruktuuri sisu loetakse, 32-baidine võti salvestatakse ja andmestruktuuris asuv algne võti kirjutatakse üle. Pärast seda AHB kirjutamist ei tohiks võtme väärtus andmestruktuuris muutuda, kuid kirjutamiseks toimuvad AHB tehingud. Pärast teenuse lõpetamist laaditakse RXFIFO-sse teenuse vastus, mis koosneb teenusekäsust, olekust ja KeyTree andmestruktuuri osutist.
3.3.11 Väljakutse vastus
Tegelikku funktsiooni, nagu seadme autentimist, väljakutsele reageerimise teenuse simulatsioonis ei teostata. Selle teenuse andmestruktuur nõuab 32-bitise tulemuse, 7-bitise optilise tüübi ja 128-bitise tee vastuvõtmiseks puhvrile viivat kursorit. Andmestruktuuris olevad andmed tuleks kirjutada nende vastavatele aadressidele enne teenusepäringu saatmist aadressile COMM_BLK. Kui teenus on käivitatud, kuvatakse teade, mis näitab väljakutsele reageerimise teenuse täitmist. Üldine 256-bitine vastus kirjutatakse andmestruktuuris olevasse kursorisse. Vaikevõtmeks on seatud kuueteistkümnend "ABCD1234". Kohandatud võtme hankimiseks märkige suvand Parameeter Setting (vt lk 23). Pärast teenuse lõpetamist laaditakse RXFIFO-le teenuse vastus, mis koosneb teenusekäsust, olekust ja väljakutse vastuse andmestruktuuri osutist.
3.4 Muud teenused
Järgmistes jaotistes kirjeldatakse mitmesuguseid muid süsteemiteenuseid.
3.4.1 Kokkuvõtte kontroll
Valitud komponentide kokkuvõtete ümberarvutamise ja võrdlemise tegelikku funktsiooni simulatsioonis kokkuvõtte kontrollimise teenuse jaoks ei teostata. See teenusepäring koosneb teenusekäskudest ja teenusevalikutest (5-bitine LSB). Kui teenus on käivitatud, kuvatakse sõnum, mis kirjeldab üksikasjalikult kokkuvõtte kontrollimise teenuse täitmist koos päringust valitud suvanditega. Pärast teenuse lõpetamist laaditakse RXFIFO-sse teenuse vastus, mis koosneb teeninduskäskudest ja kokkuvõtte kontrollimise läbimise/ebaõnnestumise lippudest.
3.4.2 Tundmatu käsureaktsioon
Kui COMM_BLK-le saadetakse tundmatu teenusepäring, vastab COMM_BLK automaatselt tundmatu käsusõnumiga, mis lükatakse RXFIFO-sse. Teade koosneb COMM_BLK-sse saadetud käsust ja tundmatu käsu olekust (252D). Samuti kuvatakse ekraaniteade, mis näitab, et on tuvastatud tundmatu teenusetaotlus. COMM_BLK naaseb jõudeolekusse, oodates järgmise teenusetaotluse vastuvõtmist.
3.4.3 Toetamata teenused
Toetamata teenuste puhul, mille väärtus on COMM_BLK, käivitatakse simulatsioonis sõnum, mis näitab, et teenusetaotlust ei toetata. COMM_BLK naaseb jõudeolekusse, oodates järgmise teenusetaotluse vastuvõtmist. PINTERRUPT-i ei seadistata, mis näitab, et teenus on lõpetatud. Praegune toetamata teenuste loend sisaldab: IAP, Interneti-teenuse pakkuja, seadme sertifikaat ja teenus DESIGNVER.
3.5 Süsteemiteenuste simulatsiooni tugi File
Süsteemiteenuste simulatsiooni toetamiseks tekst file nimega "status.txt" saab kasutada simulatsioonimudeli nõutava käitumise juhiste edastamiseks simulatsioonimudelile. See file peaks asuma samas kaustas, kust simulatsioon käivitatakse. The file saab kasutada muuhulgas teatud veareaktsioonide sundimiseks toetatud süsteemiteenustele või isegi mõne simulatsiooniks vajalike parameetrite seadistamiseks (ntample, seerianumber). Maksimaalne ridade arv, mida failis ” status.txt” toetatakse file on 256. Reanumbri 256 järel ilmuvaid juhiseid simulatsioonis ei kasutata.
3.5.1 Veareaktsioonide sundimine
Kasutaja saab testimise ajal sundida konkreetse teenuse jaoks teatud veareaktsiooni, edastades teabe simulatsioonimudelile faili "status.txt" abil. file, mis tuleks paigutada kausta, kust simulatsiooni käivitatakse. Teatud teenusele veavastuste sundimiseks tuleb käsk ja nõutav vastus kirjutada samale reale järgmises vormingus:ample, käsule> ; juhendama simulatsioonimudelit genereerima seerianumbriteenusele MSS-i mälupöördusvea vastuse, käsk on järgmine.
Teenindus: seerianumber: 01
Taotletud veateade: MSS-mälu juurdepääsu viga: 7F
Faili "status.txt" peaks olema sisestatud rida 017F file.
3.5.2 Parameetrite seadistus
"status.txt" file saab kasutada ka mõnede simulatsioonis vajalike parameetrite määramiseks. Nagu endineample, kasutajakoodi 32-bitise parameetri määramiseks peab rea vorming olema järgmises järjekorras: <32-bitine KASUTAJAKOOD>; kus mõlemad väärtused sisestatakse kuueteistkümnendsüsteemis. Seerianumbri 128-bitise parameetri määramiseks peab rea vorming olema järgmises järjekorras: <128-bitine seerianumber [127:0]> ; kus mõlemad väärtused sisestatakse kuueteistkümnendsüsteemis. SHA 256 võtme 256-bitise parameetri määramiseks; rea vorming peab olema järgmises järjekorras: <256-bitine võti [255:0]>; kus mõlemad väärtused sisestatakse kuueteistkümnendsüsteemis. Väljakutse vastuse võtme jaoks 256-bitise parameetri määramiseks peab rea vorming olema järgmises järjekorras: <256-bitine võti [255:0]>;
kus mõlemad väärtused sisestatakse kuueteistkümnendsüsteemis.
3.5.3 Seadme prioriteet
Süsteemiteenused ja COMM_BLK kasutavad kõrge prioriteediga süsteemi. Praegu on ainus kõrge prioriteediga teenus nullimine. Kõrge prioriteediga teenuse osutamiseks teise teenuse täitmise ajal praegune teenus peatatakse ja selle asemel käivitatakse kõrgema prioriteediga teenus. Kõrgema prioriteediga teenuse osutamiseks loobub COMM_BLK praegusest teenusest. Kui enne praeguse teenuse lõpetamist saadetakse mitu kõrge prioriteediga teenust, pannakse need teenused TXFIFO-sse järjekorda. Kui praegune teenus on lõpetatud, käivitatakse järgmine teenus TXFIFO-s.

Microsemi ei anna garantiid, esindusi ega garantiisid seoses siin sisalduva teabega ega oma toodete ja teenuste sobivusega mingil konkreetsel eesmärgil, samuti ei võta Microsemi endale mingit vastutust, mis tuleneb mis tahes toote või vooluringi rakendusest või kasutamisest. Siin müüdavaid tooteid ja kõiki teisi Microsemi müüdavaid tooteid on testitud piiratud määral ja neid ei tohiks kasutada koos missioonikriitiliste seadmete või rakendustega. Kõiki toimivusspetsifikatsioone peetakse usaldusväärseteks, kuid neid ei kontrollita, ning ostja peab läbi viima ja lõpetama kõik toodete toimivus- ja muud testid üksi ja koos lõpptoodetega või nendesse installitud. Ostja ei tohi tugineda Microsemi esitatud andmetele ja jõudlusspetsifikatsioonidele või parameetritele. Ostja kohustus on iseseisvalt kindlaks teha mis tahes toodete sobivus ning seda testida ja kontrollida. Alljärgnevalt Microsemi esitatud teave esitatakse "nagu on, kus on" ja kõigi vigadega ning kogu sellise teabega seotud risk on täielikult ostja kanda. Microsemi ei anna otseselt ega kaudselt ühelegi osapoolele patendiõigusi, litsentse ega muid intellektuaalomandi õigusi, olenemata sellest, kas see puudutab sellist teavet ega midagi, mida selles teabes kirjeldatakse. Selles dokumendis esitatud teave kuulub ettevõttele Microsemi ja Microsemi jätab endale õiguse teha mis tahes muudatusi selles dokumendis sisalduvas teabes või mis tahes toodetes ja teenustes igal ajal ilma ette teatamata.
Microsemi, Microchip Technology Inc. (Nasdaq: MCHP) XNUMX% omanduses olev tütarettevõte, pakub laiaulatuslikku pooljuhtide ja süsteemilahenduste portfelli kosmose- ja kaitse-, side-, andmekeskuste- ja tööstusturgudel. Toodete hulka kuuluvad suure jõudlusega ja kiirguskindlad analoog-segasignaaliga integraallülitused, FPGA-d, SoC-d ja ASIC-id; toitehaldustooted; ajastus- ja sünkroniseerimisseadmed ning täpsed ajalahendused, mis seavad maailma ajastandardi; hääletöötlusseadmed; RF-lahendused; diskreetsed komponendid; ettevõtte ladustamis- ja sidelahendused; turvatehnoloogiad ja skaleeritav anti-tamper tooted; Etherneti lahendused; Power-over-Ethernet IC-d ja keskmised vahemikud; samuti kohandatud disainivõimalused ja -teenused. Microsemi peakontor asub Californias Aliso Viejos ja ettevõttel on üle maailma umbes 4,800 töötajat. Lisateavet leiate aadressilt www.microsemi.com.

Microsemi logo

Microsemi peakorter
One Enterprise, Aliso Viejo,
CA 92656 USA
USA piires: +1 800-713-4113
Väljaspool USA-d: +1 949-380-6100
Müük: +1 949-380-6136
Faks: +1 949-215-4996
E-post: müük.support@microsemi.com
www.microsemi.com
© 2018 Microsemi. Kõik õigused kaitstud. Microsemi ja Microsemi logo
on Microsemi Corporationi kaubamärgid. Kõik muud kaubamärgid ja teenused
märgid on nende vastavate omanike omand.

Dokumendid / Ressursid

Microsemi UG0837 IGLOO2 ja SmartFusion2 FPGA süsteemiteenuste simulatsioon [pdfKasutusjuhend
UG0837, UG0837 IGLOO2 ja SmartFusion2 FPGA süsteemiteenuste simulatsioon, IGLOO2 ja SmartFusion2 FPGA süsteemiteenuste simulatsioon, SmartFusion2 FPGA süsteemiteenuste simulatsioon, FPGA süsteemiteenuste simulatsioon, teenuste simulatsioon

Viited

Jäta kommentaar

Teie e-posti aadressi ei avaldata. Kohustuslikud väljad on märgitud *