littlebot
Published on 2025-04-13 / 0 Visits
0

【源码】基于C语言和System Verilog的Altera Arria 10 SoC板HPS与FPGA通信项目

项目简介

本项目是在Altera Arria 10 SoC开发板上实现HPS(硬件处理器子系统)与FPGA之间命令和数据传递的示例。借助FIFO(先进先出)缓冲区实现HPS与FPGA的数据双向传输,能基于HPS命令控制FPGA执行特定活动,如控制LED灯开关和自动序列运行。

项目的主要特性和功能

  1. 数据传递:HPS与FPGA通过FIFO进行数据双向传递,每次传递四个32位整数,包含一个命令号和三个可选参数或数据。
  2. 命令控制:提供三个命令行程序(commandOne、commandTwo、commandThree),可控制单个LED灯开关、切换所有LED灯状态、开启和关闭LED灯自动序列运行。
  3. 状态机控制:FPGA代码用多个状态机分别控制FIFO的数据收发和命令处理,保证数据有序传递和命令正确执行。

安装使用步骤

准备工作

  1. 启动A10 SoC开发板,在终端窗口启动Linux系统。
  2. HPSTest\LinuxExecuteables文件夹复制三个可执行文件到开发板的当前Linux目录。
  3. 在PC上启动Quartus,打开HPSTest\QuartusProject\a10_devkit_test文件夹中的项目。
  4. 使用Quartus中“Tools”菜单的“Programmer”项,将项目output_files文件夹中的ghrd_10as066n2.sof文件下载到FPGA。

运行程序

  1. 在Linux窗口中,确保可执行文件具有执行权限,执行以下命令: bash chmod 777 commandOne chmod 777 commandTwo chmod 777 commandThree
  2. 可通过-h开关获取任何commandXXX文件的帮助信息,例如: bash ./commandOne -h
  3. 运行具体命令控制LED灯:
  4. commandOne:控制单个LED灯开关,示例: bash commandOne 3 0 -t commandOne 2 1
  5. commandTwo:无参数,切换所有LED灯状态。
  6. commandThree:开启和关闭LED灯自动序列运行。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】