第一章:CPLD概述与工业级选型
各位工程师朋友,大家好。我是老李,干FPGA/CPLD这行有十五年了。今天咱们开始聊CPLD,先从最基础的讲起。你别看CPLD个头小,在工业现场,它可是个顶个的可靠。
1.1 CPLD基本原理:它到底是个啥?
CPLD,全称是复杂可编程逻辑器件。说白了,它就是一堆“与或门阵列”加上“宏单元”的组合体。你想想看,数字电路里最基础的就是与门、或门、非门。CPLD把这些东西做成了可编程的,你想连成什么逻辑,就烧写什么逻辑。
我个人习惯把CPLD理解成“硬件化的软件”。你写一段Verilog代码,烧进去,它就变成了实实在在的电路。跟单片机不一样,单片机是跑程序的,CPLD是直接变成电路的。所以它快,快得几乎没有延迟。
核心结构:CPLD内部主要由三部分组成:逻辑块(Logic Block)、互连矩阵(Interconnect Matrix)和I/O块。逻辑块里就是那些宏单元,每个宏单元可以实现一个小型的状态机或者组合逻辑。
我记得刚入行那会儿,带我的师傅跟我说:“CPLD就是积木,你搭成什么样,它就是什么样。”这话我一直记着。
1.2 CPLD与FPGA区别:别选错了家伙
很多新手会问:CPLD和FPGA到底有啥区别?我直接说结论:CPLD适合做“胶合逻辑”,FPGA适合做“大算力”。
具体区别,我列个表,你一看就明白:
| 对比项 | CPLD | FPGA |
|---|---|---|
| 架构 | 基于乘积项(PAL结构) | 基于查找表(LUT结构) |
| 逻辑容量 | 小(几十到几百个宏单元) | 大(几万到几百万个LUT) |
| 时序确定性 | 高(固定延时,可预测) | 低(布线延时变化大) |
| 上电即用 | 是(无需配置芯片) | 否(需从Flash加载) |
| 功耗 | 低(静态功耗极低) | 较高(动态功耗大) |
| 典型应用 | 地址译码、接口转换、复位管理 | 图像处理、通信基带、AI加速 |
你看,CPLD上电就能干活,FPGA还得等配置。在工业现场,有些设备要求上电瞬间就要输出正确电平,这时候CPLD就是唯一选择。我曾经在一个项目中,用FPGA做地址译码,结果发现上电瞬间输出不确定,导致后级电路误动作。后来换成CPLD,问题立马解决。
避坑指南:千万不要用FPGA去做简单的“与或非”逻辑。杀鸡用牛刀不说,时序还容易出问题。CPLD才是干这活的。
1.3 工业级CPLD选型要素:温度、功耗、逻辑资源
工业级选型,说白了就是三个字:稳、省、够。
1.3.1 温度范围
工业级芯片,温度范围一般是-40°C到+85°C,有些宽温的能到-40°C到+105°C。我见过有人用商业级芯片(0°C到+70°C)做户外设备,结果夏天一晒就罢工。嗯,这里要注意:选型时一定要看芯片的“工业级”后缀,比如Altera的MAX II系列,工业级型号末尾带“I”。
1.3.2 功耗
CPLD的功耗通常很低,但低功耗和低静态功耗是两码事。有些CPLD在待机时功耗只有微安级,适合电池供电的设备。我建议你关注两个参数:静态功耗(Standby Power)和动态功耗(Dynamic Power)。如果设备是24小时不间断运行,静态功耗就是大头。
1.3.3 逻辑资源
逻辑资源够用就行,别贪多。CPLD的宏单元数量从32个到1024个不等。我一般会留20%的余量,防止后期需求变更。你想想看,如果选了个刚好够用的,后期加个功能就得换芯片,多麻烦。
个人经验:选型时,先画好逻辑框图,估算一下需要多少宏单元。然后在这个数字上乘以1.2,就是你的最低需求。
1.4 主流厂商产品线对比
目前主流的三家:Altera(现在叫Intel)、Xilinx(现在叫AMD)、Lattice。我挨个说说我的看法。
1.4.1 Altera/Intel:MAX系列
Altera的MAX系列是CPLD里的常青树。MAX II、MAX V、MAX 10,一代比一代强。我个人最喜欢MAX V,功耗低、价格便宜,而且有5V耐压的I/O,直接接工业传感器没问题。我记得有个项目,需要把5V的编码器信号转成3.3V,用MAX V一个芯片就搞定了,连电平转换芯片都省了。
1.4.2 Xilinx/AMD:XC9500系列
Xilinx的CPLD主要是XC9500系列,现在还在供货。这个系列的特点是时序非常确定,每个宏单元的延时都是固定的。如果你做的是对时序要求极严的控制逻辑,比如高速ADC的采样时钟同步,XC9500是个好选择。不过说实话,Xilinx现在主推的是FPGA,CPLD产品线更新比较慢。
1.4.3 Lattice:MachXO系列
Lattice在CPLD领域是个狠角色。它的MachXO系列,尤其是MachXO2和MachXO3,集成了很多硬核功能,比如PLL、ADC、I2C控制器。我最近一个项目就用MachXO3,一个芯片实现了上电时序控制、温度监测和I2C通信,省了不少PCB面积。
下面这张图,是我自己总结的选型思路,你一看就懂:
最后,我再说一句:选型没有最好的,只有最合适的。别盲目追求大厂、高端型号。把温度、功耗、资源这三个要素吃透了,你就能选出最靠谱的芯片。
我的建议:如果你刚开始做工业级设计,先从Altera MAX V或者Lattice MachXO2入手。这两款芯片资料多、开发工具友好,踩坑了也好找解决方案。
公众号:蓝海资料掘金营,微信deep3321