GOWIN FPGA Geliştirme Kartı RISCV Programlama

Telif hakkı © 2022 Guangdong Gowin Semiconductor Corporation. Tüm hakları Saklıdır.
Guangdong Gowin Semiconductor Corporation'ın ticari markasıdır ve Çin'de, ABD Patent ve Ticari Marka Ofisinde ve diğer ülkelerde tescillidir. Ticari markalar veya hizmet markaları olarak tanımlanan diğer tüm kelimeler ve logolar, ilgili sahiplerinin mülkiyetindedir. Bu belgenin hiçbir bölümü, GOWINSEMI'nin önceden yazılı izni olmaksızın herhangi bir biçimde veya herhangi bir biçimde, elektronik, mekanik, fotokopi, kayıt veya başka yollarla çoğaltılamaz veya iletilemez.
Sorumluluk reddi
GOWINSEMI hiçbir sorumluluk kabul etmez ve hiçbir garanti (açık veya zımni) sağlamaz ve GOWINSEMI Hüküm ve Koşullarında belirtilenler dışında, materyallerin veya fikri mülkiyetin kullanımından kaynaklanan donanım, yazılım, veri veya mülkünüzde meydana gelen herhangi bir hasardan sorumlu değildir. Satış. Bu belgedeki tüm bilgiler ön bilgi olarak değerlendirilmelidir. GOWINSEMI, önceden haber vermeksizin herhangi bir zamanda bu belgede değişiklik yapabilir. Bu belgelere güvenen herkes, mevcut belgeler ve hatalar için GOWINSEMI ile iletişime geçmelidir.
Revizyon Geçmişi
| Tarih | Sürüm | Tanım |
| 04/29/2019 | 1.0E | İlk versiyon yayınlandı. |
|
11/11/2022 |
1.1E |
|
giriiş
AE250 Tanıtımı
AE250, 32-bit RISC-V MCU sistemidir; yapısı Şekil 1-1’de gösterilmektedir.

Şekil 1-1 AE250 Yapı Diyagramı
Gowin FPGA geliştirme kartı temel alınarak RISC-V AE250 MCU geliştirme ve hata ayıklama sistemi Şekil 1-2’de gösterilmektedir.

Şekil 1-2 Geliştirme ve Hata Ayıklama Sistemi Yapı Diyagramı
Geliştirme kartındaki FPGA çipi, PC'deki Gowin Programlayıcı kullanılarak AE250 MCU olarak yapılandırılır, Debug Kablosu bağlandıktan sonra, AndeSight RDS v311 yazılımı ile gömülü program geliştirme ve hata ayıklama işlemi gerçekleştirilebilir.
Hazırlıklar
Gowin FPGA ve AE250'yi geliştirme ve hata ayıklama amacıyla kullanmadan önce aşağıdaki araçların hazırlanması gerekmektedir:
- Gowin GW2A serisi FPGA geliştirme kartı.
- FPGA çipini yapılandırmak ve indirmek için Gowin Yazılım kurulum paketi.
- Gömülü programı geliştirmek ve hata ayıklamak için AndeSight RDS v311 kurulum paketi.
- Debug Cable gömülü programı indirmek ve hata ayıklamak için kullanılır ve varsayılanı AICE-MINI+'dır; kullanıcıların bunu kendileri satın almaları gerekir.
Not!
- Eğer UART üzerinden bilgi çıkışı yapılması gerekiyorsa UART-USB kablosuna ihtiyaç vardır.
- Kullanılacak diğer çevre birimlerine ihtiyaç vardır.
Geliştirme ve Hata Ayıklama Adımları
GW250A-2C geliştirme kartına dayalı RISC-V AE55 MCU'nun geliştirilmesi ve hata ayıklamasının temel adımları aşağıdaki gibidir:
- Yazılımları yükleyin: Gowin Yazılımı, AE250 RTL tasarımını yapılandırmak ve oluşturmak ve Bitstream'i oluşturmak için kullanılır file Tasarımın; gömülü programları geliştirmek ve hata ayıklamak için AndeSight RDS v311 yazılımı kullanılır; hata ayıklama için diğer yazılımlara ve sürücülere de ihtiyaç duyulur.
- Güç kaynağını yapılandırın ve geliştirme kartının kablosunu indirin. Bitstream file AE250_chip'in kodu Gowin Programmer kullanılarak geliştirme kartındaki FPGA çipine indirildi ve AE250 geliştirme kartında çalıştırıldı.
- Yeni gömülü bir proje oluşturmak veya kodlama, derleme ve diğer işlemler için mevcut bir projeyi açmak için RDS yazılımını açın. AE250 hata ayıklaması için kullanılan Hata Ayıklama Kablosunu bağlayın, proje derleme sonucunu AE250'deki talimat belleğine (ILM) indirin ve çipte hata ayıklamaya başlayın.
- Hata ayıklama sırasında, AE250'nin UART arayüzünü PC'ye bağlamak için UART'tan USB kablosuna kullanabilir, giriş ve çıkış işlemlerini çalıştırmak için RDS'deki dahili seri terminali kullanabilirsiniz. Giriş/çıkış işlemleri için LED göstergelerine, tuşlara veya harici pinlere bağlanmak için GPIO'yu kullanabilirsiniz; I2C, SPI, Ethernet ve diğer çevre birimleri de kullanılmak üzere seçilebilir.
- AE250, SPI üzerinden bir Flash'a bağlanabilir, gömülü programın derleme sonucunu Gowin Programmer kullanarak Flash'a indirebilir; çip çalıştırıldığında, AE250 gömülü programı SPI Flash'ta otomatik olarak okuyacak ve başlayacaktır. FPGA Bitstream'ini kaydeden Flash'ı yeniden kullanabilirsiniz; bazıları FPGA bitstream'ini kaydedebilir ve diğerleri gömülü programların derleme sonuçlarını kaydedebilir. Bu pratik ve ekonomik bir yöntemdir.
Bölüm 2 Hata Ayıklama Kablo Bağlantı Talimatları, bölüm XNUMX'yi görebilirsiniz
3 Ayrıntılı adımlar için RDS Talimatlarını ve 4. Referans Tasarım bölümünü kullanın.
Hata Ayıklama Kablo Bağlantı Talimatları
RDS + AE250 varsayılan olarak AICE-MINI+ hata ayıklama kablosunu kullanır; dış kısım Şekil 2-1'de solda, pinler ise Şekil 2-1'de sağda gösterilmiştir. 12 pinli bir arayüzdür. Şekilde pin 1'in boş olduğuna dikkat edilmelidir. Kablo doğru şekilde bağlandığında ve RDS açıldığında, şekilde sarı kutuyla işaretlenmiş kırmızı LED ışığı sönecektir.
Şekil 2-1 AICE-MINI+ Hata Ayıklama Kablosu ve Pinleri

