Neural-Network-Accelerator

GitHub
541 68 困难 1 次阅读 今天Apache-2.0图像开发框架
AI 解读 由 AI 自动生成,仅供参考

Neural-Network-Accelerator 是一款基于 FPGA 的卷积神经网络加速开源项目,专为在边缘设备上高效运行 AI 模型而设计。它成功解决了传统通用处理器在运行深度学习推理时延迟高、功耗大的痛点,特别是在资源受限的嵌入式场景中。该项目以 YOLOv8 为典型应用案例,在赛灵思(Xilinx)Zynq UltraScale+ MPSoC 平台上实现了硬件级加速,将单帧推理时间压缩至 60 毫秒,结合并行后处理,整体帧率可达 18-19 FPS。

该工具非常适合嵌入式系统开发者、FPGA 工程师以及希望优化模型部署性能的研究人员使用。其核心亮点在于采用“指令驱动”的高效架构设计,不仅支持卷积、残差连接、上采样、池化等关键算子,还具备极高的灵活性:用户只需编译相应的指令集,即可将其他由这些算子组成的神经网络部署到同一加速电路上,无需重新设计硬件逻辑。此外,项目提供了完整的仿真与硬件部署流程,包含从模型转换、指令生成到硬件验证的全套脚本,帮助用户快速上手并理解软硬协同设计的精髓。无论是进行算法验证还是构建实时视觉系统,Neural-Network-Accelerator 都是一个极具参考价值的实践范本。

使用场景

某工业质检团队需要在产线边缘部署 YOLOv8 模型,以实时检测高速传送带上的微小零件缺陷。

没有 Neural-Network-Accelerator 时

  • 推理延迟过高:在通用 CPU 或普通嵌入式 GPU 上运行 YOLOv8,单帧推理耗时远超 100ms,无法匹配产线高速节拍,导致漏检率高。
  • 硬件成本昂贵:为满足实时性要求,被迫选用高性能工控机或高端 AI 加速卡,大幅增加了单点部署成本和功耗。
  • 能效比低下:传统算力方案在处理卷积、池化等算子时能效较低,难以在无风扇或低功耗限制的边缘环境中长期稳定运行。
  • 算子定制困难:若需调整网络结构(如修改步长或填充方式),缺乏灵活的底层硬件指令支持,重新编译和优化周期漫长。

使用 Neural-Network-Accelerator 后

  • 毫秒级低延迟:基于 Xilinx Zynq UltraScale+ FPGA 部署后,YOLOv8n 单帧推理仅需 60ms,结合并行后处理,整体帧率提升至 18-19FPS,完美覆盖检测需求。
  • 低成本边缘落地:利用中端 FPGA 芯片即可实现专用加速电路,显著降低了硬件 BOM 成本,同时减少了散热和供电压力。
  • 高效能算子执行:通过硬件固化卷积、残差连接、上采样等核心算子,实现了极高的计算复用率和指令调用效率,大幅提升能效比。
  • 灵活的网络适配:凭借“指令驱动”的架构设计,不仅支持 YOLOv8,还能快速编译部署其他由相同算子组成的神经网络,适应多变的检测任务。

Neural-Network-Accelerator 通过将 CNN 算子硬件化,成功在低成本 FPGA 上实现了 YOLOv8 的实时边缘推理,解决了工业场景下速度与成本难以兼得的痛点。

运行环境要求

操作系统
  • 未说明
GPU

不需要 GPU,该项目基于 FPGA (Xilinx xczu7ev-ffvc1156-2-i) 进行硬件加速

内存

未说明

依赖
notes1. 仿真环境需要安装 ModelSim。2. 硬件部署目标平台为 Xilinx Zynq UltraScale+ MPSoC (xczu7ev)。3. 运行 YOLOv8 仿真前需手动下载模型文件 (yolov8n) 并放置于指定文件夹。4. 项目包含将模型编译为硬件机器码 (instruction.bin) 和权重文件 (WeightAndBias.bin) 的步骤。
python未说明 (需安装 Python)
opencv
numpy
modelsim
Neural-Network-Accelerator hero image

快速开始

https://github.com/user-attachments/assets/8335d1ec-1887-406b-8871-6fd62e5cad1e

FPGA上的开源加速器

用其他语言阅读:英语, 中文 开发日志:英语, 中文

本项目旨在实现卷积神经网络的加速电路。项目以YOLOv8为实现对象,目标是完成一个包含卷积、残差求和、上采样、池化和拼接等算子操作的加速电路。由于整体电路设计思路是高效复用与指令调用,因此除了部署YOLOv8网络外,由上述算子操作组成的其他神经网络也可以编译到该加速器上。

image

可实现的算子

