Logo GOWIN

GOWIN FPGA Development Board RISCV Programování

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

Copyright © 2022 Guangdong Gowin Semiconductor Corporation. Všechna práva vyhrazena.
je ochranná známka společnosti Guangdong Gowin Semiconductor Corporation a je registrována v Číně, na americkém úřadu pro patenty a ochranné známky a v dalších zemích. Všechna ostatní slova a loga označená jako ochranné známky nebo servisní známky jsou majetkem příslušných vlastníků. Bez předchozího písemného souhlasu GOWINSEMI nesmí být žádná část tohoto dokumentu reprodukována nebo přenášena v jakékoli formě nebo jakýmkoli způsobem, elektronicky, mechanicky, kopírováním, nahráváním nebo jinak.

Zřeknutí se odpovědnosti
GOWINSEMI nepřebírá žádnou odpovědnost a neposkytuje žádnou záruku (ať už vyjádřenou nebo předpokládanou) a není odpovědná za žádné škody vzniklé na vašem hardwaru, softwaru, datech nebo majetku v důsledku použití materiálů nebo duševního vlastnictví, s výjimkou případů uvedených v podmínkách GOWINSEMI. prodeje. Všechny informace v tomto dokumentu by měly být považovány za předběžné. GOWINSEMI může provádět změny v tomto dokumentu kdykoli bez předchozího upozornění. Každý, kdo spoléhá na tuto dokumentaci, by měl kontaktovat GOWINSEMI pro aktuální dokumentaci a chyby.

Historie revizí

Datum Verze Popis
04. 29. 2019 1.0E Původní verze zveřejněna.
 

11. 11. 2022

 

1.1E

  • Aktualizován software AndeSight RDS v311.
  • Referenční design aktualizován.
  • Byl aktualizován popis stahování výsledků kompilace vložených projektů prostřednictvím SPI Flash.

Zavedení

AE250 Úvod

AE250 je 32bitový RISC-V MCU systém; jeho struktura je znázorněna na obrázku 1-1.

GOWIN-FPGA-Development-Board-RISCV-Programming-1

Obrázek 1-1 Schéma struktury AE250

Vývojový a ladicí systém RISC-V AE250 MCU založený na vývojové desce Gowin FPGA je znázorněn na obrázku 1-2.

GOWIN-FPGA-Development-Board-RISCV-Programming-2

Obrázek 1-2 Schéma struktury systému vývoje a ladění

FPGA čip na vývojové desce je nakonfigurován jako AE250 MCU pomocí Gowin Programmer v PC, po připojení Debug Cable můžete provádět vývoj vestavěného programu a ladění pomocí softwaru AndeSight RDS v311.

Přípravky

Před použitím Gowin FPGA a AE250 pro vývoj a ladění je třeba připravit následující nástroje:

  1. Vývojová deska FPGA řady Gowin GW2A.
  2. Gowin Software instalační balíček pro konfiguraci a stahování FPGA čipu.
  3. AndeSight RDS v311 instalační balíček pro vývoj a ladění vestavěného programu.
  4. Debug Cable se používá pro stahování a ladění vestavěného programu a výchozí je AICE-MINI+; uživatelé si jej musí zakoupit sami.

Poznámka! 

  1. Pokud potřebuje vysílat informace přes UART, je potřeba kabel UART do USB.
  2. Jsou vyžadována další periferní zařízení, která mají být použita.
Kroky vývoje a ladění

