GOWIN logó

GOWIN FPGA Fejlesztőtábla RISCV programozás

GOWIN-FPGA-Development-Board-RISCV-Programming-product-image

Copyright © 2022 Guangdong Gowin Semiconductor Corporation. Minden jog fenntartva.
a Guangdong Gowin Semiconductor Corporation védjegye, és be van jegyezve Kínában, az Egyesült Államok Szabadalmi és Védjegyhivatalában és más országokban. Minden egyéb védjegyként vagy szolgáltatási védjegyként azonosított szó és logó a megfelelő tulajdonosok tulajdonát képezi. A GOWINSEMI előzetes írásos engedélye nélkül ennek a dokumentumnak egyetlen része sem reprodukálható vagy továbbítható semmilyen formában vagy jelöléssel, elektronikusan, mechanikusan, fénymásolással, felvétellel vagy más módon.

Jogi nyilatkozat
A GOWINSEMI nem vállal felelősséget és nem vállal garanciát (sem kifejezett, sem hallgatólagos), és nem vállal felelősséget az Ön hardverében, szoftverében, adataiban vagy tulajdonában az anyagok vagy a szellemi tulajdon használatából eredő károkért, kivéve a GOWINSEMI Általános Szerződési Feltételeiben leírtakat. az eladó. Ebben a dokumentumban minden információt előzetesnek kell tekinteni. A GOWINSEMI előzetes értesítés nélkül bármikor módosíthatja ezt a dokumentumot. Bárki, aki erre a dokumentációra támaszkodik, lépjen kapcsolatba a GOWINSEMI-vel az aktuális dokumentációért és hibákért.

Revíziótörténet

Dátum Változat Leírás
04/29/2019 1.0E Az eredeti verzió megjelent.
 

11/11/2022

 

1.1E

  • Az AndeSight RDS v311 szoftver frissítve.
  • Referenciaterv frissítve.
  • Frissült a beágyazott projekt-összeállítási eredmények SPI Flash segítségével történő letöltésének leírása.

Bevezetés

AE250 Bevezetés

Az AE250 egy 32 bites RISC-V MCU rendszer; felépítését az 1-1. ábra mutatja.

GOWIN-FPGA-Development-Board-RISCV-Programozás-1

1-1 ábra AE250 szerkezeti diagram

A Gowin FPGA fejlesztői kártyán alapuló RISC-V AE250 MCU fejlesztő és hibakereső rendszer az 1-2. ábrán látható.

GOWIN-FPGA-Development-Board-RISCV-Programozás-2

1-2. ábra Fejlesztési és hibakeresési rendszerszerkezeti diagram

A fejlesztői kártyán lévő FPGA chip AE250 MCU-ként van konfigurálva a Gowin Programmer segítségével PC-n, a Debug Cable csatlakoztatása után az AndeSight RDS v311 szoftverrel végezheti el a beágyazott programfejlesztést és hibakeresést.

Előkészületek

Mielőtt a Gowin FPGA-t és az AE250-et fejlesztésre és hibakeresésre használná, a következő eszközöket kell előkészíteni:

  1. Gowin GW2A sorozatú FPGA fejlesztőkártya.
  2. Gowin szoftver telepítőcsomag az FPGA chip konfigurálásához és letöltéséhez.
  3. AndeSight RDS v311 telepítőcsomag a beágyazott program fejlesztéséhez és hibakereséséhez.
  4. A Debug Cable a beágyazott program letöltésére és hibakeresésére szolgál, és az alapértelmezett az AICE-MINI+; a felhasználóknak maguknak kell megvásárolniuk.

Jegyzet! 

  1. Ha információkat kell kiadnia az UART-on keresztül, akkor UART-USB kábelre van szükség.
  2. Más perifériákra van szükség.
Fejlesztési és hibakeresési lépések

