Logotip de GOWIN

Placa de desenvolupament GOWIN FPGA Programació RISCV

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

Copyright © 2022 Guangdong Gowin Semiconductor Corporation. Tots els drets reservats.
és una marca comercial de Guangdong Gowin Semiconductor Corporation i està registrada a la Xina, l'Oficina de Patents i Marques dels EUA i altres països. La resta de paraules i logotips identificats com a marques comercials o marques de servei són propietat dels seus respectius titulars. Cap part d'aquest document no es pot reproduir ni transmetre de cap forma ni per cap denotació, electrònica, mecànica, fotocòpia, enregistrament o qualsevol altra, sense el consentiment previ per escrit de GOWINSEMI.

Exempció de responsabilitat
GOWINSEMI no assumeix cap responsabilitat i no ofereix cap garantia (expressa o implícita) i no es fa responsable de cap dany incorregut en el vostre maquinari, programari, dades o propietat com a resultat de l'ús dels materials o de la propietat intel·lectual, excepte com s'indica als Termes i condicions de GOWINSEMI. de Venda. Tota la informació d'aquest document s'ha de tractar com a preliminar. GOWINSEMI pot fer canvis en aquest document en qualsevol moment sense previ avís. Qualsevol persona que confii en aquesta documentació s'ha de posar en contacte amb GOWINSEMI per obtenir la documentació actual i les errates.

Historial de revisions

Data Versió Descripció
04/29/2019 1.0E Versió inicial publicada.
 

11/11/2022

 

1.1E

  • Programari AndeSight RDS v311 actualitzat.
  • Disseny de referència actualitzat.
  • S'ha actualitzat la descripció de la descàrrega dels resultats de la compilació del projecte incrustat mitjançant SPI Flash.

Introducció

AE250 Introducció

AE250 és un sistema MCU RISC-V de 32 bits; la seva estructura es mostra a la figura 1-1.

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

Figura 1-1 Diagrama d'estructura de l'AE250

Basat en la placa de desenvolupament FPGA de Gowin, el sistema de desenvolupament i depuració de MCU RISC-V AE250 es mostra a la figura 1-2.

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

Figura 1-2 Diagrama d'estructura del sistema de desenvolupament i depuració

El xip FPGA de la placa de desenvolupament es configura com a MCU AE250 mitjançant el programador Gowin a l'ordinador, després de connectar el cable de depuració, podeu realitzar el desenvolupament i la depuració del programa incrustat amb el programari AndeSight RDS v311.

Preparatius

Abans d'utilitzar Gowin FPGA i AE250 per al desenvolupament i la depuració, cal preparar les eines següents:

  1. Sèrie Gowin GW2A de placa de desenvolupament FPGA.
  2. Paquet d'instal·lació del programari Gowin per configurar i descarregar el xip FPGA.
  3. Paquet d'instal·lació AndeSight RDS v311 per desenvolupar i depurar el programa incrustat.
  4. El cable de depuració s'utilitza per descarregar i depurar el programa incrustat, i el valor predeterminat és AICE-MINI+; els usuaris han de comprar-lo ells mateixos.

Nota! 

  1. Si necessita generar informació mitjançant UART, cal un cable UART a USB.
  2. Calen altres perifèrics a utilitzar.
Passos de desenvolupament i depuració