Základní kroky pro vývoj a ladění RISC-V AE250 MCU založené na vývojové desce GW2A-55C jsou následující:

  1. Instalace softwaru: Software Gowin se používá ke konfiguraci a generování návrhu AE250 RTL a generování Bitstreamu file návrhu; Software AndeSight RDS v311 se používá k vývoji a ladění vestavěných programů; jsou také vyžadovány další software a ovladače pro ladění.
  2. Nakonfigurujte napájecí zdroj a kabel pro stahování vývojové desky. Bitstream file AE250_chip je stažen do FPGA čipu na vývojové desce pomocí Gowin Programmer a AE250 běží na vývojové desce.
  3. Otevřete software RDS a vytvořte nový vložený projekt nebo otevřete existující projekt pro kódování, kompilaci a další operace. Připojte ladicí kabel používaný pro ladění AE250, stáhněte si výsledek kompilace projektu do paměti instrukcí (ILM) v AE250 a začněte ladit na čipu.
  4. Během ladění můžete použít UART na USB kabel pro připojení UART rozhraní AE250 k PC, použít vestavěný sériový terminál v RDS k ovládání vstupních a výstupních operací. GPIO můžete použít pro připojení k LED indikátorům, tlačítkům nebo externím pinům pro vstupní/výstupní operace; K použití lze také vybrat I2C, SPI, Ethernet a další periferie.
  5. AE250 se může připojit k Flash přes SPI, stáhnout výsledek kompilace embedded programu do Flash pomocí Gowin Programmer; když je čip zapnutý, AE250 automaticky načte vestavěný program v SPI Flash a spustí se. Flash, který ukládá bitový tok FPGA, můžete znovu použít; některé mohou uložit bitový tok FPGA a jiné mohou uložit výsledky kompilace vestavěných programů. Jedná se o praktickou a ekonomickou metodu.
    Můžete se podívat na kapitolu 2 Pokyny pro ladění kabelového připojení, kapitola
    3 Použijte Pokyny pro RDS a kapitolu 4 Referenční návrh pro podrobné kroky.

Pokyny pro ladění připojení kabelu

RDS + AE250 standardně používá ladicí kabel AICE-MINI+; vnějšek je znázorněn vlevo na obrázku 2-1 a kolíky vpravo na obrázku 2-1. Jedná se o 12pinové rozhraní. Je třeba poznamenat, že kolík 1 je na obrázku prázdný. Po správném připojení kabelu a otevření RDS červená LED dioda označená na obrázku žlutým rámečkem zhasne.
Obrázek 2-1 Ladicí kabel AICE-MINI+ a jeho kolíky

GOWIN-FPGA-Development-Board-RISCV-Programming-3

Definice pinů ladicího kabelu AICE-MINI+ je uvedena v tabulce 2-1. Je třeba poznamenat, že Pin 1 je definován jako No Connection (NC), což odpovídá prázdnému. VREF potřebuje připojit 3.3V napájecí kolík a GND potřebuje připojit pouze kolík 3 nebo kolík 5.

Tabulka 2-1 Definice kolíků ladicího kabelu AICE-MINI+

Číslo PIN Pin kabelu pro ladění AICE-MINI+
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

Použijte Pokyny pro RDS

Instalace RDS

Rozbalte instalační balíček a zadejte Windows/Disk1; dvakrát klikněte na soubor setup.exe a nainstalujte jej. Během instalace nejsou nutná žádná speciální nastavení. Během instalace se zobrazí dialogové okno s dotazem, zda nainstalovat ovladač, vyberte prosím ano. Postup instalace viz
AndeSight_RDS_v3.2_Installation_Guide_UM207_V1.0.pdf, který naleznete v instalačním balíčku.

  1.  Při nastavování instalační cesty a cesty pracovního prostoru nezahrnujte čínské znaky ani mezeru, jinak dojde k chybě běhu.
  2. Aktuální verze RDS ve výchozím nastavení podporuje kabel AICE-MINI+.
  3. GOWIN Programmer nemusí být schopen se připojit k vývojové desce po instalaci RDS, což lze opravit přeinstalací ovladače Gowin Programmer.
  4. Pro sériové číslo a certifikát files, kontaktujte prosím Gowin Semiconductor Corp.
Vytvořit nový projekt

Klikněte File > Nový > Projekt > Projekt Andes C > Další na rozhraní RDS pro vstup do konfiguračního rozhraní nového projektu C, jak je znázorněno na obrázku 3-1.

Obrázek 3-1 Vytvoření nového projektu

GOWIN-FPGA-Development-Board-RISCV-Programming-4

Pro nový projekt C je třeba nakonfigurovat následující parametry:

  1. Název projektu
  2. Umístění: Výchozí umístění je aktuální pracovní prostor.
  3. Konfigurace připojení je nastavena na ICE, což znamená, že vývojová deska je připojena pomocí ladicího kabelu ICE. Pokud je emulátor používán jako testovací platforma, vyberte SID.
  4. Pro Chip Profile, vyberte ADP-AE250-N25-GOWIN, který je optimalizován podle Gowin FPGA.
  5. Typ projektu zahrnuje prázdný projekt a projekt Hello World ANSI C.
  6. Pro Toolchainy je výchozí nastavení nds32le-elf-mculib-v5m.
    Po vytvoření nového projektu klikněte pravým tlačítkem na název projektu v Průzkumníku projektu, vyberte Build Project z rozbalovací nabídky nebo klikněte na ” ” na nástrojové liště pro kompilaci a propojení projektu; vyberte Clean Project z rozbalovací nabídky, aby byl projekt čistý.
Import a export projektu

Klikněte pravým tlačítkem na prostor Project Explorer a vyberte „Import“ nebo „Export“, jak je znázorněno na obrázku 3-2.

GOWIN-FPGA-Development-Board-RISCV-Programming-5

Obrázek 3-2 Import/Export projektu

Klikněte na „Importovat > Obecné > Existující projekt do pracovního prostoru“ pro import projektu a rozhraní je znázorněno na obrázku 3-3. Při výběru „Vybrat kořenový adresář“ importujte projekt do složky; při výběru „Vybrat archivní soubor“ importujte projekt ve formátu zip.

GOWIN-FPGA-Development-Board-RISCV-Programming-6

Obrázek 3-3 Import projektu

Vyberte „Export… > Archivovat File” pro otevření rozhraní exportního projektu, jak je znázorněno na obrázku 3-4. Po výběru projektu k exportu, kompresního formátu, cesty uložení atd. můžete export dokončit.GOWIN-FPGA-Development-Board-RISCV-Programming-7

Obrázek 3-4 Export projektu

Stáhněte si programy do Flash

AE250 podporuje spuštění z Flash, poté načte vestavěný program z Flash přes rozhraní SPI a uloží jej do ILM a poté se vložený program spustí. Doporučená metoda je znovu použít SPI Flash, který šetří FPGA Bitstream; použijte první polovinu Flash k uložení bitového toku FPGA a zbývající k uložení binárního souboru files vestavěných programů.

  1. Otevřete generátor jádra IP v Gowin Software a vyvolejte parametry AE250 RTL. Poklepáním na SMU otevřete rozhraní SMU a nastavte „System Reset Vector Default“ na 0x80400000, jak je znázorněno na obrázku 3-5. Nastavte prostor SPI Flash 0~0x400000 s celkovým počtem 4M bajtů jako adresu uložení Bitstreamu; počínaje 0x400000 se používá jako adresa uložení binárního souboru files vestavěných programů.
    Obrázek 3-5 System Reset Vector Default
    GOWIN-FPGA-Development-Board-RISCV-Programming-8
  2. Poklepáním na SPI1 otevřete rozhraní SPI1, zaškrtněte „SPI1 Support“ a nastavte „SPI1 Memory Map Space Base Address“ na 0x80400000, jak je znázorněno na obrázku 3 6.
    Obrázek 3-6 Konfigurace SPI1
    GOWIN-FPGA-Development-Board-RISCV-Programming-9
  3. Ve fyzických omezeních návrhu RTL by mělo být rozhraní SPI1 připojeno k SPI Flash a rozhraní SPI1 by mělo být fyzicky omezeno podle následující tabulky. U různých čipů FPGA je umístění rozhraní MSPI také odlišné a omezení by mělo být specifické pro konkrétní situaci.
    Tabulka 3-1 Fyzická omezení rozhraní SPI1
    Rozhraní AE250 SPI1 Rozhraní FPGA MSPI
    ČSN MCSN
    CLK MCLK
    MISO MSO
    LELKOVAT MSI
  4. Znovu použijte rozhraní MSPI jako běžné IO. V okně „Proces“ softwaru Gowin klikněte pravým tlačítkem myši na „Place & Route“, v místní nabídce vyberte „Configuration“; vyberte záložku „Dual Purpose Pin“ a zaškrtněte „Use MSPI as regular IO“ a kliknutím na „OK“ dokončete umístění a směrování.
    Obrázek 3-7 Nastavte rozhraní MSPI na Regular IO
    GOWIN-FPGA-Development-Board-RISCV-Programming-10
  5. Upravte nastavení parametrů vestavěného programu. Nejprve upravte parametry bootloaderu ve skriptu linkeru. Protože skript linkeru ve vestavěném programu AE250 je automaticky generován SAG file, měl by být upraven v SAG file. Otevřete ae250.sag, najděte BOOTLOADER a upravte jej na hodnotu System Reset Vector Default v RTL designu, jak je znázorněno na obrázku 3-8. Poté upravte config.h. Otevřete src/bsp/config/config.h a najděte definici makra
    „BUILD_MODE“ a upravte jej na „BUILD_BURN“.
    Obrázek 3-8 Nastavení parametrů bootloaderu ae250.sag
    GOWIN-FPGA-Development-Board-RISCV-Programming-11

