专于精益高科技电子产品反向软硬件研发
为客户提供产品定制开发、产品性能检测及售后服务等一列的解决方案

服务热线

+086-0755-82815425
+086-0755-83035836

FPGA模块化电路设计方法(图)2009年09月04日

  1.FPGA最小系统的概念
  FPGA最小系统即可以使FPGA正常工作的最简单的系统,他的外围电路尽量最少,只包括FPGA的必要的控制电路。那么我们一般所说的FPGA的最小系统都包括:FPGA芯片,下载电路,外部时钟,复位电路,电源,如果需要使用niosII软嵌入式处理器还要包括:sdram和flash。一般以上这些组件是FPGA最小系统的组成部分。
  如果是初学者可以把以上这些功能做到一个单独的板上,我们叫他为核心板,其余的功能通过板级连接器引到功能扩展底板上,这样我们整个系统可以分为两个电路板,核心板是FPGA相关必要的部分,底板是用户定义的功能底板。这样的设计好处是成本比较底,因为FPGA由于管脚较密核心板一般采取多层板工艺(4层,6层,8层等),而功能底板一般两层就可以满足设计要求,所以这样可以减小硬件制板的成本。
  其次,通用性强。因为FPGA是通用的逻辑设备,结合不同的功能底板可以实现多种功能的用途,而核心板只有一种。这样只需要设计一次核心板,在以后不同的工程中只设计功能底板就可以了。以下是本公司基于不同平台的FPGA最小系统框图示例和功能扩展板示意图:

 普通FPGA开发板结构图(红色飓风II代ep1c12)

         
  基于cycloneII-EP2C35F484芯片核心板框图:

    
  基于spartanIII-XC3S700A芯片核心板框图:

    
  功能底板框图1

    
  2.FPGA模块化电路的硬件设计方法
  上文介绍了什么是FPGA的最小系统,如何真正的去设计一款符合自己的FPGA系统呢?下面分模块的讲解FPGA电路的设计方法。
  2.1 硬件电路设计工具
  工欲善其事,必先利其器。要想成功的设计一款的FPGA系统,首先需要选择适合的硬件电路设计工具。主流的硬件电路设计工具主要有:protel,pads,allegro等。其中以protel最为流行,其次是pads的powerlogic和powerpcb。Allegro在一些外企或者大公司用的比较多。如果是初学者或者个人用户设计FPGA硬件电路推荐大家使用protel99se sp6软件设计印制电路板,orcad软件来画原理图。为什么不用protel来画原理图呢?首先protel软件对原理图的检查规则不够完整,有些错误自动检查工具无法检查到,orcad的好处是altera很多官方开发板的原理图都是用oracd设计的,大家可以直接拿来参考,而且orcad对多页面和层次画设计支持的比较好。而高版本的altium对电脑的配置要求比较高,画图时刷新会比较慢。综合以上原理图工具orcad10.6,protel99se sp6。都有绿色版小巧实用。FPGA的原理图库和pcb封装库大家可以到www.altium.com网站上去下载最新的库,之后用高版本的altium转换成orcad或者protel99的格式就可以了。
  2.2 FPGA电路设计
  有了工具以后就可以准备原理图了。FPGA的管脚主要包括:用户I/O(User I/O)、配置管脚、电源、时钟及特殊应用管脚等。其中有些管脚可有多种用途,所以在设计FPGA电路之前,需要认真的阅读相应FPGA的芯片手册。一般来说从网站上下载到的FPGA器件原理图都是以以上这几种功能划分成不同的页面。下面以Altera公司的Cyclone系列FPGA为例,介绍FPGA的各种功能管脚。
  EP1C6器件原理图各页面
  (1) 时钟(2)配置模式(3)jtag调试模式


  (4)用户IO,多功能IO


  (5)电源

             
  除了以上的这些页面外,一些中高端FPGA还有更多的双作用IO和nc管脚。
  2.2.1 用户I/O。
  I/Onum(LVDSnumn):可用作输入或输出,或者双向口,同时可作为LVDS差分对的负端。其中num表示管脚序号。
  一般在绘制FPGA原理图时,将同一种功能和用途的管脚放在一个框图中
  2.2.2 配置管脚。
  ·  MSEL[1..0]:用于选择配置模式。FPGA有多种配置模式,比如主动、被动、快速、正常、串行、并行等,可以此管脚进行选择。
  ·  DATA0:FPGA串行数据输入,连接至配置器件的串行数据输出管脚。
  ·  DCLK:FPGA串行时钟输出,为配置器件提供串行时钟。
  ·  nCSO(I/O):FPGA片选信号输出,连接至配置器件的nCS管脚。
  ·  ASDO(I/O):FPGA串行数据输出,连接至配置器件的ASDI管脚。
  ·  nCEO:下载链器件使能输出。在一条下载链(Chain)中,当第一个器件配置完成后,此信号将使能下一个器件开始进行配置。下载链的最后一个器件的nCEO应悬空。
  ·  nCE:下载链器件使能输入,连接至上一个器件的nCEO。下载链第一个器件的nCE接地。
  ·  nCONFIG:用户模式配置起始信号。
  ·  nSTATUS:配置状态信号。
  ·  CONF_DONE:配置结束信号。
  2.2.3 电源管脚。
  ·  VCCINT:内核电压。通常与FPGA芯片所采用的工艺有关,例如130nm工艺为1.5V,90nm工艺为1.2V。
  ·  VCCIO:端口电压。一般为3.3V,还可以支持选择多种电压,如5V、1.8V、1.5V等。
  ·  VREF:参考电压。
  ·  GND:信号地。
  如图2.5所示是FPGA电源管脚原理图。
  2.2.4 时钟管脚。
  ·  VCC_PLL:锁相环管脚电压,直接连VCCIO。
  ·  VCCA_PLL:锁相环模拟电压,一般通过滤波器接到VCCINT上。
  ·  GNDA_PLL:锁相环模拟地。
  ·  GNDD_PLL:锁相环数字地。
  ·  CLKnum(LVDSCLKnump):锁相环时钟输入。支持LVDS时钟输入,p接正端,num表示PLL序号。
  ·  CLKnum(LVDSCLKnumn):锁相环时钟输入。支持LVDS时钟输入,n接负端,num表示PLL序号。
  ·  PLLnum_OUTp(I/O):锁相环时钟输出。支持LVDS时钟输入,p接正端,num表示PLL序号。
  ·  PLLnum_OUTn(I/O):锁相环时钟输出。支持LVDS时钟输入,n接负端,num表示PLL序号。
  另外,FPGA的管脚中,有一些是全局时钟,这些管脚在FPGA中已经做好了时钟树。使用这些管脚作为关键时钟或信号的布线可以获得最佳性能。
  2.2.5 一些高端FPGA的特殊管脚。
  ·  VCCPD:用于选择驱动电压。
  ·  VCCSEL:用于控制配置管脚和锁相环相关的输入缓冲电压。
  ·  PORSEL:上电复位选项。
  ·  NIOPULLUP:用于控制配置时所使用的用户I/O的内部上拉电阻是否工作。
  ·  TEMPDIODEn/p:用于关联温度敏感二极管。

微信扫描二维码咨询