GOWIN-logo

GOWIN FPGA Development Board RISCV-programmering

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

Copyright © 2022 Guangdong Gowin Semiconductor Corporation. Alle rettigheder forbeholdes.
er et varemærke tilhørende Guangdong Gowin Semiconductor Corporation og er registreret i Kina, US Patent and Trademark Office og andre lande. Alle andre ord og logoer, der er identificeret som varemærker eller servicemærker, tilhører deres respektive indehavere. Ingen del af dette dokument må gengives eller transmitteres i nogen form eller ved nogen betegnelse, elektronisk, mekanisk, fotokopiering, optagelse eller på anden måde, uden forudgående skriftligt samtykke fra GOWINSEMI.

Ansvarsfraskrivelse
GOWINSEMI påtager sig intet ansvar og giver ingen garanti (hverken udtrykt eller underforstået) og er ikke ansvarlig for skader påført din hardware, software, data eller ejendom som følge af brug af materialerne eller intellektuel ejendom, undtagen som beskrevet i GOWINSEMI vilkår og betingelser af salg. Alle oplysninger i dette dokument skal behandles som foreløbige. GOWINSEMI kan til enhver tid foretage ændringer i dette dokument uden forudgående varsel. Enhver, der stoler på denne dokumentation, bør kontakte GOWINSEMI for den aktuelle dokumentation og fejl.

Revisionshistorie

Dato Version Beskrivelse
04/29/2019 1.0E Oprindelig version offentliggjort.
 

11/11/2022

 

1.1E

  • AndeSight RDS v311 software opdateret.
  • Referencedesign opdateret.
  • Beskrivelsen af ​​download af indlejrede projektkompileringsresultater via SPI Flash opdateret.

Indledning

AE250 Introduktion

AE250 er et 32-bit RISC-V MCU-system; dens struktur er vist i figur 1-1.

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

Figur 1-1 AE250 strukturdiagram

Baseret på Gowin FPGA-udviklingskort er RISC-V AE250 MCU-udviklings- og fejlfindingssystemet vist i figur 1-2.

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

Figur 1-2 Systemstrukturdiagram for udvikling og fejlfinding

FPGA-chippen på udviklingskortet er konfigureret som en AE250 MCU ved hjælp af Gowin Programmer i pc, efter at fejlretningskablet er tilsluttet, kan du udføre den indlejrede programudvikling og debugging med AndeSight RDS v311-software.

Forberedelser

Før du bruger Gowin FPGA og AE250 til udvikling og fejlretning, skal følgende værktøjer forberedes:

  1. Gowin GW2A-serien af ​​FPGA-udviklingskort.
  2. Gowin Software installationspakke til konfiguration og download af FPGA-chippen.
  3. AndeSight RDS v311 installationspakke til udvikling og fejlretning af det indlejrede program.
  4. Debug Cable bruges til at downloade og debugge det indlejrede program, og standarden er AICE-MINI+; brugere skal købe det selv.

Note! 

  1. Hvis den skal udsende information gennem UART, kræves der et UART til USB-kabel.
  2. Andre perifere enheder, der skal bruges, er påkrævet.
Udviklings- og fejlretningstrin

