项目简介
本项目是在Altera Arria 10 SoC开发板上实现HPS(硬件处理器子系统)与FPGA之间命令和数据传递的示例。借助FIFO(先进先出)缓冲区实现HPS与FPGA的数据双向传输,能基于HPS命令控制FPGA执行特定活动,如控制LED灯开关和自动序列运行。
项目的主要特性和功能
- 数据传递:HPS与FPGA通过FIFO进行数据双向传递,每次传递四个32位整数,包含一个命令号和三个可选参数或数据。
- 命令控制:提供三个命令行程序(commandOne、commandTwo、commandThree),可控制单个LED灯开关、切换所有LED灯状态、开启和关闭LED灯自动序列运行。
- 状态机控制:FPGA代码用多个状态机分别控制FIFO的数据收发和命令处理,保证数据有序传递和命令正确执行。
安装使用步骤
准备工作
- 启动A10 SoC开发板,在终端窗口启动Linux系统。
- 从
HPSTest\LinuxExecuteables
文件夹复制三个可执行文件到开发板的当前Linux目录。 - 在PC上启动Quartus,打开
HPSTest\QuartusProject\a10_devkit_test
文件夹中的项目。 - 使用Quartus中“Tools”菜单的“Programmer”项,将项目
output_files
文件夹中的ghrd_10as066n2.sof
文件下载到FPGA。
运行程序
- 在Linux窗口中,确保可执行文件具有执行权限,执行以下命令:
bash chmod 777 commandOne chmod 777 commandTwo chmod 777 commandThree
- 可通过
-h
开关获取任何commandXXX
文件的帮助信息,例如:bash ./commandOne -h
- 运行具体命令控制LED灯:
- commandOne:控制单个LED灯开关,示例:
bash commandOne 3 0 -t commandOne 2 1
- commandTwo:无参数,切换所有LED灯状态。
- commandThree:开启和关闭LED灯自动序列运行。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】