GOWIN FPGA Development Board RISCV Programado
Kopirajto © 2022 Guangdong Gowin Semiconductor Corporation. Ĉiuj rajtoj rezervitaj.
estas varmarko de Guangdong Gowin Semiconductor Corporation kaj estas registrita en Ĉinio, la Usona Oficejo pri Patento kaj Varmarko kaj aliaj landoj. Ĉiuj aliaj vortoj kaj emblemoj identigitaj kiel varmarkoj aŭ servomarkoj estas la posedaĵo de siaj respektivaj posedantoj. Neniu parto de ĉi tiu dokumento povas esti reproduktita aŭ transdonita en ajna formo aŭ per ajna indikaĵo, elektronika, mekanika, fotokopiado, registrado aŭ alie, sen la antaŭa skriba konsento de GOWINSEMI.
Malgarantio
GOWINSEMI supozas neniun respondecon kaj provizas neniun garantion (aŭ esprimitan aŭ implicitan) kaj ne respondecas pri ajna difekto kaŭzita al via aparataro, programaro, datumoj aŭ posedaĵo rezultanta de uzado de la materialoj aŭ intelekta propraĵo krom kiel skizite en la Kondiĉoj kaj Kondiĉoj de GOWINSEMI. de Vendo. Ĉiuj informoj en ĉi tiu dokumento devas esti traktataj kiel antaŭaj. GOWINSEMI povas fari ŝanĝojn al ĉi tiu dokumento iam ajn sen antaŭa avizo. Ĉiu, kiu dependas de ĉi tiu dokumentaro, kontaktu GOWINSEMI por la aktuala dokumentaro kaj eraroj.
Historio de Revizio
Dato | Versio | Priskribo |
04/29/2019 | 1.0E | Komenca versio publikigita. |
11/11/2022 |
1.1E |
|
Enkonduko
AE250 Enkonduko
AE250 estas 32-bita RISC-V MCU-sistemo; ĝia strukturo estas montrita en Figuro 1-1.
Figuro 1-1 AE250 Struktura Diagramo
Surbaze de Gowin FPGA-disvolva tabulo, la RISC-V AE250 MCU-disvolva kaj sencimiga sistemo estas montrita en Figuro 1-2.
Figuro 1-2 Diagramo pri Disvolviĝo kaj Sencimiga Sistemo
La FPGA-blato sur la disvolva tabulo estas agordita kiel AE250 MCU uzante Gowin Programmer en komputilo, post kiam la Sencimiga Kablo estas konektita, vi povas plenumi la enigitan program-disvolvadon kaj senararigon per AndeSight RDS v311-programaro.
Preparoj
Antaŭ ol uzi Gowin FPGA kaj AE250 por disvolviĝo kaj senararigado, la sekvaj iloj devas esti pretaj:
- Gowin GW2A serio de FPGA-disvolva tabulo.
- Instala pako de Gowin Programaro por agordi kaj elŝuti la FPGA-peceton.
- AndeSight RDS v311 instala pako por disvolvi kaj sencimigi la enigitan programon.
- Sencimiga Kablo estas uzata por elŝuti kaj sencimigi la enigitan programon, kaj la defaŭlta estas AICE-MINI+; uzantoj devas aĉeti ĝin memstare.
Notu!
- Se ĝi bezonas eligi informojn per UART, necesas kablo UART al USB.
- Aliaj ekstercentraj uzotaj estas bezonataj.
Evoluaj kaj Sencimigaj Paŝoj
La bazaj paŝoj por disvolvi kaj sencimigi RISC-V AE250 MCU bazitan sur la evolutabulo GW2A-55C estas jenaj:
- Instali programarojn: Gowin-Programaro estas uzata por agordi kaj generi AE250 RTL-dezajnon kaj generi la Bitstream file de la dezajno; AndeSight RDS v311-softvaro estas uzata por evoluigi kaj sencimigi enigitajn programojn; aliaj programoj kaj ŝoforoj por elpurigado ankaŭ estas postulataj.
- Agordu la nutradon kaj elŝutu kablon de la evolutabulo. La Bitstream file de AE250_chip estas elŝutita al la FPGA-blato sur la evolutabulo uzante Gowin Programmer, kaj AE250 funkcias sur la evolutabulo.
- Malfermu RDS-programaron por krei novan enigitan projekton aŭ malfermi ekzistantan projekton por kodi, kompili kaj aliajn operaciojn. Konektu la Sencimigan Kablon uzatan por elpurigado de AE250, elŝutu la projektan kompilan rezulton al la instrumemoro (ILM) en AE250, kaj komencu sencimigi sur la blato.
- Dum senararigado, vi povas uzi UART al USB-kablo por konekti la UART-interfacon de AE250 al komputilo, uzi la enkonstruitan serian terminalon en RDS por funkciigi la enigajn kaj eligajn operaciojn. Vi povas uzi GPIO por konekti al LED-indikiloj, klavoj aŭ eksteraj pingloj por enigo/eliga operacioj; I2C, SPI, Ethernet, kaj aliaj ekstercentraj ankaŭ povas esti elektitaj por uzi.
- AE250 povas konekti al Flash per SPI, elŝuti la kompilan rezulton de enigita programo al Flash uzante Gowin Programmer; kiam la blato estas ŝaltita, AE250 aŭtomate legos la enigitan programon en SPI Flash kaj komencos. Vi povas reuzi la Flash kiu savas la FPGA Bitstream; iuj povas ŝpari la FPGA-bitfluon, kaj aliaj povas ŝpari la kompilrezultojn de enigitaj programoj. Ĉi tio estas praktika kaj ekonomia metodo.
Vi povas vidi ĉapitron 2 Sencimiga Kablo-Konekto-Instrukcioj, ĉapitro
3 Uzu Instrukciojn por RDS, kaj ĉapitro 4 Referenca Dezajno por detalaj paŝoj.
Sencimiga Kablo-Konekto-Instrukcioj
RDS + AE250 uzas defaŭlte elpurigkablon AICE-MINI+; la ekstero estas montrita maldekstre en Figuro 2-1, kaj la pingloj estas montritaj dekstre en Figuro 2-1. Ĝi estas 12-pingla interfaco. Oni devas rimarki, ke pinglo 1 estas malplena en la figuro. Kiam la kablo estas ĝuste konektita kaj RDS estas malfermita, la ruĝa LED-lumo markita per flava skatolo en la figuro estingiĝos.
Figuro 2-1 AICE-MINI+ Debug Cable kaj ĝiaj Stiftoj
La pinglodifino de AICE-MINI+-sencimkablo estas kiel montrita en Tabelo 2-1. Oni devas rimarki, ke Pinglo 1 estas difinita kiel Neniu Konekto (NC), responda al la malplena. VREF bezonas konekti pinglon de 3.3V, kaj GND nur bezonas konekti la pinglon 3 aŭ la pinglon 5.
Tabelo 2-1 AICE-MINI+ Debug Cable Pin Difino
Pinnumero | AICE-MINI+ Sencimiga Kablo Pinglo |
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 |
Uzu Instrukciojn por RDS
Instalado de RDS
Malfermu la instalan pakon kaj enigu Windows/Disk1; duoble alklaku setup.exe por instali ĝin. Neniuj specialaj agordoj estas bezonataj dum instalado. Dum instalado, aperos dialogujo demandante ĉu instali la pelilon, bonvolu elekti jes. Por instalpaŝoj, vidu
AndeSight_RDS_v3.2_Installation_Guide_UM207_V1.0.pdf, kiu troviĝas en la instala pako.
- Kiam vi fiksas la instalvojon kaj laborspacan vojon, ne inkluzivu ĉinajn signojn aŭ spacon, aŭ ĝi ricevos rultempan eraron.
- La nuna versio de RDS subtenas AICE-MINI+ Cable defaŭlte.
- GOWIN Programmer eble ne povas konektiĝi al la evolutabulo post instalo de RDS, kiu povas esti riparita per reinstalo de Gowin Programmer-ŝoforo.
- Por seria numero kaj atestilo files, bonvolu kontakti Gowin Semiconductor Corp.
Kreu Novan Projekton
Klaku File > Nova > Projekto > Andes C-projekto > Poste sur RDS-interfaco por eniri la agordan interfacon de Nova C-Projekto, kiel montrite en Figuro 3-1.
Figuro 3-1 Krei Novan Projekton
Por la nova C-projekto, la sekvaj parametroj devas esti agorditaj:
- Nomo de projekto
- Loko: La defaŭlta loko estas la nuna laborspaco.
- Konekta agordo estas agordita al ICE, indikante ke la evolutabulo estas konektita per ICE-sencimiga kablo. Se la emulilo estas uzata kiel testa platformo, bonvolu elekti SID.
- Por Chip Profile, elektu ADP-AE250-N25-GOWIN, kiu estas optimumigita laŭ Gowin FPGA.
- Projekta Tipo inkluzivas Malplenan Projekton kaj Hello World ANSI C-Projekton.
- Por Ilĉenoj, nds32le-elf-mculib-v5m estas la defaŭlta.
Post krei novan projekton, dekstre alklaku la projektan nomon en la Projekta Esploristo, elektu Konstrui Projekton el la falmenuo aŭ alklaku ” ” sur la ilobreto por kompili kaj ligi la projekton; elektu Puran Projekton el la falmenuo por purigi la projekton.
Importi kaj Eksporti Projekton
Dekstre alklaku la spacon de Project Explorer por elekti "Importi" aŭ "Eksporti", kiel montrite en Figuro 3-2.
Figuro 3-2 Importi/Eksporti Projekton
Alklaku "Importu > Ĝenerala > Ekzistanta Projekto en laborspacon" por importi projekton, kaj la interfaco estas kiel montrita en Figuro 3-3. Elektante "Elektu radikan dosierujon", importu la projekton en dosierujon; elektante "Elektu arkivan dosieron", importu la projekton en zip.
Figuro 3-3 Importi Projekton
Elektu "Eksporti... > Arkivo File”por malfermi la eksportprojektan interfacon, kiel montrite en Figuro 3-4. Post elekto de la projekto por esti eksportita, kunprema formato, konservi vojon, ktp vi povas kompletigi la eksporton.
Figuro 3-4 Eksporti Projekton
Elŝutu Programojn al Flash
AE250 subtenas komenci de Flash, tiam legas la enigitan programon de Flash per SPI-interfaco kaj konservas ĝin en ILM, kaj tiam la enigita programo estas efektivigita. La rekomendita metodo estas reuzi SPI Flash kiu ŝparas FPGA Bitstream; uzu la unuan duonon de Flash por savi la FPGA Bitstream, kaj la ceterajn por savi la binaron files de enigitaj programoj.
- Malfermu la IP-kernan generatoron en Gowin Software kaj voku AE250 RTL-parametrojn. Duoble alklaku la SMU por malfermi la SMU-interfacon kaj agordi "System Reset Vector Default" al 0x80400000, kiel montrite en Figuro 3-5. Agordu la spacon de SPI Flash 0~0x400000 kun entute 4M bajtoj kiel la konservan adreson de Bitstream; komencante de 0x400000 estas uzata kiel la konserva adreso de duuma files de enigitaj programoj.
Figuro 3-5 Sistemo Restarigi Vektora Defaŭlto
- Duoble alklaku SPI1 por malfermi la SPI1-interfacon, kontrolu "SPI1 Subteno", kaj agordu "SPI1 Memory Map Space Base Address" al 0x80400000, kiel montrite en Figuro 3 6.
Figuro 3-6 Agordo de SPI1
- En la fizikaj limoj de RTL-dezajno, la SPI1-interfaco devus esti konektita al SPI Flash, kaj la SPI1-interfaco devus esti fizike limigita laŭ la sekva tabelo. Por malsamaj FPGA-fritoj, la loko de MSPI-interfaco ankaŭ estas malsama, kaj la limo devus esti specifa por la specifa situacio.
Tabelo 3-1 SPI1 Interfaco Fizikaj LimojAE250 SPI1 Interfaco FPGA MSPI-Interfaco CSN MCSN CLK MCLK MISO MSO MOSI MSI - Reuzu MSPI-interfacon kiel regulan IO. En la fenestro "Procezo" de Gowin Programaro, dekstre alklaku "Loki & Itinero", elektu "Agordo" en la ŝprucmenuo; elektu la langeton "Dual Purpose Pin" kaj kontrolu "Uzu MSPI kiel regula IO" kaj alklaku "Bone" por fini lokigon kaj enrutigon.
Figuro 3-7 Agordu MSPI-Interfacon al Regula IO
- Modifi agordojn de enigitaj programaj parametroj. Unue, modifi la parametrojn de ekŝargilo en la ligila skripto. Ĉar la ligilskripto en AE250 enigita programo estas aŭtomate generita de SAG file, ĝi devus esti modifita en la SAG file. Malfermu ae250.sag, trovu BOOTLOADER kaj modifi ĝin al la valoro de System Reset Vector Default en RTL-dezajno, kiel montrite en Figuro 3-8. Tiam modifi config.h. Malfermu src/bsp/config/config.h, kaj trovu la makroan difinon
"BUILD_MODE" kaj modifi ĝin al "BUILD_BURN".
Figuro 3-8 ae250.sag bootloader Parametroj Agordo
Notu!
-
- La parametro devas esti kongrua kun la valoro de System Reset Vector Default de la RTL-parametro.
- Modifi la kompilajn agordojn; dekstre alklaku la nomon de la enigita projekto, elektu Konstrui Agordojn; elektu la langeton "Objcopy> Ĝenerala", kaj malmarku "Malŝalti". (Ne aŭtomate generu eligon file.)
Rekompilu la enigitan programon por generi binaron files de la enigita projekto, kaj elŝutu la files al SPI Flash 0x400000 adreso uzante Gowin Programmer ekstera Flash C Bin reĝimo.
Sintezu kaj metu kaj direktu la modifitan RTL-dezajnon denove, kaj elŝutu ĝin al SPI Flash 0x000000-adreso uzante Gowin Programmer eksteran Flash-reĝimon.
Sur-blato Sencimigo
Post kompilo, la kompilorezultoj de la enigita projekto povas esti elŝutitaj al la evolutabulo por sur-blata senpurigo.
Modifi konfig.h; malfermu src/bsp/config/config.h, kaj trovu la makroan difinon BUILD_MODE; modifi ĝin al BUILD_LOAD, kaj rekompilu la enigitan programon.
Dekstre alklaku la projektan nomon en la Projekta Esploristo, kaj elektu "Elcimigi kiel > MCU-Programo" el la falmenuo. Por la unua fojo, , aperos dialogujo por agordi "Elimigi Agordon", kiel montrite en Figuro 3-9.
Figuro 3-9 Sencimigaj agordoj
En la langeto "Komenco", kontrolu la opcion "Restarigi kaj Tenu" por ĉesigi la programon antaŭ ol ekzekuti la unuan instrukcion. Enigu ŝarĝon en la parametra skatolo sub ĉi tiu opcio por elŝuti la kompilajn rezultojn de la enigita projekto en la ILM antaŭ sur-blata elpurigo.
En "Runtempaj Opcioj", kontrolu "Agordu rompopunkton ĉe". Enigu etikedon, kiel ĉefa en la enigkeston. Ĝi povas agordi rompopunkton komence de la ĉefa funkcio. Kontrolu "Rekomenci", kaj ĝi komencos la kontinuan operacion rekte post eniro de sur-blata sencimigo.
Enirinte sur-blatan sencimigon, ĝi aŭtomate iras al la sencimigo view kaj areo estos montrata, kiel montrite en Figuro 3-10. Ĉi tiu areo estas la operacia areo por sur-blata sencimigo. Kelkaj ŝparvojbutonoj por sencimigo estas montritaj en la ruĝa skatolo. De maldekstre dekstren, ili signifas rekomenci DEBUG, daŭrigi kuri, suspendi, fini, malkonekti, ligi al unu procezo, enpaŝi, transpaŝi, paŝi revenon kaj instrukcipaŝan reĝimon; en ĉi tiu reĝimo, ĉiufoje ĝi rulas risc – v kunig-instrukcion, alie ĉiufoje ĝi rulas C-instrukcion.
Notu!
La grizaj ikonoj signifas, ke ili estas neatingeblaj nuntempe.
Duoble alklaku la maldekstren sur la linionumero en la kodteksto por rapide agordi rompopunktojn aŭ nuligi rompopunktojn, kaj dekstre alklaku la kodtekston por elekti "kuru al linio" el la ŝprucmenuo.
Figuro 3-10 Sencimigaj Butonoj Enkonduko
Figuro 3-11 estas fenestro de asembloj, kiu montras la enhavon de asembleaj instrukcioj kurantaj en reala tempo en ILM.
Figuro 3-11 Asemblea Instrukcia Kodo Fenestro
RDS Enkonstruita Seria Terminal Uzado
Figuro 3-12 montras la UART-Terminalon konstruitan en RDS-interfaco. Se vi bezonas uzi, alklaku "Fenestro> Montri View > Terminalo" en la supra menuo por malfermi la fenestron "Terminalo", kaj poste alklaku "malfermu terminalon" por krei novan serian terminalon. Post fikso de la havena numero (kiu povas esti viewed en la aparatara administranto), baudrapideco kaj aliaj parametroj, alklaku "Bone" por komenci uzi.
Figuro 3-12 RDS Enkonstruita Seria Terminalo
Por la detaloj, vidu la dokumenton
AndeSight_RDS_v3.1_User_Manual_UM170_V1.0.pdf, kiu troviĝas en la doc-vojo de la instala dosierujo.
Referenca Dezajno
Projekta Kodo
La ŝlosilo files en la enigita projekta ŝablono AE250 estas jenaj:
- src/bsp/ae250/ae250.h: Ĉi tio file enhavas la sisteman horloĝdifinon, periferian registrodifinon, periferian registro-adresmapadifinon, kaj interrompas fontnumerdifinon. La horloĝdifino devas esti kongrua kun la agordo de la parametroj de AE250.
- src/bsp/ae250/ae250.c: La funkcio reset_handler estas la eniro por komenci la enigitan programon. En la eniro, UART-komencigo estas farita antaŭ ol la ĉefa funkcio estas efektivigita. La bezonata UART-haveno estas elektita kaj la bezonata baudrapideco estas agordita laŭ la parametro-agordo de AE250.
- src/bsp/ae250/interrupt.c: Ĉi tio file estas la difino de interrompaj pritraktilfunkcioj de AE250
- src/bsp/config/config.h: Ĉi tio file enhavas la makroan difinon, kiu kontrolas kompilmetodon. #define BUILD_MODE povas esti difinita kiel BUILD_LOAD aŭ BUILD_BURN. BUILD_LOAD signifas, ke la programo estas ŝarĝita rekte en ILM, kaj ĝi estas ĝenerale uzata dum senararigado. BUILD_BURN signifas, ke la programo estas elŝutita al SPI Flash, kaj la programo estas legita de SPI Flash al ILM unue post ekŝalto, kaj poste ruliĝi, kio aplikeblas al publikiga versio-programo.
- Start.S: La startigilo file skribita en asembla lingvo.
- src/bsp/loader.c: ekŝargilo file, kiu estas uzata por komenci de SPI Flash.
- ae250.sag: Sag estas la disvastig-kaj-kolekta formata skripto. Ĝi estas uzata por generi ligilan skripton. Oni devas rimarki, ke la parametroj de memormapo en ae250.sag devas esti kongruaj kun tiuj en AE250.
- src/bsp/driver: Ĉi tiu dosierujo enhavas du dosierujojn, ae250 estas AE250-ŝoforkodo, inkluzivi estas la voka interfaco de ŝoforfunkcioj.
- src/bsp/lib: Ĝi enhavas du files. En printf.c, la formo de subfunkcio en C-norma biblioteko estas redifinita por eligi printf-informojn per UART. En read.c, ekzistas simpla funkcio por legi enigajn informojn per UART.
Referenca Dezajno
Post la instalado, pluraj bazaj referencdezajnoj troveblas en la demo-dosierujo de la instala dosierujo aŭ en la referenca desegna zipo ĉe la webejo; la referencdezajno povas esti ŝarĝita en RDS por provo, senararigado kaj renovigo per la maniero de importado. La referencaj dezajnoj estas montritaj jene:
- ae250_demo: Pruvas UART-enigon/eligon kaj GPIO-eligon de la AE250.
- ae250_plic: Pruvas la respondon de la interrompregilo al interrompoj, kaj provizas pruvojn de la maŝina tempigilo kaj fosaĵtempigilo.
- ae250_freertos: Pruvas ke la AE250-havenoj enkonstruis
realtempa operaciumo FreeRTOS plurfadena rulprogramo. - ae250_ucosiii: Pruvas, ke la AE250-havenoj enkonstruis realtempan operaciumon uC/OS-III plurfadenan kurantan programon.
Dokumentoj/Rimedoj
![]() |
GOWIN FPGA Development Board RISCV Programado [pdf] Uzantogvidilo FPGA Disvolva Estraro RISCV-Programado, Estraro RISCV-Programado, FPGA-Evolua RISCV-Programado, RISCV-Programado, Estraro RISCV |