De grundlæggende trin til udvikling og fejlretning af RISC-V AE250 MCU baseret på GW2A-55C udviklingskortet er som følger:

  1. Installer software: Gowin Software bruges til at konfigurere og generere AE250 RTL-design og generere Bitstream file af designet; AndeSight RDS v311 software bruges til at udvikle og fejlsøge indlejrede programmer; anden software og drivere til fejlretning er også påkrævet.
  2. Konfigurer strømforsyningen og download-kablet til udviklingskortet. Bitstrømmen file af AE250_chip downloades til FPGA-chippen på udviklingskortet ved hjælp af Gowin Programmer, og AE250 kører på udviklingskortet.
  3. Åbn RDS-software for at oprette et nyt indlejret projekt, eller åbn et eksisterende projekt til kodning, kompilering og andre operationer. Tilslut debug-kablet, der bruges til AE250-debugging, download projektkompileringsresultatet til instruktionshukommelsen (ILM) i AE250, og start fejlretningen på chippen.
  4. Under fejlfinding kan du bruge UART til USB-kabel til at forbinde UART-grænsefladen på AE250 til pc, brug den indbyggede serielle terminal i RDS til at betjene input og output operationer. Du kan bruge GPIO til at oprette forbindelse til LED-indikatorer, taster eller eksterne ben til input/output-operationer; I2C, SPI, Ethernet og andre eksterne enheder kan også vælges til brug.
  5. AE250 kan oprette forbindelse til en Flash via SPI, downloade kompileringsresultatet af indlejret program til Flash ved hjælp af Gowin Programmer; når chippen er tændt, vil AE250 automatisk læse det indlejrede program i SPI Flash og starte. Du kan genbruge den Flash, der gemmer FPGA Bitstream; nogle kan gemme FPGA-bitstrømmen, og andre kan gemme kompileringsresultaterne af indlejrede programmer. Dette er en praktisk og økonomisk metode.
    Du kan se kapitel 2 Instruktioner til fejlretning af kabeltilslutning, kapitel
    3 Brug instruktionerne til RDS og kapitel 4 Referencedesign for detaljerede trin.

Fejlfinding af kabeltilslutningsinstruktioner

RDS + AE250 bruger som standard AICE-MINI+ debug-kabel; det ydre er vist til venstre i figur 2-1, og stifterne er vist til højre i figur 2-1. Det er et 12-bens interface. Det skal bemærkes, at stift 1 er blank på figuren. Når kablet er korrekt tilsluttet og RDS er åbnet, slukkes det røde LED-lys markeret med gul boks i figuren.
Figur 2-1 AICE-MINI+ fejlretningskabel og dets ben

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

Pin-definitionen af ​​AICE-MINI+ fejlretningskabel er som vist i tabel 2-1. Det skal bemærkes, at ben 1 er defineret som No Connection (NC), svarende til den tomme. VREF skal tilslutte en 3.3V strømstift, og GND behøver kun at tilslutte ben 3 eller ben 5.

Tabel 2-1 Definition af AICE-MINI+ fejlretningskabelstift

Pin nummer AICE-MINI+ fejlretningskabelstift
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

Brugsvejledning til RDS

RDS installation

Pak installationspakken ud og indtast Windows/Disk1; dobbeltklik på setup.exe for at installere det. Der kræves ingen specielle indstillinger under installationen. Under installationen vil en dialogboks dukke op, der spørger, om driveren skal installeres, vælg venligst ja. For installationstrin, se
AndeSight_RDS_v3.2_Installation_Guide_UM207_V1.0.pdf, som kan findes i installationspakken.

  1.  Når du indstiller installationsstien og arbejdsområdestien, skal du ikke inkludere kinesiske tegn eller mellemrum, ellers vil det få en runtime-fejl.
  2. Den aktuelle version af RDS understøtter AICE-MINI+ kabel som standard.
  3. GOWIN Programmer kan muligvis ikke oprette forbindelse til udviklingskortet efter installation af RDS, hvilket kan rettes ved at geninstallere Gowin Programmer-driveren.
  4. For serienummer og certifikat files, kontakt venligst Gowin Semiconductor Corp.
Opret et nyt projekt

Klik File > Nyt > Projekt > Andes C-projekt > Næste på RDS-grænseflade for at gå ind i konfigurationsgrænsefladen for Nyt C-projekt, som vist i figur 3-1.

Figur 3-1 Opret et nyt projekt

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

