《FPGA全程进阶----实战演练》第二章之系统搭建

来源:转载

1 系统方案

       对于设计一款硬件平台,首先要确定整体框架,确定各个模块所需要的芯片以及电压分配情况。图2.6是笔者曾经设计的硬件平台系统。

图2.6系统框图

        对于选定一个系统方案之后,接下来做的要先去查看所选用的芯片的数据手册。那么查看手册一般有几点必须要注意,(1)FPGA的工作电压,确定若FPGA正常工作需要几档电压,好设计电源电路;(2)考虑功耗,这决定着需要多大功率的电源才能驱动芯片正常工作;(3)查看时钟网络的分布,这决定在进行逻辑设计时时钟分配的问题;(4)JTAG下载电路,这一部分是决定能否数据配置成功的关键;(5)查看器件工作的最高频率,这决定着系统能够运行的最大带宽有多少。

       对于功耗的计算部分,需要在系统最高时钟频率下,找到一个浩大的工程,计算所消耗的电流部分,然后查看所设计的电源电路的理论值是否能够满足功耗的需求。由于FPGA内核消耗较大,所以设计电源电路时应以内核功耗为准,即1.2V内核的消耗大于3.3V的I/O消耗,

2 FPGA芯片确定

       对于FPGA芯片的确定以及后面PCB的制作,都需要查看Altera的官方手册,设计来源于手册。对于手册大致分为几个部分:(1)Cyclone xx 成员总览;(2)逻辑单元和逻辑阵列块;(3)存储单元;(4)嵌入式乘法器资源;(5)时钟网络资源;(6)I/O特性;(7)上电复位特性;(8)JTAG下载;

      Cyclone系列芯片对比如表2.1所示:

       由于Cyclone系列的片子都不算便宜,一片都要几十块,所以不求最贵的,但求资源够用即可。对比资源情况,货源,价钱情况,选择Cyclone III EP3C5E144C8N。更多详细的资源还请各位去查相关的手册,设计来源于手册。

      对于所选的型号,我们应该有一个定性的认识。当拿到一款芯片时,我们能大致估计这个芯片的一些信息,图2.7是芯片型号的信息解释。

 

 

图2.7芯片型号说明

       对于我们所选择的芯片信号Cyclone III EP3C5E144C8N,其表达的信息为:

上述型号中有一个参数信息就是速度等级,这代表什么呢?笔者对于事物充满了好奇心,搜索了相关的资料,总结如下:

      (1) 对于Altera芯片,序号越低,速度等级越高,片子越贵。速度快慢:C6 > C7 > C8;Xilinx速度等级划分与Altera相反;

      (2) 每一个速度等级划分是片子生产出来之后进行测试,快的标记为低的序列号,慢的标记高的序列号;

      (3) 速度等级的选取方面,本着够用就行的原则,能用慢的则用慢的。快的芯片价格较高,不容易买到。

       所以对于速度等级,可以选择C8级别,这也是市面上常用的级别。对于时序若是不满足要求,可以通过高质量的verilog代码去实现时序方面的收敛问题。

3 SDRAM芯片确定

       基于价格,兼容性分析,选用几款常用的SDRAM芯片,如hynix公司的HY57V641620ET-6,HY57V283220T-6,HY57V2562GTR-75C,以及ISSI公司的IS42S1632B-7TIL(terasic开发板上面所用),还有Micron公司的产品MT48LC8M32B2TG-6,以上几款产品除容量和位宽不一致外,操作时序都一样。更详细的信息可以参见SDRAM文件夹中的手册部分。

       SDRAM的电路部分是较简单的,PCB layout时可以不用保证严格的走线等长,但是也不能太长,否则会造成信号的延时,对于时序可能不能够满足要求。图2.8是常用的电路设计方案。还有一点要注意的是SD_CLK,这个引脚需要接入FPGA的PLLX_CLKOUTn的引脚,目的是为了得到更低延时、更稳定可靠的时钟信号,而且SDRAM的时钟高达100MHz以上,所以就必须使用这个引脚了。具体可以查看EP3C5E的pin_out引脚文件。

图2.8 SDRAM电路

4 电源各参数确定

       对于电源部分,查看手册如图xx所示,其中VccINT = 1.2V,VccA = 2.5V,VccD_PLL = 1.2V,对于IO电压则选择常用的3.3V, Vio = 3.3V。

