1. 蜂鸟E205开发板初识:硬件资源与上电体验

各位同学,欢迎来到这门实战课。我是你们的讲师,一个在FPGA和RISC-V领域摸爬滚打多年的工程师。

第一节课,咱们不急着写代码。先把手里的板子看明白,搞清楚它身上都有什么宝贝。这就像你拿到一把新扳手,总得先知道哪个头是拧螺丝的,哪个头是敲核桃的,对吧?

1.1 开发板硬件资源一览

蜂鸟E205开发板,说白了就是一块专门为RISC-V处理器设计的FPGA评估板。我当初第一次拿到它的时候,第一反应是——这板子真小,但该有的东西一个不少。

咱们先看看板子上都有哪些核心部件:

硬件模块 型号/规格 我的备注
FPGA主芯片 Xilinx Artix-7 XC7A35T 性价比极高,适合教学
RISC-V核心 蜂鸟E205(软核,烧录在FPGA内) RV32IMAC指令集
板载调试器 FTDI FT2232H 支持JTAG和UART
DDR3内存 128MB 跑Linux够用,裸机绰绰有余
Flash存储器 16MB SPI Flash 存放FPGA配置和程序
时钟源 50MHz有源晶振 板载主时钟
一个小建议: 拿到板子后,先别急着上电。用手机拍一张高清照片,把每个芯片的丝印都拍清楚。我在项目里吃过亏——板子上的丝印太小,焊反了排针方向,结果烧了一块板子。嗯,从那以后我养成了先拍照的习惯。

1.2 核心芯片:FPGA与RISC-V的关系

这里有个概念,很多初学者容易搞混。蜂鸟E205开发板上的RISC-V处理器,并不是一个独立的芯片。它其实是一个软核——说白了就是用硬件描述语言写成的处理器代码,然后烧录到FPGA里跑起来的。

你想想看,FPGA就像一块可以任意塑形的电路板。而RISC-V处理器,就是我们要在这块板子上“捏”出来的一个CPU。这就是为什么我们叫它“软核”。

核心理解:

  • FPGA是硬件平台,提供可编程逻辑资源
  • RISC-V是处理器架构,以IP核的形式运行在FPGA上
  • 两者结合,让我们可以自由修改处理器内部结构

我个人习惯把这种组合叫做“会变形的CPU”。你在做裸机程序时,写的代码最终会在这个软核上执行。但如果你觉得处理器哪里不够用,比如想加个自定义指令,直接改FPGA的代码就行。这在传统芯片设计里是想都不敢想的。

1.3 开发板外设接口一览

板子上的外设接口,是咱们和外界打交道的窗口。我列个清单,你对着板子一个一个找:

  1. USB-UART接口:串口通信,调试必备。我建议你优先学会用这个。
  2. JTAG接口:用于下载程序和在线调试。蜂鸟E205的调试器是板载的,插上USB就能用。
  3. LED指示灯:4个用户可编程LED。咱们第一节课就要点亮它们。
  4. 按键:4个独立按键,可以用来做输入。
  5. SD卡槽:扩展存储,跑文件系统时用得上。
  6. 以太网接口:百兆以太网,网络通信。
  7. HDMI接口:视频输出,可以接显示器。
  8. GPIO排针:扩展接口,想接什么接什么。
注意: 板子上的GPIO排针,有些是3.3V电平,有些是5V容忍。我曾经因为没看原理图,直接把5V信号怼到3.3V引脚上,结果那个引脚的IO bank直接烧了。所以,用之前一定看原理图。

1.4 上电初体验:让LED闪烁

好了,理论知识讲完了。咱们来点实际的。把板子插上USB线,你会看到板子上的电源指示灯亮起。如果一切正常,板子自带的出厂程序会让几个LED轮流闪烁。

但咱们要做的,是写一个自己的程序,让LED按照我们的意愿闪烁。这里我先演示一下流程,具体的代码细节后面章节会展开。

先看看蜂鸟E205的LED硬件连接:

LED编号 FPGA引脚 控制逻辑
LED0 J15 高电平点亮
LED1 L16 高电平点亮
LED2 M14 高电平点亮
LED3 N15 高电平点亮

写一个最简单的C程序,让LED0以1秒为周期闪烁:

#include "e205.h"

void delay(volatile int count) {
    while (count--);
}

int main() {
    // 设置GPIO方向为输出
    GPIO_DIR = 0x01;
    
    while (1) {
        GPIO_OUT = 0x01;  // 点亮LED0
        delay(5000000);
        GPIO_OUT = 0x00;  // 熄灭LED0
        delay(5000000);
    }
    
    return 0;
}

这段代码看着简单,但背后涉及的东西不少。GPIO_DIR是什么?为什么delay要写volatile?这些我都会在后面的章节里一一拆解。

我的经验: 第一次跑这个程序时,如果LED没亮,别慌。先检查USB线有没有插好,再确认调试器驱动是否安装。我遇到过最离谱的一次,是学生把USB线插反了——嗯,虽然USB口有防呆设计,但总有人能找出新姿势。

好了,第一节课就到这里。你现在的任务就是:把板子插上电,确认它能正常工作。然后,试着理解上面那段代码的大致逻辑。下一节课,咱们会深入讲解如何搭建开发环境,以及如何编译和下载这个程序。

蜂鸟E205开发板硬件架构图 FPGA (Artix-7) XC7A35T RISC-V 蜂鸟E205 RV32IMAC 软核 DDR3 128MB 程序运行内存 SPI Flash 16MB 配置与程序存储 FT2232H 调试器 JTAG + UART 外设接口 LED/按键/GPIO/以太网 架构说明 RISC-V软核运行在FPGA内部,通过AXI总线 与DDR3、Flash和外设接口通信