For det nye C-projekt skal følgende parametre konfigureres:

  1. Projektnavn
  2. Placering: Standardplaceringen er det aktuelle arbejdsområde.
  3. Forbindelseskonfiguration er indstillet til ICE, hvilket indikerer, at udviklingskortet er tilsluttet ved hjælp af ICE-fejlretningskabel. Hvis emulatoren bruges som en testplatform, skal du vælge SID.
  4. Til Chip Profile, vælg ADP-AE250-N25-GOWIN, som er optimeret i henhold til Gowin FPGA.
  5. Projekttype inkluderer et tomt projekt og et Hello World ANSI C-projekt.
  6. For Toolchains er nds32le-elf-mculib-v5m standard.
    Efter at have oprettet et nyt projekt, højreklik på projektnavnet i Project Explorer, vælg Byg projekt fra rullemenuen eller klik på ” ” på værktøjslinjen for at kompilere og linke projektet; vælg Rens projekt fra rullemenuen for at gøre projektet rent.
Importer og eksporter et projekt

Højreklik på pladsen i Project Explorer for at vælge "Import" eller "Export", som vist i figur 3-2.

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

Figur 3-2 Importer/eksporter et projekt

Klik på "Importer > Generelt > Eksisterende projekt til arbejdsområde" for at importere et projekt, og grænsefladen er som vist i figur 3-3. Når du vælger "Vælg rodmappe", skal du importere projektet i mappen; når du vælger "Vælg arkivfil", skal du importere projektet i zip.

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

Figur 3-3 Importer et projekt

Vælg "Eksporter... > Arkiver File” for at åbne eksportprojektgrænsefladen, som vist i figur 3-4. Efter at have valgt det projekt, der skal eksporteres, komprimeringsformat, gemmesti osv. kan du fuldføre eksporten.GOWIN-FPGA-Development-Board-RISCV-Programming-7

Figur 3-4 Eksporter et projekt

Hent programmer til flash

AE250 understøtter start fra Flash, læser derefter det indlejrede program fra Flash via SPI-interface og gemmer det i ILM, og derefter udføres det indlejrede program. Den anbefalede metode er at genbruge SPI Flash, der gemmer FPGA Bitstream; brug den første halvdel af Flash til at gemme FPGA Bitstream, og den resterende del til at gemme den binære files af indlejrede programmer.

  1. Åbn IP-kernegeneratoren i Gowin Software og kald AE250 RTL-parametre. Dobbeltklik på SMU'en for at åbne SMU-grænsefladen og indstil "System Reset Vector Default" til 0x80400000, som vist i figur 3-5. Indstil pladsen til SPI Flash 0~0x400000 med i alt 4M bytes som gemmeadressen for Bitstream; startende fra 0x400000 bruges som gemmeadresse for binær files af indlejrede programmer.
    Figur 3-5 System Reset Vector Default
    GOWIN-FPGA-Development-Board-RISCV-Programming-8
  2. Dobbeltklik på SPI1 for at åbne SPI1-grænsefladen, marker "SPI1 Support", og indstil "SPI1 Memory Map Space Base Address" til 0x80400000, som vist i figur 3 6.
    Figur 3-6 SPI1-konfiguration
    GOWIN-FPGA-Development-Board-RISCV-Programming-9
  3. I de fysiske begrænsninger af RTL-design skal SPI1-grænsefladen være forbundet til SPI Flash, og SPI1-grænsefladen skal være fysisk begrænset i henhold til følgende tabel. For forskellige FPGA-chips er placeringen af ​​MSPI-grænsefladen også forskellig, og begrænsningen bør være specifik for den specifikke situation.
    Tabel 3-1 SPI1 grænseflade fysiske begrænsninger
    AE250 SPI1 Interface FPGA MSPI Interface
    CSN MCSN
    CLK MCLK
    MISO MSO
    Mosi MSI
  4. Genbrug MSPI-grænsefladen som almindelig IO. I vinduet "Process" i Gowin Software, højreklik på "Placer & Rute", vælg "Konfiguration" i pop op-menuen; vælg fanen "Dual Purpose Pin" og marker "Brug MSPI som almindelig IO", og klik på "OK" for at afslutte placering og routing.
    Figur 3-7 Indstil MSPI Interface til Regular IO
    GOWIN-FPGA-Development-Board-RISCV-Programming-10
  5. Rediger indstillinger for indlejrede programparametre. Først skal du ændre parametrene for bootloader i linker-scriptet. Da linker-scriptet i AE250-indlejret program genereres automatisk af SAG file, bør det ændres i SAG file. Åbn ae250.sag, find BOOTLOADER og modificer den til værdien af ​​System Reset Vector Default i RTL-design, som vist i figur 3-8. Rediger derefter config.h. Åbn src/bsp/config/config.h, og find makrodefinitionen
    "BUILD_MODE" og rediger den til "BUILD_BURN".
    Figur 3-8 ae250.sag bootloader Parameter Setting
    GOWIN-FPGA-Development-Board-RISCV-Programming-11