图2.9 电气特性

       对于FPGA而言,优质的电源输出是非常重要的,这关系到系统的稳定性。TI官网给出了一些关于FPGA的解决方案,如图2.10所示,给出FPGA内部各电流情况,看到占据较大电流的部分是内核消耗。在Quartus II中也有前期分析功耗的工具-PowerPlay Power Analyzer Tool,若是手头有一个较大的工程,可以进行烧录测试,测试前期所消耗的功耗。对于DE2-35平台上给了9V&1.3A(11.7W)的电源适配器,DE1-SOC平台上给了12V&3.5A的电源适配器,因此用一般2A或者1A的电源适配器绰绰有余。在电源设计时有两个概念比较重要,一个是LDO,一个是DC-DC,下面解释一下LDO和DC-DC的区别。

      LDO 是一种线性稳压器,DC-DC是直流变(到)直流(不同直流电源值的转换),如果输入电压和输出电压很接近,最好是选用LDO稳压器,可达到很高的效率。所以,在把锂离子电池电压转换为3V输出电压的应用中大多选用LDO稳压器。虽说电池的能量最後有百分之十是没有使用,LDO稳压器仍然能够保证电池的工作时间较长,同时噪音较低。如果输入电压和输出电压不是很接近,就要考虑用开关型的DCDC了,因为从上面的原理可以知道,LDO的输入电流基本上是等于输出电流的,如果压降太大,耗在LDO上能量太大,效率不高。DC-DC转换器包括升压、降压、升/降压和反相等电路。DC-DC转换器的优点是效率高、可以输出大电流、静态电流小。随着集成度的提高,许多新型DC-DC转换器仅需要几只外接电感器和滤波电容器。但是,这类电源控制器的输出脉动和开关噪音较大、成本相对较高。总的来说,升压是一定要选DCDC的,降压,是选择DCDC还是LDO,要在成本,效率,噪声和性能上比较。

      压差Dropout、噪音Noise、电源抑制比(PSRR)、静态电流Iq,这是LDO的四大关键数据。PSRR越高,LDO输出纹波越低。Iq是芯片自身消耗的电流,应当尽量选小的Iq。

图2.10 TI对FPGA芯片电压和电流分析

       对于电源部分的设计,采用如下几个方案,对于只有3.3V和1.2V的电源设计,可以采用图2.11所示的电路。这里的D1采用了5.1V的稳压二极管(作钳位用),防止短接、防止外部输入电压过高而烧坏电路!采用两路并行的DC-DC实现最大可达到3A的3.3V和1.2V电压。当然对于常用的AMS1117这款芯片,是基于LDO的,也可以去用,不过电流最大好像只能达到1A,对于有些功耗较高的场合可能需要重新考虑,不过一般的情况应该能够适应。对于Cyclone III代之后,又增加了2.5V电压部分,可以仿照上述电路生成2.5V即可,如图2.12所示,只需修改MP芯片输出的FB处的两个电阻值即可。除了上述的解决方案之外,也可以选用电源专用芯片如TI的TPS75003也是一个不错的选择,若是对于成本不是很敏感的情况下。

图2.11 电源设计

5 下载和配置电路确定

      对于配置电路部分,需要考虑的因素也是较多的,PCB的layout是一方,那么对于flash芯片的选型也是需要格外注意的。图2.12是EP3C5内部资源情况。那么在选用EPCS芯片时,如图2.13,其内存数据必须大于EP3C5的内部资源量,否则可能会造成存储不成功。在做NIOS时也需要较大内存的EPCS,可以选用EPCS16。

       官方资料上面给出了EPCS与FPGA的连接方式,如图2.14,注意DATA处的匹配电阻可以按照官网上面的25Ω,一般常接上一个33R,注意status,conf_done和nconfig的上拉电阻,这里需要严格按照官网上指定的电路,否则有可能下载不成功。这里的配置AS模式,时钟最大可以达到40MHz。如图2.15所示。JTAG与FPGA接入部分如图2.16所示,采用VccA 专用2.5V电压进行供电,这一点需要注意的,且TMS和TDI接上拉电阻,TCK处接下拉电阻,JTAG是一种常用的下载方式,更多的说明可以查看JTAG文件夹中的文件。

下载电路部分和配置电路部分总的接入图如图2.17所示,加入一个配置LED,可以随时观察下载情况。由于选用了AS模式,注意MSEL的配置方式,如图2.18所示。

图2.12 EP3CS5配置数据量

图2.13 EPCS4支持的内存

图2.14 EPCS与FPGA通信

图2.15 EPCS与FPGA通信最高时钟频率

图2.16 JTAG与FPGA通信

图2.17 下载与配置电路

图2.18 AS模式下的MSEL配置

6 晶振和复位以及PLL电路确定

      晶振采用有源晶振50MHz,接入3.3V电压并加上去耦电容,接入到FPGA的专用时钟引脚上。因为时钟和复位需要走全局时钟网络,已达到对时钟信号延迟达到最小。

      复位电路这里根据手册上面输入电压迈过1.7V的阈值电压之后如图2.18,FPGA芯片便开始进行逻辑的配置,配置时间取决于逻辑资源的多少。对于上面配置电路来讲,在AS模式下,最高40MHz,最低20MHz,对应的周期为20ns~50ns,对应最坏情况需要3000 000 bit x 50ns/bit = 150ms,那么阻容复位时间 t = RC x Ln[(VI – V0)/( VI – Vt)],对于VI = 3.3V Vt = 1.7V,V0  = 0情况,t = 0.7239RC;对于选定R = 47K,C = 10μF,得到t = 0.34s,大于FPGA复位上电时间。PLL电路的输入端接入10μF,0.1μF电容并联,已得到干净的PLL电源输入。图2.20是整个电路图部分。

图2.19 EP3C5特性

图2.20 复位晶振和PLL电路部分

分享给朋友:
您可能感兴趣的文章:
随机阅读: