首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

关于FPGA硬件系统设计的总结

关于FPGA硬件系统设计的总结

就xilinx 7series项目中关于FPGA硬件系统做了一些总结,不知在这个版块中大部分同仁是否都关注于用硬件描述语言实现的问题,就fpga硬件系统有没有志同道合之友一块讨论?
FPGA硬件系统,下面分为几个部分展开
1.电源
2.时钟
3.配置
4.管脚分配
5.高速接口设计
本帖最后由 flying1983 于 2016-9-2 10:34 编辑

1.        FPGA系统电源设计
电源是一个系统能否工作的基础,需要注意以下几个方面,理清电源设计的思路。
(1)电源分类。一颗FPGA要运作起来,需要供电,而像FPGA这样复杂的IC一般都需要多路电源,以Xilinx Artix-7系列为例,电源会分为core电源(VCCINT 1.0V)、Block Ram电源(VCCBRAM 1.0V)、辅助电源(VCCAUX 1.8V)、I/O bank电源(VCCO 1.8/2.5/3.3)、密钥存储备份电源(VCCBATT 1.5V)、模拟电路电源(VCCADC 1.8v、VREF 1.25V
)、高速收发器电源(VMGTAVCC 1.0V、VMGTAVTT 1.2V)。参考官方文档,看各路电源是否有电压一致,可以共用一路电源,不用的模块是否可以不供电,比如ADC参考电源等,可简化电路。
(2)各路电源的电压和纹波以及负载要求。要清楚每个电源要求的电压范围、纹波要求以及系统工作电流估计。这样就可以选择满足带载能力的电压芯片(DC/DC、LDO等),外围耦合电容的个数和参数会影响电源的纹波。
(3)上电时序要求。FPGA各路电源在上电和掉电的时候对时序一般是有要求的,保证最小的冲击电流和上电过程中I/O的高阻态,设计电源时要特别注意。还是以Xilinx Artix-7系列为例,各电源上电先后顺序为VCCINT、VCCBRAM、VCCAUX、VCCO。推荐设计方法有两种,控制dcdc软启动时间;选择带POWER GOOD信号输出的DC/DC,前一级的POWER GOOD输出连接到后一级的EN管脚。4I/O Bank电源电压设定。通常FPGAI/O Bank支持宽电源设计,可应用于不同接口电平的环境中。其中需要注意的是管脚设定为差分电平标准后,该I/O Bank的供电要严格根据官方文档要求提供。一旦该I/O Bank电源确定,该Bank中所有的管脚电平标准设定都要与电源电压一致。
2.FPGA系统时钟电路设计
FPGA内部逻辑翻转的动力来自于时钟,一般FPGA系统需要外部振荡器提供时钟。实现电路有以下几种。
(1)采用有源晶振提供单端时钟。时钟输入到FPGA的MRCC或SRCC管脚,以便接入内部全局时钟网络,保证较强的驱动能力和较短的时延。每个Bank都有独立的MRCC和SRCC专用时钟管脚。
(2)提供差分时钟。差分时钟一般跟FPGA的MRCC或者SRCC差分对连接。
(2)多时钟系统实现。一个FPGA系统需要多个不同频率时钟时,可以有下面几种实现方式。
a.多个不同晶体提供。比如需要两路时钟,一路单端,一路差分。
b.由一颗晶体经过PLL芯片产生多路不同频率的时钟。在需要时钟较多或者频率较特殊的应用环境中。
c.需要多路同频同相时钟。比如高速收发器的参考时钟,多个收发器采用相同的参考时钟,可用固定频率的晶体输出,经过clock buffer实现多路输出。
3.FPGA配置模式设计
由于很多厂家的FPGA都是基于SRAM的工艺,配置文件下载到FPGA中掉电会丢失。因此需要外挂非易失存储器或者外部的控制器来保存配置信息,上电后FPGA首先从外置存储器读取配置信息或者控制器将配置信息传入FPGA完成加载过程。每个厂家的配置模式大同小异,下面以Xilinx Artix-7系列为例,介绍下FPGA的几种配置模式。
Artix-7系列FPGA支持以下7种配置模式,除JTAG模式外,其他几种通过管脚M[2:0]的状态来选择。
7 Series FPGA Configuration Modes
Configuration Mode        M[2:0]        Bus Width        CCLK Direction
Master Seiral        000        x1        Output
Master SPI        001        x1,x2,x4        Output
Master BPI        010        x8,x16        Output
Master SelectMAP        100        x8,x16        Output
JTAG(always available)        xxx        x1        Not Applicable
Slave SelectMAP        110        x8,x16,x32        Input
Slave Seiral        111        x1        Input
在Master mode下,CCLK可以选择FPGA内部时钟,也可以选用外部时钟。内部时钟有几种频率可供选择。CCLK的频率可以决定上电加载的时间,可根据应用需求合理选择。
4.FPGA管脚分配原则
一个FPGA应用系统中,一般会用到多个bank的I/O,可能会存在多个电平标准的信号。管脚分配一般遵循下面几项原则。
(1)将FPGA需要连接的信号分类,分类标准包括电平、单端/差分、数字/模拟,特殊应用(如高速收发器专用信号,DDR controller管脚)等。
(2)和时钟同步的数据要和时钟尽量放在一个bank中,实在不能满足就放在相邻bank。时钟输入要接入时钟专用管脚,时钟输出无需这样要求。
(3)高速收发器应用要选择FPGA内置硬核IP,对应专用管脚。
(4)DDR控制器应用,要先用FPGA设计工具例化IP,根据生成的IP选择Bank,bank内信号顺序可进行调整。
5.FPGA高速应用设计
FPGA的高速应用设计,包括以下几种。
(1)多组LVDS差分对传输。该应用采用通用差分I/O实现,例化SERDES,一般速率为数百兆bps。该种情况,要注意所用bank的供电电压(比如Artix-7 LVDS应用bank供电必须为2.5V),差分对的阻抗匹配(一般为100Ω)。
(2)高速收发器多路差分对传输。采用FPGA专用模拟IP实现,速率高达数Gbps。设计该部分电路要注意模拟收发器的供电,参考时钟设计以及信号的耦合方式。
(3)DDR控制器应用。该应用一般会占用多个Bank,采用通用I/O实现。Bank供电需根据DDR供电选择,比如1.5V。
返回列表