Note!

    • Parameteren skal stemme overens med værdien af ​​System Reset Vector Default for RTL-parameteren.
    • Rediger kompileringsindstillingerne; højreklik på navnet på det indlejrede projekt, vælg Byg indstillinger; vælg "Objcopy > General" fanen, og fjern markeringen i "Deaktiver". (Undlad at automatisk generere output file.)

Genkompiler det indlejrede program for at generere binært files af det indlejrede projekt, og download files til SPI Flash 0x400000 adresse ved hjælp af Gowin Programmer ekstern Flash C Bin-tilstand.
Syntetiser og placer og diriger det modificerede RTL-design igen, og download det til SPI Flash 0x000000-adresse ved hjælp af Gowin Programmer ekstern Flash-tilstand.

On-chip debug

Efter kompilering kan kompileringsresultaterne af det indlejrede projekt downloades til udviklingskortet til on-chip debug.
Rediger config.h; åbn src/bsp/config/config.h, og find makrodefinitionen BUILD_MODE; rediger det til BUILD_LOAD, og ​​kompiler det indlejrede program igen.
Højreklik på projektnavnet i Project Explorer, og vælg "Debug as > MCU Program" fra rullemenuen. For første gang, vil en dialogboks dukke op til indstilling af "Debug Configuration", som vist i figur 3-9.

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

Figur 3-9 Fejlfindingskonfigurationer

På fanen "Startup" skal du markere "Nulstil og hold" for at stoppe programmet, før du udfører den første instruktion. Indtast load i parameterboksen under denne mulighed for at downloade kompileringsresultaterne af det indlejrede projekt til ILM før on-chip debug.
I "Runtime Options" skal du markere "Set breakpoint at". Indtast en etiket, f.eks. main, i inputfeltet. Den kan indstille et brudpunkt i begyndelsen af ​​hovedfunktionen. Marker "Genoptag", og det vil starte den kontinuerlige drift direkte efter indtastning af on-chip debug.
Når du går ind i on-chip debug, går den automatisk til debug view og et område vil blive vist, som vist i figur 3-10. Dette område er operationsområdet for on-chip debug. Nogle genvejsknapper til debug er vist i det røde felt. Fra venstre mod højre betyder de at genstarte DEBUG, fortsætte med at køre, suspendere, afslutte, afbryde, linke til én proces, træde ind i, trin over, trin tilbage, og instruktions stepping mode; i denne tilstand, hver gang den kører en risc – v assemblyinstruktion, ellers kører den en C-sætning hver gang.

Note!
De grå ikoner betyder, at de ikke er tilgængelige på nuværende tidspunkt.
Dobbeltklik til venstre på linjenummeret i kodeteksten for hurtigt at indstille brudpunkter eller annullere brudpunkter, og højreklik i kodeteksten for at vælge "kør til linje" fra pop op-menuen.GOWIN-FPGA-Development-Board-RISCV-Programming-13

Figur 3-10 Fejlfindingsknapper Introduktion

Figur 3-11 er et samlingserklæringsvindue, der viser indholdet af monteringsinstruktioner, der kører i realtid i ILM.

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

Figur 3-11 Samlingsinstruktionskodevindue

RDS indbygget seriel terminalbrug