A GW250A-2C fejlesztői kártyán alapuló RISC-V AE55 MCU fejlesztésének és hibakeresésének alapvető lépései a következők:

  1. Szoftverek telepítése: A Gowin szoftver az AE250 RTL tervezésének konfigurálására és generálására, valamint a Bitstream generálására szolgál file a tervezésről; Az AndeSight RDS v311 szoftver a beágyazott programok fejlesztésére és hibakeresésére szolgál; más szoftverek és meghajtók is szükségesek a hibakereséshez.
  2. Konfigurálja a fejlesztőkártya tápellátását és letöltési kábelét. A Bitstream file Az AE250_chip fájl letöltése a fejlesztői kártya FPGA chipjére a Gowin Programmer segítségével, és az AE250 fut a fejlesztői kártyán.
  3. Nyissa meg az RDS szoftvert új beágyazott projekt létrehozásához vagy egy meglévő projekt megnyitásához kódoláshoz, fordításhoz és egyéb műveletekhez. Csatlakoztassa az AE250 hibakereséshez használt hibakereső kábelt, töltse le a projekt fordítási eredményét az AE250 utasítás memóriájába (ILM), és kezdje el a hibakeresést a chipen.
  4. A hibakeresés során UART-USB kábellel csatlakoztathatja az AE250 UART interfészét a PC-hez, az RDS beépített soros csatlakozóját pedig a bemeneti és kimeneti műveletek működtetéséhez használhatja. A GPIO segítségével LED-jelzőkhöz, billentyűkhöz vagy külső érintkezőkhöz csatlakozhat bemeneti/kimeneti műveletekhez; I2C, SPI, Ethernet és egyéb perifériák is kiválaszthatók a használatra.
  5. Az AE250 SPI-n keresztül tud csatlakozni egy Flash-hez, letöltheti a beágyazott program összeállítási eredményét Flash-re a Gowin Programmer segítségével; amikor a chip be van kapcsolva, az AE250 automatikusan beolvassa az SPI Flash beágyazott programot, és elindul. Újra felhasználhatja az FPGA bitfolyamot mentő Flasht; egyesek elmenthetik az FPGA bitfolyamot, mások pedig a beágyazott programok fordítási eredményeit. Ez egy praktikus és gazdaságos módszer.
    Lásd a 2. Kábelcsatlakozási utasítások hibakeresési fejezetet
    3 Használja az RDS-re vonatkozó utasításokat, és a 4. fejezetben a Referenciatervezés című részt a részletes lépésekért.

Hibakeresési kábelcsatlakozási útmutató

Az RDS + AE250 alapértelmezés szerint AICE-MINI+ hibakereső kábelt használ; a külső a 2-1. ábrán bal oldalon, a csapok pedig a 2-1. ábrán jobb oldalon láthatók. Ez egy 12 tűs interfész. Megjegyzendő, hogy az ábrán az 1. tű üres. A kábel megfelelő csatlakoztatása és az RDS kinyitása után az ábrán sárga dobozzal jelölt piros LED-lámpa kialszik.
2-1. ábra AICE-MINI+ hibakereső kábel és tűi

GOWIN-FPGA-Development-Board-RISCV-Programozás-3

Az AICE-MINI+ hibakereső kábel tűdefiníciója a 2-1. táblázatban látható. Meg kell jegyezni, hogy az 1. érintkezőt úgy definiáljuk, mint nincs kapcsolat (NC), ami megfelel az üresnek. A VREF-nek egy 3.3 V-os tápcsatlakozót kell csatlakoztatnia, a GND-nek pedig csak a 3-as vagy az 5-ös érintkezőt.

2-1. táblázat: AICE-MINI+ hibakereső kábel tű meghatározása

Pin szám AICE-MINI+ hibakereső kábel tű
1 NC
2 TSRST_N
3 GND
4 TTMS
5 GND
6 TCK
7 VREF
8 NC
9 NC
10 TTRST_N
11 TTDO
12 TTDI

Használati útmutató az RDS-hez

RDS telepítés