Poznámka!

    • Parametr by měl být konzistentní s hodnotou System Reset Vector Default parametru RTL.
    • Upravte nastavení kompilace; klepněte pravým tlačítkem na název vloženého projektu, vyberte Nastavení sestavení; vyberte kartu „Objcopy > General“ a zrušte zaškrtnutí políčka „Disable“. (Nevytvářejte výstup automaticky file.)

Znovu zkompilujte vestavěný program a vygenerujte binární soubor files vloženého projektu a stáhněte si soubor files na adresu SPI Flash 0x400000 pomocí externího režimu Flash C Bin programátoru Gowin.
Znovu syntetizujte a umístěte a nasměrujte upravený návrh RTL a stáhněte jej na adresu SPI Flash 0x000000 pomocí externího režimu Flash programátoru Gowin.

Ladění na čipu

Po kompilaci lze výsledky kompilace vloženého projektu stáhnout na vývojovou desku pro ladění na čipu.
Upravit config.h; otevřete src/bsp/config/config.h a najděte definici makra BUILD_MODE; upravte jej na BUILD_LOAD a znovu zkompilujte vložený program.
Klepněte pravým tlačítkem myši na název projektu v Průzkumníku projektu a z rozbalovací nabídky vyberte „Ladit jako > Program MCU“. Poprvé se objeví dialogové okno pro nastavení „Debug Configuration“, jak je znázorněno na obrázku 3-9.

GOWIN-FPGA-Development-Board-RISCV-Programming-14

Obrázek 3-9 Konfigurace ladění

Na záložce „Startup“ zaškrtněte volbu „Reset and Hold“ pro zastavení programu před provedením první instrukce. Chcete-li stáhnout výsledky kompilace vloženého projektu do ILM před laděním na čipu, zadejte zatížení do pole parametrů pod touto možností.
V „Možnosti běhu“ zaškrtněte „Nastavit bod přerušení na“. Do vstupního pole zadejte popisek, například hlavní. Může nastavit bod přerušení na začátku hlavní funkce. Zaškrtněte „Resume“ a spustí se nepřetržitý provoz přímo po zadání ladění na čipu.
Při zadávání ladění na čipu automaticky přejde do ladění view a zobrazí se oblast, jak je znázorněno na obrázku 3-10. Tato oblast je operační oblastí pro ladění na čipu. Některá tlačítka pro ladění jsou zobrazena v červeném poli. Zleva doprava znamenají restart DEBUG, pokračování v běhu, pozastavení, ukončení, odpojení, propojení s jedním procesem, krok do, krok přes, návrat po kroku a režim krokování instrukce; v tomto režimu pokaždé, když spustí instrukci sestavení risc – v, jinak pokaždé, když spustí příkaz C.

Poznámka!
Šedé ikony znamenají, že jsou v tuto chvíli nedostupné.
Dvojitým kliknutím doleva na číslo řádku v textu kódu rychle nastavíte zarážky nebo zrušíte zarážky a kliknutím pravým tlačítkem do textu kódu vyberte z rozbalovací nabídky „spustit na řádek“.GOWIN-FPGA-Development-Board-RISCV-Programming-13

Obrázek 3-10 Úvod do tlačítek ladění

Obrázek 3-11 je okno příkazů sestavení, které zobrazuje obsah instrukcí sestavení spuštěných v reálném čase v ILM.

