这份指南是AGM CPLD(AG576SL100/AG256SL100) 基于 Quartus II + Supra 工具链的标准化开发、移植、配置实操手册,覆盖软件流程、IO 兼容、安全位、PLL、UFM 全场景,直接对照使用即可。
一、开发软件流程选择(Supra 3 种模式)
Supra 支持 3 种综合工具适配,文档默认使用 Quartus II 兼容流程(最常用,适配 Altera MAX II 工程直接移植):
Native:AGM 自研 EDA 综合工具
Synplicity:第三方综合工具(Synplify/Mentor)
Compatible:兼容 Altera Quartus II(推荐,与 MAX II 开发流程一致)

二、AG576 IO 口兼容与配置(核心:EPM570 替换升级)
1. IO 数量差异
AG576SL100 与 AG256SL100 IO 完全一致,比 Altera EPM570T100 多 4 个通用 IO:
表格
芯片引脚Pin39Pin88Pin37Pin90
EPM570T100VCCINTVCCINTGNDINTGNDINT
AG576SL100通用 IO通用 IO通用 IO通用 IO
2. PCB 兼容 EPM570 关键配置
如果你的 PCB 直接兼容 EPM570,且Pin39/88 接了 3.3V 供电,必须做以下配置,避免芯片输入电流过大:
Quartus II 中设置:Unused Pin → AS input tri-stated with weak pull-up(未用引脚:三态输入 + 弱上拉)
3. 启用额外 4 个 IO
在 Supra 生成的 .asf 配置文件中添加引脚绑定指令:
tcl
# 格式:set_location_assignment PIN_XX -to 自定义信号名
set_location_assignment PIN_88 -to abc
set_location_assignment PIN_39 -to led
set_location_assignment PIN_37 -to key
set_location_assignment PIN_90 -to clk_out
三、安全位设置(防程序读取,保护代码)
AG256/AG576 安全位(SECURITY_BIT):开启后只能擦除 / 烧写程序,无法读取内部固件,实现硬件加密。
方法 1:Quartus II 图形化配置
Quartus 打开工程 → Assignment → Device
点击 Device and Pin Options → 选择 General 标签
勾选:Enables security bit support
重新编译工程,再用 Supra 执行转换流程
方法 2:ASF 文件直接配置(推荐,快捷)
在 Supra 生成的 .asf 文件中添加一行配置:
tcl
set_global_assignment -name SECURITY_BIT “ON”
四、PLL 锁相环使用(AG576 内置 1 个 PLL)
1. PLL IP 生成步骤
打开 Supra → Tools → Create IP
选择 PLL,填写参数:输入时钟频率、输出频率、相移
点击 Generate,生成两个文件:pll0.v(调用模块)+ pll0.ip(IP 配置文件)
2. PLL 硬件约束
输入时钟必须是芯片的全局时钟 IO 管脚
若编译报错(时钟布线失败):Quartus → Settings → Fitter Settings → More Settings → 将 Maximum number of global clocks allowed 修改为 2/3(总全局时钟 4 个)
3. Verilog 调用代码(直接复制使用)
verilog
// PLL 例化模板
pll0 pll_inst(
.clkin(clk), // 外部输入时钟
.clkfb(clkout0), // 时钟反馈(接输出时钟clkout0)
.pllen(1’b1), // PLL使能(常高)
.resetn(rst), // 复位信号(低有效)
.pfden(1’b1), // 相位滤波使能(常高)
.clkout0(clkout0),// 输出时钟1
.clkout1(clkout1),// 输出时钟2
.lock(lock) // 锁定信号(锁定=1,未锁定=0)
);
4. Supra 移植关键配置
Supra 工程中,将生成的 *.ip 文件添加到 IP Files
修改 / 新增 IP 后必须重建 Supra 工程 → 重新执行 Migrate + 运行 af_quartus.tcl
Quartus 工程必须包含文件:C:\Supra\etc\arch\rodinia\alta_sim.v
Quartus 中设置:alta_pll 为 Design Partition
五、UFM 用户闪存 + 内部 OSC 使用
AG576 内置 UFM(用户闪存) + 4MHz 内部晶振(OSC),适用于存储参数、低精度时钟场景。
1. Verilog 例化代码
verilog
// UFM + 内部OSC 调用模板
alta_ufms u_alta_ufms (
.i_ufm_set(1’b1), // UFM配置使能(常高)
.i_osc_ena(oscena), // OSC时钟输出使能
// SPI FLASH 接口(读写UFM使用)
.i_ufm_flash_csn(),
.i_ufm_flash_sclk(),
.i_ufm_flash_sdi(),
.o_ufm_flash_sdo(),
.o_osc(osc_4m) // 内部OSC输出(~4MHz)
);
2. 核心说明
UFM 读写:必须通过 SPI 接口 控制
OSC 时钟:输出约 4MHz,适用于非高精度时序设计
配置要求:Quartus II 中必须将 alta_ufms 设置为 Design Partition,再编译
总结
开发流程:优先用 Compatible 模式兼容 Quartus II,无缝替换 EPM570
IO 兼容:AG576 多 4 个 IO,PCB 兼容时必须配置未用引脚三态,防止过流
安全加密:一键开启安全位,禁止读取程序,保护知识产权
PLL 使用:全局时钟输入,布线报错时增加全局时钟数量
UFM/OSC:内置 4MHz 晶振 + 用户闪存,通过 SPI 控制,需配置 Design Partition。

扫码加微信直接与工作人员沟通