介紹
本文將會以 Efinix Trion T20 FPGA 評估板來介紹 Efinix Trion T20 BGA256 實現 PulseRain 的 Reindeer Trion 項目。項目包括連接 JTAG、安裝 Efinity、建置 RISC-V、編程板載配置記憶體以及運行範例 RISC-V 項目。
所需硬體
基板
配件
- TTL-232R-3V3 FTDI, Future Technology Devices International Ltd | 纜線組件 | DigiKey
- C232HM-DDHSL-0 FTDI, Future Technology Devices International Ltd | 纜線組件 | DigiKey
硬體設定 USB JTAG
Trion T20 JTAG H6 排針座
TDO | 3V3 |
---|---|
TCK | TDI |
TMS | nRST |
GND | GND |
C232HM-DDHSL-0
Vcc | Red |
---|---|
TCK | Orange |
TDI | Yellow |
TDO | Green |
TMS | Brown |
GPIOL0 | Grey |
GPIOL1 | Purple |
GPIOL2 | White |
GPIOL3 | Blue |
GND | Black |
硬體設定 USB 串列
BANK1D_1E
49 | 48 |
---|---|
47 | 46 |
45 | 44 |
GND | GND |
TTL-232R-3V3
GND | Black |
---|---|
CTS# | Brown |
VCC | Red |
TXD | Orange |
RXD | Yellow |
RTS# | Green |
軟體
Efinity® 整合開發環境
此項目需要 Efinity® 整合開發環境 v2019.3.272
Zadig USB 驅動程式安裝變得簡單
下載 Zadig,這是一個安裝通用 USB 驅動程式的 Windows 應用程式
- 開啟 Zadig 軟體。
- 選擇選項 > 列出所有設備。
- 關閉選項 > 忽略中心或複合父級。
- 選擇 Trion T20 開發板。
- 選擇驅動程式旁邊的 libusbK(版本)。
- 按一下「Replace Driver」。
- 重複使用 C232HM-DDHSL-0 JTAG
GitHub 桌面 - 複製 PulseRain Reindeer Trion 項目
下載 GitHub 桌面,這樣我們就可以複製 PulseRain Reindeer 的 RTL 程式碼。
1: File → Clone 的 Repository
2:URL 標籤
3:GitHub - PulseRain/Reindeer_Trion:用於 Efinix Trion T20 BGA256 開發套件的 PulseRain Reindeer RISC-V 軟 CPU
Arduino IDE
下載 Arduino IDE
建立 Reindeer Trion 專案項目
開放:項目
./Reindeer_Trion/build/Reindeer_Trion.xml
打開介面設計器
生成 Efinity 約束文件
生成後關閉介面設計器。
開始合成
Flow → Synthesize
***** Ending stage netlist pre-processing *****
Wed February 5 20 14:19:31 - Flow data refreshed. Elapsed time = 0m 7.447s VM : 72.892 MB RSS : 106.912 MB
Wed February 5 20 14:19:31 - Running synthesis flow done. Duration = 0m 24.632s
開始放置
Flow → Place
Wed February 5 20 14:20:54 - Flow data refreshed. Elapsed time = 0m 6.983s VM : 149.564 MB RSS : 186.184 MB
Wed February 5 20 14:20:54 - Running placement flow done. Duration = 0m 39.952s
開始路線
Flow → Route
Wed February 5 20 14:22:22 - Flow data refreshed. Elapsed time = 0m 12.47s VM : 572.36 MB RSS : 600.54 MB
Wed February 5 20 14:22:22 - Running routing flow done. Duration = 0m 26.69s
開始產生位元流
Flow → Generate Bitstream
Wed February 5 20 14:23:52 - C:/Efinity/2019.3/bin/efx_pgm finished. Exit code = 0 Exit status : Normal
Running hex generation flow done.
Wed February 5 20 14:23:52 - Running bitstream generation flow done. Duration = 0m 3.682s
透過 JTAG 對套件進行編程
啟動編程器
Tools → Open Programmer
- USB 目標:C232HM-DDHSL-0
- 鏡像:./build/outflow/Reindeer_Trion.hex
- 程式模式:JTAG
Wed February 5 20 14:47:09 - Programming 'C:/GitHub/Reindeer_Trion/build/outflow/Reindeer_Trion.hex' via JTAG at freq 3.0 MHz
Wed February 5 20 14:47:09 - Device ID read from JTAG: 0x00210A79
Wed February 5 20 14:47:15 - ... finished with JTAG programming
設置Arduino IDE
附加 Boards Manager URL 連結:
https://raw.githubusercontent.com/PulseRain/Arduino_RISCV_IDE/master/package_pulserain.com_index.json
在以下期間顯示詳細輸出:
- 編譯
- 上傳
- 透過 Arduino “Boards Manager” 加入對 Reindeer 的支持
- 板管理器:選擇 Efinix Trion T20 BGA256 開發套件
Arduino RISC-V 範例
void setup() {
Serial.print(" ====================");
GPIO_P3 = 0xAA;
delay (2000);
}
uint32_t i = 0;
uint8_t led_position = 0;
void loop() {
Serial.print (i);
i = (i + 1) %(1024);
Serial.print(" ==================== \n");
delay (600);
led_position = (led_position + 1) % 8;
GPIO_P3 = ~(1 << led_position);
}
評論
如有任何問題或意見,歡迎在下面留言。