算子 描述
卷积 3×3卷积,支持任意步长(整数或浮点)和填充(任意)。可以选择是否激活(通过参数指令动态控制)。
残差求和 两个特征图的残差求和。
上采样 特征图按2倍因子进行上采样。仅支持最简单的最近邻插值。
池化 使用最大池化对特征图进行池化操作。
拼接 拼接操作不在电路中实现,而是在内存分配阶段完成。

仿真结果

使用100MHz时钟对YOLOv8n加速器进行仿真,总耗时114ms。 image

在Xilinx (xczu7ev-ffvc1156-2-i) 上的工作

加速器的硬件部署时钟频率为200MHz,单帧YOLOv8n推理时间为60ms,后处理时间为50ms。推理和后处理并行进行,因此总帧率可达18-19FPS。

image

https://github.com/user-attachments/assets/aae8cbe7-0244-45a3-a5b3-8fbd66b3d928

快速入门

目前我们已经在加速器上部署了两个任务:YOLOv8和滤波器。

环境

  • ModelSim
  • Python(包含OpenCV、NumPy)

使用以下命令克隆仓库:

git clone https://github.com/quanzaihh/Neural-Network-Accelerator

运行仿真

  • YOLOv8仿真 从YOLOv8n下载模型(提取码:d78m),并将其放入Neural-Network-Accelerator\compile\yolov8文件夹中。

运行以下命令来仿真YOLOv8n模型:

cd Neural-Network-Accelerator\compile\yolov8
python Yolov8.py --Operator 0
  • 滤波器仿真(Sobel滤波器)

运行以下命令来仿真Sobel滤波器:

cd Neural-Network-Accelerator\compile\imageprocess
python Filter.py --Operator 0

运行硬件实现

  • YOLOv8硬件实现

首先需要将模型编译成硬件机器码。

cd Neural-Network-Accelerator\compile\yolov8
python Yolov8.py --Operator 1

随后在Neural-Network-Accelerator\compile\compile_out文件夹中会生成两个文件:instruction.binWeightAndBias.bin。其中instruction.bin是硬件机器码,WeightAndBias.bin则是模型的权重和偏置。以下是YOLOv8n的硬件机器码示例:

REFRESH_ORDER
SET       WLEN      0x011B0000
SET       ORDER     0x00000001
SET       FIBA      0x81000000
SET       FIPN      0x00000001
SET       FOPN      0x00000002
SET       FDP       0x00000000
SET       FPN       0x000004b0
SET       ROWS      0x000001e0
SET       COLS      0x00000280
SET       WQS       0x00000009
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000001
SET       RETAD     0x83800000
SET       RETPN     0x0000012c
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x00000000
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x83800000
SET       FIPN      0x00000001
SET       FOPN      0x00000004
SET       FDP       0x00000001
SET       FPN       0x0000012c
SET       ROWS      0x000000f0
SET       COLS      0x00000140
SET       WQS       0x0000000c
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000001
SET       RETAD     0x83a58000
SET       RETPN     0x0000004b
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x00000001
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x83a58000
SET       FIPN      0x00000002
SET       FOPN      0x00000004
SET       FDP       0x00000001
SET       FPN       0x0000004b
SET       ROWS      0x00000078
SET       COLS      0x000000a0
SET       WQS       0x0000000d
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x83b84000
SET       RETPN     0x0000004b
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x00000002
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x83c1a000
SET       FIPN      0x00000001
SET       FOPN      0x00000002
SET       FDP       0x00000001
SET       FPN       0x0000004b
SET       ROWS      0x00000078
SET       COLS      0x000000a0
SET       WQS       0x0000000d
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x83d46000
SET       RETPN     0x0000004b
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x00000003
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x83d46000
SET       FIPN      0x00000001
SET       FOPN      0x00000002
SET       FDP       0x00000001
SET       FPN       0x0000004b
SET       ROWS      0x00000078
SET       COLS      0x000000a0
SET       WQS       0x0000000e
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x83cb0000
SET       RETPN     0x0000004b
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x00000004
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000002
SET       FIBA      0x83c1a000
SET       FIPN      0x00000001
SET       FOPN      0x00000001
SET       FDP       0x00000001
SET       FPN       0x00000096
SET       ROWS      0x000000c8
SET       COLS      0x000000c0
SET       WQS       0x00000000
SET       FIQS      0x00000000
SET       FOQS      0x00000000
SET       MS        0x00000000
SET       RETAD     0x83cb0000
SET       RETPN     0x00000096
SET       PADS      0x00000000
SET       ACT       0x00000000
SET       ID        0x00000005
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x83b84000
SET       FIPN      0x00000003
SET       FOPN      0x00000004
SET       FDP       0x00000001
SET       FPN       0x0000004b
SET       ROWS      0x00000078
SET       COLS      0x000000a0
SET       WQS       0x0000000d
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x83ddc000
SET       RETPN     0x0000004b
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x00000006
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x83ddc000
SET       FIPN      0x00000002
SET       FOPN      0x00000008
SET       FDP       0x00000001
SET       FPN       0x0000004b
SET       ROWS      0x00000078
SET       COLS      0x000000a0
SET       WQS       0x0000000f
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000001
SET       RETAD     0x83f08000
SET       RETPN     0x00000013
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x00000007
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x83f08000
SET       FIPN      0x00000004
SET       FOPN      0x00000008
SET       FDP       0x00000001
SET       FPN       0x00000013
SET       ROWS      0x0000003c
SET       COLS      0x00000050
SET       WQS       0x0000000d
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x83fa0000
SET       RETPN     0x00000013
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x00000008
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x83fec000
SET       FIPN      0x00000002
SET       FOPN      0x00000004
SET       FDP       0x00000001
SET       FPN       0x00000013
SET       ROWS      0x0000003c
SET       COLS      0x00000050
SET       WQS       0x0000000d
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x840d0000
SET       RETPN     0x00000013
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x00000009
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x840d0000
SET       FIPN      0x00000002
SET       FOPN      0x00000004
SET       FDP       0x00000001
SET       FPN       0x00000013
SET       ROWS      0x0000003c
SET       COLS      0x00000050
SET       WQS       0x0000000e
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x84038000
SET       RETPN     0x00000013
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x0000000a
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000002
SET       FIBA      0x83fec000
SET       FIPN      0x00000001
SET       FOPN      0x00000001
SET       FDP       0x00000001
SET       FPN       0x0000004c
SET       ROWS      0x00000098
SET       COLS      0x00000080
SET       WQS       0x00000000
SET       FIQS      0x00000000
SET       FOQS      0x00000000
SET       MS        0x00000000
SET       RETAD     0x84038000
SET       RETPN     0x0000004c
SET       PADS      0x00000000
SET       ACT       0x00000000
SET       ID        0x0000000b
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x84038000
SET       FIPN      0x00000002
SET       FOPN      0x00000004
SET       FDP       0x00000001
SET       FPN       0x00000013
SET       ROWS      0x0000003c
SET       COLS      0x00000050
SET       WQS       0x0000000e
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x8411c000
SET       RETPN     0x00000013
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x0000000c
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x8411c000
SET       FIPN      0x00000002
SET       FOPN      0x00000004
SET       FDP       0x00000001
SET       FPN       0x00000013
SET       ROWS      0x0000003c
SET       COLS      0x00000050
SET       WQS       0x0000000d
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x84084000
SET       RETPN     0x00000013
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x0000000d
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000002
SET       FIBA      0x84038000
SET       FIPN      0x00000001
SET       FOPN      0x00000001
SET       FDP       0x00000001
SET       FPN       0x0000004c
SET       ROWS      0x00000098
SET       COLS      0x00000080
SET       WQS       0x00000000
SET       FIQS      0x00000000
SET       FOQS      0x00000000
SET       MS        0x00000000
SET       RETAD     0x84084000
SET       RETPN     0x0000004c
SET       PADS      0x00000000
SET       ACT       0x00000000
SET       ID        0x0000000e
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x83fa0000
SET       FIPN      0x00000008
SET       FOPN      0x00000008
SET       FDP       0x00000001
SET       FPN       0x00000013
SET       ROWS      0x0000003c
SET       COLS      0x00000050
SET       WQS       0x0000000e
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x846e8000
SET       RETPN     0x00000013
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x0000000f
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x846e8000
SET       FIPN      0x00000004
SET       FOPN      0x00000010
SET       FDP       0x00000001
SET       FPN       0x00000013
SET       ROWS      0x0000003c
SET       COLS      0x00000050
SET       WQS       0x0000000e
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000001
SET       RETAD     0x84168000
SET       RETPN     0x00000005
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x00000010
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x84168000
SET       FIPN      0x00000008
SET       FOPN      0x00000010
SET       FDP       0x00000001
SET       FPN       0x00000005
SET       ROWS      0x0000001e
SET       COLS      0x00000028
SET       WQS       0x0000000d
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x841b8000
SET       RETPN     0x00000005
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x00000011
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x841e0000
SET       FIPN      0x00000004
SET       FOPN      0x00000008
SET       FDP       0x00000001
SET       FPN       0x00000005
SET       ROWS      0x0000001e
SET       COLS      0x00000028
SET       WQS       0x0000000d
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x84258000
SET       RETPN     0x00000005
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x00000012
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x84258000
SET       FIPN      0x00000004
SET       FOPN      0x00000008
SET       FDP       0x00000001
SET       FPN       0x00000005
SET       ROWS      0x0000001e
SET       COLS      0x00000028
SET       WQS       0x0000000e
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x84208000
SET       RETPN     0x00000005
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x00000013
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000002
SET       FIBA      0x841e0000
SET       FIPN      0x00000001
SET       FOPN      0x00000001
SET       FDP       0x00000001
SET       FPN       0x00000028
SET       ROWS      0x00000080
SET       COLS      0x00000050
SET       WQS       0x00000000
SET       FIQS      0x00000000
SET       FOQS      0x00000000
SET       MS        0x00000000
SET       RETAD     0x84208000
SET       RETPN     0x00000028
SET       PADS      0x00000000
SET       ACT       0x00000000
SET       ID        0x00000014
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x84208000
SET       FIPN      0x00000004
SET       FOPN      0x00000008
SET       FDP       0x00000001
SET       FPN       0x00000005
SET       ROWS      0x0000001e
SET       COLS      0x00000028
SET       WQS       0x0000000e
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x84280000
SET       RETPN     0x00000005
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x00000015
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x84280000
SET       FIPN      0x00000004
SET       FOPN      0x00000008
SET       FDP       0x00000001
SET       FPN       0x00000005
SET       ROWS      0x0000001e
SET       COLS      0x00000028
SET       WQS       0x0000000c
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x84230000
SET       RETPN     0x00000005
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x00000016
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000002
SET       FIBA      0x84208000
SET       FIPN      0x00000001
SET       FOPN      0x00000001
SET       FDP       0x00000001
SET       FPN       0x00000028
SET       ROWS      0x00000080
SET       COLS      0x00000050
SET       WQS       0x00000000
SET       FIQS      0x00000000
SET       FOQS      0x00000000
SET       MS        0x00000000
SET       RETAD     0x84230000
SET       RETPN     0x00000028
SET       PADS      0x00000000
SET       ACT       0x00000000
SET       ID        0x00000017
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x841b8000
SET       FIPN      0x00000010
SET       FOPN      0x00000010
SET       FDP       0x00000001
SET       FPN       0x00000005
SET       ROWS      0x0000001e
SET       COLS      0x00000028
SET       WQS       0x0000000f
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x844c8000
SET       RETPN     0x00000005
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x00000018
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x844c8000
SET       FIPN      0x00000008
SET       FOPN      0x00000020
SET       FDP       0x00000001
SET       FPN       0x00000005
SET       ROWS      0x0000001e
SET       COLS      0x00000028
SET       WQS       0x0000000f
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000001
SET       RETAD     0x842a8000
SET       RETPN     0x00000002
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x00000019
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x842a8000
SET       FIPN      0x00000010
SET       FOPN      0x00000020
SET       FDP       0x00000001
SET       FPN       0x00000002
SET       ROWS      0x0000000f
SET       COLS      0x00000014
SET       WQS       0x0000000d
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x842e8000
SET       RETPN     0x00000002
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x0000001a
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x84308000
SET       FIPN      0x00000008
SET       FOPN      0x00000010
SET       FDP       0x00000001
SET       FPN       0x00000002
SET       ROWS      0x0000000f
SET       COLS      0x00000014
SET       WQS       0x0000000e
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x84348000
SET       RETPN     0x00000002
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x0000001b
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x84348000
SET       FIPN      0x00000008
SET       FOPN      0x00000010
SET       FDP       0x00000001
SET       FPN       0x00000002
SET       ROWS      0x0000000f
SET       COLS      0x00000014
SET       WQS       0x0000000d
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x84328000
SET       RETPN     0x00000002
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x0000001c
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000002
SET       FIBA      0x84308000
SET       FIPN      0x00000001
SET       FOPN      0x00000001
SET       FDP       0x00000001
SET       FPN       0x00000020
SET       ROWS      0x00000080
SET       COLS      0x00000040
SET       WQS       0x00000000
SET       FIQS      0x00000000
SET       FOQS      0x00000000
SET       MS        0x00000000
SET       RETAD     0x84328000
SET       RETPN     0x00000020
SET       PADS      0x00000000
SET       ACT       0x00000000
SET       ID        0x0000001d
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x842e8000
SET       FIPN      0x00000018
SET       FOPN      0x00000020
SET       FDP       0x00000001
SET       FPN       0x00000002
SET       ROWS      0x0000000f
SET       COLS      0x00000014
SET       WQS       0x0000000f
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x84368000
SET       RETPN     0x00000002
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x0000001e
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x84368000
SET       FIPN      0x00000010
SET       FOPN      0x00000010
SET       FDP       0x00000001
SET       FPN       0x00000002
SET       ROWS      0x0000000f
SET       COLS      0x00000014
SET       WQS       0x0000000e
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x843a8000
SET       RETPN     0x00000002
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x0000001f
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000003
SET       FIBA      0x843a8000
SET       FIPN      0x00000010
SET       FOPN      0x00000010
SET       FDP       0x00000000
SET       FPN       0x00000002
SET       ROWS      0x0000000f
SET       COLS      0x00000014
SET       WQS       0x00000000
SET       FIQS      0x00000007
SET       FOQS      0x00000000
SET       MS        0x00000000
SET       RETAD     0x843c8000
SET       RETPN     0x00000002
SET       PADS      0x00000002
SET       ACT       0x00000000
SET       ID        0x00000020
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000003
SET       FIBA      0x843c8000
SET       FIPN      0x00000010
SET       FOPN      0x00000010
SET       FDP       0x00000000
SET       FPN       0x00000002
SET       ROWS      0x0000000f
SET       COLS      0x00000014
SET       WQS       0x00000000
SET       FIQS      0x00000007
SET       FOQS      0x00000000
SET       MS        0x00000000
SET       RETAD     0x843e8000
SET       RETPN     0x00000002
SET       PADS      0x00000002
SET       ACT       0x00000000
SET       ID        0x00000021
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000003
SET       FIBA      0x843e8000
SET       FIPN      0x00000010
SET       FOPN      0x00000010
SET       FDP       0x00000000
SET       FPN       0x00000002
SET       ROWS      0x0000000f
SET       COLS      0x00000014
SET       WQS       0x00000000
SET       FIQS      0x00000007
SET       FOQS      0x00000000
SET       MS        0x00000000
SET       RETAD     0x84408000
SET       RETPN     0x00000002
SET       PADS      0x00000002
SET       ACT       0x00000000
SET       ID        0x00000022
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x843a8000
SET       FIPN      0x00000020
SET       FOPN      0x00000020
SET       FDP       0x00000001
SET       FPN       0x00000002
SET       ROWS      0x0000000f
SET       COLS      0x00000014
SET       WQS       0x0000000d
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x84ad0000
SET       RETPN     0x00000002
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x00000023
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000004
SET       FIBA      0x84ad0000
SET       FIPN      0x00000020
SET       FOPN      0x00000020
SET       FDP       0x00000000
SET       FPN       0x00000002
SET       ROWS      0x0000000f
SET       COLS      0x00000014
SET       WQS       0x00000000
SET       FIQS      0x00000007
SET       FOQS      0x00000000
SET       MS        0x00000000
SET       RETAD     0x84428000
SET       RETPN     0x00000005
SET       PADS      0x00000000
SET       ACT       0x00000000
SET       ID        0x00000024
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x84428000
SET       FIPN      0x00000018
SET       FOPN      0x00000010
SET       FDP       0x00000001
SET       FPN       0x00000005
SET       ROWS      0x0000001e
SET       COLS      0x00000028
SET       WQS       0x0000000c
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x84518000
SET       RETPN     0x00000005
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x00000025
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x84540000
SET       FIPN      0x00000004
SET       FOPN      0x00000008
SET       FDP       0x00000001
SET       FPN       0x00000005
SET       ROWS      0x0000001e
SET       COLS      0x00000028
SET       WQS       0x0000000e
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x84590000
SET       RETPN     0x00000005
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x00000026
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x84590000
SET       FIPN      0x00000004
SET       FOPN      0x00000008
SET       FDP       0x00000001
SET       FPN       0x00000005
SET       ROWS      0x0000001e
SET       COLS      0x00000028
SET       WQS       0x0000000d
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x84568000
SET       RETPN     0x00000005
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x00000027
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x84518000
SET       FIPN      0x0000000c
SET       FOPN      0x00000010
SET       FDP       0x00000001
SET       FPN       0x00000005
SET       ROWS      0x0000001e
SET       COLS      0x00000028
SET       WQS       0x0000000d
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x84970000
SET       RETPN     0x00000005
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x00000028
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000004
SET       FIBA      0x84970000
SET       FIPN      0x00000010
SET       FOPN      0x00000010
SET       FDP       0x00000000
SET       FPN       0x00000005
SET       ROWS      0x0000001e
SET       COLS      0x00000028
SET       WQS       0x00000000
SET       FIQS      0x00000007
SET       FOQS      0x00000000
SET       MS        0x00000000
SET       RETAD     0x845b8000
SET       RETPN     0x00000013
SET       PADS      0x00000000
SET       ACT       0x00000000
SET       ID        0x00000029
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x845b8000
SET       FIPN      0x0000000c
SET       FOPN      0x00000008
SET       FDP       0x00000001
SET       FPN       0x00000013
SET       ROWS      0x0000003c
SET       COLS      0x00000050
SET       WQS       0x0000000e
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x84780000
SET       RETPN     0x00000013
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x0000002a
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x847cc000
SET       FIPN      0x00000002
SET       FOPN      0x00000004
SET       FDP       0x00000001
SET       FPN       0x00000013
SET       ROWS      0x0000003c
SET       COLS      0x00000050
SET       WQS       0x0000000e
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x84864000
SET       RETPN     0x00000013
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x0000002b
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x84864000
SET       FIPN      0x00000002
SET       FOPN      0x00000004
SET       FDP       0x00000001
SET       FPN       0x00000013
SET       ROWS      0x0000003c
SET       COLS      0x00000050
SET       WQS       0x0000000e
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x84818000
SET       RETPN     0x00000013
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x0000002c
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x84780000
SET       FIPN      0x00000006
SET       FOPN      0x00000008
SET       FDP       0x00000001
SET       FPN       0x00000013
SET       ROWS      0x0000003c
SET       COLS      0x00000050
SET       WQS       0x0000000d
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x848b0000
SET       RETPN     0x00000013
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x0000002d
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x848b0000
SET       FIPN      0x00000004
SET       FOPN      0x00000008
SET       FDP       0x00000001
SET       FPN       0x00000013
SET       ROWS      0x0000003c
SET       COLS      0x00000050
SET       WQS       0x0000000e
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000001
SET       RETAD     0x84948000
SET       RETPN     0x00000005
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x0000002e
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x84948000
SET       FIPN      0x0000000c
SET       FOPN      0x00000010
SET       FDP       0x00000001
SET       FPN       0x00000005
SET       ROWS      0x0000001e
SET       COLS      0x00000028
SET       WQS       0x0000000e
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x849c0000
SET       RETPN     0x00000005
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x0000002f
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x849e8000
SET       FIPN      0x00000004
SET       FOPN      0x00000008
SET       FDP       0x00000001
SET       FPN       0x00000005
SET       ROWS      0x0000001e
SET       COLS      0x00000028
SET       WQS       0x0000000e
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x84a38000
SET       RETPN     0x00000005
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x00000030
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x84a38000
SET       FIPN      0x00000004
SET       FOPN      0x00000008
SET       FDP       0x00000001
SET       FPN       0x00000005
SET       ROWS      0x0000001e
SET       COLS      0x00000028
SET       WQS       0x0000000d
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x84a10000
SET       RETPN     0x00000005
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x00000031
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x849c0000
SET       FIPN      0x0000000c
SET       FOPN      0x00000010
SET       FDP       0x00000001
SET       FPN       0x00000005
SET       ROWS      0x0000001e
SET       COLS      0x00000028
SET       WQS       0x0000000d
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x84a60000
SET       RETPN     0x00000005
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x00000032
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x84a60000
SET       FIPN      0x00000008
SET       FOPN      0x00000010
SET       FDP       0x00000001
SET       FPN       0x00000005
SET       ROWS      0x0000001e
SET       COLS      0x00000028
SET       WQS       0x0000000f
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000001
SET       RETAD     0x84ab0000
SET       RETPN     0x00000002
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x00000033
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x84ab0000
SET       FIPN      0x00000018
SET       FOPN      0x00000020
SET       FDP       0x00000001
SET       FPN       0x00000002
SET       ROWS      0x0000000f
SET       COLS      0x00000014
SET       WQS       0x0000000e
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x84b10000
SET       RETPN     0x00000002
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x00000034
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x84b30000
SET       FIPN      0x00000008
SET       FOPN      0x00000010
SET       FDP       0x00000001
SET       FPN       0x00000002
SET       ROWS      0x0000000f
SET       COLS      0x00000014
SET       WQS       0x0000000d
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x84b70000
SET       RETPN     0x00000002
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x00000035
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x84b70000
SET       FIPN      0x00000008
SET       FOPN      0x00000010
SET       FDP       0x00000001
SET       FPN       0x00000002
SET       ROWS      0x0000000f
SET       COLS      0x00000014
SET       WQS       0x0000000d
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x84b50000
SET       RETPN     0x00000002
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x00000036
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x84b10000
SET       FIPN      0x00000018
SET       FOPN      0x00000020
SET       FDP       0x00000001
SET       FPN       0x00000002
SET       ROWS      0x0000000f
SET       COLS      0x00000014
SET       WQS       0x0000000c
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x84b90000
SET       RETPN     0x00000002
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x00000037
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x848b0000
SET       FIPN      0x00000004
SET       FOPN      0x00000008
SET       FDP       0x00000001
SET       FPN       0x00000013
SET       ROWS      0x0000003c
SET       COLS      0x00000050
SET       WQS       0x0000000e
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x84bd0000
SET       RETPN     0x00000013
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x00000038
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x84bd0000
SET       FIPN      0x00000004
SET       FOPN      0x00000008
SET       FDP       0x00000001
SET       FPN       0x00000013
SET       ROWS      0x0000003c
SET       COLS      0x00000050
SET       WQS       0x0000000c
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x84c68000
SET       RETPN     0x00000013
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x00000039
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x84c68000
SET       FIPN      0x00000004
SET       FOPN      0x00000008
SET       FDP       0x00000001
SET       FPN       0x00000013
SET       ROWS      0x0000003c
SET       COLS      0x00000050
SET       WQS       0x0000000e
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x84d00000
SET       RETPN     0x00000013
SET       PADS      0x00000001
SET       ACT       0x00000000
SET       ID        0x0000003a
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x84a60000
SET       FIPN      0x00000008
SET       FOPN      0x00000008
SET       FDP       0x00000001
SET       FPN       0x00000005
SET       ROWS      0x0000001e
SET       COLS      0x00000028
SET       WQS       0x0000000e
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x84d98000
SET       RETPN     0x00000005
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x0000003b
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x84d98000
SET       FIPN      0x00000004
SET       FOPN      0x00000008
SET       FDP       0x00000001
SET       FPN       0x00000005
SET       ROWS      0x0000001e
SET       COLS      0x00000028
SET       WQS       0x0000000c
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x84dc0000
SET       RETPN     0x00000005
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x0000003c
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x84dc0000
SET       FIPN      0x00000004
SET       FOPN      0x00000008
SET       FDP       0x00000001
SET       FPN       0x00000005
SET       ROWS      0x0000001e
SET       COLS      0x00000028
SET       WQS       0x0000000e
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x84de8000
SET       RETPN     0x00000005
SET       PADS      0x00000001
SET       ACT       0x00000000
SET       ID        0x0000003d
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x84b90000
SET       FIPN      0x00000010
SET       FOPN      0x00000008
SET       FDP       0x00000001
SET       FPN       0x00000002
SET       ROWS      0x0000000f
SET       COLS      0x00000014
SET       WQS       0x0000000d
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x84e10000
SET       RETPN     0x00000002
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x0000003e
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x84e10000
SET       FIPN      0x00000004
SET       FOPN      0x00000008
SET       FDP       0x00000001
SET       FPN       0x00000002
SET       ROWS      0x0000000f
SET       COLS      0x00000014
SET       WQS       0x0000000d
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x84e20000
SET       RETPN     0x00000002
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x0000003f
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x84e20000
SET       FIPN      0x00000004
SET       FOPN      0x00000008
SET       FDP       0x00000001
SET       FPN       0x00000002
SET       ROWS      0x0000000f
SET       COLS      0x00000014
SET       WQS       0x0000000e
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x84e30000
SET       RETPN     0x00000002
SET       PADS      0x00000001
SET       ACT       0x00000000
SET       ID        0x00000040
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x848b0000
SET       FIPN      0x00000004
SET       FOPN      0x0000000a
SET       FDP       0x00000001
SET       FPN       0x00000013
SET       ROWS      0x0000003c
SET       COLS      0x00000050
SET       WQS       0x0000000e
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x84e40000
SET       RETPN     0x00000013
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x00000041
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x84e40000
SET       FIPN      0x00000005
SET       FOPN      0x0000000a
SET       FDP       0x00000001
SET       FPN       0x00000013
SET       ROWS      0x0000003c
SET       COLS      0x00000050
SET       WQS       0x0000000b
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x84efe000
SET       RETPN     0x00000013
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x00000042
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x84efe000
SET       FIPN      0x00000005
SET       FOPN      0x0000000a
SET       FDP       0x00000001
SET       FPN       0x00000013
SET       ROWS      0x0000003c
SET       COLS      0x00000050
SET       WQS       0x0000000f
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x84fbc000
SET       RETPN     0x00000013
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x00000043
SET       NEGTH     0xff4f0000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x84a60000
SET       FIPN      0x00000008
SET       FOPN      0x0000000a
SET       FDP       0x00000001
SET       FPN       0x00000005
SET       ROWS      0x0000001e
SET       COLS      0x00000028
SET       WQS       0x0000000e
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x8507a000
SET       RETPN     0x00000005
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x00000044
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x8507a000
SET       FIPN      0x00000005
SET       FOPN      0x0000000a
SET       FDP       0x00000001
SET       FPN       0x00000005
SET       ROWS      0x0000001e
SET       COLS      0x00000028
SET       WQS       0x0000000a
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x850ac000
SET       RETPN     0x00000005
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x00000045
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x850ac000
SET       FIPN      0x00000005
SET       FOPN      0x0000000a
SET       FDP       0x00000001
SET       FPN       0x00000005
SET       ROWS      0x0000001e
SET       COLS      0x00000028
SET       WQS       0x0000000f
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x850de000
SET       RETPN     0x00000005
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x00000046
SET       NEGTH     0xff4f0000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x84b90000
SET       FIPN      0x00000010
SET       FOPN      0x0000000a
SET       FDP       0x00000001
SET       FPN       0x00000002
SET       ROWS      0x0000000f
SET       COLS      0x00000014
SET       WQS       0x0000000d
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x85110000
SET       RETPN     0x00000002
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x00000047
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x85110000
SET       FIPN      0x00000005
SET       FOPN      0x0000000a
SET       FDP       0x00000001
SET       FPN       0x00000002
SET       ROWS      0x0000000f
SET       COLS      0x00000014
SET       WQS       0x0000000a
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x85124000
SET       RETPN     0x00000002
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x00000048
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x85124000
SET       FIPN      0x00000005
SET       FOPN      0x0000000a
SET       FDP       0x00000001
SET       FPN       0x00000002
SET       ROWS      0x0000000f
SET       COLS      0x00000014
SET       WQS       0x0000000f
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x85138000
SET       RETPN     0x00000002
SET       PADS      0x00000001
SET       ACT       0x00000001
SET       ID        0x00000049
SET       NEGTH     0xff4f0000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x84fbc000
SET       FIPN      0x00000005
SET       FOPN      0x00000001
SET       FDP       0x00000001
SET       FPN       0x00000013
SET       ROWS      0x0000003c
SET       COLS      0x00000050
SET       WQS       0x00000000
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x8514c000
SET       RETPN     0x00000013
SET       PADS      0x00000001
SET       ACT       0x00000000
SET       ID        0x0000004a
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x850de000
SET       FIPN      0x00000005
SET       FOPN      0x00000001
SET       FDP       0x00000001
SET       FPN       0x00000005
SET       ROWS      0x0000001e
SET       COLS      0x00000028
SET       WQS       0x00000000
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x8515f000
SET       RETPN     0x00000005
SET       PADS      0x00000001
SET       ACT       0x00000000
SET       ID        0x0000004b
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000001
SET       FIBA      0x85138000
SET       FIPN      0x00000005
SET       FOPN      0x00000001
SET       FDP       0x00000001
SET       FPN       0x00000002
SET       ROWS      0x0000000f
SET       COLS      0x00000014
SET       WQS       0x00000000
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x85164000
SET       RETPN     0x00000002
SET       PADS      0x00000001
SET       ACT       0x00000000
SET       ID        0x0000004c
SET       NEGTH     0x00000000
SET       OPTV      0x00000000
PUSH_ORDER
SET       ORDER     0x00000005
PUSH_ORDER

使用 Axi-lite 将上述代码写入加速器。可以使用 Xilinx 的处理系统进行操作。硬件工程将在后续提供。

  • 滤波器硬件实现
cd Neural-Network-Accelerator\compile\imageprocess
python Filter.py --Operator 1

随后,我们会在 Neural-Network-Accelerator\compile\compile_out 文件夹中得到两个文件,分别是 instruction.binWeightAndBias.bin。其中,instruction.bin 文件是硬件机器码,而 WeightAndBias.bin 文件则是模型的权重和偏置。滤波器的硬件机器码如下所示:

REFRESH_ORDER
SET       WLEN      0x011B0000
SET       ORDER     0x00000001
SET       FIBA      0x81000000
SET       FIPN      0x00000001
SET       FOPN      0x00000001
SET       FDP       0x00000000
SET       FPN       0x000004b0
SET       ROWS      0x000001e0
SET       COLS      0x00000280
SET       WQS       0x00000007
SET       FIQS      0x00000007
SET       FOQS      0x00000007
SET       MS        0x00000000
SET       RETAD     0x00000280
SET       RETPN     0x000004b0
SET       PADS      0x00000001
SET       ACT       0x00000000
SET       ID        0x00000000
SET       NEGTH     0x00000000
SET       OPTV      0x00000001
PUSH_ORDER
SET       ORDER     0x00000005
PUSH_ORDER

待办事项

  • 扩展通用性,在保持阵列拓扑不变的情况下,尝试通过调度实现不同尺寸卷积核的卷积运算。
  • 在该加速器上部署其他卷积神经网络任务,例如图像压缩、图像去噪等。

我的频道

Bilibili:https://space.bilibili.com/288251497?spm_id_from=333.788.0.0

参考资料

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|6天前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|1周前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

151.3k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

108.3k|★★☆☆☆|2天前
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|2天前
插件Agent图像

markitdown

MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|5天前
插件开发框架