Csomagolja ki a telepítőcsomagot, és írja be a Windows/Disk1 parancsot; A telepítéshez kattintson duplán a setup.exe fájlra. A telepítés során nincs szükség speciális beállításokra. A telepítés során egy párbeszédpanel jelenik meg, amely megkérdezi, hogy telepíteni kell-e az illesztőprogramot. Kérjük, válassza az Igen lehetőséget. A telepítés lépéseit lásd
AndeSight_RDS_v3.2_Installation_Guide_UM207_V1.0.pdf, amely a telepítőcsomagban található.

  1.  A telepítési útvonal és a munkaterület elérési útjának beállításakor ne használjon kínai karaktereket vagy szóközt, különben futásidejű hibaüzenetet kap.
  2. Az RDS jelenlegi verziója alapértelmezés szerint támogatja az AICE-MINI+ kábelt.
  3. Előfordulhat, hogy a GOWIN Programmer nem tud csatlakozni a fejlesztői kártyához az RDS telepítése után, ami a Gowin Programmer illesztőprogram újratelepítésével javítható.
  4. A sorozatszámhoz és a tanúsítványhoz files, kérjük, forduljon a Gowin Semiconductor Corp.-hoz.
Hozzon létre egy új projektet

Kattintson File > Új > Projekt > Andes C projekt > Tovább az RDS interfészen, hogy belépjen a New C Project konfigurációs felületére, amint az a 3-1. ábrán látható.

3-1. ábra Új projekt létrehozása

GOWIN-FPGA-Development-Board-RISCV-Programozás-4

Az új C projekthez a következő paramétereket kell konfigurálni:

  1. Projekt neve
  2. Hely: Az alapértelmezett hely az aktuális munkaterület.
  3. A Connection Configuration beállítása ICE, ami azt jelzi, hogy a fejlesztői kártya ICE hibakereső kábellel csatlakozik. Ha az emulátort tesztplatformként használja, válassza ki az SID-t.
  4. Chip Pro számárafile, válassza ki az ADP-AE250-N25-GOWIN-t, amely a Gowin FPGA szerint van optimalizálva.
  5. A projekttípus egy üres projektet és egy Hello World ANSI C projektet tartalmaz.
  6. A Toolchains esetében az nds32le-elf-mculib-v5m az alapértelmezett.
    Új projekt létrehozása után kattintson a jobb gombbal a projekt nevére a Projektböngészőben, a legördülő menüből válassza a Build Project menüpontot, vagy kattintson a „ ” gombra az eszköztáron a projekt összeállításához és összekapcsolásához; válassza a Projekt tisztítása lehetőséget a legördülő menüből, hogy a projekt tiszta legyen.
Projekt importálása és exportálása

Kattintson a jobb gombbal a Project Explorer területére az „Importálás” vagy „Exportálás” kiválasztásához, ahogy a 3-2. ábra mutatja.

GOWIN-FPGA-Development-Board-RISCV-Programozás-5

3-2. ábra Projekt importálása/exportálása

Kattintson az „Importálás > Általános > Meglévő projekt munkaterületre” elemre a projekt importálásához, és a felület a 3-3. ábrán látható. A „Select root directory” (gyökérkönyvtár kiválasztása) kiválasztásakor importálja a projektet a mappába; amikor az „Archív fájl kiválasztása” lehetőséget választja, importálja a projektet zip-ben.

GOWIN-FPGA-Development-Board-RISCV-Programozás-6

3-3. ábra Projekt importálása

Válassza az „Exportálás… > Archívum” lehetőséget File” az exportprojekt felület megnyitásához, ahogy a 3-4. ábra mutatja. Az exportálandó projekt, a tömörítési formátum, a mentési útvonal stb. kiválasztása után befejezheti az exportálást.GOWIN-FPGA-Development-Board-RISCV-Programozás-7

3-4. ábra Projekt exportálása

Töltse le a programokat a Flash-re