Els passos bàsics per desenvolupar i depurar MCU RISC-V AE250 basat en la placa de desenvolupament GW2A-55C són els següents:

  1. Instal·lar programaris: el programari Gowin s'utilitza per configurar i generar disseny RTL AE250 i generar el Bitstream file del disseny; El programari AndeSight RDS v311 s'utilitza per desenvolupar i depurar programes incrustats; També calen altres programaris i controladors per a la depuració.
  2. Configureu la font d'alimentació i el cable de descàrrega de la placa de desenvolupament. El Bitstream file de AE250_chip es baixa al xip FPGA de la placa de desenvolupament mitjançant el programador Gowin i l'AE250 s'està executant a la placa de desenvolupament.
  3. Obriu el programari RDS per crear un nou projecte incrustat o obrir un projecte existent per a la codificació, la compilació i altres operacions. Connecteu el cable de depuració utilitzat per a la depuració de l'AE250, descarregueu el resultat de la compilació del projecte a la memòria d'instruccions (ILM) de l'AE250 i comenceu a depurar el xip.
  4. Durant la depuració, podeu utilitzar el cable UART a USB per connectar la interfície UART de l'AE250 al PC, utilitzar el terminal sèrie integrat a RDS per operar les operacions d'entrada i sortida. Podeu utilitzar GPIO per connectar-vos a indicadors LED, tecles o pins externs per a operacions d'entrada/sortida; També es poden seleccionar perifèrics I2C, SPI, Ethernet i altres perifèrics per utilitzar-los.
  5. L'AE250 es pot connectar a un Flash mitjançant SPI, descarregar el resultat de la compilació del programa incrustat a Flash mitjançant el programador Gowin; quan el xip estigui encès, l'AE250 llegirà automàticament el programa incrustat a SPI Flash i començarà. Podeu reutilitzar el flaix que desa el bitstream FPGA; alguns poden desar el flux de bits FPGA i altres poden desar els resultats de la compilació dels programes incrustats. Aquest és un mètode pràctic i econòmic.
    Podeu veure el capítol 2 Instruccions de connexió del cable de depuració, capítol
    3 Utilitzeu les instruccions per a RDS i el disseny de referència del capítol 4 per obtenir passos detallats.

Instruccions de connexió del cable de depuració

RDS + AE250 utilitzen per defecte el cable de depuració AICE-MINI+; l'exterior es mostra a l'esquerra a la figura 2-1 i les agulles es mostren a la dreta a la figura 2-1. És una interfície de 12 pins. Cal tenir en compte que el pin 1 està en blanc a la figura. Quan el cable estigui connectat correctament i s'obri RDS, s'apagarà la llum LED vermella marcada amb el quadre groc a la figura.
Figura 2-1 Cable de depuració AICE-MINI+ i els seus pins

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

La definició del pin del cable de depuració AICE-MINI+ és com es mostra a la Taula 2-1. Cal tenir en compte que el Pin 1 es defineix com No Connection (NC), corresponent al blanc. VREF ha de connectar un pin d'alimentació de 3.3 V i GND només ha de connectar el pin 3 o el pin 5.

Taula 2-1 Definició del pin del cable de depuració de l'AICE-MINI+

Número de pin Pin del cable de depuració 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

Utilitzeu les instruccions per a RDS

Instal·lació de RDS

Descomprimiu el paquet d'instal·lació i introduïu Windows/Disk1; Feu doble clic a setup.exe per instal·lar-lo. No es requereix cap configuració especial durant la instal·lació. Durant la instal·lació, apareixerà un quadre de diàleg que us preguntarà si voleu instal·lar el controlador, seleccioneu sí. Per veure els passos d'instal·lació, vegeu
AndeSight_RDS_v3.2_Installation_Guide_UM207_V1.0.pdf, que es pot trobar al paquet d'instal·lació.

  1.  Quan configureu el camí d'instal·lació i el camí de l'espai de treball, no inclogueu caràcters xinesos ni espai, o obtindrà un error d'execució.
  2. La versió actual de RDS admet el cable AICE-MINI+ per defecte.
  3. És possible que el programador GOWIN no es pugui connectar a la placa de desenvolupament després d'instal·lar RDS, cosa que es pot solucionar tornant a instal·lar el controlador del programador Gowin.
  4. Per al número de sèrie i el certificat files, poseu-vos en contacte amb Gowin Semiconductor Corp.
Crea un projecte nou

Feu clic File > Nou > Projecte > Projecte Andes C > A continuació a la interfície RDS per entrar a la interfície de configuració de New C Project, tal com es mostra a la figura 3-1.

Figura 3-1 Crea un projecte nou

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

