上电自动加载 FPGA 程序 — SOPC Flash 烧录实验教程
来源:FPGA 培训资料(2012年),Altera SOPC 上电自动加载实验 云盘路径:/工作相关/FPGA培训资料/FPGA培训_2012_07/sopc实验/上电自动加载程序.pdf
实验目标
实现 FPGA 上电后自动从 Flash 加载配置文件并运行软件程序,无需每次通过 JTAG 下载。
系统架构
FPGA (SOPC System)
├── Nios II Processor (Standard)
├── On-Chip Memory (RAM/ROM)
├── Flash Memory (CFI) — 程序存储
├── Avalon-MM Tristate Bridge
└── PIO (Parallel I/O) — LED 控制
关键组件配置
1. Nios II Processor
- 版本:Standard(非 Fast,适合教学)
- Reset Vector 指向 cfi_flash(Flash 起始地址)
2. Avalon-MM Tristate Bridge
- Incoming Signals:Registered
- Shared Signals:data, address, read_n 全选
- 作用:实现 Flash 和 On-Chip Memory 的总线分时复用
3. Flash Memory (CFI)
- Presets:Custom
- 地址线宽度:22 位(4MB 寻址空间)
- 数据线:8 位
- Timing:Setup=40ns, Wait=160ns, Hold=40ns
4. PIO (Parallel I/O)
- 模式:位输出
- 位数:8 位(控制 8 个 LED)
- 用途:跑马灯演示
实验步骤
- 建立 SOPC 工程:在 SOPC Builder 中构建 ftest 系统,添加上述组件
- 生成系统:点击 Generate 生成 .sof 文件
- Quartus 顶层设计:
- 建立 Verilog 顶层模块,实例化 SOPC 系统
- 添加 Flash Reset 输出管脚,连接到全局 Reset
- 所有 Nios II 系统信号引出管脚
- 引脚锁定:分析综合后进入 Pin Planner 锁定管脚
- 全编译:生成 .sof 配置文件
- Nios II IDE 软件设计:
- 使用 Nios II LED 示例工程
- 指定 SOPC Builder System PTF File
- Flash 烧录:
- Tool → Flash Programmer
- 点击 Program Flash 将程序烧入 Flash
- 验证:断电重启后,FPGA 配置从 Flash 加载,程序自动运行
关键技术点
- Tristate Bridge 的作用:Flash 和 On-Chip Memory 不能同时驱动总线,通过三态桥实现分时访问
- Reset Vector 配置:必须指向 Flash 起始地址,确保上电后 CPU 从 Flash 取指令
- Flash 时序:CFI Flash 的 Setup/Wait/Hold 参数需匹配实际硬件时序
相关文件
- SOPC Builder 系统配置文件(.ptf)
- Quartus 项目文件(.qpf)
- Nios II 应用软件(C 代码)
- Flash Programmer 烧录配置