第一章:MachXO系列芯片概述

1.1 Lattice Semiconductor公司简介

先聊聊Lattice这家公司。做FPGA的圈子不大,Lattice算是其中很有特色的一家。我个人习惯把FPGA厂商分成两类:一类是Xilinx(现在叫AMD)和Intel那种巨无霸,专攻高端大芯片;另一类就是Lattice,专注做低功耗、小尺寸的FPGA。

Lattice成立于1983年,比很多做FPGA的工程师年龄都大。他们最早做的是PLD(可编程逻辑器件),后来慢慢转型到FPGA。你想想看,能在半导体行业活40多年,没两把刷子是不可能的。

Lattice最厉害的地方在哪?说白了就是「小而美」。他们的芯片功耗低、封装小、启动快,特别适合做系统里的「小配角」——比如给主芯片做桥接、做I/O扩展、做控制逻辑。我在项目中遇到过好几次,主芯片的GPIO不够用,或者接口不匹配,塞一片Lattice的小FPGA进去,问题就解决了。

核心定位: Lattice = 低功耗 + 小尺寸 + 即时启动。不是用来跑Linux的,是用来做「胶合逻辑」的。

1.2 MachXO系列芯片家族

MachXO系列是Lattice的看家产品线之一。从最早的MachXO,到后来的MachXO2、MachXO3,再到最新的MachXO5-NX,每一代都有明显的升级。我按时间线给你捋一捋。

1.2.1 MachXO(第一代)

这是开山之作。2005年左右推出的,主打CPLD升级市场。那时候很多系统还在用传统的CPLD,比如Altera的MAX系列。MachXO的出现,让工程师们发现:原来FPGA也可以做到这么小、这么便宜、启动这么快。

特点:

  • 基于SRAM工艺,但内置了Flash配置存储器
  • 上电即用,不需要外部配置芯片
  • 逻辑单元从256到2280个不等
  • 支持3.3V、2.5V、1.8V多种电压

小提示: 第一代MachXO现在基本退市了,但如果你在维护老项目,可能还会碰到。我去年还帮一个客户修过MachXO的老板子,那芯片真是皮实,十几年了还能正常工作。

1.2.2 MachXO2(第二代)

这一代是真正的爆款。MachXO2在2010年左右推出,相比第一代,功耗降低了100倍,成本也大幅下降。为什么能做到?因为工艺从130nm跳到了65nm,而且用了Lattice自研的「超低功耗」架构。

关键参数:

参数 MachXO2
逻辑单元 256 ~ 6864
嵌入式RAM 6.2 ~ 92 Kb
用户I/O 22 ~ 335
工作频率 最高150 MHz
静态功耗 低至19 µA

嗯,这里要注意:MachXO2的静态功耗只有19微安,比很多芯片的漏电流还小。我曾经在一个电池供电的项目里用MachXO2做电源管理,整板功耗控制在50微安以下,客户非常满意。

1.2.3 MachXO3(第三代)

MachXO3是2014年推出的,主要升级点是容量和接口。逻辑单元最高到9400个,而且增加了DDR3内存接口和高速SerDes(最高3.2 Gbps)。

适合做什么?

  • 需要少量DDR3缓存的桥接应用
  • 需要高速串行通信的I/O扩展
  • 替代中小规模的CPLD/FPGA

说实话,MachXO3是我个人用得最多的一代。它的性价比很高,而且封装选择多,从BGA到QFN都有。我记得有个项目需要在-40°C到85°C的环境下工作,MachXO3跑得稳稳的,一点问题没有。

1.2.4 MachXO5-NX(第五代)

这是最新的成员,基于Lattice的Nexus平台,采用28nm FD-SOI工艺。FD-SOI是什么?简单说就是一种既能降低功耗又能减少软错误率的工艺。MachXO5-NX的逻辑单元最高到21K,SerDes速度提升到8 Gbps,还支持PCIe Gen2。

