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系列配置芯片。

工作流程:

  1. 上电后,CPLD作为主机主动发起读操作
  2. 通过串行接口从EPCS芯片读取数据
  3. 配置完成后,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 配置模式选择流程图

CPLD配置模式选择流程图 开始选择配置模式 开发阶段 还是量产? JTAG模式 开发调试,在线下载 需要远程 升级? PS模式(MCU控制) 远程升级,灵活控制 成本敏感? SPI Flash模式 低成本,通用Flash AS模式(EPCS) 稳定可靠,专用芯片 确定配置方案

这张图是我根据自己的项目经验总结的。你按照这个流程走,基本不会选错。

最后说一句:配置模式没有绝对的好坏,只有适不适合。我见过有人用JTAG模式做产品,结果每次断电都要重新下载,客户投诉不断。也见过有人用PS模式做简单逻辑,大材小用。选对模式,事半功倍。


公众号:蓝海资料掘金营,微信deep3321