FPGA即现场可编程门阵列,属于可编程逻辑器件的一种。随着工艺的进步和EDA设计工具的不断发展,FPGA已经成为实现数字系统的主流平台之一。FPGA的集成度越来越高,功耗和成本却在降低,所以其应用领域也越来越广。对于硬件工程师来说,器件的选型和资源评估变得更重要。
当我们要选择FPGA开发板的时候,首先要问的问题是我们能得到什么以及我们准备用它来做什么?对于初学者来说FPGA是令人生畏的,不过如果有一个好的开发板能达到事半功倍的效果,会发现入门并不困难。接下来我们来看看Digilent公司推出的Nexys3开发板。
Nexys3是基于Xilinx公司新一代的Spartan6系列FPGA的数字开发平台。Spartan6采用可靠的低功耗45nm 9层金属布线双层氧化工艺技术,实现了低风险、低成本、低功耗以及高性能的完美平衡,最大密度能达到15万个逻辑单元。Spartan6系列内置了丰富的系统级模块包括第二代DSP48A1 Slices、SDRAM控制器、增强型混合时钟管理模块、SelectIOTM技术、功率优化的高速串行收发器、PCI Express兼容端点模块等等,这些优异特性为替代定制ASIC产品提供了低成本的易行的可编程方案。Spartan6 系列的高性价比特别适合于以消费类为导向的DSP设计以及对成本敏感的嵌入式应用,如在汽车娱乐电子,液晶显示和视频监视解析等方面。
Digilent公司是一家在FPGA、微处理技术领域具备顶尖设计、制造水平的公司。产品遍布全球70多个国家、2000多所大学。此次推出的Nexys3开发板是一款Spartan6系列FPGA的入门级开发平台,我们来看看还能从它上面得到什么:
主芯片Xilinx Spartan6 XC6LX16-CSG324
16M字节 Micron公司的 Cellular RAM
16M字节 Micron公司的 并行PCM
16M字节 Micron 公司的Quad-mode SPI 串行PCM
10/100 Ethernet
USB-UART
A型USB接口,可以接鼠标、键盘和记忆棒
8位RGB信号 VGA 接口
100MHz 晶振
4个2x6 引脚PmodTM低速连接器
1个68 引脚VHDCI高速扩展连接器
8个拨码开关, 4个按钮
4个7段数码管, 8个 LED
1个 USB 接口提供电源、程序烧录和数据传输
一、详细介绍
1.拿到Nexys3的套件只有一块PCB板和一根USB micro下载线。第一次接触心里会有疑问,这也太简单了,这样就能工作了。
Nexys3的供电、编程和数据传输能通过一个USB接口完成。USB接口能提供500mA电流,能够提供Nexys3大部分的应用需求,如果连接器连接太多外设,也可以通过电源插口(J10)外部直流供电。
Nexys3的手册等资料可以在Digilent官网免费下载,值得一提的是Digilent提供了Nexys3的全套电路图,对于想了解和着手Spartan6系列FPGA芯片的电路设计是一个非常好的参考。
2.主芯片Xilinx Spartan6 XC6LX16CSG324
Spartan6主要分两种系列LX和LXT。其中LX系列没有内嵌PCI-Express兼容端点模块和高速串行收发器模块。XC6LX16CSG324有将近15000个逻辑单元,采用了点距更小的Chip Scale封装,能提供多达232个可使用I/O。
XC6LX16CSG324位于PCB的中心,所有的外围电路都是围绕它,由于管脚密集,芯片周围必须留出足够的空间用于布线。从PCB可以看到配置很多滤波电容,整个布局对称美观。
XC6LX16CSG324的I/O资源分为4个Bank,可以接不同的供电电压,所以设计时要综合考虑管脚的设置和PCB的布局,使得PCB走线距离尽量短和整齐。
3.FPGA配置电路
FPGA是基于SRAM工艺的,断电后将会丢失内部逻辑,所以芯片每次上电必须从外部重新配置FPGA。
可以通过USB PROG口(J3)在线配置FPGA,也可以通过JTAG口(J7)进行配置。
可以选择通过非易失性存储器中的文件在上电时自动配置FPGA。Nexys3有3种模式由跳线(J8)选择:BPI、SPI和JTAG启动模式。
BPI启动模式通过非易失性并行PCM配置FPGA,SPI启动模式通过非易失性串行PCM配置FPGA,JTAG启动模式通过USB HID HOST(J4)连接的闪存配置FPGA。
4.存储模块
Nexys3上一共有3种存储器:16MB的Cellular Ram(Micron M45W8MW16),16MB的并行PCM(Micron NP8P128A13T1760E),16MB的串行PCM(Micron NP5Q128A13ESFC0E)。
Cellular Ram是一种结合了SRAM和DRAM优点的存储器件,具有低功耗和高速读写数据的优点,可以配置成同步模式或者异步模式。同步模式时读写周期达到70ns,异步模式时总线速率80MHz。
非易失性相变存储器PCM是一种结合了Flash、EEPROM和RAM的优点的存储器件。能进行位读写,不需要块擦出操作,反复读写次数更多,数据保存时间更长。
Cellular Ram和并行PCM是共用数据和地址总线,从Nexys3我们也可以看到者两者布局是放在一起的。
串行PCM支持Quad-mode,Dual-mode和标准的SPI总线传输协议。
5.电源
Nexys3采用了Linear公司的DC-DC芯片(LTC3633 和LTC3619),产生3.3V、2.5V、1.8V以及1.2V四路电压,最大能承受15V输入电压。
供电方式有3种:USB、外部电源和锂电池,通过跳线(JP1)选择。
跳线J11可以接外部锂电池供电,注意锂电池和外部电源输入是并联起来,所以不能同时接外部电源和锂电池。
6.时钟
Nexys3有一个100M CMOS晶体振荡器。FPGA的时钟输入一定要分配在全局时钟引脚。
XC6LX16CSG324内置了2个时钟管理逻辑片,每个逻辑片包含2个数字时钟管理模块和4个PLL模块,可以灵活产生各种需要的时钟信号。
7.USB PROG接口
Nexys3上有一个Micro USB接口(J3),编程、传输数据和供电都可以通过这一个接口完成。
在PCB背面有一个USB控制芯片,采用的是Cypress公司的高速USB控制器CY7C68013a。该芯片内嵌了8051内核,能支持USB2.0协议。
8.USB A型接口
Nexys3上有一个标准USB A型接口(J4),它用作USB HID Host接口用来接鼠标、键盘或者闪存。该接口还不支持Hub功能,只能接一个鼠标或者一个键盘。
在PCB背面可以看到Nexys3使用了Microchip公司的单片机芯片PIC24FJ192,使它完成作为USB HID HOST的功能。
9.USB-UART接口(串口)
Nexys3上还有一个Micro USB接口(J13),可以用来与PC机进行串口通信。
USB转接芯片选用了FTDI公司的FT232R,这是一款专门用于USB-UART的单芯片。
10.基本I/O
Nexys3上包括了8个开关,表示开关状态的8个LED灯。一个4位7段数码显示管,5个按钮可以控制数码管的显示和熄灭。
11.以太网口
Nexys3选用了SMSC的以太网物理层收发器芯片LAN8710A,Xilinx的设计工具中提供了以太网MAC控制IP。LAN8710A使用了MII接口并且支持10/100Mb/s。
PCB上还提供了一个RJ45插座。
上电时LAN8710A的默认状态为:MII模式接口,100Base-TX,PHY地址为000。
12.VGA接口
Xilinx的设计工具提供了VGA控制器的IP,在FPGA中可以完成VGA信号的产生,外围电路简单,只需要一些分压电阻与VGA设备的终端电阻可以产生所需的信号。
输出的VGA信号包括8位RGB颜色信号和2位同步信号,能产生256色的视频图像。
13.Pmod连接器
Nexys3上有4个Pmod连接器。都是2x6直角100mil插座。每个插座包括2个电源信号,2个低信号和8个I/O信号。
Pmod连接器主要连接一些低速的和引脚不多的外部模块,需要注意PCB板上到Pmod连接器的信号走线并没有考虑阻抗和信号匹配的问题。
Digilent提供各种各样的Pmod外围模块,设计者可以根据需要灵活的选用,大大提高了扩展性能。
14.VHDCI连接器
Nexys3上提供一个68脚VHDCI插座。支持SCSI-3总线传输协议,信号传输速率能达到几百兆。
VHDCI包括40个数据信号,8个电源信号和20个地信号。数据信号组成20个阻抗控制信号对。由于是高速的差分信号布线时需要注意尽量平行,长度相等。
FPGA所有与VHDCI信号连接的管脚都处于I/O bank0。跳线(JP8)能选择I/O bank0的供电为3.3V或者2.5V。
15.软件工具
Digilent提供了一个独特强大的调试工具Adept。可以配置Xilinx逻辑器件,初始化扫描链,对FPGA,PROM进行编程,同时还具有开发板的自检校验功能和I/O扩展功能。可以在Digilent官网免费下载
Nexys3完全兼容所有的赛灵思工具,包括免费的WebPackTM,ChipscopeTM,EDKTM(嵌入式处理器设计套件),以及其他工具。
二、测试过程
到现在已经对Nexys3的硬件配置有了初步的了解。Nexys3的使用非常方便,平台的搭建非常简单,一根USB-micro下载线能搞定一切,不用额外的稳压电源或者变压器供电,对工程师来说真是个福音,不用在办公室和实验室来回奔波了。直接在办公桌上就可以设计,下载程序。而且携带也很方便,只要有台笔记本到那里都能开始工作。
1.上电前准备
为了监测一些通用的接口,我们还是要准备一根USB-micro线用于与PC串口通信,一台VGA监视用的显示器,一个USB口的鼠标或键盘。有了这些基本可以监测Nexys3的运行了。
虽然Nexys3的配置很简单,还是要花几分钟看看手册,不要马上通电。对于做过硬件设计的人来说,印制板上电前是很紧张的,接通电源一切就不在自己控制中了。Nexys3已经是成熟的产品,当然不会出现什么硬件上的问题。不过同学上电前要注意以下几点:
Nexys3上有2个Micro USB接口,不注意很容易接错了。在J3编程口有“USB PROG”丝印字样,J13串口有“UART”丝印字样。