AICE-MINI+ hata ayıklama kablosunun pin tanımı Tablo 2-1'de gösterildiği gibidir. Pin 1'in boş olana karşılık gelen Bağlantı Yok (NC) olarak tanımlandığına dikkat edilmelidir. VREF'in 3.3V güç pinini bağlaması gerekir ve GND'nin yalnızca pin 3'ü veya pin 5'i bağlaması gerekir.
Tablo 2-1 AICE-MINI+ Hata Ayıklama Kablosu Pin Tanımı
| Pin Numarası | AICE-MINI+ Hata Ayıklama Kablosu Pimi |
| 1 | NC |
| 2 | TSRST_N |
| 3 | Yeraltı |
| 4 | TTMS |
| 5 | Yeraltı |
| 6 | TCK |
| 7 | VREF |
| 8 | NC |
| 9 | NC |
| 10 | TTRST_N |
| 11 | TTDO |
| 12 | TTDI |
RDS için Kullanım Talimatları
RDS Kurulumu
Kurulum paketini açın ve Windows/Disk1'e girin; kurmak için setup.exe'ye çift tıklayın. Kurulum sırasında özel bir ayar gerekmez. Kurulum sırasında, sürücüyü kurmak isteyip istemediğinizi soran bir iletişim kutusu açılır, lütfen evet'i seçin. Kurulum adımları için bkz.
Kurulum paketinde bulunan AndeSight_RDS_v3.2_Installation_Guide_UM207_V1.0.pdf.
- Kurulum yolunu ve çalışma alanı yolunu ayarlarken Çince karakterler veya boşluk eklemeyin, aksi takdirde çalışma zamanı hatası alırsınız.
- RDS'nin mevcut sürümü varsayılan olarak AICE-MINI+ Kablo'yu destekler.
- RDS kurulumundan sonra GOWIN Programmer geliştirme kartına bağlanamayabilir, bu sorun Gowin Programmer sürücüsünü yeniden yükleyerek çözülebilir.
- Seri numarası ve sertifika için files, lütfen Gowin Semiconductor Corp. ile iletişime geçin.
Yeni Bir Proje Oluştur
Tıklamak File > Yeni > Proje > Andes C projesi > Ardından, Şekil 3-1'de gösterildiği gibi, RDS arayüzünde Yeni C Projesinin yapılandırma arayüzüne girin.
Şekil 3-1 Yeni Bir Proje Oluşturun

Yeni C projesi için aşağıdaki parametrelerin yapılandırılması gerekiyor:
- Proje adı
- Konum: Varsayılan konum geçerli çalışma alanıdır.
- Bağlantı Yapılandırması ICE olarak ayarlandı, bu da geliştirme kartının ICE hata ayıklama kablosu kullanılarak bağlandığını gösterir. Emülatör bir test platformu olarak kullanılıyorsa, lütfen SID'yi seçin.
- Çip Pro içinfile, Gowin FPGA'ya göre optimize edilmiş olan ADP-AE250-N25-GOWIN'i seçin.
- Proje Türü Boş Proje ve Hello World ANSI C Projesi'ni içerir.
- Araç zincirleri için nds32le-elf-mculib-v5m varsayılan değerdir.
Yeni bir proje oluşturduktan sonra Proje Gezgini'nde proje ismine sağ tıklayın, açılan menüden Projeyi Oluştur'u seçin veya araç çubuğundaki ” ” öğesine tıklayarak projeyi derleyin ve bağlayın; açılan menüden Projeyi Temizle'yi seçerek projeyi temiz hale getirin.
Bir Projeyi İçe ve Dışa Aktarma
Şekil 3-2’de gösterildiği gibi, Proje Gezgini’nin alanına sağ tıklayarak “İçe Aktar” veya “Dışa Aktar” seçeneğini seçin.

Şekil 3-2 Bir Projeyi İçe/Dışa Aktarma
Bir projeyi içe aktarmak için “İçe Aktar > Genel > Çalışma alanına Mevcut Proje”ye tıklayın ve arayüz Şekil 3-3'te gösterildiği gibidir. “Kök dizini seç”i seçtiğinizde, projeyi klasöre içe aktarın; “Arşiv dosyasını seç”i seçtiğinizde, projeyi zip dosyasına içe aktarın.

