GOWIN FPGA Development Board RISCV Programming
Hak Cipta © 2022 Guangdong Gowin Semiconductor Corporation. Sadaya hak disimpen.
mangrupakeun mérek dagang ti Guangdong Gowin Semiconductor Corporation tur didaptarkeun di Cina, Kantor Patén jeung Mérek dagang AS, jeung nagara séjén. Sadaya kecap sareng logo sanés anu diidentifikasi minangka mérek dagang atanapi merek jasa mangrupikeun hak milik anu gaduhna. Euweuh bagian tina dokumén ieu bisa dihasilkeun atawa dikirimkeun dina formulir naon atawa ku naon ngalambangkeun, éléktronik, mékanis, photocopying, ngarékam atawa lamun heunteu, tanpa idin tinulis saméméhna ti GOWINSEMI.
Bantahan
GOWINSEMI henteu nanggung tanggung jawab sareng henteu masihan jaminan (boh dinyatakeun atanapi tersirat) sareng henteu nanggungjawaban kana sagala karusakan anu ditanggung kana hardware, parangkat lunak, data, atanapi harta anjeun akibat tina pamakean bahan atanapi harta intelektual kecuali anu digariskeun dina Sarat sareng Kaayaan GOWINSEMI tina Sale. Sadaya inpormasi dina dokumén ieu kedah diperlakukeun salaku awal. GOWINSEMI tiasa ngarobih kana dokumén ieu iraha waé tanpa aya bewara sateuacanna. Saha waé anu ngandelkeun dokuméntasi ieu kedah ngahubungi GOWINSEMI pikeun dokuméntasi sareng kasalahan ayeuna.
Riwayat révisi
titimangsa | Vérsi | Katerangan |
04/29/2019 | 1.0E | Vérsi awal diterbitkeun. |
11/11/2022 |
1.1E |
|
Bubuka
AE250 Bubuka
AE250 nyaéta sistem RISC-V MCU 32-bit; struktur na ditémbongkeun dina Gambar 1-1.
Gambar 1-1 Diagram Struktur AE250
Dumasar kana papan pangembangan Gowin FPGA, pamekaran sareng sistem debugging RISC-V AE250 MCU dipidangkeun dina Gambar 1-2.
Angka 1-2 Diagram Struktur Sistem Pangwangunan sareng Debugging
Chip FPGA dina papan pamekaran dikonpigurasikeun salaku AE250 MCU nganggo Gowin Programmer dina PC, saatos Kabel Debug disambungkeun, anjeun tiasa ngalaksanakeun pamekaran program anu dipasang sareng debugging nganggo parangkat lunak AndeSight RDS v311.
Persiapan
Sateuacan nganggo Gowin FPGA sareng AE250 pikeun pangwangunan sareng debugging, alat-alat ieu kedah disiapkeun:
- Gowin GW2A runtuyan dewan ngembangkeun FPGA.
- Paket instalasi Gowin Software pikeun ngonpigurasikeun sareng ngaunduh chip FPGA.
- AndeSight RDS v311 pakét instalasi pikeun ngembangkeun sarta debugging program embedded.
- Kabel Debug dianggo pikeun ngaunduh sareng nga-debug program anu dipasang, sareng standarna nyaéta AICE-MINI +; pamaké kudu meuli eta ku sorangan.
Catetan!
- Upami peryogi ngaluarkeun inpormasi ngalangkungan UART, peryogi kabel UART ka USB.
- periferal séjén pikeun dipaké diperlukeun.
Ngembangkeun sarta Debugging Léngkah
Léngkah dasar pikeun ngembangkeun sareng debugging RISC-V AE250 MCU dumasar kana papan pangembangan GW2A-55C nyaéta kieu:
- Pasang parangkat lunak: Gowin Software dianggo pikeun ngonpigurasikeun sareng ngahasilkeun desain AE250 RTL sareng ngahasilkeun Bitstream file tina rarancang; Parangkat lunak AndeSight RDS v311 dianggo pikeun ngembangkeun sareng debug program anu dipasang; softwares sejen tur drivers pikeun debugging ogé diperlukeun.
- Konpigurasikeun catu daya sareng undeuran kabel papan pangembangan. The Bitstream file tina AE250_chip diundeur ka chip FPGA dina dewan ngembangkeun ngagunakeun Gowin Programmer, sarta AE250 dijalankeun dina dewan ngembangkeun.
- Buka parangkat lunak RDS pikeun nyiptakeun proyék énggal atanapi muka proyék anu tos aya pikeun encoding, kompilasi sareng operasi anu sanés. Sambungkeun kabel Debug dipaké pikeun AE250 debugging, ngundeur hasil kompilasi proyék kana memori instruksi (ILM) dina AE250, tur mimitian debugging on chip.
- Salila debugging, anjeun tiasa nganggo UART kana kabel USB pikeun nyambungkeun antarbeungeut UART of AE250 ka PC, nganggo terminal serial diwangun-di RDS pikeun operasi input sarta output. Anjeun tiasa nganggo GPIO pikeun nyambungkeun kana indikator LED, kenop, atanapi pin éksternal pikeun operasi input/output; I2C, SPI, Ethernet, sareng périferal sanésna ogé tiasa dipilih pikeun dianggo.
- AE250 bisa nyambung ka Flash via SPI, ngundeur hasil kompilasi program embedded ka Flash maké Gowin Programmer; lamun chip kasebut Powered on, AE250 bakal otomatis maca program embedded di SPI Flash tur mimitian. Anjeun tiasa make deui Flash nu nyimpen FPGA Bitstream; sababaraha tiasa nyimpen bitstream FPGA, jeung nu lianna bisa nyimpen hasil kompilasi program embedded. Ieu métode praktis tur ekonomis.
Anjeun tiasa ningali bab 2 Debug Cable Connection Parentah, bab
3 Paké Parentah pikeun RDS, jeung bab 4 Desain Rujukan pikeun léngkah lengkep.
Parentah Sambungan Cable Debug
RDS + AE250 nganggo kabel debug AICE-MINI + sacara standar; exterior ditémbongkeun di kénca dina Gambar 2-1, jeung pin ditémbongkeun di katuhu dina Gambar 2-1. Ieu mangrupakeun panganteur 12-pin. Ieu kudu dicatet yén pin 1 kosong dina gambar. Nalika kabel disambungkeun leres sareng RDS dibuka, lampu LED beureum anu ditandaan kotak konéng dina gambar bakal pareum.
Gambar 2-1 Kabel Debug AICE-MINI+ sareng Pin na
Definisi pin tina kabel debug AICE-MINI + nyaéta ditémbongkeun saperti dina Tabel 2-1. Ieu kudu dicatet yén Pin 1 diartikeun No Connection (NC), pakait jeung hiji kosong. VREF kedah nyambungkeun pin kakuatan 3.3V, sareng GND ngan ukur kedah nyambungkeun pin 3 atanapi pin 5.
meja 2-1 AICE-MINI + Debug Cable Pin Harti
Nomer Pin | AICE-MINI + Debug Cable Pin |
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 |
Paké Parentah pikeun RDS
Pamasangan RDS
Buka zip pakét instalasi tur lebetkeun Windows / Disk1; klik dua kali setup.exe pikeun masang éta. Taya setélan husus diperlukeun salila instalasi. Salila pamasangan, kotak dialog bakal muncul naroskeun naha masang supir, mangga pilih enya. Pikeun léngkah instalasi, tingali
AndeSight_RDS_v3.2_Installation_Guide_UM207_V1.0.pdf, nu bisa kapanggih dina pakét instalasi.
- Nalika netepkeun jalur pamasangan sareng jalur ruang kerja, ulah kalebet karakter atanapi rohangan Cina, atanapi bakal aya kasalahan runtime.
- Versi RDS ayeuna ngadukung Kabel AICE-MINI+ sacara standar.
- GOWIN Programmer bisa jadi teu bisa nyambung ka dewan ngembangkeun sanggeus masang RDS, nu bisa dibenerkeun ku reinstall supir Gowin Programmer.
- Pikeun nomer séri sareng sertipikat files, mangga ngahubungan Gowin Semiconductor Corp.
Jieun Proyék Anyar
Pencét File > New > Project > Andes C project > Next on RDS interface pikeun ngasupkeun panganteur konfigurasi New C Project, ditémbongkeun saperti dina Gambar 3-1.
Gambar 3-1 Jieun Proyék Anyar
Pikeun proyék C anyar, parameter di handap ieu kedah dikonpigurasikeun:
- Ngaran proyék
- Lokasi: Lokasi standar nyaéta ruang kerja ayeuna.
- Konfigurasi Sambungan disetel ka ICE, nunjukkeun yén dewan ngembangkeun disambungkeun maké kabel debug ICE. Lamun émulator dipaké salaku platform test, mangga pilih SID.
- Pikeun Chip Profile, pilih ADP-AE250-N25-GOWIN, nu dioptimalkeun nurutkeun Gowin FPGA.
- Jenis Proyék kalebet Proyék Kosong sareng Proyék Hello World ANSI C.
- Pikeun Toolchains, nds32le-elf-mculib-v5m mangrupikeun standar.
Saatos nyiptakeun proyék énggal, klik katuhu dina nami proyék dina Project Explorer, pilih Build Project tina ménu turun-handap atanapi klik "" dina tulbar pikeun nyusun sareng ngaitkeun proyék; pilih Bersih Project tina menu turun-handap pikeun nyieun proyék bersih.
Impor sareng Ékspor Proyék
Klik katuhu dina spasi Project Explorer pikeun milih "Impor" atawa "Ékspor", ditémbongkeun saperti dina Gambar 3-2.
Gambar 3-2 Impor / Ékspor Proyék
Pencét "Impor> Umum> Proyék anu aya kana ruang kerja" pikeun ngimpor proyék, sareng antarmuka sapertos anu dipidangkeun dina Gambar 3-3. Nalika milih "Pilih diréktori akar", impor proyék dina polder; lamun milih "Pilih arsip fil", impor proyék di pos.
Gambar 3-3 Impor Proyék
Pilih "Ékspor…> Arsip File” pikeun muka panganteur proyék ékspor, ditémbongkeun saperti dina Gambar 3-4. Saatos milih proyék pikeun diékspor, format komprési, simpen jalur, jsb anjeun tiasa ngalengkepan ékspor.
Gambar 3-4 Ékspor Proyék
Unduh Program kana Flash
AE250 ngarojong mimitian ti Flash, lajeng maca program embedded ti Flash via panganteur SPI tur nyimpen eta di ILM, lajeng program embedded dieksekusi. Metodeu anu disarankeun nyaéta nganggo deui SPI Flash anu ngahémat FPGA Bitstream; ngagunakeun satengah munggaran Flash pikeun nyimpen FPGA Bitstream, sarta sésana pikeun nyimpen binér files tina program embedded.
- Buka generator inti IP dina Software Gowin sareng nelepon parameter AE250 RTL. Ganda-klik SMU pikeun muka panganteur SMU tur nyetel "System Reset Véktor Default" ka 0x80400000, ditémbongkeun saperti dina Gambar 3-5. Setel rohangan SPI Flash 0~0x400000 kalayan jumlahna 4M bait salaku alamat simpen Bitstream; mimitian ti 0x400000 dipaké salaku nyimpen alamat binér files tina program embedded.
angka 3-5 System Reset Véktor Default
- Klik dua kali SPI1 pikeun muka panganteur SPI1, pariksa "SPI1 Rojongan", tur nyetel "SPI1 Mémori Peta Spasi Alamat Base" ka 0x80400000, ditémbongkeun saperti dina Gambar 3 6.
angka 3-6 SPI1 Konfigurasi
- Dina konstrain fisik desain RTL, panganteur SPI1 kudu disambungkeun ka SPI Flash, sarta panganteur SPI1 kudu fisik konstrain nurutkeun tabel di handap ieu. Pikeun chip FPGA béda, lokasi panganteur MSPI ogé béda, sarta konstrain kudu husus pikeun situasi husus.
meja 3-1 SPI1 Interface Konstrain fisikAE250 SPI1 panganteur FPGA MSPI Interface CSN MCSN CLK MCLK Mano MSO Batu mosa MSI - Paké deui panganteur MSPI sakumaha IO biasa. Dina jandela "Prosés" Software Gowin, klik katuhu "Tempat & Rute", pilih "Konfigurasi" dina menu pop-up; pilih tab "Dual Tujuan Pin", jeung pariksa "Paké MSPI sakumaha IO biasa" teras klik "OK" pikeun panempatan rengse tur routing.
Angka 3-7 Setel Interface MSPI ka IO Biasa
- Robah setélan parameter program anu dipasang. Mimiti, modifikasi parameter bootloader dina skrip linker. Kusabab naskah linker dina program embedded AE250 otomatis dihasilkeun ku SAG file, eta kudu dirobah dina SAG file. Buka ae250.sag, manggihan BOOTLOADER sarta ngaropea kana nilai System Reset Véktor Default dina desain RTL, ditémbongkeun saperti dina Gambar 3-8. Lajeng ngaropéa config.h. Buka src/bsp/config/config.h, sarta manggihan harti makro
"BUILD_MODE" sareng robih janten "BUILD_BURN".
angka 3-8 ae250.sag bootloader Parameter Parameter
Catetan!
-
- Parameter kedah konsisten sareng nilai System Reset Vector Default tina parameter RTL.
- Robah setélan kompilasi; klik katuhu ngaran proyék embedded, pilih Build Setélan; pilih tab "Objcopy> Umum", teras pupus centang "Pareuman". (Ulah otomatis ngahasilkeun kaluaran file.)
Recompile program embedded pikeun ngahasilkeun binér files tina proyék embedded, tur ngundeur éta files mun SPI Flash 0x400000 alamat maké Gowin Programmer éksternal Flash C Bin mode.
Sintésis jeung tempat & ruteu desain RTL dirobah deui, tur ngundeur ka alamat SPI Flash 0x000000 maké Gowin Programmer mode Flash éksternal.
Dina-chip Debug
Saatos kompilasi, hasil kompilasi tina proyék anu dipasang tiasa diunduh ka papan pangembangan pikeun debug on-chip.
Ngaropéa config.h; buka src/bsp/config/config.h, sarta manggihan harti makro BUILD_MODE; modifikasi kana BUILD_LOAD, sareng kompilasi deui program anu dipasang.
Klik-katuhu dina nami proyék dina Project Explorer, teras pilih "Debug salaku> Program MCU" tina menu turun-handap. Pikeun kahiji kalina, kotak dialog bakal pop up pikeun netepkeun "Konfigurasi Debug", ditémbongkeun saperti dina Gambar 3-9.
Angka 3-9 Konfigurasi Debug
Dina tab "Ngamimitian", pariksa "Reset jeung Tahan" pilihan pikeun ngeureunkeun program saméméh executing parentah munggaran. Lebetkeun beban dina kotak parameter di handap pilihan ieu pikeun ngaunduh hasil kompilasi proyek anu dipasang kana ILM sateuacan debug on-chip.
Dina "Pilihan Runtime", pariksa "Set breakpoint di". Lebetkeun labél, sapertos utama dina kotak input. Éta tiasa nyetél breakpoint dina awal fungsi utama. Pariksa "Resume", sarta eta bakal ngamimitian operasi kontinyu langsung saatos ngasupkeun on-chip debug.
Nalika ngasupkeun on-chip debug, éta otomatis balik ka debug view sarta wewengkon bakal dipintonkeun, ditémbongkeun saperti dina Gambar 3-10. Wewengkon ieu mangrupikeun daérah operasi pikeun debug on-chip. Sababaraha tombol potong kompas pikeun debug dipintonkeun dina kotak beureum. Ti kénca ka katuhu, aranjeunna hartosna ngabalikan deui DEBUG, terus ngajalankeun, ngagantungkeun, mungkas, pegatkeun sambungan, numbu ka hiji prosés, lengkah kana, step over, step balik, sarta instruksi stepping mode; dina modeu ieu, unggal waktos eta ngajalankeun hiji risc - v instruksi assembly, disebutkeun unggal waktos eta ngajalankeun hiji pernyataan C.
Catetan!
Ikon abu-abu hartosna aranjeunna henteu sayogi ayeuna.
Ganda klik kénca dina nomer garis dina téks kode pikeun gancang set breakpoints atawa ngabolaykeun breakpoints, sarta klik katuhu dina téks kode pikeun milih "ngajalankeun ka garis" ti menu pop-up.
Gambar 3-10 Tombol Debug Bubuka
Gambar 3-11 mangrupa jandela pernyataan assembly nu mintonkeun eusi parentah assembly ngajalankeun sacara real waktu di ILM.
angka 3-11 Majelis Instruksi Code Jandela
RDS Diwangun-di Pamakéan Terminal Serial
angka 3-12 nembongkeun Terminal UART diwangun dina panganteur RDS. Upami anjeun kedah nganggo, klik "Jandela> Tembongkeun View > Terminal" dina menu luhur pikeun muka jandela "Terminal", lajeng klik "buka terminal" pikeun nyieun terminal serial anyar. Saatos netepkeun nomer port (anu tiasa viewed dina manajer hardware), laju baud sareng parameter sanésna, klik "OK" pikeun ngamimitian nganggo.
angka 3-12 RDS Diwangun-di Terminal Serial
Pikeun detil, tingali dokumén
AndeSight_RDS_v3.1_User_Manual_UM170_V1.0.pdf, nu bisa kapanggih dina jalur doc tina diréktori instalasi.
Desain Rujukan
Kodeu Proyék
koncina files dina template proyék anu dipasang AE250 nyaéta kieu:
- src/bsp/ae250/ae250.h: Ieu file ngandung harti jam sistem, harti register periferal, harti pemetaan alamat register periferal, sarta interrupts harti angka sumber. Watesan jam kedah konsisten sareng konfigurasi parameter AE250.
- src/bsp/ae250/ae250.c: Fungsi reset_handler nyaéta éntri pikeun ngamimitian program anu dipasang. Dina entri, initialization UART dipigawé saméméh fungsi utama dieksekusi. port UART diperlukeun dipilih sarta laju baud diperlukeun keur ngonpigurasi nurutkeun konfigurasi parameter tina AE250.
- src/bsp/ae250/interrupt.c: Ieu file mangrupa harti interupsi fungsi Handler of AE250
- src/bsp/config/config.h: Ieu file ngandung harti makro nu ngatur métode kompilasi. #define BUILD_MODE bisa dihartikeun BUILD_LOAD atawa BUILD_BURN. BUILD_LOAD hartina program ieu dimuat langsung kana ILM, sarta umumna dipaké nalika debugging. BUILD_BURN hartina program ieu diundeur ka SPI Flash, sarta program ieu dibaca ti SPI Flash mun ILM munggaran sanggeus kakuatan on, lajeng ngajalankeun, nu lumaku pikeun ngaleupaskeun program versi.
- Start.S: Nu ngamimitian file ditulis dina basa rakitan.
- src/bsp/loader.c: bootloader file, nu dipaké pikeun ngamimitian ti SPI Flash.
- ae250.sag: Sag nyaéta skrip format paburencay-na-ngumpul. Éta dianggo pikeun ngahasilkeun skrip linker. Ieu kudu dicatet yén parameter peta memori dina ae250.sag kudu konsisten kalayan maranéhanana di AE250.
- src / bsp / supir: Diréktori ieu ngandung dua polder, ae250 nyaéta AE250 kode supir, kaasup nyaéta panggero panganteur fungsi supir.
- src/bsp/lib: Ieu ngandung dua files. Dina printf.c, wangun subfungsi dina perpustakaan standar C didefinisikeun deui pikeun kaluaran informasi printf ngaliwatan UART. Dina read.c, aya fungsi basajan pikeun maca informasi input ngaliwatan UART.
Desain Rujukan
Saatos pamasangan, sababaraha desain rujukan dasar tiasa dipendakan dina folder demo diréktori pamasangan atanapi dina desain rujukan zip di websitus; desain rujukan bisa dimuat kana RDS keur sidang, debugging na redeveloping ku cara importing. Desain rujukan ditémbongkeun saperti kieu:
- ae250_demo: Mendemonstrasikan input / output UART sareng kaluaran GPIO tina AE250.
- ae250_plic: Némbongkeun réspon controller interrupts ka interrupts, jeung nyadiakeun demonstrasi tina otomatis mesin jeung pit timer.
- ae250_freeertos: Nunjukkeun yén palabuhan AE250 dipasang
sistem operasi real-time FreeRTOS program ngajalankeun multi-threading. - ae250_ucosiii: Nunjukkeun yén palabuhan AE250 dipasang sistem operasi uC / OS-III program multi-threading sacara real-time.
Dokumén / Sumberdaya
![]() |
GOWIN FPGA Development Board RISCV Programming [pdf] Pituduh pamaké FPGA Development Board RISCV Programming, Board RISCV Programming, FPGA Development RISCV Programming, RISCV Programming, Board RISCV |