Az AE250 támogatja a Flash-ről indulást, majd SPI interfészen keresztül beolvassa a beágyazott programot a Flash-ről és eltárolja az ILM-ben, majd a beágyazott program lefut. Az ajánlott módszer az SPI Flash újrafelhasználása, amely menti az FPGA bitfolyamot; használja a Flash első felét az FPGA bitfolyam mentésére, a maradékot pedig a bináris mentésére files beágyazott programok.

  1. Nyissa meg az IP maggenerátort a Gowin Software alkalmazásban, és hívja meg az AE250 RTL paramétereit. Kattintson duplán az SMU-ra az SMU felület megnyitásához, és állítsa be a „System Reset Vector Default” értéket 0x80400000 értékre, a 3-5. ábrán látható módon. Állítsa be az SPI Flash 0~0x400000 területét összesen 4M bájttal a Bitstream mentési címeként; 0x400000-től kezdődően a bináris mentési címeként használatos files beágyazott programok.
    3-5. ábra: Rendszer visszaállítása vektor alapértéke
    GOWIN-FPGA-Development-Board-RISCV-Programozás-8
  2. Kattintson duplán az SPI1 elemre az SPI1 interfész megnyitásához, jelölje be az „SPI1 Support” pontot, és állítsa az „SPI1 Memory Map Space Base Address” elemet 0x80400000 értékre, a 3. ábra szerint 6.
    3-6. ábra SPI1 konfiguráció
    GOWIN-FPGA-Development-Board-RISCV-Programozás-9
  3. Az RTL tervezés fizikai korlátai között az SPI1 interfészt az SPI Flash-hez, az SPI1 interfészt pedig fizikailag korlátozni kell az alábbi táblázat szerint. Különböző FPGA chipek esetén az MSPI interfész elhelyezkedése is eltérő, és a megszorításnak az adott helyzetnek kell lennie.
    3-1. táblázat: SPI1 interfész fizikai korlátai
    AE250 SPI1 interfész FPGA MSPI interfész
    CSN MCSN
    CLK MCLK
    MISO MSO
    MOSI MSI
  4. Használja újra az MSPI interfészt normál IO-ként. A Gowin Software „Feldolgozás” ablakában kattintson a jobb gombbal a „Place & Route” elemre, majd a felugró menüben válassza a „Konfiguráció” lehetőséget; válassza a „Kettős célú PIN” fület, és jelölje be a „Használja az MSPI-t normál IO-ként”, majd kattintson az „OK” gombra az elhelyezés és az útválasztás befejezéséhez.
    3-7. ábra Állítsa be az MSPI interfészt Normál IO-ra
    GOWIN-FPGA-Development-Board-RISCV-Programozás-10
  5. Módosítsa a beágyazott program paramétereinek beállításait. Először módosítsa a bootloader paramétereit a linker szkriptben. Mivel a linker szkriptet az AE250 beágyazott programban az SAG automatikusan generálja file, módosítani kell a SAG-ban file. Nyissa meg az ae250.sag-ot, keresse meg a BOOTLOADER-t, és módosítsa a System Reset Vector Default értékre az RTL-ben, a 3-8. ábra szerint. Ezután módosítsa a config.h-t. Nyissa meg az src/bsp/config/config.h fájlt, és keresse meg a makródefiníciót
    „BUILD_MODE”, és módosítsa „BUILD_BURN”-ra.
    3-8. ábra ae250.sag bootloader Paraméterek beállítása
    GOWIN-FPGA-Development-Board-RISCV-Programozás-11

Jegyzet!

    • A paraméternek összhangban kell lennie az RTL paraméter System Reset Vector Default értékével.
    • Módosítsa a fordítási beállításokat; kattintson a jobb gombbal a beágyazott projekt nevére, válassza a Build Settings menüpontot; válassza az „Objcopy > General” fület, és törölje a „Letiltás” jelölését. (Ne generáljon automatikusan kimenetet file.)