Şekil 3-3 Bir Projeyi İçe Aktar
“Dışa Aktar… > Arşivle”yi seçin File” Şekil 3-4'te gösterildiği gibi, proje dışa aktarma arayüzünü açmak için. Dışa aktarılacak projeyi, sıkıştırma biçimini, kaydetme yolunu vb. seçtikten sonra dışa aktarmayı tamamlayabilirsiniz.
Şekil 3-4 Bir Projeyi Dışa Aktarma
Programları Flash'a İndirin
AE250, Flash'tan başlamayı destekler, ardından gömülü programı SPI arabirimi aracılığıyla Flash'tan okur ve ILM'de depolar ve ardından gömülü program yürütülür. Önerilen yöntem, FPGA Bitstream'i kaydeden SPI Flash'ı yeniden kullanmaktır; Flash'ın ilk yarısını FPGA Bitstream'i kaydetmek için ve kalanını ikiliyi kaydetmek için kullanın fileGömülü programların sayısı.
- Gowin Software'de IP çekirdek üretecini açın ve AE250 RTL parametrelerini çağırın. Şekil 0-80400000'te gösterildiği gibi SMU arayüzünü açmak için SMU'ya çift tıklayın ve "System Reset Vector Default" değerini 3x5 olarak ayarlayın. SPI Flash'ın alanını 0~0x400000 olarak ayarlayın ve Bitstream'in kayıt adresi olarak toplam 4M bayt kullanın; 0x400000'den başlayarak ikili kayıt adresi olarak kullanılır fileGömülü programların sayısı.
Şekil 3-5 Sistem Sıfırlama Vektörü Varsayılanı

- SPI1 arayüzünü açmak için SPI1'e çift tıklayın, “SPI1 Desteği”ni işaretleyin ve Şekil 1 0'da gösterildiği gibi “SPI80400000 Bellek Haritası Alanı Temel Adresi”ni 3x6 olarak ayarlayın.
Şekil 3-6 SPI1 Yapılandırması

- RTL tasarımının fiziksel kısıtlamalarında, SPI1 arayüzü SPI Flash'a bağlanmalı ve SPI1 arayüzü aşağıdaki tabloya göre fiziksel olarak kısıtlanmalıdır. Farklı FPGA çipleri için, MSPI arayüzünün konumu da farklıdır ve kısıtlama belirli duruma özgü olmalıdır.
Tablo 3-1 SPI1 Arayüzü Fiziksel KısıtlamalarıAE250 SPI1 Arayüzü FPGA MSPI Arayüzü CSN MCSN CLK MCLK MİSO MSO MOSI MSI - MSPI arayüzünü normal IO olarak yeniden kullanın. Gowin Software'in "Process" penceresinde, "Place & Route"a sağ tıklayın, açılan menüden "Configuration"ı seçin; "Dual Purpose Pin" sekmesini seçin ve "Use MSPI as regular IO"yu işaretleyin ve yerleştirme ve yönlendirmeyi tamamlamak için "OK"a tıklayın.
Şekil 3-7 MSPI Arayüzünü Normal G/Ç'ye Ayarla

- Gömülü program parametre ayarlarını değiştirin. İlk olarak, bağlayıcı betiğindeki önyükleyicinin parametrelerini değiştirin. AE250 gömülü programındaki bağlayıcı betiği SAG tarafından otomatik olarak oluşturulduğundan file, SAG'da değiştirilmelidir file. ae250.sag'ı açın, BOOTLOADER'ı bulun ve Şekil 3-8'de gösterildiği gibi RTL tasarımında System Reset Vector Default değerine değiştirin. Ardından config.h'yi değiştirin. src/bsp/config/config.h'yi açın ve makro tanımını bulun
“BUILD_MODE” komutunu çalıştırın ve “BUILD_BURN” olarak değiştirin.
Şekil 3-8 ae250.sag önyükleyici Parametreleri Ayarı

