2.2 MAX II CPLD核心电路设计
2.2.1 MAX II CPLD背景及简介
CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)把乘积技术和EEPROM存储工艺综合在一起,内部延时固定,适合实现复杂组合逻辑电路。CPLD有多个系列产品(如图2.3所示),而MAX II系列是最经典且使用最多的CPLD,因此本节主要基于MAX II CPLD进行硬件设计。
图2.3 Altera CPLD不同系列产品的Logo
MAX II CPLD基于突破性的体系结构,其单位I/O引脚的功耗和成本相对于FPGA较低,并且这种瞬时接通的非易失器件具有良好的加密性,在各领域数字产品中受到了广泛的青睐。MAX II CPLD支持高级功能集成,主要有以下特性。
1.低功耗
(1)十分之一的功耗(和前一代MAX器件相比)。
(2)1.8V内核电压降低了功耗,提高了可靠性。
(3)CPLD业界最低的待机功耗,大大延长了电池供电时间。
(4)自动启动/停止功能,CPLD不使用时关断。
2.低成本体系结构
(1)以一半的价格实现4倍的密度(和前一代MAX器件相比)。
(2)通过设计,减小了管芯面积,单位I/O引脚成本在业界是最低的。
3.高性能
(1)支持高达300MHz的内部时钟频率。
(2)性能加倍(和3.3V MAX器件相比)。
4.独有的特性
(1)板上振荡器和用户闪存。
(2)不需要分立振荡器或非易失存储器,减少了芯片数量。
5.实时在线可编程能力(ISP)
(1)器件工作时,可下载第二个设计。
(2)降低了远程现场更新的成本。
6.灵活的MultiVolt内核
(1)片内电压稳压器支持3.3V、2.5V和1.8V供电。
(2)减少了电源数量,简化了电路板设计。
(3)并行闪存加载程序宏功能。
(4)提高了板上不兼容JTAG闪存的配置效率。
(5)通过MAX II器件实现JTAG命令,简化了电路板管理。
7.I/O能力
(1)MultiVolt I/O支持1.5V、1.8V、2.5V及3.3V逻辑电平器件的接口。
(2)内置的施密特触发器、可编程摆率和可编程驱动能力提高了信号的完整性。
2.2.2 EPM240T100C5N设计需求研究分析
相对于FPGA而言,MAX II CPLD硬件电路设计无论在电源设计,还是工作配置等方面都比较简单,适合初学者使用。笔者当年设计的第一个FPGA/CPLD核心板便是EP240T100C5N,用纯手工打造双层6mil氯化铁腐蚀PCB,如图2.4所示。
图2.4 笔者当年手工设计的CPLD核心板
在现在看来,该核心板极其简单,但在当时算是第一次巨大的挑战,第一次焊接TQFP,失败了2次,焊坏了n片CPLD。笔者最终尝试做了3次才获得成功的电路。而现在,再简单的电路也可以随手拿去加工,足见当年的激情。
当初第一次设计CPLD核心板时,笔者直接移植前人的电路,而现在回首看,萌生各种为什么,不会再那么盲目地设计电路。不要盲目参考前人,也许他人的理解未必正确,所有设计都源于手册,我们只是手册的搬运工!
Altera基本都是一个系列一本手册,而每个系列的手册都包含了该系列所有的器件,这基于可编程逻辑的通用性。因此掌握了一个器件,就了解了整个系列。MAX II CPLD的手册在官网可以下载,手册名为“MAX II Device Handbook”(max2-hand book.pdf),其中包含了目标CPLD—EPM240T100C5N,手册下载地址为www.altera.com.cn/literature/lit-max2.jsp。具体设计步骤如下。
(1)考虑CPLD的工作电压值。
查看手册中的Introduction中的Features中的External Supply Voltages介绍(第20页), CPLD I/O及内核电压分布表如图2.5所示。设计中采用EPM240T100C5N,可见内核支持3.3V及2.5V,而I/O支持1.5V、1.8V、2.5V、3.3V。由于考虑到大部分外部器件都是3.3V,所以在设计中可以直接采用3.3V作为内核及I/O电压。
图2.5 CPLD I/O及内核电压分布表
(2)考虑功耗,即“要采用多少功率的电源才能使EPM240T100C5N正常工作”查看手册中Evaluating Power in MAX II Device(第282页), CPLD功耗与运行速度关系曲线如图2.6所示。
图2.6 CPLD功耗与运行速度关系曲线
由图2.6可知,CPLD的功耗与运行速度成正比,而EPM240T100C5N的最大功耗在120mW左右,当VCCINT=3.3V时,CPLD顶多也就消耗40mA的电流。因此即使考虑最差的情况,100mA也足够CPLD工作了。而100mA对于电源转换IC而言是很小的电流了,可采用的方案很多。
(3)考虑时钟网络如何分布。
不同于传统的MCU, FPGA/CPLD有多个时钟输入引脚,由于并行的特性,所以可以在多个时钟域下进行独立的工作。这就需要研究EPM240T100C5N的全局时钟网络,如图2.7所示,这部分内容可参照手册中的“Global Signal”描述(第39页)。
图2.7 全局时钟网络
EPM240T100C5N共有4个全局时钟输入引脚,每个引脚都分别连接到各个LAB上,同步设计电路可以采用全局时钟输入引脚来优化设计。
(4)类似MCU的设计,需要考虑的是下载电路的设计。
MAX II CPLD的下载电路相当简单,通过上/下拉电阻及直连JTAG接口即可实现,这部分内容可参考手册中的“Pull-Up and Pull-Down of JTAG Pins During In-System Programming”(第200页),主要描述如下:
Three of the four JTAG pins have internal weak pull-up or pull-down resistors. The TDI and TMS pins have internal weak pull-up resistors while the TCK pin has an internal weak pull-down resistor. However, for device programming in a JTAG chain, there might be devices that do not have internal pull-up or pull-down resistors. Altera recommends to externally pull TMS high through 10k and TCK low through 1k resistors. Pulling-up the TDI signal externally for the MAX II device is optional.
可参考手册中的JTAG接口的推荐原理图(若没有多个CPLD级联,则只需要单芯片配置电路即可),如图2.8所示。
图2.8 JTAG接口的推荐原理图
图2.8所示原理是每个FPGA工程师都必须掌握的。Altera推荐TMS与TDI上拉10kΩ电阻,TCK下拉1kΩ电阻。
(5)考虑器件工作的最高主频是多少。
首先在手册的Introduction中的特性介绍中找到MAXII CPLD器件的速度等级(手册第18页),如图2.9所示,其中目标器件EPM240T100C5N的后缀为-5。
图2.9 MAX II CPLD器件的速度等级
接着在手册中的Timing Model and Specifications中找到MAX II CPLD速度等级的说明(手册第82页),如图2.10所示。由该图可见EPM240T100C5N的工作频率:16位计数器能达到201MHz,64位计数器能达到125MHz, UFM(内部Flash)只能达到10MHz。根据经验,MAX II CPLD一般直接给50MHz或100MHz的晶振即可。
图2.10 MAX II CPLD速度等级的说明
(6)考虑器件的I/O资源等内容。
首先了解Max II CPLD的架构。参照手册中MAX II Architecture的Funtional Description,可找到Max II CPLD的内部布局图(手册第25页),如图2.11所示。
图2.11 MAX II CPLD的内部布局图
MAX II CPLD的4个全局时钟分别分布在左侧与右侧,除四周的I/O块外,左下角还有一块CFM与UFM, CFM存放的是配置的数据,而UFM则是用户的Flash Memory,可以在Quartus II中通过调用IP来使用。
另外,用户资源部分的阐述仍然在MAX II CPLD用户资源中(手册第18页),如图2.12所示。
图2.12 MAX II CPLD用户资源
由图2.12可见,EPM240T100C5N最多有80个用户I/O,主频最高能达到304MHz。图中还给出了其他一些基本特性。综合所有情况,得到EPM240T100C5N的引脚分配,如表2.1所示。
表2.1 EPM240T100C5N的引脚分配
至此,EPM240T100C5N的基本特性介绍完毕(更详细的内容请参照手册),下面便可以安心地开始原理图、PCB电路的设计了。
2.2.3 EPM240T100C5N核心板原理图设计
继2.2.2节进行EPM240T100C5N设计的需求研究及分析之后,本节介绍EPM240T100C5N原理图的设计。MAX II CPLD的核心电路原理框图如图2.13所示。
图2.13 MAX II CPLD的核心电路原理框图
框图中间部分为MAX II CPLD(EPM240T100C5N)核心电路模块,是最基本的CPLD电路核心驱动,其中每个设计都已经在MAX II Device Handbook手册中分析得清清楚楚,笔者将参照这个框架进行原理图设计。
1.EPM240T100C5N电源方案设计
由2.2.2节的分析得知,可直接采用3.3V作为内核及I/O电压,因此需要产生3.3V电源电压。常用的电源配置有5V、9V、12V等,显而易见,5V最适合本设计需求。
有很多电源转换芯片支持5V转3.3V电压,如PAM3101AAA330、RT9167-33PB、AMS1117-3.3等,其中AMS1117-3.3最常用。AMS1117-3.3是国产LDO电源芯片,源于凌特的LT1117-3.3,最小压差为1.3V,标称能达到1A的额定电流(实际能达到800mA,相当不错了),在中低端设计中的应用很广泛。EPM240T100C5N需要50mA左右的电流,加上外围器件,800mA也足够供应整个“系统”了,因此采用AMS1117-3.3在理论上符合设计需求。输入5V通过LDO转为3.3V,电源模块原理图如图2.14所示。
图2.14 电源模块原理图
由图2.14可知,前端采用DC电源插座接入5V直流稳压电源,通过10μF及0.1μF电容滤波至AMS1117-3.3,转换后再通过10μF及0.1μF电容滤波稳压,输出最终的3.3V电压。LED灯用作电路正常工作指示灯。
2.EPM240T100C5N电源供电设计
前面已经得到了3.3V的电压,用来提供给CPLD的内核及I/O,接着要设计CPLD部分的电源供给,以完成整个电源网络。EPM240T100C5N共有6对I/O电源引脚、2对内核电源引脚。配置I/O电压与内核电压相等,为3.3V,具体设计如图2.15所示。
图2.15 CPLD I/O及内核电压设计
图2.15中的8个0.1μF电容的主要作用为去耦,去耦电容起到给高频信号提供回流路径、去除高频耦合、满足驱动电路电流的变化、避免相互间的耦合干扰的作用,同时也有滤波的作用(根据TI的模拟设计方案,百兆以内采用0.1μF电容,百兆以上最好同时并联0.01μF及以下的电容,以达到更好的电源状态)。
3.EPM240T100C5N时钟、复位电路的设计
CPLD想要工作,只有电源远远不够,还需要一个“心脏”—时钟源。-5等级的EPM240T100C5N的频率最高能达到201MHz,但在频率要求不是很高的前提下,可采用50MHz有源晶振作为时钟源。
此外,复位电路的作用很重要,其设计将给电路调试、运行带来很大的便利。
由于50MHz的心脏,以及复位信号的优先级别最高,所以必须连接至全局时钟网络。具体电路设计如图2.16所示,图中的晶振电源引脚的0.1μF电容起滤波的作用,而复位部分上拉3.3V,10μF电容通过充放电实现一定的硬件消抖功能,防止系统由于抖动或电源毛刺而复位(当然大部分产品不用硬件复位,可省略相关部分)。
图2.16 时钟及复位电路
复位引脚从全局时钟网络输入并非是必需的,但是全局时钟网络本来就可以当作输入来使用,同时为了达到更高的同步性,采用这样的设计较为常见。
4.配置功能接口的设计
一个电路需要有配置功能的接口,FPGA/CPLD中都是采用通用的JTAG下载接口来实现硬件的烧录的。前面已经分析过手册Altera推荐TMS与TDI上拉10kΩ电阻,TCK下拉1kΩ电阻。具体JTAG下载电路如图2.17所示。
图2.17 JTAG下载电路
5.所有I/O口的引出
既然是核心板,这里就将所有I/O引出至排针,以便转接;同时引出5V与3.3V电源,以便后续模块中使用。具体用户I/O引出电路设计如图2.18所示。
图2.18 用户I/O引出电路设计
2.2.4 EPM240T100C5N核心板布局布线
原理图设计的是方案,只要对应的信号满足对应的需求即可,而PCB设计的是电路,需要遵循一定的规则,仅看手册是不行的,还需要有一定的经验。很多大公司的原理图设计与PCB设计往往是分开的,这是因为本身的设计准则不一样:原理图对需求比较明确,通过图表设计功能,而PCB Layout则需要一定的电路设计经验。PCB项目外包也一样,大部分都会自行设计好原理图,只外包Layout部分。
EPM240T100C5N的电路设计图虽然简单,但是正如Verilog HDL代码风格一样,每条线路都必须连接得有理有据,力求每处设计都无懈可击。在此提出EPM240T100C5N PCB Layout中需要注意的8个方面。
(1)每一个VCC的去耦电容都要尽可能靠近端口,以达到更好的去耦效果。
(2)JTAG接口的4条信号线大致保持等长,以保证信号的完备性。
(3)晶振尽可能靠近IC, CLK输入信号线不能与I/O信号线平行,以减少电源干扰。
(4)电源尽量做到数模隔离,以减少干扰。
(5)必要时加上防短路电路。
(6)加上必要的丝印。
(7)如果需要机器焊接,则还需要加上定位孔。
(8)加上固定孔,如4个3.5mm的铜柱孔。
EPM240T100C5N PCB 3D版图及实物图如图2.19所示,是笔者本科学习时期的作品,其大小为50mm×50mm,笔者将空间压缩到了极致。
图2.19 EPM240T100C5N PCB 3D版图及实物图