UG0837
Felhasználói kézikönyv
IGLOO2 és SmartFusion2 FPGA
Rendszerszolgáltatások szimulációja
2018. június
Revíziótörténet
A felülvizsgálati előzmények leírják a dokumentumban végrehajtott változtatásokat. A változtatások átdolgozásonként vannak felsorolva, a legfrissebb kiadványtól kezdve.
1.1 Felülvizsgálat 1.0
Az 1.0 verzió 2018 júniusában jelent meg. Ez volt a dokumentum első kiadása.
IGLOO2 és SmartFusion2 FPGA rendszerszolgáltatások szimulációja
A SmartFusion®2 FPGA család System Services blokkja különféle feladatokért felelős szolgáltatások gyűjteményét tartalmazza. Ide tartoznak a szimulációs üzenetszolgáltatások, az adatmutató szolgáltatások és az adatleíró szolgáltatások. A rendszerszolgáltatások a SmartFusion3-ben a Cortex-M2-on keresztül, az FPGA-szövetről pedig a szövetinterfész-vezérlőn (FIC) keresztül érhetők el mind a SmartFusion2, mind az IGLOO®2 esetében. Ezeket a hozzáférési módszereket a rendszer a COMM_BLK-n keresztül küldi el a rendszervezérlőnek. A COMM_BLK fejlett perifériás busz (APB) interfésszel rendelkezik, és üzenettovábbítási csatornaként működik a rendszervezérlővel való adatcseréhez. A rendszerszolgáltatási kérelmek elküldésre kerülnek a rendszervezérlőnek, a rendszerszolgáltatási válaszok pedig a CoreSysSerrvice-nek a COMM BLK-n keresztül. A COMM_BLK címhelye a mikrovezérlő alrendszeren (MSS)/nagy teljesítményű memória alrendszeren (HPMS) belül érhető el. A részletekért lásd: UG0450: SmartFusion2 SoC és IGLOO2 FPGA rendszervezérlő.
Felhasználói kézikönyv
Az alábbi ábra a rendszerszolgáltatások adatfolyamát mutatja be.
1. ábra • Rendszerszolgáltatási adatfolyam diagramMind az IGLOO2, mind a SmartFusion2 rendszerszolgáltatás-szimuláció esetén rendszerszolgáltatási kérelmeket kell kiküldenie, és ellenőriznie kell a rendszerszolgáltatási válaszokat, hogy ellenőrizze a szimuláció helyességét. Ez a lépés a rendszerszolgáltatásokat nyújtó rendszervezérlő eléréséhez szükséges. A rendszervezérlőre való írás és olvasás módja az IGLOO2 és a SmartFusion2 eszközök esetében eltérő. A SmartFusion2 számára elérhető a Coretex-M3, és írhat és olvashat a rendszervezérlőről a buszfunkcionális modell (BFM) parancsok segítségével. Az IGLOO2 esetében a Cortex-M3 nem érhető el, és a rendszervezérlő nem érhető el BFM parancsokkal.
2.1 Az elérhető rendszerszolgáltatások típusai
Három különböző típusú rendszerszolgáltatás érhető el, és minden szolgáltatástípusnak különböző altípusai vannak.
Szimulációs üzenetszolgáltatások
Adatmutató szolgáltatások
Adatleíró szolgáltatások
Ennek az útmutatónak a Függelék – Rendszerszolgáltatástípusok című fejezete (lásd: 19. oldal) a rendszerszolgáltatások különböző típusait írja le. A rendszerszolgáltatásokkal kapcsolatos további információkért lásd: UG0450: SmartFusion2 SoC és IGLOO2 FPGA rendszervezérlő felhasználói kézikönyv.
2.2 IGLOO2 rendszerszolgáltatás szimuláció
A rendszerszolgáltatások magukban foglalják a rendszervezérlőbe való írást és az onnan történő olvasást. Ha szimulációs célból szeretne írni és olvasni a rendszervezérlőről, akkor a következő lépéseket kell végrehajtania.
- Példányosítsa a SmartDesign katalógusban elérhető CoreSysServices puha IP-magot.
- Írja meg a véges állapotú gép (FSM) HDL-kódját.
A HDL FSM a CoreSysServices Core-hoz kapcsolódik, amely az AHBLite busz szövetmestereként szolgál. A CoreSysServices mag rendszerszolgáltatási kérelmet kezdeményez a COMM BLK felé, és rendszerszolgáltatási válaszokat fogad a COMM BLK-tól a FIC_0/1 szövetinterfész-vezérlőn keresztül, ahogy az a következő ábrán látható.
2. ábra • IGLOO2 rendszerszolgáltatások szimulációs topológiája2.3 SmartFusion2 rendszerszolgáltatás szimulációja
A SmartFusion2 eszközök rendszerszolgáltatásainak szimulálásához írnia kell a rendszervezérlőbe, és olvasnia kell onnan. Két lehetőség áll rendelkezésre a rendszervezérlő szimulációs célú eléréséhez.
1. lehetőség – Írja be az FSM HDL-kódját, hogy interfész legyen a CoreSysService soft IP-maggal, amely AHBLite háló mesterként szolgál, és rendszerszolgáltatási kérelmet kezdeményez a COMM BLK felé, és rendszerszolgáltatási válaszokat fogad a COMM BLK-tól a FIC_0/1 szöveten keresztül. interfész az alábbi ábrán látható módon.
3. ábra • SmartFusion2 System Services szimulációs topológia
2. lehetőség – Mivel a Cortex-M3 elérhető a SmartFusion2 eszközökhöz, a BFM parancsok segítségével közvetlenül írhat a rendszervezérlő memóriájába, és olvashat belőle.
A BFM-parancsok (2. opció) használatával nem kell HDL-kódokat írni az FSM-hez. Ebben a felhasználói útmutatóban a 2. lehetőség a SmartFusion2 rendszerszolgáltatás-szimulációjának megjelenítésére szolgál. Ezzel az opcióval a rendszervezérlő memóriaterületéhez hozzá lehet férni, hogy megtudja a COMM BLK és a szöveti interfész megszakításvezérlő (FIIC) blokk memóriatérképét a BFM-parancsok írásakor.
2.4 Szimuláció plamples
A felhasználói kézikönyv a következő szimulációkat tárgyalja.
- IGLOO2 sorozatszám szolgáltatás szimuláció (lásd 5. oldal)
- SmartFusion2 sorozatszám szolgáltatás szimulációja (lásd 8. oldal)
- IGLOO2 nullázási szolgáltatás szimuláció (lásd: 13. oldal)
- SmartFusion2 nullázási szolgáltatás szimulációja (lásd: 16. oldal)
Hasonló szimulációs módszerek más rendszerszolgáltatásoknál is alkalmazhatók. Az elérhető különböző rendszerszolgáltatások teljes listáját a Függelék – Rendszerszolgáltatástípusok című részben találja (lásd: 19. oldal).
2.5 IGLOO2 sorozatszám szolgáltatás szimuláció
Az IGLOO2 sorozatszám szolgáltatás szimulációjának előkészítéséhez hajtsa végre a következő lépéseket.
- Hívja meg a rendszerkészítőt a HPMS blokk létrehozásához.
- Jelölje be a HPMS rendszerszolgáltatások jelölőnégyzetet az Eszközszolgáltatások oldalon. Ez utasítja a rendszerépítőt, hogy tegye közzé a HPMS_FIC_0 SYS_SERVICES_MASTER busz interfészt (BIF).
- Az összes többi jelölőnégyzetet hagyja bejelöletlenül.
- Fogadja el az alapértelmezettet az összes többi oldalon, és kattintson a Befejezés gombra a rendszerépítő blokk befejezéséhez. A Libero® SoC HDL szerkesztőjében írja be az FSM HDL kódját (File > Új > HDL) . Vegye fel a következő három állapotot az FSM-be.
INIT állapot (kezdeti állapot)
SERV_PHASE (szolgáltatáskérés állapota)
RSP_PHASE (szolgáltatási válasz állapota).
A következő ábra FSM három állapotát mutatja.
4. ábra • Háromállami FSM Az FSM HDL-kódjában használja a megfelelő parancskódot („01” hexa a sorozatszám szolgáltatáshoz), hogy belépjen a szolgáltatáskérés állapotába az INIT állapotból.
- Mentse el a HDL-t file. Az FSM a tervezési hierarchia összetevőjeként jelenik meg.
- Nyissa meg a SmartDesign programot. Húzza át a legfelső szintű rendszerépítő blokkot és az FSM blokkot a SmartDesign vászonra. A katalógusból húzza át a CoreSysService soft IP-magot a SmartDesign vászonra.
- A konfigurátor megnyitásához kattintson a jobb gombbal a CoreSysService szoftver IP-magjára. Jelölje be a Sorozatszám-szolgáltatás jelölőnégyzetet (az Eszköz- és tervezési információs szolgáltatások alatt
csoport) a sorozatszám szolgáltatás engedélyezéséhez. - Az összes többi jelölőnégyzetet hagyja bejelöletlenül. A konfigurátorból való kilépéshez kattintson az OK gombra.
5. ábra • CoreSysServices soft IP Core Configurator
- Csatlakoztassa a rendszerépítő blokk HPMS_FIC_0 SYS_SERVICES_MASTER BIF-jét a CoreSysService blokk AHBL_MASTER BIF-jéhez.
- Csatlakoztassa a HDL FSM blokk kimenetét a CoreSysService soft IP mag bemenetéhez. Végezze el az összes többi csatlakozást a SmartDesign vászonban az alábbi ábrán látható módon.
6. ábra • SmartDesign Canvas HDL blokkal, CoreSysServices Soft IP és HPMS blokkokkal - A SmartDesign vásznon kattintson jobb gombbal a > Összetevő létrehozása elemre a legfelső szintű terv létrehozásához.
- A tervezési hierarchiában view, kattintson jobb gombbal a legfelső szintű tervre, és válassza a Testbench létrehozása > HDL lehetőséget.
- Szöveg létrehozásához használjon szövegszerkesztőt file „status.txt” néven.
- Adja meg a rendszerszolgáltatás parancsát és a 128 bites sorozatszámot. További információkért tekintse meg az 1. táblázatot (Rendszerszolgáltatások parancs-/válaszértékei) a CoreSysServices v3.1 kézikönyv a különböző rendszerszolgáltatásokhoz használandó parancskódokhoz (Hex). A sorozatszám szolgáltatásnál a parancskód „01” Hex.
A status.txt formátuma file a sorozatszám szolgáltatás esetében a következő.
< 2 hexa számjegyű CMD><32 hexa számjegyű sorozatszám>
Example: 01A1A2A3A4B1B2B3B4C1C2C3C4D1D2D3D4
Mentse el a status.txt fájlt file a projekt Szimuláció mappájában. A terv készen áll a szimulációra.
Amint a szolgáltatás végrehajtása megkezdődött, a ModelSim átirata ablakában megjelenik egy üzenet, amely jelzi a rendeltetési helyet és a sorozatszámot, ahogy az a következő ábrán látható.
7. ábra • ModelSim szimulációs átirat ablakA rendszervezérlő AHB írást hajt végre a sorozatszámmal ellátott címre. A szolgáltatás befejezése után a COMM_BLK RXFIFO-ja betöltődik a szolgáltatási válasszal.
Megjegyzés: A különböző rendszerszolgáltatásokhoz használandó parancskódok teljes listáját lásd a CoreSysServices v1 kézikönyv vagy UG3.1: SmartFusion0450 SoC és IGLOO2 FPGA rendszervezérlő felhasználói kézikönyv 2. táblázatában (Rendszerszolgáltatások parancs-/válaszértékei).
2.6 SmartFusion2 sorozatszám szolgáltatás szimuláció
Ebben a felhasználói kézikönyvben a BFM parancsok (2. opció) a rendszervezérlőhöz való hozzáférésre szolgálnak a rendszerszolgáltatáshoz. A BFM parancsok használatosak, mivel a Cortex-M3 processzor elérhető az eszközön a BFM szimulációhoz. A BFM parancsok lehetővé teszik, hogy közvetlenül a COMM BLK-ba írjon és abból olvasson, miután ismeri a COMM_BLK memórialeképezését.
A SmartFusion2 sorozatszám szolgáltatás szimulációjához való terv előkészítéséhez hajtsa végre a következő lépéseket.
- Húzza át az MSS-t a katalógusból a projekt tervezési vásznára.
- Tiltsa le az összes MSS perifériát, kivéve az MSS_CCC, Reset Controller, Interrupt Management és FIC_0, FIC_1 és FIC_2.
- Konfigurálja a megszakításkezelést úgy, hogy az MSS-t használjon a megszakításhoz.
- Készítse elő a serialnum.bfm fájlt file szövegszerkesztőben vagy a Libero HDL szerkesztőjében. Mentse el a serialnum.bfm fájlt file a projekt Szimuláció mappájában. A serialnum.bfm fájlnak a következő részleteket kell tartalmaznia.
• Memória leképezés a COMM BLK-hoz (CMBLK)
• Memórialeképezés a felügyeleti periféria megszakítására (FIIC)
• Parancs a sorozatszám rendszer szervizkéréséhez ("01" Hex)
• A sorozatszám helyének címe
Egy voltample a serialnum.bfm file a következő.
memmap FIIC 0x40006000; #Memórialeképezés a megszakításkezeléshez
memmap CMBLK 0x40016000; #Memory Mapping to COMM BLK
memmap DESCRIPTOR_ADDR 0x20000000; #Cím helye a sorozatszámhoz
#Parancskód hexadecimális formában
állandó CMD 0x1 # Parancskód a Serial NumberService számára
#FIIC konfigurációs regiszterek
állandó FICC_INTERRUPT_ENABLE0 0x0
#COMM_BLK Konfigurációs regiszterek
állandó CONTROL 0x00
állandó STATUS 0x04
állandó INT_ENABLE 0x08
állandó DATA8 0x10
állandó DATA32 0x14
állandó FRAME_START8 0x18
állandó FRAME_START32 0x1C
eljárás serialnum;
int x;
w write w FICC_INTERRUPT_ENABLE0 0x20000000 #Configure
#FICC_INTERRUPT_ENABLE0 # Regisztráljon a COMBLK_INTR # engedélyezéséhez
#interrupt a COMM_BLK blokkról a szövetre
#Kérés fázis
írás w CMBLK CONTROL 0x10 # COMM BLK Control konfigurálása #Regisztráció
engedélyezze az átvitelt a COMM BLK interfészen
write w CMBLK INT_ENABLE 0x1 # COMM konfigurálása BLK megszakítás engedélyezése
#Regisztráljon a megszakítás engedélyezéséhez a TXTOKAY számára (a megfelelő bit a
#Állapotnyilvántartás)
waitint 19 # várjon COMM-ra BLK Interrupt , Itt #BFM vár
#míg a COMBLK_INTR érvényesül
readstore w CMBLK STATUS x # Olvasás COMM BLK állapot Regisztráljon a #TXTOKAY számára
# Megszakítás
xx és 0x1 beállítása
ha x
írás w CMBLK FRAME_START8 CMD # COMM konfigurálása BLK FRAME_START8
#Regisztráljon a sorozatszám szolgáltatás igényléséhez
endif
endif
waitint 19 # várjon a COMM-ra BLK Interrupt , Here
#BFM megvárja a COMBLK_INTR érvényesítését
readstore w CMBLK ÁLLAPOT x # Olvasás COMM BLK állapot Regisztráljon
#TXTOKAY Megszakítás
xx és 0x1 beállítása
xx és 0x1 beállítása
ha x
write w CMBLK CONTROL 0x14 #COMM BLK Control konfigurálása
#Regisztráljon az átvitel engedélyezéséhez a COMM BLK felületen
írjon w CMBLK DATA32 DESCRIPTOR_ADDR
írás w CMBLK INT_ENABLE 0x80
írd w CMBLK CONTROL 0x10
endif
várj 20
#Reagálási fázis
várni 19
readstore w CMBLK STATUS x
xx és 0x80 beállítása
ha x
readcheck w CMBLK FRAME_START8 CMD
írás w CMBLK INT_ENABLE 0x2
endif
várni 19
readstore w CMBLK STATUS x
xx és 0x2 beállítása
ha x
readcheck w CMBLK DATA8 0x0
írd w CMBLK CONTROL 0x18
endif
várni 19
readcheck w FIIC 0x8 0x20000000
readstore w CMBLK STATUS x
xx és 0x2 beállítása
ha x
readcheck w CMBLK DATA32 DESCRIPTOR_ADDR
endif
ellenőrzés ellenőrzése w DESCRIPTOR_ADDR 0x0 0xE1E2E3E4; #Readcheck az S/N ellenőrzéséhez
ellenőrzés ellenőrzése w DESCRIPTOR_ADDR 0x4 0xC1C2C3C4; #Readcheck az S/N ellenőrzéséhez
ellenőrzés ellenőrzése w DESCRIPTOR_ADDR 0x8 0xB1B2B3B4; #Readcheck az S/N ellenőrzéséhez
ellenőrzés ellenőrzése w DESCRIPTOR_ADDR 0xC 0xA1A2A3A4; #Readcheck az S/N ellenőrzéséhez
visszatérés - Állapot létrehozása. txt file a Libero HDL szerkesztőjében vagy bármely szövegszerkesztőben. Adja meg a sorozatszám rendszerszolgáltatási parancsot ("01" hexadecimálisan) és a sorozatszámot az állapot mezőben. txt file. A helyes parancskód használatához lásd a CoreSysServices v3.1 kézikönyvet.
- Ennek szintaxisa file a sorozatszám szolgáltatáshoz <2 hexa számjegyű CMD>< 32 hexa számjegyű sorozatszám> . Voltample: 01A1A2A3A4B1B2B3B4C1C2C3C4E1E2E3E4.
- Mentse el az állapotot .txt fájlban file a projekt Szimuláció mappájában.
- Szerkessze a .bfm felhasználót (a Szimuláció mappában található), hogy tartalmazza a sorozatszámot. bfm file és hívja meg a sorozatszám eljárást a következő kódrészletben látható módon.
tartalmazza a "serialnum.bfm" #include the serialnum.bfm
eljárás user_main;
nyomtatja ki az „INFO:Szimuláció indul”;
print “INFO:Service Command Code decimális:%0d”, CMD ;
sorszám hívása; #hívja a serialnum eljárást
nyomtatja ki az „INFO:Szimuláció véget ér”;
visszatérés - A tervezési hierarchiában view, hozza létre a tesztpadot (jobb gombbal kattintson a Legfelső szintű tervezés > Tesztpad létrehozása > HDL ), és készen áll a sorozatszám szolgáltatás szimulációjának futtatására.
Amint a szolgáltatás megkezdődött, megjelenik egy üzenet, amely jelzi a rendeltetési helyet és a sorozatszámot. A rendszervezérlő AHB írást hajt végre a sorozatszámmal ellátott címre. A szolgáltatás befejezése után a COMM_BLK RXFIFO-ja betöltődik a szolgáltatási válasszal. A ModelSim átirat ablaka megjeleníti a kapott címet és sorozatszámot az alábbi ábrán látható módon.
8. ábra • SmartFusion2 sorozatszám szolgáltatás szimulációja a ModelSim Transcript ablakban
2.7 IGLOO2 nullázási szolgáltatás szimuláció
Az IGLOO2 nullázási szolgáltatás szimulációjára való felkészüléshez hajtsa végre a következő lépéseket.
- Hívja meg a rendszerkészítőt a HPMS blokk létrehozásához. Jelölje be a HPMS rendszerszolgáltatások jelölőnégyzetet a Device Features SYS_SERVICES_MASTER BIF részben. Az összes többi jelölőnégyzetet hagyja bejelöletlenül. Fogadja el az alapértelmezettet az összes többi oldalon, és kattintson az oldalra. Ez arra utasítja a rendszerkészítőt, hogy tegye közzé a HPMS_FIC_0 Befejezést a rendszerépítő blokk konfigurációjának befejezéséhez.
- A Libero SoC HDL-szerkesztőjében írja be az FSM HDL-kódját. Az FSM HDL-kódjában adja meg a következő három állapotot.
INIT állapot (kezdeti állapot)
SERV_PHASE (szolgáltatáskérés állapota)
RSP_PHASE (szolgáltatási válasz állapota)
A következő ábra FSM három állapotát mutatja.
9. ábra • Háromállami FSM - A HDL-kódban használja az „F0”(Hex) parancskódot a szolgáltatáskérés állapotának megadásához az INIT állapotból.
- Mentse el a HDL-t file.
- Nyissa meg a SmartDesign-t, húzza át a legfelső szintű rendszerépítő blokkot és a HDL FSM blokkot a SmartDesign vászonra. A katalógusból húzza át a CoreSysService soft IP-magot a SmartDesign vászonra.
- Kattintson a jobb gombbal a CoreSysServices szoftveres IP-magra a konfigurátor megnyitásához, és jelölje be a Zeroization Service jelölőnégyzetet az Adatbiztonsági szolgáltatások csoportban. Az összes többi jelölőnégyzetet hagyja bejelöletlenül. Kattintson az OK gombra a kilépéshez.
10. ábra • CoreSysServices Configurator
- Csatlakoztassa a rendszerépítő blokk HPMS_FIC_0 SYS_SERVICES_MASTER BIF-jét a CoreSysService blokk AHBL_MASTER BIF-jéhez.
- Csatlakoztassa a HDL FSM blokk kimenetét a CoreSysService soft IP mag bemenetéhez. Hozza létre az összes többi kapcsolatot a SmartDesign vásznon.
11. ábra • SmartDesign Canvas HDL-blokkokkal, CoreSysServices Soft IP-vel és HPMS-blokkokkal
9. A SmartDesign vásznon hozza létre a legfelső szintű tervet (jobb gombbal kattintson a > Összetevő generálása).
10. A tervezési hierarchiában view, kattintson a jobb gombbal a legfelső szintű tervre, és válassza a Testbench létrehozása > HDL lehetőséget. Most készen áll a szimuláció futtatására.
Amint a szolgáltatás végrehajtása megkezdődött, megjelenik egy üzenet, amely jelzi, hogy a nullázás x időpontban befejeződött, az alábbi ábrán látható módon.
12. ábra • IGLOO2 nullázási rendszerszolgáltatás szimulációs átirata ablak
A rendszervezérlő AHB írást hajt végre a sorozatszámmal ellátott címre. A szolgáltatás befejezése után a COMM_BLK RXFIFO-ja betöltődik a szolgáltatási válasszal. Meg kell jegyezni, hogy a szimulációs modell a nullázást szimulálja úgy, hogy leállítja a szimulációt, nem pedig magát a tervezést.
Megjegyzés: A különböző rendszerszolgáltatásokhoz használandó parancskódok teljes listáját lásd az 1. táblázatban (Rendszerszolgáltatások parancs-/válaszértékei) a CoreSysServices v3.1 kézikönyv:. vagy UG0450: SmartFusion2 SoC és IGLOO2 FPGA rendszervezérlő felhasználói kézikönyv
2.8 SmartFusion2 nullázási szolgáltatás szimulációja
Ebben az útmutatóban a BFM-parancsok (2. opció) a rendszervezérlőhöz való hozzáférésre szolgálnak rendszerszolgáltatás céljából.
A BFM parancsok használatosak, mivel a Cortex-M3 processzor elérhető az eszközön a BFM szimulációhoz. A BFM parancsok lehetővé teszik, hogy közvetlenül a COMM BLK-ba írjon és abból olvasson, miután ismeri a COMM_BLK memórialeképezését. A SmartFusion2 nullázási szolgáltatás szimulációjához való terv előkészítéséhez hajtsa végre a következő lépéseket.
- Húzza át az MSS-t a katalógusból a projekt tervezési vásznára.
- Tiltsa le az összes MSS perifériát, kivéve az MSS_CCC, Reset Controller, Interrupt Management és FIC_0, FIC_1 és FIC_2.
- Konfigurálja a megszakításkezelést úgy, hogy az MSS-t használjon a megszakításhoz.
- Készítse elő a zeroizaton.bfm-et file szövegszerkesztőben vagy a Libero HDL szerkesztőjében. A nullázásod. A bfm-nek tartalmaznia kell:
- Memória leképezés a COMM BLK-hoz (CMBLK)
- Memória-leképezés a felügyeleti periféria megszakítására (FIIC)
- Parancs a nullázási szolgáltatáskéréshez ("F0" hex a nullázáshoz)
Egy voltample a serialnum.bfm file a következő ábrán látható.
13. ábra • Zeroization.bfm a SmartFusion2 nullázási rendszerszolgáltatások szimulációjához
5. Mentse el a zeroization.bfm fájlt file a projekt Szimuláció mappájában. user.bfm
6. Szerkessze a (a zeroization.bfm Simulation mappában található) fájlt, hogy tartalmazza a következő kódrészletet.
tartalmazza a „zeroization.bfm” #include zeroization.bfm file eljárás user_main;
nyomtatja ki az „INFO:Szimuláció indul”;
print “INFO:Service Command Code decimális:%0d”, CMD ;
nullázás hívása; #call nullázási eljárás visszatérése
7. A Tervezési hierarchiában hozza létre a Testbench-et (jobb kattintás a legfelső szint > Testbench létrehozása > HDL ), és készen áll a SmartFusion2 nullázási szimuláció futtatására.
Miután a szolgáltatás megkezdődött, megjelenik egy üzenet, amely jelzi, hogy az eszközt az x időpontban nullázták. Meg kell jegyezni, hogy a szimulációs modell a nullázást szimulálja úgy, hogy leállítja a szimulációt, nem pedig magát a tervezést. A következő ábrán látható ModelSim átirat ablaka azt mutatja, hogy az eszköz nullázva lett.
14. ábra • SmartFusion2 nullázási rendszer szolgáltatásszimulációs naplója
Függelék: Rendszerszolgáltatások típusai
Ez a fejezet különféle rendszerszolgáltatásokat ismertet.
3.1 Szimulációs üzenetszolgáltatások
A következő szakaszok a szimulációs üzenetszolgáltatások különféle típusait írják le.
3.1.1 Flash*Freeze
A szimuláció akkor lép Flash*Freeze állapotba, amikor a megfelelő szolgáltatáskérést elküldik a COMM_BLK-nak az FIC-től (IGLOO2 eszközök esetén), vagy a Cortex-M3-tól (SmartFusion2 eszközök esetén). Miután a rendszervezérlő észlelte a szolgáltatást, a szimuláció leáll, és megjelenik egy üzenet, amely jelzi, hogy a rendszer belépett a Flash*Freeze-be (a kiválasztott opcióval együtt). A szimuláció folytatásakor a COMM_BLK RXFIFO-ja meg lesz töltve a szolgáltatási parancsból és állapotból álló szolgáltatási válaszokkal. Megjegyzendő, hogy a Flash*Freeze kilépéshez nincs szimulációs támogatás.
3.1.2 Nullázás
A nullázás jelenleg az egyetlen magas prioritású szolgáltatás a COMM_BLK által feldolgozott rendszerszolgáltatásokon belül. A szimuláció nullázási állapotba kerül, amint a COMM_BLK a megfelelő szolgáltatáskérést észleli. A többi szolgáltatás végrehajtását a rendszervezérlő leállítja és elveti, helyette a nullázási szolgáltatás kerül végrehajtásra. A nullázási szolgáltatáskérés észlelése után a szimuláció leáll, és megjelenik egy üzenet, amely jelzi, hogy a rendszer nullázásba lépett. A szimuláció nullázás utáni kézi újraindítása érvénytelen.
3.2 Data Pointer szolgáltatások
A következő szakaszok különböző típusú adatmutató-szolgáltatásokat ismertetnek.
3.2.1 Sorozatszám
A sorozatszám szolgáltatás 128 bites sorozatszámot ír a szolgáltatáskérés részeként megadott címre. Ez a 128 bites paraméter a System Service Simulation Support segítségével állítható be file (lásd 22. oldal) . Ha a 128 bites sorozatszám paraméter nincs megadva a file, akkor az alapértelmezett 0-s sorozatszám kerül felhasználásra. Amint a szolgáltatás megkezdődött, megjelenik egy üzenet, amely jelzi a rendeltetési helyet és a sorozatszámot. A rendszervezérlő AHB írást hajt végre a sorozatszámmal ellátott címre. A szolgáltatás befejezése után a COMM_BLK RXFIFO-ja betöltődik a szolgáltatási válasszal.
3.2.2 Felhasználói kód
A felhasználói kód szolgáltatás egy 32 bites felhasználói kód paramétert ír a szolgáltatáskérés részeként megadott címre. Ez a 32 bites paraméter a System Service Simulation Support segítségével állítható be file (lásd 22. oldal). Ha a 32 bites paraméter nincs megadva a file, az alapértelmezett 0 értéket használja. Amint a szolgáltatás elkezdődött, megjelenik egy üzenet, amely jelzi a célhelyet és a felhasználói kódot. A rendszervezérlő AHB írást hajt végre a 32 bites paraméterrel rendelkező címre. A szolgáltatás befejezése után a COMM_BLK RXFIFO-ja betöltődik a szolgáltatási válasszal, amely tartalmazza a szolgáltatás parancsot és a célcímet.
3.3 Adatleíró szolgáltatások
A következő szakaszok különböző típusú adatleíró szolgáltatásokat írnak le.
3.3.1 AES
Ennek a szolgáltatásnak a szimulációs támogatása csak az eredeti adatok forrásból a célhelyre történő áthelyezésére vonatkozik, anélkül, hogy ténylegesen titkosítást/visszafejtést hajtana végre az adatokon. A szolgáltatáskérés elküldése előtt meg kell írni a titkosítandó/visszafejtendő adatokat és az adatstruktúrát. Amint a szolgáltatás elkezdődött, megjelenik egy üzenet, amely jelzi az AES szolgáltatás végrehajtását. Az AES szolgáltatás beolvassa az adatstruktúrát és a titkosítandó/visszafejtendő adatokat is. Az eredeti adatokat az adatszerkezetben megadott címre másoljuk és írjuk. A szolgáltatás befejezése után a parancs, az állapot és az adatstruktúra címe bekerül az RXFIFO-ba.
Jegyzet: Ez a szolgáltatás csak 128 bites és 256 bites adatokhoz használható, és mind a 128, mind a 256 bites adatok eltérő adatszerkezet-hosszúságúak.
3.3.2 SHA 256
Ennek a szolgáltatásnak a szimulációs támogatása csak az adatok mozgatására vonatkozik, anélkül, hogy ténylegesen kivonatokat hajtana végre az adatokon. Az SHA 256 funkciót úgy tervezték, hogy a bemeneti adatok alapján 256 bites hash kulcsot generáljon. A kivonatolni kívánt adatokat és az adatstruktúrát a megfelelő címükre kell írni, mielőtt a szolgáltatáskérést elküldené a COMM_BLK-nak. Az SHA 256 adatstruktúrában meghatározott bitben és mutatóban megadott hossznak megfelelően meg kell felelnie a kivonatolni kívánt adatok hosszának és címének. Miután a szolgáltatás megkezdődött, megjelenik egy üzenet, amely jelzi az SHA 256 szolgáltatás végrehajtását. A tényleges függvény végrehajtása helyett egy alapértelmezett hash kulcs kerül a célmutatóba az adatstruktúrából. Az alapértelmezett hash kulcs a hexadecimális „ABCD1234”. Egyéni kulcs beállításához lépjen a Paraméterbeállítás (lásd 23. oldal) részhez. A szolgáltatás befejezése után az RXFIFO betöltődik a szolgáltatási parancsból, állapotból és SHA 256 adatstruktúra-mutatóból álló szolgáltatásválaszokkal.
3.3.3 HMAC
Ennek a szolgáltatásnak a szimulációs támogatása csak az adatok mozgatására vonatkozik, anélkül, hogy ténylegesen kivonatokat végezne az adatokon. A kivonatolni kívánt adatokat és az adatstruktúrát a megfelelő címükre kell írni, mielőtt a szolgáltatáskérést elküldené a COMM_BLK-nak. A HMAC szolgáltatáshoz a bájtokban megadott hosszon, a forrásmutatón és a célmutatón kívül egy 32 bájtos kulcsra is szükség van. Amint a szolgáltatás megkezdődött, megjelenik egy üzenet, amely jelzi a HMAC szolgáltatás végrehajtását. A kulcs beolvasásra kerül, és a 256 bites kulcs átmásolódik az adatstruktúrából a célmutatóba. A szolgáltatás befejezése után az RXFIFO betöltődik a szolgáltatási parancsból, állapotból és HMAC adatszerkezet-mutatóból álló szolgáltatásválaszokkal.
3.3.4 DRBG generálás
Ez a szolgáltatás véletlenszerű biteket generál. Meg kell jegyezni, hogy a szimulációs modell nem pontosan követi ugyanazt a véletlenszám-generálási módszert, amelyet a szilícium használ. Az adatstruktúrát helyesen kell beírni a kívánt helyre, mielőtt a szolgáltatáskérést elküldené a COMM_BLK-nak. Az adatszerkezetet, a célmutatót, a hosszt és egyéb releváns adatokat a rendszervezérlő olvassa be. A DRBG generáló szolgáltatás a kért hosszúságú (0-128) pszeudovéletlen adathalmazt állítja elő. A rendszervezérlő a véletlenszerű adatokat a célmutatóba írja. A szimuláció során megjelenik egy üzenet, amely jelzi a DRBG generálási szolgáltatás végrehajtását. A szolgáltatás befejezése után a parancs, az állapot és az adatstruktúra címe bekerül az RXFIFO-ba. Ha a kért adathossz nem esik a 0-128 tartományba, akkor a „4” (Maximális generálás) hibakód kerül az RXFIFO-ba. Ha a további adathossz nem esik a Túl nagy kérés 0 és 128 közötti tartományába, akkor az „5” hibakód (A további adatok maximális hossza túllépve) kerül az RXFIFO-ba. Ha a generáláshoz és a kiegészítő adathosszúság sem a meghatározott tartományon belül van (0-128), akkor az „1” (katasztrofális hiba) hibakód kerül az RXFIFO-ba.
3.3.5 DRBG visszaállítás
A tényleges visszaállítási funkció a DRBG példányok eltávolításával és a DRBG visszaállításával történik. A szolgáltatáskérés észlelése után a szimuláció egy DRBG Reset service complete üzenetet jelenít meg. A szolgáltatást és állapotot is tartalmazó válasz az RXFIFO-ba kerül.
3.3.6 DRBG önteszt
A DRBG önteszt szimulációs támogatása valójában nem hajtja végre az önteszt funkciót. A szolgáltatáskérés észlelése után a szimuláció egy DRBG önteszt szolgáltatásvégrehajtási üzenetet jelenít meg. A szolgáltatást és állapotot is tartalmazó válasz az RXFIFO-ba kerül.
3.3.7 DRBG példányosítás
A DRBG példányosítási szolgáltatás szimulációs támogatása valójában nem hajtja végre a példányosítási szolgáltatást. Az adatstruktúrát helyesen kell beírni a kívánt helyre, mielőtt a szolgáltatáskérést elküldené a COMM_BLK-nak. A szolgáltatáskérés észlelése után az MSS címterében meghatározott struktúra és személyre szabott karakterlánc beolvasásra kerül. A szimuláció egy üzenetet jelenít meg, amely jelzi, hogy a DRBG Instantiate szolgáltatás végrehajtása megkezdődött. A szolgáltatás befejezése után a válasz, amely tartalmazza a szolgáltatási parancsot, az állapotot és az adatszerkezetre mutató mutatót, az RXFIFO-ba kerül. Ha az adathossz (PERSONALIZATIONLENGTH) nem esik a 0-128 tartományba, egy „1” (katasztrofális hiba) hibakód kerül az RXFIFO-ba az állapotért.
3.3.8 DRBG Példányosítás megszüntetése
A DRBG nem példányos szolgáltatás szimulációs támogatása valójában nem hajtja végre a korábban példányosított DRBG eltávolításának nem példányos szolgáltatását, mint a szilícium. A szolgáltatáskérésnek tartalmaznia kell a parancsot és a DRBG-leírót is. A szolgáltatáskérés észlelése után a DRBG leíró tárolásra kerül. A szimuláció egy üzenetet jelenít meg, amely jelzi, hogy a DRBG példányosítási szolgáltatás inicializálása megtörtént. A szolgáltatás befejezése után a szolgáltatás parancsot, állapotot és DRBG-leírót tartalmazó válasz bekerül az RXFIFO-ba.
3.3.9 DRBG Reseed
A rendszerszolgáltatási blokk szimulatív jellege miatt a szimulációban szereplő DRBG újraolvasó szolgáltatás nem kerül végrehajtásra automatikusan minden 65535 DRBG generált szolgáltatás után. Az adatstruktúrát helyesen kell beírni a kívánt helyre, mielőtt a szolgáltatáskérést elküldené a COMM_BLK-nak. A szolgáltatáskérés észlelése után az MSS címterében lévő szerkezet és további bemeneti paraméterek beolvasásra kerülnek. Megjelenik egy üzenet, amely jelzi, hogy a DRBG újraolvasó szolgáltatás végrehajtása megkezdődött. Az adatstruktúrát helyesen kell beírni a kívánt helyre, mielőtt a szolgáltatáskérést elküldené a COMM_BLK-nak. A szolgáltatás befejezése után a válasz, amely tartalmazza a szolgáltatási parancsot, az állapotot és az adatszerkezetre mutató mutatót, az RXFIFO-ba kerül.
3.3.10 KeyTree
Az aktuális funkció nem kerül végrehajtásra a KeyTree szolgáltatás szimulációjában. A KeyTree szolgáltatás adatszerkezete egy 32 bájtos kulcsból, 7 bites optikai adatokból (MSB figyelmen kívül hagyva) és 16 bájtos elérési útból áll. Az adatstruktúrán belüli adatokat a megfelelő címükre kell írni, mielőtt a szolgáltatáskérést elküldené a COMM_BLK-nak. Amint a szolgáltatás elkezdődött, megjelenik egy üzenet, amely jelzi a KeyTree szolgáltatás végrehajtását. Az adatstruktúra tartalma beolvasásra kerül, a 32 bájtos kulcs tárolásra kerül, és az adatstruktúrában található eredeti kulcs felülírásra kerül. Az AHB-írás után a kulcs értéke az adatstruktúrán belül nem változhat, de az íráshoz AHB-tranzakciók történnek. A szolgáltatás befejezése után az RXFIFO-ba betöltődik a szolgáltatási válasz, amely a szolgáltatás parancsból, állapotból és a KeyTree adatstruktúra mutatójából áll.
3.3.11 Kihívásra adott válasz
A tényleges funkció, mint az eszköz hitelesítése, nem a kihívás-válasz szolgáltatás szimulációjában kerül végrehajtásra. A szolgáltatás adatszerkezete megköveteli a pufferre mutató mutatót, amely 32 bájtos eredményt, 7 bites optikai típust és 128 bites elérési utat kap. Az adatstruktúrán belüli adatokat a megfelelő címükre kell írni, mielőtt a szolgáltatáskérést elküldené a COMM_BLK-nak. Amint a szolgáltatás végrehajtása megkezdődött, megjelenik egy üzenet, amely jelzi a kihívás-válasz szolgáltatás végrehajtását. Egy általános 256 bites válasz kerül az adatstruktúrán belüli mutatóba. Az alapértelmezett kulcs hexadecimális „ABCD1234”-re van beállítva. Egyéni kulcs beszerzéséhez jelölje be a Paraméterbeállítást (lásd: 23. oldal). A szolgáltatás befejezése után az RXFIFO-ba betöltődik a szolgáltatási válasz, amely a szolgáltatás parancsból, állapotból és kihívás válasz adatstruktúra mutatójából áll.
3.4 Egyéb szolgáltatások
A következő szakaszok különféle egyéb rendszerszolgáltatásokat ismertetnek.
3.4.1 Digest Check
A kiválasztott komponensek kivonatainak újraszámításának és összehasonlításának tényleges funkciója nem kerül végrehajtásra a szimulációs kivonatellenőrzési szolgáltatás számára. Ez a szolgáltatáskérés szolgáltatásparancsokból és szolgáltatási beállításokból áll (5 bites LSB). Amint a szolgáltatás megkezdődött, megjelenik egy üzenet, amely részletezi a kivonatellenőrzési szolgáltatás végrehajtását, valamint a kérésből kiválasztott opciókat. A szolgáltatás befejezése után az RXFIFO betöltődik a szolgáltatási válasszal, amely a szervizparancsból és a kivonatellenőrzés sikeres/sikertelen jelzőiből áll.
3.4.2 Felismeretlen parancsválasz
Amikor egy ismeretlen szolgáltatási kérést küldenek a COMM_BLK-nak, a COMM_BLK automatikusan válaszol egy ismeretlen parancsüzenettel, amelyet az RXFIFO-ba küld. Az üzenet a COMM_BLK-ba küldött parancsból és a fel nem ismert parancsállapotból (252D) áll. Megjelenik egy kijelzőüzenet is, amely jelzi, hogy a rendszer egy fel nem ismert szolgáltatáskérést észlelt. A COMM_BLK visszatér tétlen állapotba, és vár a következő szolgáltatáskérés elfogadására.
3.4.3 Nem támogatott szolgáltatások
A COMM_BLK értékre beállított nem támogatott szolgáltatások egy szimulációs üzenetet indítanak el, amely jelzi, hogy a szolgáltatáskérés nem támogatott. A COMM_BLK visszatér tétlen állapotba, és vár a következő szolgáltatáskérés elfogadására. A PINTERRUPT nem lesz beállítva, ami azt jelzi, hogy a szolgáltatás befejeződött. A nem támogatott szolgáltatások jelenlegi listája a következőket tartalmazza: IAP, ISP, Device Certificate és a DESIGNVER szolgáltatás.
3.5 Rendszerszolgáltatások szimulációs támogatása File
A rendszerszolgáltatások szimulációjának támogatására egy szöveg file A „status.txt” segítségével a szimulációs modell szükséges viselkedésére vonatkozó utasításokat adhatunk át a szimulációs modellnek. Ez file ugyanabban a mappában kell lennie, ahonnan a szimuláció fut. A file felhasználható többek között bizonyos hibareakciók kikényszerítésére a támogatott rendszerszolgáltatásoknál, vagy akár néhány szimulációhoz szükséges paraméter beállítására is (pl.ample, sorozatszám). A "status.txt" fájlban támogatott sorok maximális száma file 256. A 256-os sor után megjelenő utasítások nem kerülnek felhasználásra a szimulációban.
3.5.1 Hibareakciók kényszerítése
A felhasználó a tesztelés során egy bizonyos hibareakciót kényszeríthet ki egy adott szolgáltatásra úgy, hogy az információt a „status.txt” fájl segítségével továbbítja a szimulációs modellnek. file, amelyet abba a mappába kell helyezni, amelyből a szimuláció fut. Annak érdekében, hogy egy bizonyos szolgáltatásra hibaválaszokat kényszerítsünk, a parancsot és a szükséges választ ugyanabba a sorba kell beírni, a következő formátumban:ample, hogy Command> ; utasítsa a szimulációs modellt, hogy generáljon MSS memória hozzáférési hiba választ a sorozatszám szolgáltatásra, a parancs a következő.
Szerviz: Sorozatszám: 01
Hibaüzenet kért: MSS memória hozzáférési hiba: 7F
A „status.txt” fájlba be kell írnia a 017F sort file.
3.5.2 Paraméterek beállítása
A "status.txt" file a szimulációhoz szükséges paraméterek beállítására is használható. Mint example, a felhasználói kód 32 bites paraméterének beállításához a sor formátumának a következő sorrendben kell lennie: <32 bites FELHASZNÁLÓKÓD>; ahol mindkét értéket hexadecimálisan kell megadni. A sorozatszám 128 bites paraméterének beállításához a sor formátumának a következő sorrendben kell lennie: <128 bites sorozatszám [127:0]> ; ahol mindkét értéket hexadecimálisan kell megadni. Az SHA 256 kulcs 256 bites paraméterének beállításához; a sor formátumának a következő sorrendben kell lennie: <256 bites kulcs [255:0]>; ahol mindkét értéket hexadecimálisan kell megadni. A kihívás válaszkulcsának 256 bites paraméterének beállításához a sor formátumának a következő sorrendben kell lennie: <256 bites kulcs [255:0]>;
ahol mindkét értéket hexadecimálisan kell megadni.
3.5.3 Eszköz prioritás
A rendszerszolgáltatások és a COMM_BLK magas prioritású rendszert használnak. Jelenleg az egyetlen magas prioritású szolgáltatás a nullázás. Egy magas prioritású szolgáltatás végrehajtásához, miközben egy másik szolgáltatás végrehajtása folyamatban van, az aktuális szolgáltatás leáll, és a magasabb prioritású szolgáltatás kerül végrehajtásra a helyén. A COMM_BLK elveti az aktuális szolgáltatást a magasabb prioritású szolgáltatás végrehajtása érdekében. Ha egy aktuális szolgáltatás befejezése előtt több nem magas prioritású szolgáltatást küldenek, ezek a szolgáltatások sorba kerülnek a TXFIFO-n belül. Amint az aktuális szolgáltatás befejeződött, a TXFIFO következő szolgáltatása végrehajtásra kerül.
A Microsemi nem vállal garanciát, képviseletet vagy garanciát az itt található információkra, illetve termékeinek és szolgáltatásainak bármilyen meghatározott célra való alkalmasságára vonatkozóan, és a Microsemi nem vállal semmilyen felelősséget a termék vagy áramkör alkalmazásából vagy használatából eredően. Az itt értékesített termékek és a Microsemi által értékesített bármely más termék korlátozott tesztelésen esett át, és nem használhatók kritikus fontosságú berendezésekkel vagy alkalmazásokkal együtt. Bármely teljesítményspecifikáció megbízhatónak tekinthető, de nem ellenőrzött, és a Vevőnek el kell végeznie a termékek minden teljesítmény- és egyéb vizsgálatát, egyedül és a végtermékekkel együtt, vagy beleszerelve. A Vevő nem hagyatkozhat a Microsemi által biztosított adatokra és teljesítményspecifikációkra vagy paraméterekre. A Vevő felelőssége bármely termék alkalmasságának független megállapítása, valamint annak tesztelése és ellenőrzése. A Microsemi által az alábbiakban közölt információk „ahogy vannak, hol vannak” és minden hibával együtt, és az ilyen információkkal kapcsolatos teljes kockázat teljes mértékben a Vevőt terheli. A Microsemi sem kifejezetten, sem hallgatólagosan nem biztosít szabadalmi jogokat, licenceket vagy egyéb szellemi tulajdonjogokat sem magára az információra, sem az információ által leírtakra vonatkozóan. Az ebben a dokumentumban közölt információk a Microsemi tulajdonát képezik, és a Microsemi fenntartja a jogot, hogy bármikor, előzetes értesítés nélkül módosítsa a jelen dokumentumban található információkat, vagy bármely terméket és szolgáltatást.
A Microsemi, a Microchip Technology Inc. (Nasdaq: MCHP) 100%-os tulajdonában lévő leányvállalata félvezető- és rendszermegoldások átfogó portfólióját kínálja a repülési és védelmi, kommunikációs, adatközponti és ipari piacok számára. A termékek közé tartoznak a nagy teljesítményű és sugárzásálló analóg vegyes jelű integrált áramkörök, FPGA-k, SoC-k és ASIC-k; energiagazdálkodási termékek; időzítő és szinkronizáló eszközök és precíz időmegoldások, amelyek a világ időmércéjét állítják fel; Hangfeldolgozó eszközök; RF megoldások; diszkrét alkatrészek; vállalati tárolási és kommunikációs megoldások; biztonsági technológiák és méretezhető anti-tamper termékek; Ethernet megoldások; Power-over-Ethernet IC-k és midspans; valamint egyedi tervezési képességek és szolgáltatások. A Microsemi központja a kaliforniai Aliso Viejoban található, és világszerte körülbelül 4,800 alkalmazottat foglalkoztat. További információ: www.microsemi.com.
Microsemi központja
One Enterprise, Aliso Viejo,
CA 92656 USA
Az USA-n belül: +1 800-713-4113
Az USA-n kívül: +1 949-380-6100
Eladás: +1 949-380-6136
Fax: +1 949-215-4996
E-mail: értékesítés.support@microsemi.com
www.microsemi.com
© 2018 Microsemi. Minden jog fenntartva. Microsemi és a Microsemi logó
a Microsemi Corporation védjegyei. Minden egyéb védjegy és szolgáltatás
a védjegyek a megfelelő tulajdonosok tulajdonát képezik.
Dokumentumok / Források
![]() |
Microsemi UG0837 IGLOO2 és SmartFusion2 FPGA rendszerszolgáltatások szimulációja [pdf] Felhasználói útmutató UG0837, UG0837 IGLOO2 és SmartFusion2 FPGA rendszerszolgáltatások szimulációja, IGLOO2 és SmartFusion2 FPGA rendszerszolgáltatások szimulációja, SmartFusion2 FPGA rendszerszolgáltatások szimulációja, FPGA rendszerszolgáltatások szimulációja, szolgáltatások szimulációja |