Per al nou projecte C, cal configurar els paràmetres següents:

  1. Nom del projecte
  2. Ubicació: la ubicació per defecte és l'espai de treball actual.
  3. La configuració de connexió està configurada en ICE, la qual cosa indica que la placa de desenvolupament està connectada mitjançant un cable de depuració ICE. Si l'emulador s'utilitza com a plataforma de prova, seleccioneu SID.
  4. Per a Chip Profile, seleccioneu ADP-AE250-N25-GOWIN, que està optimitzat segons Gowin FPGA.
  5. El tipus de projecte inclou un projecte buit i un projecte ANSI C Hello World.
  6. Per a les cadenes d'eines, nds32le-elf-mculib-v5m és l'opció predeterminada.
    Després de crear un projecte nou, feu clic amb el botó dret al nom del projecte a l'Explorador de projectes, seleccioneu Construir projecte al menú desplegable o feu clic a " " a la barra d'eines per compilar i enllaçar el projecte; seleccioneu Neteja projecte al menú desplegable per netejar el projecte.
Importa i exporta un projecte

Feu clic amb el botó dret a l'espai de Project Explorer per seleccionar "Importa" o "Exporta", tal com es mostra a la figura 3-2.

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

Figura 3-2 Importa/Exporta un projecte

Feu clic a "Importa > General > Projecte existent a l'espai de treball" per importar un projecte i la interfície és com es mostra a la figura 3-3. Quan seleccioneu "Seleccioneu el directori arrel", importeu el projecte a la carpeta; quan seleccioneu "Seleccioneu fitxer d'arxiu", importeu el projecte en zip.

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

Figura 3-3 Importa un projecte

Seleccioneu "Exporta...> Arxiu File” per obrir la interfície d'exportació del projecte, tal com es mostra a la figura 3-4. Després de seleccionar el projecte a exportar, el format de compressió, el camí de desar, etc., podeu completar l'exportació.GOWIN-FPGA-Development-Board-RISCV-Programming-7

Figura 3-4 Exportar un projecte

Baixeu programes a Flash

L'AE250 admet començar des de Flash, després llegeix el programa incrustat des de Flash mitjançant la interfície SPI i l'emmagatzema a ILM i, a continuació, s'executa el programa incrustat. El mètode recomanat és reutilitzar SPI Flash que desa FPGA Bitstream; utilitzeu la primera meitat de Flash per desar el bitstream FPGA i la resta per desar el binari files de programes encastats.

  1. Obriu el generador de nucli IP al programari Gowin i truqueu als paràmetres RTL de l'AE250. Feu doble clic a la SMU per obrir la interfície SMU i establiu "System Reset Vector Default" a 0x80400000, tal com es mostra a la figura 3-5. Estableix l'espai de SPI Flash 0~0x400000 amb un total de 4M bytes com a adreça de desat de Bitstream; a partir de 0x400000 s'utilitza com a adreça de desar del binari files de programes encastats.
    Figura 3-5 System Reset Vector Default
    GOWIN-FPGA-Development-Board-RISCV-Programming-8
  2. Feu doble clic a SPI1 per obrir la interfície SPI1, marqueu "SPI1 Support" i configureu "SPI1 Memory Map Space Base Address" a 0x80400000, tal com es mostra a la figura 3 6.
    Figura 3-6 Configuració SPI1
    GOWIN-FPGA-Development-Board-RISCV-Programming-9
  3. En les restriccions físiques del disseny RTL, la interfície SPI1 s'ha de connectar a SPI Flash i la interfície SPI1 s'hauria de limitar físicament segons la taula següent. Per a diferents xips FPGA, la ubicació de la interfície MSPI també és diferent i la restricció hauria de ser específica per a la situació específica.
    Taula 3-1 Restriccions físiques de la interfície SPI1
    Interfície AE250 SPI1 Interfície FPGA MSPI
    CSN MCSN
    CLK MCLK
    MISO MSO
    Extensió MOSI MSI
  4. Reutilitza la interfície MSPI com a IO normal. A la finestra "Procés" del programari Gowin, feu clic amb el botó dret a "Lloc i ruta", seleccioneu "Configuració" al menú emergent; seleccioneu la pestanya "Pin de doble propòsit" i marqueu "Utilitza MSPI com a IO normal" i feu clic a "D'acord" per acabar la col·locació i l'encaminament.
    Figura 3-7 Establiu la interfície MSPI a E/S normal
    GOWIN-FPGA-Development-Board-RISCV-Programming-10
  5. Modifiqueu la configuració dels paràmetres del programa incrustat. Primer, modifiqueu els paràmetres del carregador d'arrencada a l'script de l'enllaç. Atès que l'script d'enllaç del programa incrustat AE250 es genera automàticament per SAG file, s'hauria de modificar al SAG file. Obriu ae250.sag, cerqueu BOTLOADER i modifiqueu-lo al valor de System Reset Vector Default al disseny RTL, tal com es mostra a la figura 3-8. A continuació, modifiqueu config.h. Obriu src/bsp/config/config.h i cerqueu la definició de la macro
    "BUILD_MODE" i modifiqueu-lo a "BUILD_BURN".
    Figura 3-8 Configuració dels paràmetres del carregador d'arrencada ae250.sag
    GOWIN-FPGA-Development-Board-RISCV-Programming-11

