分类:
2010-08-13 21:04:03
Spartan-3E FPGA Family Data Sheet
由于实验室还有一些现成的PQ208封装的50万门spartan3E。所以准备用它来开发我们的试验板。
200页的手册分为4部分,第一部分为总体概况,需要看一下。第二部分主要是讲3e的芯片内部结构,这个之前了解过一些。第三部分是3e的直流和开关特性,至一部分第一次学习。第四部分主要是芯片封装说明。因为之前很少有翻译过文档的经验,可能用词比较生硬,呵呵。
1.总体介绍:
采用90nm工艺制造,性价比占优势,可用于宽带设备访问,家庭网络,显示,数字电视等项目应用。多达376个I/O引脚和156个差分信号对。支持3.3V,2.5V,1.8V,1.5V,1.2V的电压信号。高达622Mb/s以上的I/O数据传输率。支持DDR方式(333Mb/s),多达648Kbits的Block RAM和231Kbits的分布式RAM,最多含有8个DCM(能够提供5MHz~300MHz的时钟频率),含有8个全局时钟,16个区域时钟,和大量的低歪斜(Skew)时钟通路。使用工业标准的PROM(1.SPI FLASH PROM 2.NOR FLASH PROM 3.含有JTAG接口的 Xilinx Platform Flash)。支持32/64位的33MHz的PCI标准,高档支持66MHz PCI,可以选择无铅封装。
Spartan3E支持这几种配置方式:
1.Xilinx Platform Flash PROM的主动串行方式。
2.通过SPI串行FLASH配置。
3. 通过Byte Peripheral Interface (BPI)从一个标准的 x8 或 x8/x16 并行NOR Flash向上或向下配置。
4.串行从模式, 典型例子是通过一个处理器配置。
5.并行从模式, 典型例子是也通过一个处理器配置。
6.边界扫描方式配置(JTAG)。
2.SPARTAN-3E功能描述
(1)IOB(input and output block)
输入延时功能:
每一个IOB都有一个可编程延时块,可以随意的延时输入信号。如图一所示,信号从PAD输入后有一个可以被绕开的粗延时(Coarse Delay)。然后信号送向一个6阶的延时线路。用这种方案,可以产生(2X6)12种延时,其中的3个抽头还可以通过多路复用器连接至D触发器,用于给同步存储单元,这时只有6阶延时。整个延时电路的延时值在器件上电后配置时确定下来,不能在器件运转时改变。这个延时电路的主要应用是用于调整输入输入延时路径确保在全局时钟的下使用输入D触发器时不需要输入保持时间(hold time)。这个值是Xilinx软件自动设定的,取决于器件大小和触发器在器件中的特定位置。这些值在实现工具(implementation tools)生成的映射报告里(MAP Report)。所产生的影响可以通过(时序分析工具)Timing Analyzer tool得出报告。
图一 IOB的延时电路
如果在设计中使用了DCM(数字时钟管理器)那么延时值可以被安全地设置为0,因为其中的DLL(锁相环)会自动补偿,确保仍然没有加入输入保持时间的需求。同步和异步的延时值都是可以修改的,在需要延时外部时钟和数据的情况下很用用,例如一些RAM接口。
这些值是通过IBUF_DELAY_VALUE 和IFD_DELAY_VALUE 这两个参数来修改的,IBUF_DELAY_VALUE的值默认是0,作为异步输入而绕开延时单元。用户可以将这个值设置为0~12。IFD_DELAY_VALUE默认是AUTO。这两个参数是互相独立的。如果一个引脚同时使用了同步和异步两个输入方式,两个参数都有效,但是他们的取值都必须在各自范围的一半之内。
存储元件功能:
每个IOB内有3对存储元件,每一个存储元件都可以被配置为D触发器或锁存器。其中在输出路径和三态路径上的存储元件对可以在一个多路选择器的作用下实现DDR传输。
片上差分端点:
Spartan-3E在差分输入端之间提供了120欧姆左右的片上阻抗,而连接在查分输入端上的设备潜在的提供了大约100欧姆的外部阻抗,当Vcco=2.5V时,片上差分输入端点有效,但是不能用于单端输入。通过设置DIFF_TERM属性的值为TURE可以打开这项功能。
上拉/下拉电阻:
IOB中的上拉/下拉电阻可以将一个悬空的引脚或输入引脚随意的强制为高/低电平。默认情况下所有没有用到的I/O脚和输入脚都使用PULLDOWN,(PULLUP和PULLDOWN所连接的电阻阻值和Vcco的大小有关),通过设置Bitstream Generator的unusedpin属性可以设置没有用到的引脚属性。
保持电路:
每个I/O口都有一个管理电路(keeper circuit),这个电路用来防治没有用到的引脚悬空,PULLDOWN和PULLUP属性可以覆盖KEEPER属性。
摆率控制(slew rate control):
每一个IOB都有一个摆率控制电路用于设置LVCMOS和LVTTL下的高低电平变化速率,默认是SLOW,可以设置为FAST,LVCMOS和LVTTL都支持6种不同的驱动电流强度,(2,4,6,8,12,16)mA。软件默认的输出标准是LVCOMS25,SLOW,12mA驱动能力。
Bank中的IOB组织:
Spartan-3E将IOB分为4个bank,每一个bank有各自的Vcco和Vref电压。在使用Spartan-3E器件时,很多种不同的电压标注是可以在一个bank中并存的。但是每一个Bank只支持LVDS_25,MINI_LVDS_25,RSDS_25中的任意两种。
I/O Bank 规则:
每个bank中的Vcco都必须要连接,即使这个bank不用。All VCCO lines associated within a bank must be set to the same voltage level,不同的Vcco电压值所支持的电压标准有所不同,使用时需查看。如果一个bank没有Vcco需求,可以将Vcco连接到任何电压,如2.5V,3.3V,但是有些配置方式可能需要Vcco有另外要求。如果要用的电源标准用到了Vref,会有新的规则:用到的Vref都必须连接在一个bank,在同一个bank中的Vref必须设置成同一个电压,如果Vref没有用到,那么可以当作用户I/O或输入引脚。
DCM(数字时钟管理器):
数字时钟管理器是Xilinx公司FPGA的重要的时钟管理单元,使用广泛。它可以对时钟提供灵活的完整的控制,例如调节时钟频率,相位,抖动等。DCM内部有DLL(Delay—Locked loop)锁相环和一个全数字化的使用反馈的控制系统来高精度的保持时钟信号的特性不被外界温度变化或电压波动等因素所影响。
DCM主要可以时钟去抖动、频率合成、相移等几个功能:
时钟去抖动:
一个系统中的时钟抖动是由于时钟所传输的路径不同,时钟抖动增加了时钟的建立保持时间,这些都是高速电路中需要避免的,DCM通过相位调整保证DCM输出的时钟相位和输入的时钟相位一致。这个机制抵消了时钟的分布式延时。
频率综合:
DCM通过可以实现一定范围内的时钟任意分频,倍频。通过改变因数可以实现一定范围内的任意频率合成。
DLL:
锁相环电路最主要的用途就是用来消除时钟抖动。从外部输入来的时钟信号作为了一种参考波形,DLL试图将从系统反馈回来的时钟信号的相位和外部输入的时钟信号相位保持一致。