3. CPLD配置模式详解:JTAG模式、AS模式、PS模式、SPI Flash配置模式的区别与适用场景
做CPLD开发这么多年,我经常被问到的一个问题是:“这些配置模式到底有什么区别?我该用哪一种?”
说实话,我刚入行时也被这些模式搞得晕头转向。JTAG、AS、PS、SPI Flash……每个厂家叫法还不一样。今天我就把这些模式掰开揉碎了讲清楚。
3.1 为什么CPLD需要多种配置模式?
CPLD是SRAM-based的,说白了就是掉电就丢。每次上电都得重新加载配置数据。这就引出了一个问题:谁来给它加载?怎么加载?
不同的应用场景,对加载速度、成本、灵活性要求都不一样。所以厂家才设计了这么多种模式。嗯,这里要注意:不是所有CPLD都支持所有模式,选型时一定要看数据手册。
核心概念:CPLD的配置模式,本质上就是决定“配置数据从哪来、通过什么接口写进去”。
3.2 JTAG模式——我最常用的调试模式
JTAG模式,说白了就是通过IEEE 1149.1标准接口来配置CPLD。这个接口有4根线:TCK、TMS、TDI、TDO。
特点:
- 在线调试,边改边烧,效率高
- 支持菊花链,多片器件串联
- 速度一般,但调试够用
- 掉电就丢,不能作为最终产品方案
我的经验:我个人习惯在开发阶段只用JTAG模式。调试方便,发现问题直接改代码重新下载。我曾经在一个项目中,用JTAG菊花链同时调试了3片CPLD和1片FPGA,省了不少事。
3.3 AS模式——主动串行配置
AS模式,全称Active Serial。CPLD主动从外部存储器读取配置数据。这个外部存储器通常是EPCS系列配置芯片。
工作流程:
- 上电后,CPLD作为主机主动发起读操作
- 通过串行接口从EPCS芯片读取数据
- 配置完成后,CPLD进入用户模式
适用场景:
- 产品量产,需要掉电保存配置
- 对配置速度要求不高
- 成本敏感,EPCS芯片便宜
避坑指南:我曾经在一个项目中,因为EPCS芯片的引脚虚焊,导致产品上电后CPLD配置失败。排查了两天才找到问题。后来我都在PCB上加了测试点,方便产线检测。
3.4 PS模式——被动串行配置
PS模式,全称Passive Serial。CPLD是被动的,由外部控制器(如MCU、CPU)主动给它写配置数据。
接口信号:
| 信号名 | 方向 | 说明 |
|---|---|---|
| DCLK | 输入 | 配置时钟,由外部提供 |
| DATA0 | 输入 | 串行数据输入 |
| nCONFIG | 输入 | 配置触发信号,低电平复位 |
| CONF_DONE | 输出 | 配置完成指示 |
优势:
- 灵活,可以由MCU控制配置时机
- 支持远程升级,MCU可以从网络获取新固件
- 配置速度快,取决于外部时钟频率
我的建议:如果你要做远程升级功能,PS模式是首选。我在一个工业控制项目中,就是用STM32通过PS模式给CPLD升级固件,配合4G模块实现了远程维护。
3.5 SPI Flash配置模式——性价比之选
SPI Flash模式,其实就是用通用的SPI NOR Flash代替专用的EPCS芯片。成本更低,容量更大。
与AS模式的区别:
- AS模式只能用Altera专用的EPCS芯片
- SPI Flash模式可以用市面上的通用SPI Flash,如Winbond、Macronix等
- SPI Flash容量选择更灵活,从1MB到64MB都有
经验分享:我记得有一次,客户要求把CPLD配置存储器的容量从4MB升级到16MB。用EPCS芯片的话,价格翻了三倍。换成SPI Flash方案,成本只增加了20%。
3.6 四种模式对比总结
| 模式 | 配置源 | 掉电保存 | 配置速度 | 成本 | 适用场景 |
|---|---|---|---|---|---|
| JTAG | PC/调试器 | 否 | 慢 | 低 | 开发调试 |
| AS | EPCS芯片 | 是 | 中 | 中 | 量产产品 |
| PS | 外部控制器 | 是 | 快 | 高 | 远程升级 |
| SPI Flash | 通用SPI Flash | 是 | 中 | 低 | 成本敏感产品 |
3.7 如何选择?我的实战建议
你想想看,选配置模式其实就三个维度:成本、灵活性、开发难度。
- 开发阶段:只用JTAG,别折腾其他模式
- 量产产品:AS模式或SPI Flash模式,看成本要求
- 需要远程升级:PS模式,配合MCU实现
- 多片CPLD/FPGA:考虑JTAG菊花链或PS模式级联
重要提醒:配置模式的选择会影响PCB布局。比如AS模式需要额外的EPCS芯片引脚,PS模式需要MCU预留GPIO。我建议在原理图设计阶段就确定好配置模式,不然后期改起来很麻烦。
3.8 配置模式选择流程图
这张图是我根据自己的项目经验总结的。你按照这个流程走,基本不会选错。
最后说一句:配置模式没有绝对的好坏,只有适不适合。我见过有人用JTAG模式做产品,结果每次断电都要重新下载,客户投诉不断。也见过有人用PS模式做简单逻辑,大材小用。选对模式,事半功倍。
公众号:蓝海资料掘金营,微信deep3321