Nota!

    • El paràmetre ha de ser coherent amb el valor de System Reset Vector Default del paràmetre RTL.
    • Modifiqueu la configuració de la compilació; feu clic amb el botó dret al nom del projecte incrustat, seleccioneu Configuració de compilació; seleccioneu la pestanya "Objcopy > General" i desmarqueu "Desactiva". (No genereu la sortida automàticament file.)

Torneu a compilar el programa incrustat per generar binari files del projecte incrustat i descarregueu el fitxer files a l'adreça SPI Flash 0x400000 mitjançant el mode Flash C Bin extern del programador Gowin.
Sintetitzeu i col·loqueu i encamineu de nou el disseny RTL modificat i descarregueu-lo a l'adreça SPI Flash 0x000000 mitjançant el mode Flash extern del programador Gowin.

Depuració al xip

Després de la compilació, els resultats de la compilació del projecte incrustat es poden descarregar a la placa de desenvolupament per a la depuració en xip.
Modificar config.h; obriu src/bsp/config/config.h i trobeu la definició de macro BUILD_MODE; modifiqueu-lo a BUILD_LOAD i torneu a compilar el programa incrustat.
Feu clic amb el botó dret al nom del projecte a l'Explorador de projectes i seleccioneu "Depurar com a > Programa MCU" al menú desplegable. Per primera vegada, apareixerà un quadre de diàleg per configurar "Configuració de depuració", tal com es mostra a la figura 3-9.

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

Figura 3-9 Configuracions de depuració

A la pestanya "Inici", marqueu l'opció "Restablir i mantenir" per aturar el programa abans d'executar la primera instrucció. Introduïu la càrrega al quadre de paràmetres que hi ha a sota d'aquesta opció per descarregar els resultats de la compilació del projecte incrustat a l'ILM abans de la depuració al xip.
A "Opcions d'execució", marqueu "Estableix el punt d'interrupció a". Introduïu una etiqueta, com ara principal, al quadre d'entrada. Pot establir un punt d'interrupció al començament de la funció principal. Marqueu "Reprèn" i començarà l'operació contínua directament després d'introduir la depuració al xip.
Quan s'introdueix la depuració al xip, passa automàticament a la depuració view i es mostrarà una àrea, tal com es mostra a la figura 3-10. Aquesta àrea és l'àrea d'operació per a la depuració en xip. Alguns botons de drecera per a la depuració es mostren al quadre vermell. D'esquerra a dreta, signifiquen reiniciar DEBUG, continuar executant-se, suspendre's, finalitzar, desconnectar, enllaçar a un procés, entrar, fer un pas, tornar pas a pas i el mode de pas d'instrucció; en aquest mode, cada vegada que executa una instrucció de muntatge risc – v, en cas contrari cada vegada que executa una instrucció C.

Nota!
Les icones en gris indiquen que no estan disponibles en aquest moment.
Feu doble clic a l'esquerra del número de línia del text del codi per establir ràpidament punts d'interrupció o cancel·lar-los, i feu clic amb el botó dret al text del codi per seleccionar "executar a la línia" al menú emergent.GOWIN-FPGA-Development-Board-RISCV-Programming-13

Figura 3-10 Introducció als botons de depuració

La figura 3-11 és una finestra d'instruccions de muntatge que mostra el contingut de les instruccions de muntatge que s'executen en temps real a ILM.

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

Figura 3-11 Finestra del codi d'instruccions de muntatge

Ús de terminal sèrie RDS integrat

