• fpga编程软件 > 可编程逻辑器件系统设计制作训练
  • 可编程逻辑器件系统设计制作训练

    免费下载 下载该文档 文档格式:DOC   更新时间:2010-02-01   下载次数:0   点击次数:1
    文档基本属性
    文档语言:Simplified Chinese
    文档格式:doc
    文档作者:ddt
    关键词:
    主题:
    备注:
    点击这里显示更多文档属性
    第5章 可编程逻辑器件系统设计制作训练
    内容提要
    在电子竞赛设计中,可编程逻辑器件作为系统的控制核心已广泛应用.本章介绍了FPGA最小系统,FPGA最小系统配置电路等设计制作,Modelsim仿真工具使用,FPGA的最小系统板的下载,常见错误及其原因分析及编程技巧.
    知识要点: FPGA最小系统,配置,仿真工具,FPGA的下载,编程错误,编程技巧.
    教学建议: 本章的重点是掌握FPGA最小系统的设计与制作,仿真与程序设计技巧中.建议学时数为8学时.FPGA最小系统在竞赛中可以选用成品.但FPGA作为竞赛作品中的核心部件,软件编程训练可以利用FPGA开发系统进行培训,通过对FPGA最小系统硬件的设计制作,可以使学生加深对FPGA系统的了解.仿真工具,编程技巧是训练的重点.设计制作的产品可以作为子系统或者模块保留备用.训练中要求学生完成电原理图,印制板图,装配图,实际制作,电路调试,设计总结报告.
    5.1 FPGA最小系统的设计制作
    5.1.1 Xilinx公司的FPGA器件
    Xilinx在1985年首次推出了FPGA期器件,随后以XC4000,Spartan,Virtex系列为代表的FPGA器件从XC2000,XC3000,XC4000,XC5000发展到Spartan和Viaex,Virtex-Ⅱpro等系列,其集成度更高,速度更快,价格更低,性能在不断提高.Xilinx FPGA系列产品性能比照表如表5.1.1所示.
    表5.1.1 Xilinx FPGA系列产品性能比照表
    器件类型
    Spartan-Ⅱ
    Spartan-ⅡE
    Virtex-Ⅱ
    Virtex-ⅡPro
    LC数*
    5292
    15552
    104832
    125136
    时钟管理
    DLL**
    DLL
    DCM***
    DCM
    BlockRAM
    容量* (Kit)
    56
    288
    3024
    10008
    硬件乘法器
    没有
    没有


    I/0接口速度*
    200MHz
    400MHz
    840MHz
    3.125GHz
    速度等级
    -5,-6
    -6,-7
    -4,-5,-6
    -5,-6,-7
    *表中所列LC数量,BlockRAM容量,I/0接口速度均为最大值.
    **DLL表示数字延迟锁相环(Delay-Locked Loop).
    ***DCM表示数字时钟管理器(Digital Clock Manager).
    1. Virtex器件系列FPGA
    (1)Virtex和Virtex-E系列FPGA
    Xilinx推出的Virtex系列FPGA产品是Xilinx 现场可编程平台门阵列(Platform FPGA)的第一套产品.该系列器件是高速,高密度的FPGA.系统门数从5万到100万,最高时钟频率可以达到200MHz,工作电压为2.5V,采用5层金属,0.22Fm的CMOS工艺制造.主要特点是灵活的内部结构,可以兼顾速度和集成度.作为Virtex的改进型,Virtex-E采用了0.18gm,6层金属布线工艺,系统门数从5.8万门到400万门工作电压为1.8V,集成度更高,功耗更低;Virtex-E拥有先进的SelectRAM存储体系,有IMbit的片内分成式RAM和最高可达832Kbk的片内块状RAM,可真正实现双口块RAM.存储器带宽可以达到1.66TBps. Xilinx于2001年1月正式发布了最新的Virtex-Ⅱ器件,其集成度更高,能够达到近千万系统门,在时钟管理上也采用了一些新的挂术,封装采用了BGA封装.
    (2) Virtex-Ⅱ系列FPGA
    Virtex-Ⅱ系列产品是Xinlinx公司在Virtex-E系列产品后推出的新型高端FPGA,该系列元件采用业界第一套数位控制阻抗技术(DCI)解决关键性的设计问题,例如高复杂度电路板布局,讯号扭曲等.Virtex-Ⅱ系列产品采用0.15μm和0.12μm混合工艺设计,内核电压为1.5V,支持多种接口标准,内部时钟频率可达420MHz.
    Virtex-Ⅱ系列产品主要由CLB,IOB,BlockRAM,DCM和乘法器等组成.其中,CLB模块用于实现FPGA的大部分逻辑功能,IOB模块用于提供封装管脚与内部逻辑之间的接口,BlockRAM用于实现FPGA内部的随机存取,DCM用于提供灵活的时钟管理,乘法器用于提高FPGA的数字运算速度.
    Virtex-Ⅱ系列元件具备位元流加密功能,全面保障设计的安全性.此功能应用安全的三重数据加密标准(DES)演算法将位元流编码加密,加密演算所使用的密钥是透过IEEE 1149.1(JTAG)介面来提供,使用电池或其他恒定电源供应器将密钥储存于晶片中.加密之后的位元流可使用解密专用的密钥库(key bank)载入FPGA元件中.这项功能全面提升设计的安全性,避免设计遭人窃用,为IP供应商提供全新的商务模式.
    Virtex-Ⅱ系列产品与Xilinx公司以前推出的FPGA产品相比较,其内部结构有了较大的改进,这主要包括:
    ①Virtex-Ⅱ内部的CLB模块含有4个Slice,从而提高了Virtex-Ⅱ系列产品的逻辑容量和资源利用率.
    ②Virtex-Ⅱ内嵌专用乘法器电路,从而提高了Virtex-Ⅱ系列产品进行数字信号处理的速度.
    ③Virtex-Ⅱ内嵌更大容量的BlockRAM,用于适应当前设计对大容量片内存储的要求.
    ④Virtex-Ⅱ将DLL改为数字时钟管理器(DCM,Digitsl Clock Manager),从而提供更灵活的时钟解决方案.
    ⑤Virtex-Ⅱ支持更多的I/O接口标准,主要包括LVTTL,LVCMOS(3.3V,2.5V,1.8V,1.5V),PCI(3V,33MHz/66MHz),PCI-X,GTL,GTLP,AGP,AGP-2X,HSTL(Ⅰ,Ⅱ,Ⅲ,Ⅳ),SSTL3,SSTL2,LVDS(3.3V,2.5V),LVPEFCL,LVDSEXT(3.3V,2.5V),BLVDS,ULVDS和LDT.
    ⑥Virtex-Ⅱ采用数控阻抗匹配(DCI,Digitally Controlled Impedance)技术,从而减小因阻抗匹配问题而造成的系统不稳定性.
    ⑦Virtex-Ⅱ内部含有更加丰富的布线资源,从而保证FPGA逻辑资源的最大利用率.
    ⑧Virtex-Ⅱ支持配置数据的三重加密,从而最大限度保护设计者的知识产权.
    (3)Virtex-ⅡPro系列FPGA
    Virtex-ⅡPro系列产品采用Xilinx公司成熟的Virtex-Ⅱ架构,主要由PowerPC405处理器模块,RocketIOTM多吉比特收发器,CLB,IOB,BlockRAM,DCM和乘法器组成,其中,CLB,IOB,BlockRAM,DCM和乘法器的内部结构和使用方法与Virtex-Ⅱ系列产品完全一致.
    2. Spartan器件系列FPGA
    (1)SpartanⅡ器件系列
    SpartanⅡ器件是以Virtex器件的结构为基础发展起来的第二代高容量的FPGA,集成度可以达到15万门,系统速度可达200MHz,能达到ASIC的性价比.SpartanⅡ器件的工作电压为2.5V,采用0.22μm/18μm CMOS工艺,6层金属连线制造.
    (2)Spartan-XL器件
    Spartan和Spartan-XL器件的性能指标如表5.1.2所示.
    表5.1.2 Spartan和Spartan-XL器件的性能指标
    器 件
    逻辑单元
    典型系统范 围
    CLB阵列
    CLB总数
    块(RAM/bit)
    最大可用I/O数
    XCS05&XCS05XL
    238
    2K-5K
    10×10
    100
    360
    77
    XCS10&XCS10XL
    466
    3K-10K
    14×14
    196
    616
    112
    XCS20&XCS20XL
    950
    7K-20K
    20×20
    400
    1120
    160
    XCS30&XCS30XL
    1368
    10K-30K
    24×24
    576
    1536
    192
    XCS40&XCS40XL
    1862
    13K-40K
    28×28
    784
    2016
    224
    (3) Spartan-ⅡE系列产品
    Spartan-ⅡE系列产品主要技术参数如表5.1.3所示.
    表5.1.3 Spartan-ⅡE系列产品主要技术参数
    器件型号
    系统门数量
    CLB数量
    LC数量
    BlockRAM
    容量(Kbit)
    DLL
    数量
    最大用户
    I/O数量
    XC2S50E
    50000
    16×24
    1728
    32
    4
    182
    XC2S100E
    100000
    20×30
    2700
    40
    4
    202
    XC2S150E
    150000
    24×36
    3888
    48
    4
    263
    XC2S200E
    200000
    28×42
    5292
    56
    4
    289
    XC2S300E
    300000
    32×48
    6912
    64
    4
    329
    XC2S400E
    400000
    40×60
    10800
    160
    4
    410
    XC2S600E
    600000
    48×72
    15552
    288
    4
    514
    Spartan-ⅡE系列产品采用成熟的Virtex-E架构,主要由可配置逻辑模块(CLB,Configurable Logic Block),输入输出接口模块(IOB,Input/Output Block),BlockRAM和数字延迟锁相环(DLL,Delay-Locked Loop)组成,如图5.1.1所示.用户可编程门阵列由五个主要的可编程部分组成.
    ①输入输出模块(IOB)提供封装引脚和内部逻辑之间的接口;
    ②可配置逻辑模块(CLB)提供构造主要逻辑所需的功能(函数)部件;
    ③专用的每个有4096个位的块RAM存储器;
    ④用来补偿时钟发送延时的数字延迟锁相环(Clock DLL)和区域时钟控制;
    ⑤通用多级互连结构.
    图5.1.1 Spartan-IIE系列FPGA功能块图表
    如图5.1.1所示,其中,BlockRAM用于实现FPGA内部数据的随机存取,DLL用于FPGA内部的时钟控制和管理.CLB用简单的路径连到所有支持和路由选择结构来形成主要的逻辑结构,用于实现FPGA的大部分逻辑功能.IOB用于提供封装管脚与内部逻辑之间的接口,位于所有逻辑单元和存储元件的周围,以便简单快速地选择信号路径来打开和关闭芯片.编程数据存放在静态存储单元中,来控制所有可编程逻辑元件和互连资源.当电源打开(POWER-UP)时数据被装载到存储单元中,如果有必要改变硬件的功能可以重新装载.下面将具体介绍每一个元件.
    Spartan-ⅡE的输入输出模块如图5.1.2所示,Spartan-IIE的IOB特性化输入输出支持I/O信号标准的多样化.这些高速输入输出能支持动态存储器和总线接口的多种状态.三个IOB寄存器可做边沿触发的D触发器或是电平触发的锁存器.每一个IOB有一个被三个寄存器所共用的时钟信号(CLK)和一个每一个寄存器所独立拥有的使能时钟信号(CE).
    除了CLK和CE控制信号以外,三个寄存器共用一个置位/复位(SR)信号.对于每一个寄存器,这一信号可独立地设置成同步置位,同步复位,异步Preset或异步清零.每一个用户I/O底座都连接有可选择的上拉和下拉电阻和一个可选择的弱保持电路.在编程(设置)以前,所有的没有被编程的输出将强行进入高阻状态.下拉电阻和弱保持电路不动作,但是输入将可能选择性的被上拉.上拉电阻的这种先于编程的动作被编程模式引脚所控制.如果上拉电阻没有动作,所有的引脚将悬空.因此,外部的上拉电阻或下拉电阻必须连在在编程以前要求处于定义好的逻辑层的引脚上.所有的底座都将不会遭到电子激发脱附(ESD)和短暂过压的危害.编程后,为了满足LVTTL, PCI, HSTL, SSTL, CTT和AGP的标准,钳位二极管被连到VCCO.
    在模块图中有一个特性没有画出,但是被软件所控制,它就是极性控制.输入输出缓冲器和所有的IOB控制信号都有一个独立的极性控制.
    图5.1.2 Spartan-IIE 输入/输出块 (IOB)
    IOB输入路径中的缓冲器通过一个可选择的输入触发器将输入信号直接送到内部的逻辑单元.在这个触发器的D输入端有一个可选择的延时元件,用来消除pad-to-pad的保持时间.这个延时与FPGA内部的时钟发送延时相匹配,在使用时,要确保pad-to-pad的保持时间为0.
    每一个输入缓冲器都能通过编程使它符合任一所支持的低电压信号标准.在一些标准中,输入缓冲器使用一个用户提供的基准电压VREF.这种强加的基准电压可用于十分相近的标准中.
    Spartan-II E FPGA合并了几个块RAM存储器.这样补充了分散RAM的查询表(LUT),使得浅存储器结构能在CLB中执行.存储块按列排列,XC2S400E有4个块RAM列,XC2S600E有6个块RAM列.这些列加大了整个芯片的高度.每个存储块4个CLB,因此,一个Spartan-IIE器件16个CLB,每个列将包含4个存储块,总共8个块.Spartan-IIE系列芯片块RAM数量如表5.1.4所示.
    表5.1.4 Spartan-IIE系列芯片块RAM数量
    芯片类型
    块RAM数量
    块RAM总字节数
    XC2S50E
    8
    32
    XC2S100E
    10
    40
    XC2S150E
    12
    48
    XC2S200E
    14
    56
    XC2S300E
    16
    64
    XC2S400E
    40
    160
    XC2S600E
    72
    288
    Spartan-II E FPGA 在没有输出电流和没有有效的上拉电阻时,所有的I/O引脚是3态和悬空的.只有当VCCINT 和VCCO的供电电压已达到它们在推荐工作条件下的期望的最小值时,I/O漏电流才会起作用.内部的上拉和下拉电阻保证没有连接的输入引脚有一个有效的逻辑电平.当输入引脚接到其它电路中时这些上拉和下拉电阻不能提供有效的逻辑电平.
    Spartan-II E FPGA为了成功的通电,Spartan-IIE FPGA 要求向VCCINT线提供一个最小的供电电流ICCPO.需注意的问题:当VCCINT从0上升到1.8V时,ICCPO要求应用时间极短(通常只有几个毫秒).
    5.1.2 FPGA最小系统电路设计
    FPGA最小系统板电路原理图如图5.1.3~5.1.6所示,最小系统板由XC2S100E ,50MHz晶振,电源部分,插针,指示部分,PROM和开关组成.电源部分将5V直流经过TPS70451转换得到+3.3V和+1.8V的直流电.PROM(XC18V02)是一个掉电存储器,在掉电时可自动保存数据.四个40脚双列插针用于和其它外部设备连接.

    图5.1.3 FPGA部分原理图

    图5.1.4 电源部分原理图
    图5.1.5 PROM配置部分原理图
    图5.1.6 接口部分电路图
    5.1.3 FPGA最小系统印制板设计
    所设计的FPGA最小系统印制板图如图5.1.7~5.1.10所示.
    图5..1.7 FPGA最小系统印制板TOP图
    图5.1.8 FPGA最小系统印制板BOTTOM图
    图5.1.9 FPGA最小系统印制板SILK_TOP图
    图5.1. 10 FPGA最小系统印制板SILK_BOTTOM图
    5.1.4 FPGA最小系统电源电路的设计
    电源电路的原理图如图5.1.11所示.TPS70451将输入的5V直流电压转换为+3.3V和+1.8V直流电压输出,作为FPGA的工作电压.

    图5.1.11 电源电路原理图
    其他外部VREF输入
    内部基准
    可编程偏置和ESD网络
    可编程延时
    可编程输出缓冲器
    可编程输入缓冲器
  • 下载地址 (推荐使用迅雷下载地址,速度快,支持断点续传)
  • 免费下载 DOC格式下载
  • 您可能感兴趣的
  • fpga编程实例  fpga编程  fpga编程原理  fpga的编程原理是什么  fpga编程语言  基于fpga的编程原理  实用c语言fpga编程  tlc5510的fpga编程  为什么对fpga进行编程