GOWIN-FPGA-Development-Board-RISCV-Programming-14

Obrázek 3-11 Okno s kódem pokynů pro montáž

Použití vestavěného sériového terminálu RDS

Obrázek 3-12 ukazuje terminál UART vestavěný v rozhraní RDS. Pokud potřebujete použít, klikněte na „Okno > Zobrazit View > Terminál“ v horní nabídce otevřete okno „Terminál“ a poté kliknutím na „otevřít terminál“ vytvořte nový sériový terminál. Po nastavení čísla portu (což může být viewed ve správci hardwaru), přenosovou rychlost a další parametry, kliknutím na „OK“ začněte používat.

GOWIN-FPGA-Development-Board-RISCV-Programming-15

Obrázek 3-12 Vestavěný sériový terminál RDS

Podrobnosti naleznete v dokumentu
AndeSight_RDS_v3.1_User_Manual_UM170_V1.0.pdf, který lze nalézt v cestě doc instalačního adresáře.

Referenční design

Kód projektu

Klíč files ve vložené šabloně projektu AE250 jsou následující:

  1. src/bsp/ae250/ae250.h: Toto file obsahuje definici systémových hodin, definici periferního registru, definici mapování adresy periferního registru a definici zdrojového čísla přerušení. Definice hodin musí být konzistentní s konfigurací parametrů AE250.
  2. src/bsp/ae250/ae250.c: Funkce reset_handler je položka pro spuštění vestavěného programu. V záznamu se před provedením hlavní funkce provede inicializace UART. Vybere se požadovaný port UART a nakonfiguruje se požadovaná přenosová rychlost podle konfigurace parametrů AE250.
  3. src/bsp/ae250/interrupt.c: Toto file je definice funkcí obsluhy přerušení AE250
  4. src/bsp/config/config.h: Toto file obsahuje definici makra, která řídí metodu kompilace. #define BUILD_MODE lze definovat jako BUILD_LOAD nebo BUILD_BURN. BUILD_LOAD znamená, že se program načte přímo do ILM a obecně se používá při ladění. BUILD_BURN znamená, že program je stažen do SPI Flash a program je po zapnutí nejprve načten z SPI Flash do ILM a poté spuštěn, což platí pro verzi programu.
  5. Start.S: Startér file napsaný v jazyce symbolických instrukcí.
  6. src/bsp/loader.c: bootloader file, který se používá pro start z SPI Flash.
  7. ae250.sag: Sag je skript formátu rozptylování a shromažďování. Používá se ke generování skriptu linkeru. Je třeba poznamenat, že parametry mapy paměti v ae250.sag musí být konzistentní s parametry v AE250.
  8. src/bsp/driver: Tento adresář obsahuje dvě složky, ae250 je kód ovladače AE250, obsahuje rozhraní volání funkcí ovladače.
  9. src/bsp/lib: Obsahuje dva files. V printf.c je forma podfunkce ve standardní knihovně C předefinována pro výstup printf informací přes UART. V read.c je jednoduchá funkce pro čtení vstupních informací přes UART.
Referenční design

Po instalaci lze několik základních referenčních návrhů nalézt ve složce demo instalačního adresáře nebo v zipu referenčního návrhu na webmísto; referenční návrh lze načíst do RDS pro vyzkoušení, ladění a přepracování prostřednictvím importu. Referenční návrhy jsou zobrazeny následovně:

  1. ae250_demo: Ukazuje vstup/výstup UART a výstup GPIO AE250.
  2. ae250_plic: Ukazuje odezvu řadiče přerušení na přerušení a poskytuje ukázky strojového časovače a časovače pitu.
  3. ae250_freertos: Ukazuje, že jsou vestavěny porty AE250
    operační systém v reálném čase FreeRTOS multi-threading běžící program.
  4. ae250_ucosiii: Ukazuje, že AE250 portuje vestavěný operační systém v reálném čase uC/OS-III multi-threading běžící program.

Dokumenty / zdroje

GOWIN FPGA Development Board RISCV Programování [pdfUživatelská příručka
Vývojová rada FPGA RISCV programování, programování RISCV desek, vývoj FPGA RISCV programování, programování RISCV, deska RISCV

Reference

Zanechte komentář

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