La figura 3-12 mostra el terminal UART integrat a la interfície RDS. Si necessiteu utilitzar-lo, feu clic a "Finestra > Mostra View > Terminal" al menú superior per obrir la finestra "Terminal" i, a continuació, feu clic a "Obrir un terminal" per crear un nou terminal sèrie. Després d'establir el número de port (que pot ser viewed al gestor de maquinari), velocitat de transmissió i altres paràmetres, feu clic a "D'acord" per començar a utilitzar-lo.

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

Figura 3-12 Terminal sèrie RDS incorporat

Per als detalls, consulteu el document
AndeSight_RDS_v3.1_User_Manual_UM170_V1.0.pdf, que es pot trobar a la ruta del document del directori d'instal·lació.

Disseny de referència

Codi del projecte

La clau files a la plantilla del projecte incrustat AE250 són els següents:

  1. src/bsp/ae250/ae250.h: Això file conté la definició del rellotge del sistema, la definició del registre perifèric, la definició de l'assignació d'adreces del registre perifèric i la definició del número d'origen d'interrupcions. La definició del rellotge ha de ser coherent amb la configuració dels paràmetres de l'AE250.
  2. src/bsp/ae250/ae250.c: la funció reset_handler és l'entrada per iniciar el programa incrustat. A l'entrada, la inicialització UART es realitza abans que s'executi la funció principal. Es selecciona el port UART necessari i es configura la velocitat en baudis necessària segons la configuració del paràmetre de l'AE250.
  3. src/bsp/ae250/interrupt.c: Això file és la definició de les funcions del controlador d'interrupcions de l'AE250
  4. src/bsp/config/config.h: Això file conté la definició de macro que controla el mètode de compilació. #define BUILD_MODE es pot definir com BUILD_LOAD o BUILD_BURN. BUILD_LOAD significa que el programa es carrega directament a ILM i s'utilitza generalment quan es depura. BUILD_BURN significa que el programa es descarrega a SPI Flash i que el programa es llegeix de SPI Flash a ILM primer després d'encendre'l, i després executar-lo, que és aplicable al programa de versió de llançament.
  5. Start.S: L'arrencada file escrit en llenguatge ensamblador.
  6. src/bsp/loader.c: carregador d'arrencada file, que s'utilitza per començar des de SPI Flash.
  7. ae250.sag: Sag és l'script de format de dispersió i recollida. S'utilitza per generar un script d'enllaç. Cal tenir en compte que els paràmetres del mapa de memòria a ae250.sag han de ser coherents amb els de l'AE250.
  8. src/bsp/driver: aquest directori conté dues carpetes, ae250 és el codi del controlador AE250, inclou és la interfície de trucada de les funcions del controlador.
  9. src/bsp/lib: conté dos files. A printf.c, la forma de subfunció a la biblioteca estàndard C es redefinirà per generar informació printf mitjançant UART. A read.c, hi ha una funció senzilla per llegir la informació d'entrada mitjançant UART.
Disseny de referència

Després de la instal·lació, es poden trobar diversos dissenys de referència bàsics a la carpeta de demostració del directori d'instal·lació o al zip del disseny de referència a la weblloc; el disseny de referència es pot carregar a RDS per a la prova, depuració i re-desenvolupament mitjançant la importació. Els dissenys de referència es mostren de la següent manera:

  1. ae250_demo: demostra l'entrada/sortida UART i la sortida GPIO de l'AE250.
  2. ae250_plic: demostra la resposta del controlador d'interrupcions a les interrupcions i ofereix demostracions del temporitzador de la màquina i del temporitzador de fossa.
  3. ae250_freertos: demostra que els ports AE250 estan integrats
    Sistema operatiu en temps real FreeRTOS programa d'execució de múltiples fils.
  4. ae250_ucosiii: demostra que els ports AE250 incrusten el sistema operatiu en temps real uC/OS-III programa d'execució de múltiples fils.

Documents/Recursos

Placa de desenvolupament GOWIN FPGA Programació RISCV [pdfGuia de l'usuari
Placa de desenvolupament FPGA Programació RISCV, Programació RISCV de placa, Programació RISCV de desenvolupament FPGA, Programació RISCV, Placa RISCV

Referències

Deixa un comentari

La teva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats *