Scheda di sviluppo GOWIN FPGA Programmazione RISCV
Copyright © 2022 Guangdong Gowin Semiconductor Corporation. Tutti i diritti riservati.
è un marchio di Guangdong Gowin Semiconductor Corporation ed è registrato in Cina, nell'Ufficio brevetti e marchi degli Stati Uniti e in altri paesi. Tutte le altre parole e loghi identificati come marchi o marchi di servizio sono di proprietà dei rispettivi titolari. Nessuna parte di questo documento può essere riprodotta o trasmessa in qualsiasi forma o con qualsiasi denotazione, elettronica, meccanica, fotocopiatrice, registrazione o altro, senza il previo consenso scritto di GOWINSEMI.
Disclaimer
GOWINSEMI non si assume alcuna responsabilità e non fornisce alcuna garanzia (espressa o implicita) e non è responsabile per eventuali danni causati all'hardware, software, dati o proprietà dell'utente derivanti dall'utilizzo dei materiali o della proprietà intellettuale, ad eccezione di quanto indicato nei Termini e condizioni di GOWINSEMI di vendita. Tutte le informazioni contenute in questo documento devono essere considerate preliminari. GOWINSEMI può apportare modifiche al presente documento in qualsiasi momento senza preavviso. Chiunque faccia affidamento su questa documentazione deve contattare GOWINSEMI per la documentazione e gli errata correnti.
Cronologia delle revisioni
Data | Versione | Descrizione |
04/29/2019 | 1.0E | Versione iniziale pubblicata. |
11/11/2022 |
1.1E |
|
Introduzione
AE250 Introduzione
AE250 è un sistema MCU RISC-V a 32 bit; la sua struttura è mostrata nella Figura 1-1.
Figura 1-1 Schema della struttura dell'AE250
Basato sulla scheda di sviluppo FPGA Gowin, il sistema di sviluppo e debug dell'MCU RISC-V AE250 è mostrato nella Figura 1-2.
Figura 1-2 Diagramma della struttura del sistema di sviluppo e debug
Il chip FPGA sulla scheda di sviluppo è configurato come MCU AE250 utilizzando il programmatore Gowin nel PC, dopo aver collegato il cavo di debug, è possibile eseguire lo sviluppo e il debug del programma integrato con il software AndeSight RDS v311.
Preparativi
Prima di utilizzare Gowin FPGA e AE250 per lo sviluppo e il debug, è necessario preparare i seguenti strumenti:
- Gowin serie GW2A di scheda di sviluppo FPGA.
- Pacchetto di installazione del software Gowin per la configurazione e il download del chip FPGA.
- Pacchetto di installazione AndeSight RDS v311 per lo sviluppo e il debug del programma integrato.
- Il cavo di debug viene utilizzato per il download e il debug del programma integrato e l'impostazione predefinita è AICE-MINI+; gli utenti devono acquistarlo da soli.
Nota!
- Se deve trasmettere informazioni tramite UART, è necessario un cavo da UART a USB.
- Sono necessarie altre periferiche da utilizzare.
Passaggi di sviluppo e debug
I passaggi di base per lo sviluppo e il debug dell'MCU RISC-V AE250 basato sulla scheda di sviluppo GW2A-55C sono i seguenti:
- Installa i software: il software Gowin viene utilizzato per configurare e generare il progetto AE250 RTL e generare il bitstream file del disegno; Il software AndeSight RDS v311 viene utilizzato per sviluppare ed eseguire il debug di programmi integrati; sono richiesti anche altri software e driver per il debug.
- Configurare l'alimentazione e il cavo di download della scheda di sviluppo. Il flusso di bit file di AE250_chip viene scaricato nel chip FPGA sulla scheda di sviluppo utilizzando Gowin Programmer e AE250 è in esecuzione sulla scheda di sviluppo.
- Apri il software RDS per creare un nuovo progetto incorporato o aprire un progetto esistente per la codifica, la compilazione e altre operazioni. Collegare il cavo di debug utilizzato per il debug dell'AE250, scaricare il risultato della compilazione del progetto nella memoria delle istruzioni (ILM) nell'AE250 e avviare il debug sul chip.
- Durante il debug, è possibile utilizzare il cavo da UART a USB per collegare l'interfaccia UART dell'AE250 al PC, utilizzare il terminale seriale integrato in RDS per eseguire le operazioni di input e output. È possibile utilizzare GPIO per connettersi a indicatori LED, tasti o pin esterni per operazioni di input/output; È inoltre possibile selezionare da utilizzare I2C, SPI, Ethernet e altre periferiche.
- AE250 può connettersi a un Flash tramite SPI, scaricare il risultato della compilazione del programma incorporato in Flash utilizzando Gowin Programmer; quando il chip è acceso, AE250 leggerà automaticamente il programma incorporato in SPI Flash e si avvierà. Puoi riutilizzare la Flash che salva il Bitstream FPGA; alcuni possono salvare il flusso di bit FPGA e altri possono salvare i risultati della compilazione dei programmi incorporati. Questo è un metodo pratico ed economico.
Puoi vedere il capitolo 2 Istruzioni per il collegamento del cavo di debug, capitolo
3 Istruzioni per l'uso per RDS e capitolo 4 Progetto di riferimento per i passaggi dettagliati.
Istruzioni per la connessione del cavo di debug
RDS + AE250 utilizza il cavo di debug AICE-MINI+ per impostazione predefinita; l'esterno è mostrato a sinistra nella Figura 2-1, e i perni sono mostrati a destra nella Figura 2-1. È un'interfaccia a 12 pin. Si noti che il pin 1 è vuoto nella figura. Quando il cavo è correttamente collegato e l'RDS è aperto, il LED rosso contrassegnato dal riquadro giallo in figura si spegnerà.
Figura 2-1 Cavo di debug AICE-MINI+ e relativi pin
La definizione dei pin del cavo di debug AICE-MINI+ è mostrata nella Tabella 2-1. Si noti che il Pin 1 è definito No Connection (NC), corrispondente a quello vuoto. VREF deve collegare un pin di alimentazione da 3.3 V e GND deve solo collegare il pin 3 o il pin 5.
Tabella 2-1 Definizione dei pin del cavo di debug AICE-MINI+
Numero PIN | Pin del cavo di debug AICE-MINI+ |
1 | NC |
2 | Tsrst_n |
3 | Terra |
4 | TTMS |
5 | Terra |
6 | TCK |
7 | VREF |
8 | NC |
9 | NC |
10 | TTRST_N |
11 | TDO |
12 | TDI |
Utilizzare le istruzioni per RDS
Installazione dell'RDS
Decomprimi il pacchetto di installazione e inserisci Windows/Disk1; fare doppio clic su setup.exe per installarlo. Durante l'installazione non sono necessarie impostazioni speciali. Durante l'installazione, verrà visualizzata una finestra di dialogo che chiede se installare il driver, selezionare sì. Per le fasi di installazione, vedere
AndeSight_RDS_v3.2_Installation_Guide_UM207_V1.0.pdf, che si trova nel pacchetto di installazione.
- Quando si imposta il percorso di installazione e il percorso dell'area di lavoro, non includere caratteri cinesi o spazi, altrimenti verrà visualizzato un errore di runtime.
- La versione corrente di RDS supporta il cavo AICE-MINI+ per impostazione predefinita.
- Il programmatore GOWIN potrebbe non essere in grado di connettersi alla scheda di sviluppo dopo l'installazione di RDS, problema che può essere risolto reinstallando il driver del programmatore Gowin.
- Per numero di serie e certificato files, si prega di contattare Gowin Semiconductor Corp.
Crea un nuovo progetto
Clic File > New > Project > Andes C project > Next on RDS interface per accedere all'interfaccia di configurazione di New C Project, come mostrato nella Figura 3-1.
Figura 3-1 Crea un nuovo progetto
Per il nuovo progetto C, è necessario configurare i seguenti parametri:
- Nome del progetto
- Posizione: la posizione predefinita è l'area di lavoro corrente.
- Connection Configuration è impostato su ICE, a indicare che la scheda di sviluppo è collegata tramite il cavo di debug ICE. Se l'emulatore viene utilizzato come piattaforma di test, selezionare SID.
- Per ChipProfile, selezionare ADP-AE250-N25-GOWIN, che è ottimizzato secondo Gowin FPGA.
- Il tipo di progetto include un progetto vuoto e un progetto Hello World ANSI C.
- Per Toolchain, nds32le-elf-mculib-v5m è l'impostazione predefinita.
Dopo aver creato un nuovo progetto, fare clic con il pulsante destro del mouse sul nome del progetto in Esplora progetti, selezionare Crea progetto dal menu a discesa o fare clic su " " sulla barra degli strumenti per compilare e collegare il progetto; seleziona Pulisci progetto dal menu a tendina per pulire il progetto.
Importa ed esporta un progetto
Fare clic con il tasto destro sullo spazio di Project Explorer per selezionare "Importa" o "Esporta", come mostrato nella Figura 3-2.
Figura 3-2 Importa/Esporta un progetto
Fare clic su "Importa > Generale > Progetto esistente nell'area di lavoro" per importare un progetto e l'interfaccia è come mostrato nella Figura 3-3. Selezionando “Select root directory”, importare il progetto nella cartella; selezionando “Select archive fil”, importare il progetto in zip.
Figura 3-3 Importa un progetto
Seleziona “Esporta… > Archivia File” per aprire l'interfaccia del progetto di esportazione, come mostrato nella Figura 3-4. Dopo aver selezionato il progetto da esportare, il formato di compressione, il percorso di salvataggio, ecc. è possibile completare l'esportazione.
Figura 3-4 Esporta un progetto
Scarica i programmi in Flash
AE250 supporta l'avvio da Flash, quindi legge il programma incorporato da Flash tramite l'interfaccia SPI e lo memorizza in ILM, quindi il programma incorporato viene eseguito. Il metodo consigliato è riutilizzare SPI Flash che salva FPGA Bitstream; utilizzare la prima metà di Flash per salvare il bitstream FPGA e la restante per salvare il binario files di programmi incorporati.
- Apri il generatore di core IP in Gowin Software e chiama i parametri AE250 RTL. Fare doppio clic sull'SMU per aprire l'interfaccia SMU e impostare "System Reset Vector Default" su 0x80400000, come mostrato nella Figura 3-5. Imposta lo spazio di SPI Flash 0~0x400000 con un totale di 4M byte come indirizzo di salvataggio di Bitstream; a partire da 0x400000 viene utilizzato come indirizzo di salvataggio del binario files di programmi incorporati.
Figura 3-5 Valore predefinito del vettore di ripristino del sistema
- Fare doppio clic su SPI1 per aprire l'interfaccia SPI1, selezionare "SPI1 Support" e impostare "SPI1 Memory Map Space Base Address" su 0x80400000, come mostrato nella Figura 3 6.
Figura 3-6 Configurazione SPI1
- Nei vincoli fisici della progettazione RTL, l'interfaccia SPI1 deve essere collegata a SPI Flash e l'interfaccia SPI1 deve essere fisicamente vincolata in base alla tabella seguente. Per diversi chip FPGA, anche la posizione dell'interfaccia MSPI è diversa e il vincolo dovrebbe essere specifico per la situazione specifica.
Tabella 3-1 Vincoli fisici dell'interfaccia SPI1Interfaccia AE250 SPI1 Interfaccia MSPI FPGA CSN McSn Orologio Mclk MISO MSO MOSI MSI - Riutilizza l'interfaccia MSPI come normale IO. Nella finestra "Processo" di Gowin Software, fare clic con il pulsante destro del mouse su "Posiziona e instrada", selezionare "Configurazione" nel menu a comparsa; selezionare la scheda "Dual Purpose Pin" e selezionare "Use MSPI as regular IO" e fare clic su "OK" per terminare il posizionamento e il routing.
Figura 3-7 Impostare l'interfaccia MSPI su IO regolare
- Modificare le impostazioni dei parametri del programma integrato. Innanzitutto, modifica i parametri del bootloader nello script del linker. Poiché lo script del linker nel programma integrato AE250 viene generato automaticamente da SAG file, dovrebbe essere modificato nel SAG file. Aprire ae250.sag, trovare BOOTLOADER e modificarlo al valore di System Reset Vector Default nella progettazione RTL, come mostrato nella Figura 3-8. Quindi modificare config.h. Apri src/bsp/config/config.h e trova la definizione della macro
"BUILD_MODE" e modificarlo in "BUILD_BURN".
Figura 3-8 Impostazione dei parametri del bootloader ae250.sag
Nota!
-
- Il parametro deve essere coerente con il valore di System Reset Vector Default del parametro RTL.
- Modificare le impostazioni della compilazione; fare clic con il pulsante destro del mouse sul nome del progetto incorporato, selezionare Build Settings; selezionare la scheda "Objcopy > Generale" e deselezionare "Disabilita". (Non generare automaticamente l'output file.)
Ricompilare il programma incorporato per generare il binario files del progetto incorporato e scaricare il file files all'indirizzo SPI Flash 0x400000 utilizzando la modalità Flash C Bin esterna del programmatore Gowin.
Sintetizza, posiziona e instrada nuovamente il progetto RTL modificato e scaricalo nell'indirizzo SPI Flash 0x000000 utilizzando la modalità Flash esterna del programmatore Gowin.
Debug su chip
Dopo la compilazione, i risultati della compilazione del progetto integrato possono essere scaricati sulla scheda di sviluppo per il debug on-chip.
Modifica config.h; apri src/bsp/config/config.h e trova la definizione della macro BUILD_MODE; modificarlo in BUILD_LOAD e ricompilare il programma incorporato.
Fare clic con il pulsante destro del mouse sul nome del progetto in Esplora progetti e selezionare "Debug come > Programma MCU" dal menu a discesa. Per la prima volta, verrà visualizzata una finestra di dialogo per l'impostazione della “Configurazione di debug”, come mostrato nella Figura 3-9.
Figura 3-9 Configurazioni di debug
Nella scheda "Avvio", seleziona l'opzione "Ripristina e mantieni" per arrestare il programma prima di eseguire la prima istruzione. Immettere load nella casella del parametro sotto questa opzione per scaricare i risultati della compilazione del progetto integrato nell'ILM prima del debug su chip.
In "Opzioni di runtime", seleziona "Imposta punto di interruzione a". Immettere un'etichetta, ad esempio principale nella casella di immissione. Può impostare un punto di interruzione all'inizio della funzione principale. Seleziona "Riprendi" e avvierà l'operazione continua subito dopo l'accesso al debug su chip.
Quando si accede al debug on-chip, passa automaticamente al debug view e verrà visualizzata un'area, come mostrato nella Figura 3-10. Quest'area è l'area operativa per il debug su chip. Alcuni pulsanti di scelta rapida per il debug sono mostrati nella casella rossa. Da sinistra a destra, significano riavviare DEBUG, continuare a eseguire, sospendere, terminare, disconnettersi, collegarsi a un processo, entrare, passare sopra, tornare indietro e modalità di passaggio delle istruzioni; in questa modalità, ogni volta che esegue un'istruzione di assemblaggio risc – v, altrimenti ogni volta che esegue un'istruzione C.
Nota!
Le icone grigie indicano che non sono disponibili in questo momento.
Fare doppio clic a sinistra sul numero di riga nel testo del codice per impostare rapidamente punti di interruzione o annullare i punti di interruzione e fare clic con il pulsante destro del mouse nel testo del codice per selezionare "corri alla riga" dal menu a comparsa.
Figura 3-10 Introduzione ai pulsanti di debug
La Figura 3-11 è una finestra delle istruzioni di assemblaggio che visualizza il contenuto delle istruzioni di assemblaggio in esecuzione in tempo reale in ILM.
Figura 3-11 Finestra Codice istruzione di assemblaggio
Utilizzo del terminale seriale integrato RDS
La Figura 3-12 mostra il terminale UART integrato nell'interfaccia RDS. Se è necessario utilizzare, fare clic su "Finestra> Mostra View > Terminale" nel menu in alto per aprire la finestra "Terminale", quindi fare clic su "apri un terminale" per creare un nuovo terminale seriale. Dopo aver impostato il numero di porta (che può essere viewed in Gestore hardware), baud rate e altri parametri, fare clic su "OK" per iniziare a utilizzare.
Figura 3-12 Terminale seriale integrato RDS
Per i dettagli, consultare il documento
AndeSight_RDS_v3.1_User_Manual_UM170_V1.0.pdf, che si trova nel percorso doc della directory di installazione.
Progetto di riferimento
Codice progetto
La chiave files nel modello di progetto integrato AE250 sono i seguenti:
- src/bsp/ae250/ae250.h: Questo file contiene la definizione dell'orologio di sistema, la definizione del registro periferico, la definizione della mappatura dell'indirizzo del registro periferico e la definizione del numero sorgente degli interrupt. La definizione del clock deve essere coerente con la configurazione dei parametri dell'AE250.
- src/bsp/ae250/ae250.c: la funzione reset_handler è la voce per avviare il programma incorporato. Nella voce, l'inizializzazione UART viene eseguita prima che venga eseguita la funzione principale. La porta UART richiesta è selezionata e la velocità di trasmissione richiesta è configurata in base alla configurazione dei parametri di AE250.
- src/bsp/ae250/interrupt.c: Questo file è la definizione delle funzioni di gestione degli interrupt di AE250
- src/bsp/config/config.h: Questo file contiene la definizione della macro che controlla il metodo di compilazione. #define BUILD_MODE può essere definito come BUILD_LOAD o BUILD_BURN. BUILD_LOAD significa che il programma viene caricato direttamente in ILM e viene generalmente utilizzato durante il debug. BUILD_BURN significa che il programma viene scaricato su SPI Flash e il programma viene letto da SPI Flash a ILM prima dopo l'accensione e quindi eseguito, che è applicabile alla versione di rilascio del programma.
- Start.S: L'antipasto file scritto in linguaggio assembly.
- src/bsp/loader.c: bootloader file, utilizzato per l'avvio da SPI Flash.
- ae250.sag: Sag è lo script in formato scattering-and-gathering. È usato per generare lo script del linker. Va notato che i parametri della mappa di memoria in ae250.sag devono essere coerenti con quelli in AE250.
- src/bsp/driver: questa directory contiene due cartelle, ae250 è il codice del driver AE250, include è l'interfaccia di chiamata delle funzioni del driver.
- src/bsp/lib: ne contiene due fileS. In printf.c, la forma della sottofunzione nella libreria standard C viene ridefinita per produrre informazioni printf tramite UART. In read.c, c'è una semplice funzione per leggere le informazioni di input tramite UART.
Progetto di riferimento
Dopo l'installazione, è possibile trovare diversi progetti di riferimento di base nella cartella demo della directory di installazione o nello zip del progetto di riferimento in webluogo; il progetto di riferimento può essere caricato in RDS per prova, debug e riqualificazione tramite importazione. I progetti di riferimento sono mostrati come segue:
- ae250_demo: dimostra l'input/output UART e l'output GPIO dell'AE250.
- ae250_plic: dimostra la risposta del controller di interrupt agli interrupt e fornisce dimostrazioni del timer macchina e del timer pit.
- ae250_freertos: dimostra che le porte AE250 sono incorporate
sistema operativo in tempo reale FreeRTOS multi-threading programma in esecuzione. - ae250_ucosiii: dimostra che le porte AE250 incorporano il programma in esecuzione multi-threading uC/OS-III del sistema operativo in tempo reale.
Documenti / Risorse
![]() |
Scheda di sviluppo GOWIN FPGA Programmazione RISCV [pdf] Guida utente Scheda di sviluppo FPGA Programmazione RISCV, Programmazione scheda RISCV, Sviluppo FPGA Programmazione RISCV, Programmazione RISCV, Scheda RISCV |