前置基础要求
进行 AG32 芯片 MCU+CPLD 联合编程开发前,开发者需具备对应的技术基础,保障开发流程顺畅、开发结果可靠:
1. 熟练掌握 AG32 芯片 MCU 常规开发、配置、调试方法;
2. 具备 CPLD 开发基础,熟悉 Verilog 硬件描述语言编程规范;
3. 了解 AHB 总线基本架构与信号交互逻辑,能够理解芯片内部数据交互机制。

一、开发模式概述
AG32 芯片内置 2K 逻辑门资源,根据开发需求,芯片支持三种独立使用模式,开发者可按需选择对应开发方案:
1. 仅使用 MCU 模式:无需关注本文档内容,直接进行常规 MCU 开发即可。
2. 仅使用 CPLD 模式:参考官方《纯粹 CPLD 编程》独立开发文档。
3. MCU+CPLD 联合编程模式:需完整遵循本文档流程完成全套开发、配置、编译与烧录。
二、核心机制基础说明
2.1 独立性与连通性
MCU 与 CPLD 模块在硬件架构、工程编译、程序烧录层面相互独立,二者拥有独立的编译工程与程序文件;同时,二者可通过自定义信号完成芯片内部互联通信,实现功能协同。
芯片完整运行需分别烧录 MCU 程序固件与 CPLD 逻辑固件(两份 bin 文件)。
2.2 VE 文件核心作用
VE 文件是 AG32 芯片引脚映射与跨模块信号关联的核心配置文件,承担全局桥梁作用。芯片所有引脚关联规则、MCU 与外部引脚映射、CPLD 与外部引脚映射、MCU 与 CPLD 内部信号互联,均通过 VE 文件统一配置定义。
2.3 联合工程生成规则
MCU+CPLD 联合开发模式下,CPLD 工程禁止手动通过 Supra 创建,必须通过 VSCode 执行「prepare LOGIC」命令自动生成标准框架工程,保证工程架构、配置参数适配芯片联合运行机制。
2.4 默认逻辑与自定义逻辑区分
默认 Logic:设备仅使用 MCU 单独工作时,系统会自动生成默认空逻辑 Logic,无用户自定义逻辑代码,对上层开发者完全透明、无感知,不影响常规 MCU 功能运行。
自定义 Logic:设备启用 MCU+CPLD 联合开发时,开发者需在 VE 文件中完成引脚与信号关联配置,再通过「prepare LOGIC」生成 CPLD 框架工程,开展自定义 Verilog 逻辑开发。
三、开发软件环境配置
MCU+CPLD 联合开发需部署两款核心工具软件,各司其职、配合完成开发编译全流程:
3.1 Supra 编译工具
该工具已集成在 SDK 内置路径中(tool-agrv_logic/bin/),无需额外安装,主要用于 CPLD 逻辑工程最终编译,输出可烧录的 logic.bin 固件文件。
3.2 Quartus II 开发工具
需安装完整版 Quartus II 软件,官方推荐稳定版本为 v13.0.1。主要用于 Verilog 逻辑代码编写、工程综合、时序编译与导出 vo 格式文件,为后续 Supra 编译提供工程源文件。
四、CPLD 联合开发完整流程
完整 MCU+CPLD 联合开发流程分为四大核心步骤,需严格按顺序执行:
第一步:通过 VE 文件完成引脚、内外信号关系配置;
第二步:通过 VSCode 命令生成 CPLD 空工程,编写自定义 Verilog 逻辑代码;
第三步:在 Quartus II 中完成工程转换、代码综合与时序编译;
第四步:通过 Supra 工具编译生成最终可烧录的 logic.bin 文件。
五、VE 文件引脚与信号关联配置规范
VE 文件配置是联合开发的核心前置步骤,所有引脚映射、模块互联信号均需遵循统一语法格式配置,系统方可自动解析并生成对应工程接口。具体分为三类配置规则:
5.1 MCU 与外部引脚关联配置
用于定义 MCU 外设功能与芯片物理引脚的绑定关系,固定语法格式:MCU功能名 + 空格 + 引脚ID
示例:
GPIO4_3 PIN_32
5.2 CPLD 与外部引脚关联配置
用于定义 CPLD 自定义逻辑信号与芯片物理引脚的绑定关系,同时定义引脚输入输出方向,固定语法格式:CPLD信号名 + 空格 + 引脚ID:方向
示例:
LED_D3 PIN_32:OUTPUT
配置完成并执行「prepare LOGIC」命令后,系统会自动在 CPLD 顶层模块中生成对应规范的 input / output 硬件接口,无需手动定义端口。
5.3 MCU 与 CPLD 内部信号关联配置
用于实现芯片内部 MCU 与 CPLD 模块的信号交互、数据互通,固定语法格式:MCU功能名 + 空格 + CPLD信号名
示例:
GPIO4_1 iocvt_chn
5.4 信号生成规则与方向定义说明
1. 普通 GPIO 信号关联:系统会自动生成三组配套信号,分别为 _in(输入信号)、_out_data(输出数据信号)、_out_en(输出使能信号),满足双向 GPIO 交互需求。
2. 带固定方向的外设信号(如 UART TX、SPI CLK 等):系统仅生成对应单向 input 或 output 信号,无需额外配置方向。
3. 所有信号输入/输出方向,均以 CPLD 模块端为参考基准定义。