MachXO5-NX的亮点:

  • 28nm FD-SOI工艺,功耗比前代再降50%
  • 支持PCIe Gen2 x4
  • 内置硬核ADC(12位,1 MSPS)
  • 安全启动,防止固件被篡改

为什么会用到硬核ADC?我在一个工业控制项目里就踩过坑:用外部ADC加FPGA的方案,PCB布线麻烦,成本也高。MachXO5-NX直接把ADC集成进去了,省事不少。

1.3 典型应用场景

MachXO系列的应用场景,说白了就四个字:「胶合逻辑」。什么意思?就是系统里那些「缺什么补什么」的活儿。我总结了几类最常见的用法。

1.3.1 CPLD升级

这是MachXO系列最原始的应用。传统的CPLD(比如Lattice自己的ispMACH系列)逻辑资源少、不支持RAM、不支持PLL。如果你需要稍微复杂一点的控制逻辑,CPLD就不够用了。

升级到MachXO的好处:

  • 逻辑单元多10~100倍
  • 内置RAM,可以做FIFO或小缓存
  • 有PLL,可以产生不同频率的时钟
  • 封装兼容,很多MachXO的封装和CPLD是pin-to-pin兼容的

避坑指南: 我曾经直接把CPLD的代码移植到MachXO上,结果发现时序跑不过。为什么?因为CPLD的组合逻辑延迟是固定的,而FPGA的延迟和布线有关。后来我重新做了时序约束,才解决问题。所以,别偷懒,该做STA还是要做。

1.3.2 桥接

桥接是MachXO系列最拿手的活儿。比如:

  • SPI转I2C
  • UART转GPIO
  • 并行总线转串行总线
  • 不同电压域之间的电平转换

你想想看,主芯片的接口不够用,或者协议不匹配,加一片MachXO,写几行Verilog,问题就解决了。而且MachXO的启动时间只有几毫秒,比主芯片还快,不会拖慢系统启动。

1.3.3 控制逻辑

很多系统里需要一些「不复杂但必须可靠」的控制逻辑。比如:

  • 电源上电时序控制
  • 复位信号管理
  • 风扇PWM控制
  • LED指示灯驱动

这些活儿用MCU做有点浪费,用CPLD做又不够灵活。MachXO正好卡在中间,逻辑资源够用,功耗又低。我有个项目用MachXO2做了12路电源的时序控制,代码不到100行,跑了好几年没出过问题。

1.3.4 I/O扩展

这是最「简单粗暴」的应用。主芯片的GPIO不够?加一片MachXO,把SPI或I2C转成几十个GPIO。MachXO3L系列最多可以提供335个I/O,足够用了。

实际案例: 我之前做一个摄像头模组测试板,需要同时控制32个传感器的复位、电源和状态读取。主芯片只有16个GPIO,根本不够。后来用了一片MachXO3L-6400,通过SPI接口扩展出48个GPIO,完美解决。

1.4 知识体系总览

为了让你对MachXO系列有个整体认识,我画了一张图。这张图展示了MachXO系列的核心定位、产品家族和典型应用之间的关系。

MachXO系列芯片知识体系 MachXO系列 MachXO MachXO2 MachXO3 MachXO5-NX CPLD升级 桥接 控制逻辑 I/O扩展 工艺演进:130nm → 65nm → 40nm → 28nm FD-SOI 核心优势:低功耗 · 小尺寸 · 即时启动 · 高可靠性

这张图你看懂了吗?从上到下,从左到右,其实就是一条「选型路径」:先确定你要做什么应用,再选对应的芯片系列。比如做简单的I/O扩展,MachXO2就够用了;如果需要高速SerDes,那就得上MachXO5-NX。

我的建议: 新手入门,先从MachXO2开始。资料多、工具成熟、价格便宜。等把Lattice Diamond或Radiant软件用熟了,再考虑MachXO3或MachXO5-NX。别一上来就追最新的,容易把自己绕晕。


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