Efinix Trion T20 FPGA 評估板實行 PulseRain Reindeer RISC-V 項目

邏輯主頁

介紹

本文將會以 Efinix Trion T20 FPGA 評估板來介紹 Efinix Trion T20 BGA256 實現 PulseRain 的 Reindeer Trion 項目。項目包括連接 JTAG、安裝 Efinity、建置 RISC-V、編程板載配置記憶體以及運行範例 RISC-V 項目。

所需硬體

基板

配件

硬體設定 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);
}

評論

如有任何問題或意見,歡迎在下面留言。