Figur 3-12 viser UART-terminalen indbygget RDS-interface. Hvis du skal bruge, skal du klikke på "Vindue > Vis View > Terminal" i topmenuen for at åbne vinduet "Terminal", og klik derefter på "åbn en terminal" for at oprette en ny seriel terminal. Efter indstilling af portnummeret (hvilket kan være viewed i hardwaremanageren), baudrate og andre parametre, skal du klikke på "OK" for at begynde at bruge.

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

Figur 3-12 RDS Indbygget seriel terminal

For detaljer, se dokumentet
AndeSight_RDS_v3.1_User_Manual_UM170_V1.0.pdf, som kan findes i doc-stien til installationsmappen.

Referencedesign

Projektkode

Nøglen files i den AE250 indlejrede projektskabelon er som følger:

  1. src/bsp/ae250/ae250.h: Dette file indeholder systemurdefinitionen, definitionen af ​​det perifere register, det perifere registeradressetilknytningsdefinition og afbryder definitionen af ​​kildenummeret. Urdefinitionen skal være i overensstemmelse med AE250-parametrenes konfiguration.
  2. src/bsp/ae250/ae250.c: Reset_handler-funktionen er indgangen til at starte det indlejrede program. I indgangen udføres UART-initialisering, før hovedfunktionen udføres. Den nødvendige UART-port vælges, og den nødvendige baudrate konfigureres i henhold til parameterkonfigurationen af ​​AE250.
  3. src/bsp/ae250/interrupt.c: Dette file er definitionen af ​​interrupt handler-funktioner i AE250
  4. src/bsp/config/config.h: Dette file indeholder makrodefinitionen, der styrer kompileringsmetoden. #define BUILD_MODE kan defineres som BUILD_LOAD eller BUILD_BURN. BUILD_LOAD betyder, at programmet indlæses direkte i ILM, og det bruges generelt ved fejlretning. BUILD_BURN betyder, at programmet downloades til SPI Flash, og programmet læses fra SPI Flash til ILM først efter tænding og derefter køres, hvilket er relevant for udgivelsesversionsprogram.
  5. Start.S: Starteren file skrevet på samlesprog.
  6. src/bsp/loader.c: bootloader file, som bruges til at starte fra SPI Flash.
  7. ae250.sag: Sag er scattering-and-Gathering-formatet script. Det bruges til at generere linker-script. Det skal bemærkes, at hukommelseskortparametrene i ae250.sag skal være i overensstemmelse med dem i AE250.
  8. src/bsp/driver: Denne mappe indeholder to mapper, ae250 er AE250-driverkode, include er opkaldsgrænsefladen for driverfunktioner.
  9. src/bsp/lib: Den indeholder to files. I printf.c omdefineres formen for underfunktion i C-standardbiblioteket til at outputte printf-information gennem UART. I read.c er der en simpel funktion til at læse input information gennem UART.
Referencedesign

Efter installationen kan flere grundlæggende referencedesigns findes i demo-mappen i installationsbiblioteket eller i referencedesign-zip på webwebsted; referencedesignet kan indlæses i RDS til afprøvning, fejlfinding og omudvikling ved hjælp af import. Referencedesignerne er vist som følger:

  1. ae250_demo: Demonstrerer UART input/output og GPIO output fra AE250.
  2. ae250_plic: Demonstrerer interrupt-controllerens reaktion på afbrydelser og giver demonstrationer af maskinens timer og pit-timer.
  3. ae250_freertos: Demonstrerer, at AE250-portene er indlejret
    real-time operativsystem FreeRTOS multi-threading kørende program.
  4. ae250_ucosiii: Demonstrerer, at AE250 porter indlejret real-time operativsystem uC/OS-III multi-threading kørende program.

Dokumenter/ressourcer

GOWIN FPGA Development Board RISCV-programmering [pdfBrugervejledning
FPGA Development Board RISCV-programmering, Board RISCV-programmering, FPGA-udvikling RISCV-programmering, RISCV-programmering, Board RISCV

Referencer

Efterlad en kommentar

Din e-mailadresse vil ikke blive offentliggjort. Påkrævede felter er markeret *