概述
本教程通过Efinix Trion T20 FPGA评估套件,详细讲解如何在Trion T20 BGA256上实现PulseRain的Reindeer RISC-V软核CPU。内容涵盖JTAG连接、Efinity安装、RISC-V构建、板载配置存储器编程以及运行RISC-V示例项目。
硬件需求
基础开发板
- 得捷(DigiKey)上的KIT DEV TRION T20 BGA256 EFINITY套件
- 得捷(DigiKey)上的FTDI TTL-232R-3V3 USB转UART 3.3V线缆
- 得捷(DigiKey)上的FTDI MPSSE USB转SPI/I2C/JTAG 3.3V线缆
硬件设置 USB JTAG
Trion T20 JTAG H6接口
| 数据输出 | 3V3 |
|---|---|
| 测试时钟 | 数据输入 |
| 测试模式选择 | 系统复位 |
| 地线 | 地线 |
C232HM-DDHSL-0
| Vcc | 红色 |
|---|---|
| 测试时钟 | 橙色 |
| 数据输入 | 黄色 |
| 数据输出 | 绿色 |
| 测试模式选择 | 棕色 |
| GPIOL0 | 灰色 |
| GPIOL1 | 紫色 |
| GPIOL2 | 白色 |
| GPIOL3 | 蓝色 |
| 地线 | 黑色 |
硬件设置 USB 串口
BANK1D_1E
| 49 | 48 |
|---|---|
| 47 | 46 |
| 45 | 44 |
| 地线 | 地线 |
TTL-232R-3V3
| 地线 | 黑色 |
|---|---|
| CTS# | 棕色 |
| VCC | 红色 |
| TXD | 橙色 |
| RXD | 黄色 |
| RTS# | 绿色 |
软件
Efinity® 集成开发环境
此项目需要 Efinity® 集成开发环境 v2019.3.272
Zadig USB 驱动安装简易指南
下载 Zadig,这是一款用于安装通用 USB 驱动的 Windows 应用程序
- 打开 Zadig 软件。
- 选择 选项(Options) > 列出所有设备(List All Devices)。
- 关闭 选项(Options) > 忽略集线器或复合父设备(Ignore Hubs or Composite Parents)。
- 选择 Trion T20 开发板(Trion T20 Development Board)。
- 在驱动程序旁选择libusbK(版本)(libusbK (version))。
- 点击Replace Driver 。
- 对C232HM-DDHSL-0 JTAG重复此操作
GitHub 桌面版 - 克隆 PulseRain Reindeer Trion 项目
下载GitHub桌面版,以便克隆PulseRain Reindeer的RTL代码。
1: 文件(File) → 克隆仓库(Clone Repository)
2: URL选项卡(URL Tab)
3: GitHub - PulseRain/Reindeer_Trion: 适用于Efinix Trion T20 BGA256开发套件的PulseRain Reindeer RISC-V软核CPU
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 Bistream)
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
附加开发板管理器网址:
https://raw.githubusercontent.com/PulseRain/Arduino_RISCV_IDE/master/package_pulserain.com_index.json
在以下过程中显示详细输出:
- 编译
- 上传
- 通过Arduino的“开发板管理器”添加对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);
}
评论
如有任何问题或意见,请访问我们的技术论坛:TechForum




