Not!
-
- Parametre, RTL parametresinin Sistem Sıfırlama Vektör Varsayılanı değeriyle tutarlı olmalıdır.
- Derleme ayarlarını değiştirin; gömülü projenin adına sağ tıklayın, Yapı Ayarları'nı seçin; “Objcopy > Genel” sekmesini seçin ve “Devre Dışı Bırak” seçeneğinin işaretini kaldırın. (Çıktıyı otomatik olarak oluşturma file.)
İkiliyi oluşturmak için gömülü programı yeniden derleyin filegömülü projenin s'sini ve indirin fileGowin Programmer harici Flash C Bin modunu kullanarak SPI Flash 0x400000 adresine s.
Değiştirilmiş RTL tasarımını tekrar sentezleyin, yerleştirin ve yönlendirin ve Gowin Programmer harici Flash modunu kullanarak SPI Flash 0x000000 adresine indirin.
Çip Üzerinde Hata Ayıklama
Derleme sonrasında gömülü projenin derleme sonuçları, yonga üzerinde hata ayıklama için geliştirme kartına indirilebilir.
config.h dosyasını değiştirin; src/bsp/config/config.h dosyasını açın ve makro tanımı BUILD_MODE'u bulun; bunu BUILD_LOAD olarak değiştirin ve gömülü programı yeniden derleyin.
Proje Gezgini'nde proje adına sağ tıklayın ve açılır menüden “Hata Ayıkla > MCU Programı”nı seçin. İlk kez, Şekil 3-9'da gösterildiği gibi “Hata Ayıklama Yapılandırması”nı ayarlamak için bir iletişim kutusu açılır.

Şekil 3-9 Hata Ayıklama Yapılandırmaları
“Başlangıç” sekmesinde, ilk talimatı yürütmeden önce programı durdurmak için “Sıfırla ve Beklet” seçeneğini işaretleyin. Yonga üzerinde hata ayıklamadan önce gömülü projenin derleme sonuçlarını ILM'ye indirmek için bu seçeneğin altındaki parametre kutusuna yükleme girin.
“Çalışma Zamanı Seçenekleri”nde “Kesme noktasını ayarla”yı işaretleyin. Giriş kutusuna main gibi bir etiket girin. Bu, main işlevinin başlangıcında bir kesme noktası ayarlayabilir. “Devam Et”i işaretleyin ve yongada hata ayıklamaya girdikten hemen sonra sürekli işlemi başlatacaktır.
Yonga üstü hata ayıklamaya girildiğinde otomatik olarak hata ayıklamaya gider view ve Şekil 3-10'da gösterildiği gibi bir alan görüntülenecektir. Bu alan, yonga üstü hata ayıklama için işlem alanıdır. Hata ayıklama için bazı kısayol düğmeleri kırmızı kutuda gösterilmiştir. Soldan sağa, bunlar DEBUG'ı yeniden başlat, çalışmaya devam et, askıya al, sonlandır, bağlantıyı kes, bir işleme bağlan, adımla, adımla geç, adımla geri dön ve talimat adımlama modu anlamına gelir; bu modda, her seferinde bir risc – v derleme talimatı çalıştırır, aksi takdirde her seferinde bir C ifadesi çalıştırır.
Not!
Gri renkli simgeler, bunların şu anda kullanılamadığı anlamına gelir.
Kod metnindeki satır numarasının soluna çift tıklayarak kesme noktalarını hızlıca belirleyebilir veya kesme noktalarını iptal edebilirsiniz ve kod metninde sağ tıklayarak açılan menüden “satıra kadar çalıştır” seçeneğini seçebilirsiniz.
Şekil 3-10 Hata Ayıklama Düğmeleri Giriş
Şekil 3-11, ILM'de gerçek zamanlı olarak çalışan montaj talimatlarının içeriğini görüntüleyen bir montaj ifadeleri penceresidir.

Şekil 3-11 Montaj Talimatı Kodu Penceresi
RDS Dahili Seri Terminal Kullanımı
Şekil 3-12, UART Terminal'in yerleşik RDS arayüzünü gösterir. Kullanmanız gerekiyorsa, “Pencere > Göster”e tıklayın View > Üst menüdeki “Terminal”e tıklayarak “Terminal” penceresini açın ve ardından yeni bir seri terminal oluşturmak için “bir terminal aç”a tıklayın. Port numarasını ayarladıktan sonra (bu viewDonanım yöneticisinde ayarlanan (bağlantı hızı ve diğer parametreler) parametreleri girdikten sonra kullanmaya başlamak için “Tamam”a tıklayın.