Fordítsa újra a beágyazott programot a bináris létrehozásához files a beágyazott projektből, és töltse le a files SPI Flash 0x400000 címre a Gowin Programmer külső Flash C Bin mód használatával.
Szintetizálja és helyezze el és irányítsa újra a módosított RTL-tervet, majd töltse le SPI Flash 0x000000 címre a Gowin Programmer külső Flash mód használatával.

Hibakeresés a chipen

A fordítás után a beágyazott projekt fordítási eredményei letölthetők a fejlesztői táblára a chipen történő hibakereséshez.
Config.h módosítása; nyissa meg az src/bsp/config/config.h fájlt, és keresse meg a BUILD_MODE makródefiníciót; módosítsa a BUILD_LOAD értékre, és fordítsa újra a beágyazott programot.
Kattintson a jobb gombbal a projekt nevére a Project Explorerben, és a legördülő menüből válassza a „Hibakeresés másként > MCU program” lehetőséget. Első alkalommal egy párbeszédpanel jelenik meg a „Debug Configuration” beállításához, ahogy a 3-9. ábra mutatja.

GOWIN-FPGA-Development-Board-RISCV-Programozás-14

3-9. ábra Hibakeresési konfigurációk

Az „Indítás” lapon jelölje be a „Reset and Hold” opciót a program leállításához az első utasítás végrehajtása előtt. A beágyazott projekt fordítási eredményeinek letöltéséhez az ILM-be a chipen belüli hibakeresés előtt adja meg a betöltés értéket a paramétermezőben.
A „Futtatási beállítások” részben jelölje be a „Set breakpoint at” pontot. Írjon be egy címkét, például a fő címkét a beviteli mezőbe. Beállíthat egy töréspontot a fő funkció elején. Jelölje be a „Resume”-t, és a chipen belüli hibakeresés belépése után azonnal megkezdi a folyamatos működést.
Az on-chip debug megadásakor automatikusan a hibakeresésre megy view és egy terület jelenik meg a 3-10. ábrán látható módon. Ez a terület a chipen belüli hibakeresés műveleti területe. Néhány hibakeresési gyorsbillentyű a piros mezőben látható. Balról jobbra a DEBUG újraindítását, a futás folytatását, felfüggesztését, befejezését, leválasztását, egy folyamathoz való kapcsolódást, belépést, átlépést, lépésvisszalépést és utasításléptetési módot jelentenek; ebben a módban minden alkalommal, amikor lefuttat egy risc – v összeállítási utasítást, egyébként minden alkalommal, amikor lefuttat egy C utasítást.

Jegyzet!
A szürke ikonok azt jelentik, hogy jelenleg nem érhetők el.
Kattintson duplán a bal oldalra a kódszöveg sorszámán a töréspontok gyors beállításához vagy a töréspontok törléséhez, majd kattintson a jobb gombbal a kódszövegre a „futtatás a sorra” lehetőség kiválasztásához a felugró menüből.GOWIN-FPGA-Development-Board-RISCV-Programozás-13

3-10. ábra A hibakereső gombok bemutatása

A 3-11. ábra egy összeállítási utasítások ablaka, amely az ILM-ben valós időben futó összeállítási utasítások tartalmát jeleníti meg.

GOWIN-FPGA-Development-Board-RISCV-Programozás-14

3-11. ábra Összeszerelési útmutató kód ablak

RDS beépített soros terminál használata

A 3-12. ábra az RDS interfészbe épített UART terminált mutatja. Ha használnia kell, kattintson az „Ablak > Megjelenítés” elemre View > Terminál” a felső menüben a „Terminál” ablak megnyitásához, majd kattintson a „terminál megnyitása” lehetőségre új soros terminál létrehozásához. A portszám beállítása után (ami lehet viewed a hardverkezelőben), az adatátviteli sebességet és egyéb paramétereket, kattintson az „OK” gombra a használat megkezdéséhez.

GOWIN-FPGA-Development-Board-RISCV-Programozás-15

3-12. ábra RDS beépített soros terminál

A részleteket lásd a dokumentumban
AndeSight_RDS_v3.1_User_Manual_UM170_V1.0.pdf, amely a telepítési könyvtár doc elérési útjában található.

Referencia tervezés

Projekt kód

A kulcs files az AE250 beágyazott projektsablonban a következők:

  1. src/bsp/ae250/ae250.h: Ez file tartalmazza a rendszeróra-definíciót, a perifériaregiszter-definíciót, a perifériaregiszter-címleképezés-definíciót és a megszakítások forrásszám-definícióját. Az óra definíciójának összhangban kell lennie az AE250 paraméterkonfigurációjával.
  2. src/bsp/ae250/ae250.c: A reset_handler függvény a beágyazott program elindításához szükséges bejegyzés. A bejegyzésben az UART inicializálást a fő funkció végrehajtása előtt hajtják végre. A szükséges UART portot kiválasztja, és a szükséges adatátviteli sebességet az AE250 paraméterkonfigurációja szerint konfigurálja.
  3. src/bsp/ae250/interrupt.c: Ez file az AE250 megszakításkezelő funkcióinak meghatározása
  4. src/bsp/config/config.h: Ez file tartalmazza a makródefiníciót, amely a fordítási módszert vezérli. #define BUILD_MODE definiálható BUILD_LOAD vagy BUILD_BURN. A BUILD_LOAD azt jelenti, hogy a program közvetlenül az ILM-be van betöltve, és általában hibakereséskor használatos. A BUILD_BURN azt jelenti, hogy a program letöltődik az SPI Flash-re, és a program bekapcsolás után először beolvasásra kerül az SPI Flash-ről az ILM-re, majd fut, ami a verziószámú programra vonatkozik.
  5. Start.S: Az indító file assembly nyelven írva.
  6. src/bsp/loader.c: rendszerbetöltő file, amely az SPI Flash-ről indul.
  7. ae250.sag: A Sag a szétszórt és gyűjtő formátumú szkript. Linker szkript létrehozására szolgál. Meg kell jegyezni, hogy az ae250.sag memóriatérkép paramétereinek összhangban kell lenniük az AE250 paramétereivel.
  8. src/bsp/driver: Ez a könyvtár két mappát tartalmaz, az ae250 az AE250 illesztőprogram kódja, benne az illesztőprogram-funkciók hívási felülete.
  9. src/bsp/lib: Kettőt tartalmaz files. A printf.c-ben a C szabványkönyvtár alfüggvényének formája újra van definiálva, hogy a printf információkat az UART-on keresztül adja ki. A read.c-ben van egy egyszerű funkció a bemeneti információk UART-on keresztüli olvasására.
Referencia tervezés

A telepítés után több alapvető referenciaterv megtalálható a telepítési könyvtár demó mappájában vagy a referenciaterv zip-ben a webwebhely; a referencia terv betölthető az RDS-be próba, hibakeresés és újrafejlesztés céljából importálás útján. A referenciatervek a következők:

  1. ae250_demo: Az AE250 UART be-/kimenetét és GPIO kimenetét mutatja be.
  2. ae250_plic: Bemutatja a megszakításvezérlő válaszát a megszakításokra, és bemutatja a gépi időzítőt és a pit időzítőt.
  3. ae250_freertos: Azt mutatja, hogy az AE250 portok beágyazva
    valós idejű operációs rendszer FreeRTOS többszálú futó program.
  4. ae250_ucosiii: Azt mutatja, hogy az AE250 portok beágyazott valós idejű operációs rendszer uC/OS-III többszálú futó programját tartalmazzák.

Dokumentumok / Források

GOWIN FPGA Fejlesztőtábla RISCV programozás [pdf] Felhasználói útmutató
FPGA fejlesztő tábla RISCV programozás, kártya RISCV programozás, FPGA fejlesztés RISCV programozás, RISCV programozás, kártya RISCV

Hivatkozások

Hagyj megjegyzést

E-mail címét nem tesszük közzé. A kötelező mezők meg vannak jelölve *