Şekil 3-12 RDS Dahili Seri Terminal
Ayrıntılar için belgeye bakın
Kurulum dizininin doc yolunda bulunabilen AndeSight_RDS_v3.1_User_Manual_UM170_V1.0.pdf.
Referans tasarım
Proje Kodu
Anahtar fileAE250 gömülü proje şablonundaki kodlar şu şekildedir:
- src/bsp/ae250/ae250.h: Bu file sistem saat tanımı, çevresel kayıt tanımı, çevresel kayıt adresi eşleme tanımı ve kesme kaynak numarası tanımını içerir. Saat tanımı AE250 parametre yapılandırmasıyla tutarlı olmalıdır.
- src/bsp/ae250/ae250.c: reset_handler işlevi gömülü programı başlatmak için girdidir. Girişte, ana işlev yürütülmeden önce UART başlatma gerçekleştirilir. Gerekli UART portu seçilir ve gerekli baud hızı AE250'nin parametre yapılandırmasına göre yapılandırılır.
- src/bsp/ae250/interrupt.c: Bu file AE250'nin kesme işleyici işlevlerinin tanımıdır
- src/bsp/config/config.h: Bu file Derleme yöntemini kontrol eden makro tanımını içerir. #define BUILD_MODE, BUILD_LOAD veya BUILD_BURN olarak tanımlanabilir. BUILD_LOAD, programın doğrudan ILM'ye yüklendiği anlamına gelir ve genellikle hata ayıklama sırasında kullanılır. BUILD_BURN, programın SPI Flash'a indirildiği ve programın güç açıldıktan sonra önce SPI Flash'tan ILM'ye okunduğu ve ardından çalıştırıldığı anlamına gelir; bu, sürüm sürümü program için geçerlidir.
- Start.S: Başlangıç file Assembly dilinde yazılmıştır.
- src/bsp/loader.c: önyükleyici fileSPI Flash'tan başlatmak için kullanılan.
- ae250.sag: Sag, scattering-and-Gathering format betiğidir. Bağlayıcı betiği oluşturmak için kullanılır. ae250.sag'daki bellek haritası parametrelerinin AE250'dekilerle tutarlı olması gerektiğine dikkat edilmelidir.
- src/bsp/driver: Bu dizin iki klasör içerir, ae250 AE250 sürücü kodudur, include ise sürücü fonksiyonlarının çağrı arayüzüdür.
- src/bsp/lib: İki tane içeriyor files. Printf.c'de, C standart kütüphanesindeki alt fonksiyonun biçimi, printf bilgisini UART aracılığıyla çıktı olarak yeniden tanımlanmıştır. read.c'de, giriş bilgisini UART aracılığıyla okumak için basit bir fonksiyon vardır.
Referans tasarım
Kurulumdan sonra, kurulum dizinindeki demo klasöründe veya referans tasarım zip dosyasında birkaç temel referans tasarımı bulunabilir. website; referans tasarım, deneme, hata ayıklama ve yeniden geliştirme için içe aktarma yoluyla RDS'ye yüklenebilir. Referans tasarımlar aşağıdaki gibi gösterilir:
- ae250_demo: AE250'nin UART giriş/çıkışını ve GPIO çıkışını gösterir.
- ae250_plic: Kesme denetleyicisinin kesmelere verdiği yanıtı gösterir ve makine zamanlayıcısı ile çukur zamanlayıcısının gösterimlerini sağlar.
- ae250_freertos: AE250 portlarının gömülü olduğunu gösterir
gerçek zamanlı işletim sistemi FreeRTOS çoklu iş parçacığı çalıştıran program. - ae250_ucosiii: AE250 portlarının gömülü gerçek zamanlı işletim sistemi uC/OS-III çoklu iş parçacıklı çalışan programı çalıştırabildiğini gösterir.
Belgeler / Kaynaklar
![]() |
GOWIN FPGA Geliştirme Kartı RISCV Programlama [pdf] Kullanıcı Kılavuzu FPGA Geliştirme Kartı RISCV Programlama, Kart RISCV Programlama, FPGA Geliştirme RISCV Programlama, RISCV Programlama, Kart RISCV |





