Spartan 3E_Starter_Kit_Board_User_Guide 3E Starter Kit Board User Guide Chinese

User Manual:

Open the PDF directly: View PDF PDF.
Page Count: 97

1
Spartan-3E Starter Kit Board User Guide
2
Chapter 1: Introduction and Overview
Chapter 2: Switches, Buttons, and Knob
Chapter 3: Clock Sources
Chapter 4: FPGA Configuration Options
Chapter 5: Character LCD Screen
Chapter 6: VGA Display Port
Chapter 7: RS-232 Serial Ports
Chapter 8: PS/2 Mouse/Keyboard Port
Chapter 9: Digital to Analog Converter (DAC)
Chapter 10: Analog Capture Circuit
Chapter 11: Intel StrataFlash Parallel NOR Flash PROM
Chapter 12: SPI Serial Flash
Chapter 13: DDR SDRAM
Chapter 14: 10/100 Ethernet Physical Layer Interface
Chapter 15: Expansion Connectors
Chapter 16: XC2C64A CoolRunner-II CPLD
Chapter 17: DS2432 1-Wire SHA-1 EEPROM
3
Chapter 1
Introduction and Overview
Spartan-3E入门实验板使设计人员能够即时利用Spartan-3E系列的完
整平台性能。
设备支持:Spartan-3ECoolRunner-II
关键特性:Xilinx 器件: Spartan-3E (50万门,XC3S500E-4FG320C),
CoolRunner™-II (XC2C64A-5VQ44C)Platform Flash
(XCF04S-VO20C)
时钟:50 MHz晶体时钟振荡器
存储器: 128 Mbit 并行Flash, 16 Mbit SPI Flash, 64 MByte DDR
SDRAM
连接器与接口: 以太网10/100 Phy, JTAG USB下载,两个9管脚RS-232
串行端口, PS/2类型鼠标/键盘端口, 带按钮的旋转编码器, 四个滑动开
,八个单独的LED输出, 四个瞬时接触按钮, 100管脚hirose扩展连接
端口与三个6管脚扩展连接器
显示器: VGA显示端口,16 字符- 2 线式 LCD
电源:Linear Technologies 电源供电,TPS75003三路电源管理IC
市场: 消费类, 电信/数据通信, 服务器, 存储器
应用: 可支持 32 位的 RISC 处理器,可以采用 Xilinx MicroBlaze
PicoBlaze 嵌入式开发系统;支持 DDR 接口的应用;支持基于
Ethernet 网络的应用;支持大容量 I/O 扩展的应用。
Choose the Starter Kit Board for Your Needs
Spartan-3E FPGA Features and Embedded Processing Functions
Spartan3-E FPGA 入门实验板具有 Spartan3-E FPGA 系列突出独特的特点和为嵌入式处理
发展与应用提供了很大的方便。该板的特点如下:
Spartan3-E 特有的特征:并行 NOR Flash 配置;通过并行 NOR Flash PROM 实现 FPGA
多种配置方式
嵌入式系统:MicroBlaze™ 32-bit 嵌入RISC处理器;PicoBlaze™ 8-bit 嵌入控制器;DDR
存储器接口
Learning Xilinx FPGA, CPLD, and ISE Development Software Basics
Spartan3-E FPGA 入门实验板比其他的入门实验板先进、复杂。它是学习FPGACPLD
计和怎样运用ISE软件的基础。
Advanced Spartan-3 Generation Development Boards
入门实验板示范了MicroBlaze™ 32-bit 嵌入式处理器和EDK的基本运用。其更先进的地方
4
在于配了额外的外设和FPGA逻辑,包括SP-305入门实验板。
Key Components and Features
主要特征:1)XC3S500E(Spartan-3e)多达232个用户I/O口;320FPGA封装管脚;超过10000
个逻辑单元。24MbitFlash 配置PROM364个宏单元的XC2C64A CoolRunner CPLD4
64 MByte (512 Mbit) of DDR SDRAM, ×16 数据接口, 100+ MHz516 MByte (128 Mbit) of
NOR Flash (Intel StrataFlash)FPGA配置存储;MicroBlaze代码存储/映射;616 Mbits of SPI
serial Flash (STMicro)FPGA配置存储;MicroBlaze代码存储/映射;716字符-2线式LCD
示屏;8PS/2鼠标或键盘接口;9VGA显示接口;10)10/100以太PHY(要求FPGA内部具有
以太MAC);1129-管脚的RS232端口DTEDCE两种类型);12FPGA/CPLD下载
/调试USB接口;1350Hz时钟晶振;141线式的SHA-1位流复制保护串行EEPROM15Hirose
FX2扩展连接口;163个管脚扩展连接器;174SPI-DAC转换器输出管脚;182SPI带可
编程增益ADC输入管脚;19ChipScope™软件调试接口;20)带按钮的旋转编码器;218
单独的LED输出;224个滑动开关;234个按钮开关;24SMA时钟输入;258管脚插槽
辅助晶振
Design Trade-Offs
Configuration Methods Galore!
FPGA的一个典型应用就是使用单永久性存储器来存储配置信息。为了说明新的Spartan-3E
的性能,入门实验板有3个不同的配置存储源,这需要一起正确使用。额外的配置功能使入门实
验板比典型的Spartan-3E应用更复杂。
入门实验板包括JTAG可编程USB接口。片上的线路简化了器件的编程过程。在典型的应用
中,JTAG编程硬件在片外或在一个单独的编程模块上,如XILINX USB电缆平台。
Voltages for all Applications
入门实验板利用TI公司的TPS75003芯片(专门为Spartan-3EFPGA提供电源)作为三态输
出调整仪。该调整仪适用多种FPGA的应用。但是,入门实验板包括DDR SDRAM这需要它自
身快速的电流来供给。简单地说,USB接口的JTAG下载方式解决了需要单独配备1.8V电源的
问题。
Chapter 2
Switches, Buttons, and Knob
Slide Switches
Locations and Labels
入门实验板具有4个滑动开关,如图2.1所示。
5
Operation
当开关关上或上拉时, FPGA的管脚连接3.3V电源,即逻辑高电平。断开或下拉时,FPGA
管脚接地,逻辑低电平。一般开关的机械闭合时间为2ms,这里没有使用活动的回弹线路,尽
管这种线路可以很容易地加到FPGA上。
UCF Location Constraints
2.24个滑动开关提供了UCF约束、I/O口分配和I/O口标准。这里没有用到上拉电阻。
是,当开关处于中间转换位置时,它被定义为输入。
Push-Button Switches
Locations and Labels
入门实验板有4个瞬时按钮开关,如图2.3所示。BTN_NORTHBTN_EASTBTN_SOUTH
and BTN_WEST
6
注:a 所有的BTN_*按钮输入需要内部的下拉电阻;b 在一些FPGA应用中BTN_SOUTH作为软
复位使用。
Operation
按下按钮,FPGA接到3.3v电源,如图2.4。没有按下时,鉴于内部下拉电阻的原因,FPGA
管脚产生一个逻辑低电平。2.5说明了怎样去定义下拉电阻的UCF这里按钮上没有活动的回
弹线路。
在一些应用中,BTN_SOUTH按钮开关充FPGA选择复位功能的软复位。
UCF Location Constraints
2.54个按钮开关提供了UCF约束、I/O口分配和I/O口标准。并为每个输入管脚定义下拉
电阻。
Rotary Push-Button Switch
7
Locations and Labels
如图2.3所示,旋转按钮处4个分开的按钮的中间。该开发产生3个输出:2个轴状编码输出
ROT_AROT_B。中心的按钮是ROT_CENTER
Operation
旋转按钮有 2个不同的功能。只要轴柄一转,按钮就旋转并输出值。该轴也可以按下,和
按钮开关一样。
Push-Button Switch
按下握柄或按钮,则FPGA接通3.3V,如图2.6所示。使用内部的下拉电阻产生低电平。图
2.9说明了怎样去定义UCF的下拉电阻。这里按钮上没有活动的回弹线路。
Rotary Shaft Encoder
首先,旋转编码更像是个连接到中心的凸轮。旋转轴柄可操作两个按钮开关,如图 2.7
示。
选择一个开关连接地,产生低电平。当开关开时,FGPA 内部的上拉电阻将该信号拉为高
电平。图 2.9 是对其 UCF 约束的描述,怎样去定义上拉电阻。
FPGA 电路很方便地译码 AB的输入信号,但考虑到开关的机械特性,转换时会产生输
入噪音。如图 2.8 所示,噪音错误地报告额外的旋转事件或甚至报告旋转相反的方向。
8
UCF Location Constraints
Discrete LEDs
Locations and Labels
入门实验板在滑动开关的上面有 8个独立的贴片 LED
9
Operation
LED 一端接地,另一端通过 390 欧的限流电阻接到 Spartan-3E 上。要点亮一个 LED,向
应的控制位置高。
UCF Location Constraints
Chapter 3: Clock Sources
Overview
3.1 所示,入门实验板支持 3个主时钟输入源。
1)包括一个 50MHz 的时钟晶振
2) 通过 SMA 连接器,时钟可以板外供应。反之,FPGA 也可以提供时钟信号或其它高速
信号给 SMA 连接器
3)分列式 8-DIP 时钟晶振插槽
10
Clock Connections
每个时钟的输入直接连到 Bank0 的输入全局缓冲 I/O。表 3.1 所示,每个时钟输入也可以连
接到相应的 DCM
Voltage Control
FPGA I/O Bank0 的供给电压由跳线 JP9 控制。因此,这些时钟源也是由 JP9 控制的。
认情况下,JP9 置为 3.3v板上的晶振是 3.3V 的,如果 JP9 2.5V晶振的工作有可能达不到
预期的效果。
50 MHz On-Board Oscillator
50MHz 的晶振占空比为 40%~50%之间。其精度为±2500Hz 或±50ppm
Auxiliary Clock Oscillator Socket
如果 FPGA 需要除了 50MHz 外的频率,可以使用该 8管脚的插槽。另外,也可以使用 FPGA
DCM 来产生,或者从板上的 50MHz 晶振结合其它频率来获得。
11
SMA Clock Input or Output Connector
连接输入时钟信号到 SMA 连接器可以从外部提供一个时钟。FGPA 也可以在 SMA 上产生
一个单端的时钟输出信号或高速信号给外部器件。
UCF Constraints
Location
Clock Period Constraints
Chapter 4
FPGA Configuration Options
入门实验板支持多种 FPGA 的配置方法:
通过JTAGUSB接口直接将设计下载到FPGA板上的USB-JTAG逻辑也提供对Platform
Flash PROM Xilinx XC2C64A CPLD的在线编程。
对板上的4 Mbit Xilinx XCF04S serial Platform Flash PROM进行编程,然后采用主串行模式
Platform Flash PROM上的存储信息配置到FPGA
对板上的16 Mbit ST Microelectronics SPI serial Flash PROM进行编程,然后采用SPI模式对
SPI serial Flash PROM上的存储信息配置到FPGA
对板上的128 Mbit Intel StrataFlash parallel NOR Flash PROM进行编程,然后采用BPI Up
BPI DownStrataFlash parallel NOR Flash PROM上的存储信息配置到FPGA。接着,可以采用
Spartan-3E FPGA’s MultiBoot 模式以两种不同的配置方式对一个FPGA进行轮流下载。
4.1给出了USB下载/编程接口和永久存储器的位置。图4.2是多种配置方式的一些细节内
容。
12
当上电或PROG按钮被按下时,跳线的配置方式决定了FPGA采用哪种配置方式。
FPGA成功配置时,DONE管脚的LED亮。
4 Mbit Xilinx Platform Flash PROMFPGAJTAG提供了一个简单的可编程配置存储单元。
来自Platform Flash PROMFPGA配置采用主串行模式。
采用BPI UpBPI DownMultiBoot配置方式以及StrataFlash parallel Flash PROMFPGA
行下载时,64-macrocell XC2C64A CoolRunner II CPLD为其提供了额外的存储空间。CPLD
13
用户自己编程。
Configuration Mode Jumpers
如表 4.1 所示,由 J30 的设置方式来控制 FPGA 的配置方式。
PROG Push Button
PROG按钮,迫使 FPGA 进行重新配置。只要按下该按钮,FPGA 就重新进行配置。
DONE Pin LED
14
FPGA 成功配置时,DONE 管脚的 LED 亮,如果不亮说明配置失败。
Programming the FPGA, CPLD, or Platform Flash PROM
via USB
正如图4.1所示,入门实验板包含了内嵌式USB可编程逻辑和B型连接器的USB接口。通过
USB电缆可将其连到主机的iMPACT可编程软件对FPGA Platform Flash PROMCPLD进行直
接编程。对于并行或串行的Flash PROM并暂时不支持直接编程。
Connecting the USB Cable
实验板包含一个标准的 USB A/B 型的电缆,如图 4.3 所示。
其中,A 型的连接口接到 PC 上,B型接口接到板上。上电时,Windows 操作系统通过安
装相应的驱动软件即可识别。
绿色的 LED 亮表示 USB 连接正常。
Programming via iMPACT
通过 iMPACT USB 电缆将编译成功的 FPGA 设计下载到 FPGA 上。
USB电缆连到板子并给其上电,然后双击Project Navigator Configure Device
(iMPACT),如图4.5所示。
15
只要板连接正确,iMPACT就会自动识别JTAG编程文件,如图4.6所示。如果没有即使识
别出来,可以点击连接链的第一个芯片,然后右击FPGA选择Assign New Configuration File
如图4.6所示。
如果FPGA的源配置文件采用默认的启动时钟——CCLKiMPACT会给出警告提示,如图
4.7。该警告可以忽略。采用JTAG下载时,iMPACT 必须的启动时钟必须改为TCK JTAG时钟
源。
16
开始编程FPGA,右击FGPA,选择ProgramIMPACT在编程时会自动报告进程状态。编
程时间的长短取决于USB的接口 IMPACT的设置。
FPGA编程成功时,IMPACT会显示成功,如图4.9所示。此时,可以在板上执行FPGA
了,还有DONE管脚点亮。
17
Programming Platform Flash PROM via USB
板上的USB-JTAG同样可以对Xilinx XCF04S serial Platform Flash PROM进行编程。以下是
如何产生PROM文件和如何下载到FPGA上的步骤。
Generating the FPGA Configuration Bitstream File
在产生PROM文件之前,要先生成FPGA位流文件。从外部的PROM下载到它自身时,FPGA
提供了一个输出时钟—CCLKFPGA内部的晶振CCLK的振动频率较慢,大约1.5MHz。大多数
的外部PROM支持高频率时钟。增加CCLK的频率等同于减少FPGA的配置时间。Xilinx XCF04S
Platform Flash支持25 MHzCCLK频率。如图4.10所示。
18
接着如图4.11所示进行相应的操作。
19
接下来如图4.12所示。
Generating the PROM File
20
产生程序文件之后,进行如图4.13所示的操作。
启动IMPACT之后,双机PROM File Formatter,如图4.14所示。
接下来如图4.154.164.174.18进行相应的操作。
21
22
23
PROM成功配置后,IMPACT显示位流文件占用PROM的存储空间,如图4.19所示。
24
要生成可执行PROM文件,点击Operation/Generate File,如图4.20所示。
IMPACT将指出PROM文件成功产生,如图4.21所示。
25
Programming the Platform Flash PROM
下面是通过USBJTAG连接电路将PROM文件编程到Platform Flash PROM的简要步骤。
体如图4.224.25所示。
26
27
在编程之前,如图4.26选择编程选项。检查Erase Before Programing选项,在编程之前完全
擦除Platform Flash PROM确保没有残余数据。Verify选项用来检查PROM正确编程和匹配下载
配置位流文件。一般推荐这两个选项,即使是增加编程时间。
Load FPGA选项在Platform Flash PROM编程后立即强制重新配置FPGAFPGA的配置模式
必须选主串行模式(见表4.1),点击OK完成。
IMPACT会指出编程成功与否。如果编程成功而Load FPGA选项没有检查,按下PROG_B
钮空开关强制FPGAPlatform Flash PROM重新进行配置。如果FPGA成功配置,DONE LED
亮。
28
Chapter 5
Character LCD Screen
Overview
入门实验板显著的特征是 2线16 字符液晶显示器 LCD。尽管 LCD 支持 8位的数据接口,
为了与其它的 XILINX 的开发板保持兼容并且尽可能减少针脚数,FPGA 仅通过 4位的数据接
口线控制 LCD,如图 5.1 所示。
LCD 通过使用 ASCII 标准和自定义字符可以有效地显示多种信息。但是,这些显示速度并
不是很快。每半秒扫描一次以测试实际清晰度的界限。50MHz 时钟频率相比,这样的显示速
度是慢的。PicoBlaze 处理器可以有效地控制显示时间和显示内容。
Character LCD Interface Signals
5.1 给出了字符 LCD 接口的接口信号。
Voltage Compatibility
字符 LCD 的供电电压是+5VFPGA I/O 口信号的电压是 3.3V但是,FPGA 的输出电
平是通过 LCD 来识别是有效的低电平还是高电平。LCD 控制器接收 5V TTL 信号电平,FPGA
输出 3.3V LCMOS 以满足 5V TTL 电压要求。
数据线上的 390 欧串联电阻,当 LCD 驱动一个逻辑高电平时,其用来防止了 FPGA
SrtataFlsah I/O 管脚的超负载。LCD_RW 为高时,LCD 驱动数据线。在绝大多数应用中,LCD
29
作为只读外围设备,几乎没有从显示器读数据。
Interaction with Intel StrataFlash
如图 5.1 所示,4LCD 数据线与 StrataFlash 数据线 SF_D<11:8>复用。正如表 5.2 所示,
LCD/StrataFlash 存储器依赖于设计而交互使用。当存储器失能时(SF_CE0=1,FPGA 用作全
/写通道给 LCD。相反,当 LCD 读失能时(LCD_RW=0,FPGA 用作全读/写通道给存储器。
要是 StrataFlash 存储器为字节宽度×8模式SF_BYTE=0FPGA 作为全同步读/写通道给
LCD 和存储器。在字节模式下,存储器没有用到 SF_D<15:8>数据线。
UCF Location Constraints
LCD Controller
2×16字符LCD内嵌一个Sitronix ST7066U图形控制器。其功能与下面几个一样:Samsung
30
S6A0069X or KS0066U Hitachi HD44780SMOS SED1278
Memory Map
该控制器有三个内部存储空间,每个都有专门用途。送数据给这些空间之前必须初始化。
1DD RAM
显示数据RAMDD RAM)存储字符编码。绝大多数应用中,都是与DD RAM相结合的。
存储在DD RAM中的字符编码所涉及的特定的字符位图要么存在CG ROM字符设置中,要么存
在用户自定义的CG RAM的字符设置中。
5.3给出了显示器32位字符位置的默认地址。字符的最上行存储在地址0X000X0F之间。
第二行的字符存储在地址0X400X4F之间。
从物理上讲,DD RAM 一共有 80 个字符位置,每行有 40 个字符。位置 0X10 0X27
0X50 0X67 之间的地址用来存储其它非显示数据。此外,这些位置也可以存储只有使用控制
器的显示移位功能才能显示的字符。
DD RAM 读或写之前,DD RAM 地址命令得初始化地址计数器。DD RAM 数据使用
写数据到 CG RAM DD RAM 命令,DD RAM 使用从 CG RAM DD RAM 命令读数据。
DD RAM 地址计数器要么在读或写之后保持常数,要么自动增加 1或自动减 1
2) CG ROM
字符产生器 ROMCG ROM)包括每个事先定好的字符的字体位图,这样 LCD 屏才能显
示,如图 5.4。字符编码存储在 DD RAM 中,每个字符的位置与 CG ROM 的位置按顺序对应。
例如,0X53 的一个 16 进制的字符编码存储在 DD RAM 中的位置显示字符是“S0X53 最上
面的轻咬位(高半位)等同于 DB[7:4]=0101 和最低的轻咬位(低半位)等同于 DB[3:0]=0011
如图 5.4 所示,字符“S”就显示在屏幕上了。
英语/罗马字符存储在 CG ROM 相应的 ASCII 编码地址中。
字符 ROM 存储 ASCII 英文字符和日本字符。
控制器同样提供了 8位自定义字符位图,存储在 CG RAM 中。这些 8位的自定义字符编码
显示时存储在 DD RAM 0X00 0X07 之间。
31
3CG RAM
字符产生器 RAM(CG RAM)提供空间给 8位的自定义字符位图。每个自定义字符位由 8
位图的 5个点组成,如图 5.5 所示。
CG RAM 读或写之前 CG RAM 地址命令得初始化地址计数器。CG RAM 数据使用写
数据到 CG RAM DD RAM 命令,读 CG RAM 使用从 CG RAM DD RAM 命令读数据。
CG RAM 地址计数器要么在读或写之后保持常数,要么自动增加 1或自动减 1
5.5 举了个例子,产生一个特殊的西洋跳棋盘字符。自定义字符存储在第四 CG RAM
符位置中,DD RAM 的位置是 0x03 时,其显示。写自定义字符时,使用设置 CG RAM 地址
命令初始化 CG RAM 地址。前三行的地址位对应自定义字符位。后三行位对应字符地址的行地
址。写数据到 CG RAM DD RAM 命令用来写每个字符位行。1表示点亮。0表示熄灭。
只有低 5位的数据被用到。高三位的数据与位置无关。第 8行的数据位一般为 0以适于指针之
用。
32
Command Set
5.3 简要的说明了 LCD 控制器的命令和位的定义。由于该显示屏是 4位操作,8位命
令被送到 24位的轻咬位(2个半位)。高半位先送,低半位后送。
1 失能
如果 LCD_E 使能信号为低,所有其它输入 LCD 信号全被忽视。
2)清屏
清屏后指针返回到原始位置——最左上角。该命令写一个空白内容(ASCII/ANSI 字符编码
0x20)给所有的 DD RAM 地址。DD RAM 0X00 地址计数器置 0。清除所有的选择设置。
I/D 控制位置 1(地址自动增加模式)
执行时间:82us1.64ms
3)返回指针原始位
33
指针返回原始位——最左上角。DD RAM 的内容不受影响。所有的显示被移到原始位,
5.3 所示。DD RAM 0X00 地址计数器置 0如果移位,显示返回原始状态。指针或光标移
到字符位的最左上角。
执行时间:40us1.6ms
4)进入模式设置
设置指针移动的方向,并规定是否移动显示。在读和写数据时,这些操作就完成了。
执行时间:40us
在每次写数据给 CG RAM DD RAM 或从 CG RAM DD RAM 读数据后,该位的 DD
RAM CG RAM 地址计数器要么自动增加 1要么自动减少 1.指针或光标的位置随之移动。
1 显示关/
显示关或断,控制所有的字符、指针和指针位置的字符光标。
执行时间:40us
指针使用字符最底行的 5个点。指针出现在显示字符的下面。
2 指针和显示移动
移动指针和显示并不改变 DD RAM 的内容。移动指针位置或显示往左或往右时并不需要
写或读显示数据。
指针的位置功能是为了修改个别的字符,或向左或右滚动窗口来显示存储在 DD RAM
的额外数据,可以移到每行的第 16 个符。当它移到第一行的第 40 个字符之处时,指针自动移
到第二行。两行的显示移动在同一时间进行。
当显示数据重复移动时,两行水平移动。第二行不会移到第一行。
34
执行时间:40us
3 功能设置
设置接口数据的长度,每行显示的个数,字符的字体。入门实验板支持单功能设置,其值
0X28
执行时间:40us
7)设置 CG RAM 地址
设置 CG RAM 的初始地址。该命令后,以后所有往显示屏的读或写操作的数据来自或去往
CG RAM
执行时间:40us
8)设置 DD RAM 地址
设置 DD RAM 的初始地址。该命令后,以后所有往显示屏的读或写操作的数据来自或去往
DD RAM
执行时间:40us
9)读忙标志和地址
读忙标志(BF)用来判断内部操作是否在进行,并读当前地址计数器的内容。
BF1说明内部操作在进行。下个指令不被接收直到 BF 被清 0或直到当前指令达到最大
的执行时间。
该命令返回当前地址计数器的值。地址计数器为 CG RAM DD RAM 所用。具体内容取
决于最新公布的设置 CG RAM 地址或设置 DD RAM 设置命令。
执行时间:1us
10)写数据给 CG RAM DD RAM
要是该命令在设置 DD RAM 地址命令之后,则写数据给 DD RAM;或是该命令在设置
CGRAM 地址命令之后,则写数据给 CGRAM。根据进入设置模式,在写操作之后,地址自动
1或自动减 1。进入设置模式同样决定显示移动。
执行时间:40us
11)从 CG RAM DD RAM 读数据
要是该命令在设置 DD RAM 地址命令之后,则从 DD RAM 读数据;或是该命令在设置
CGRAM 地址命令之后,CG RAM 读数据。根据进入设置模式,在写操作之后,地址自动加
1或自动减 1。进入设置模式同样决定显示移动。
执行时间:40us
Operation
Four-Bit Data Interface
该板使用 4位数据接口给字符 LCD。图 5.6 说明了向 LCD 写操作建立、保持允许的最小时
间以及使能脉冲对时钟(50MHz T=20ns)的偏移时间。
35
DF_D<11:8>的数据值,寄存器选择信号LCD_RS以及读/写(LCD_RW控制信号必须
建立并在使能信号 LCD_E 转向高电平之前至少稳定 40ns使能信号必须保留高电平 230ns 或更
长时间——等于或超过 12 时钟周期(50MHz
在许多应用中,LCD_RW 信号可以永远置低,因为 FPGA 一般不会从显示屏读取数据。
Transferring 8-Bit Data over the 4-Bit Interface
在初始化显示屏和建立通信之后,所有的命令和数据以 8位形式传送给字符显示屏——用
2个连续的 4位传送。每个 8位传送必须分为 24位,其间隔时间至少 1us,如图 5.6 所示。
先传高半位,再传低半位。一个 8位的写操作在下个通信之前必须间隔至少 40us。在清屏命令
之后,该延时必须增至 1.64ms
Initializing the Display
上电后,显示屏必须初始化建立所需的通信协议。该初始化步骤简单,完全适合高效的 8
PicoBlaze 嵌入式控制器。初始化之后,PicoBlaze 控制器除了简单驱动显示屏外,还用来更
为复杂的控制或计算。
1 上电初始化
初始化的第一步骤是建立 FPGA LCD 4位的数据接口,具体如下:
A:等待 15ms 或更长,尽管 FPGA 完成配置后显示屏一般处于准备就绪状态。在 50MHz
时,15ms 时间等于 750000 时钟周期。
B:写 SF_D<11:8>=0x3LCD_E 保持高电平 12 时钟周期。
C:等待 4.1ms 或更长,即在 50MHz 时,205000 时钟周期。
D:写 SF_D<11:8>=0x3LCD_E 保持高电平 12 时钟周期。
E:等待 100us 或更长,即在 50MHz 时,5000 时钟周期。
F:写 SF_D<11:8>=0x3LCD_E 保持高电平 12 时钟周期。
G:等待 40us 或更长,即在 50MHz 时,2000 时钟周期。
H:写 SF_D<11:8>=0x2LCD_E 保持高电平 12 时钟周期。
I:等待 40us 或更长,即在 50MHz 时,2000 时钟周期。
36
2 显示屏配置
上电初始化完成后,4位的数据接口就建立了。下一步就是配置显示屏了:
A:发一个功能设置命令,0x28,配置显示屏。
B:发一个进入模式命令,0X06,设置显示屏自动增地址指针。
C:发一个显示开/断命令,0x0c,开显示屏并失能指针和光标。
D:最后,发清屏命令,此后等待至少 1.64ms82000 时钟周期)
Writing Data to the Display
写数据给显示屏,指定初始地址,紧接着是一个或多个数据值。写任何数据之前,发送一
个设置 DD RAM 地址命令给 DD RAM 中指定的初始 7位地址。见图 5.3 所示。
使用写数据给显示屏使用 CG RAM DD RAM 命令。8位数据值通过查表地址送给 CG
ROM CG RAM,如图 5.4 所示。CG ROM CG RAM 中存储的位图驱动 5×8点阵给相应
的字符。
如果地址计数器配置为自动增 1正如前面所说的,这种应用方法可以次序写多个字符编
码,每个字符自动存储并显示在下个位置。
继续写字符,但是,在第一显示行的最后停止。剩余的数据不会自动在第二行显示,因为
DD RAM 的映射从第一行到第二行并不是连续的。
Disabling the Unused LCD
如果 FPGA 的应用不使用 LCD 显示屏,置低 LCD_E 管脚,失能它。同样,置低 LCD_RW
管脚,阻止 LCD 屏回传数据。
Chapter 6
VGA Display Port
入门实验板通过 DB15 连接器输出一个 VGA 显示端口。该端口通过标准的监视电缆直接连
PC 监视器或平板 LCD 上。如图 6.1 所示,VGA 连接器在板上的最左端。
37
FPGA通过串联电阻直接驱动5VGA信号。每个颜色信号串一个电阻,每位的颜色信号分
别是VGA_REDVGA_BLUEVGA_GREEN。每个电阻与终端的75欧电缆电阻相结合,确保
颜色信号保持在VGA规定的0V0.7V之间。VGA_HSYNCVGA_VSYNC信号使用LVTTL
LVCMOS3I/O标准驱动电平。通过VGA_REDVGA_BLUEVGA_GREEN置高或低来产生8
中颜色,如表6.1所示。
VGA 信号的时序由视频电气标准委员会(VESA)规定。以下提供的 VGA 系统和时序信
息作为例子来说明 FPGA 640×480 模式下是如何驱动 VGA 监视器的。
Signal Timing for a 60 Hz, 640x480 VGA Display
VGA 显示器基于 CRT,使用调幅模式,移动电子束(或阴极射线)在荧光屏上显示信息。
LCD 使用矩阵开关给液晶加压,在每个像素点上通过液晶来改变光的介电常数。尽管下面的描
述仅限于 CRTLCD 已经发展到可以同 CRT 使用同样的时序信号了。因此,下面的讨论均适
CRT LCD
CRT 显示器中,电流的波形通过蹄形磁铁产生磁场,使得电子束偏转,光栅在显示屏上
横向显示,水平方向从左至右,垂直方向从上至下。如图 6.2 所示,当电子束向正方向移动时,
信息才显示,即从左至右、从上至下。如果电子束从后返回左或顶边,显示屏并不显示任何信
38
息。在消隐周期——电子束重新分配和稳定于新的水平或垂直位时,丢失了许多信息。
显示协议定义了电子束的大小以及通过显示屏的频率,该频率是可调的。
现在的 VGA 显示屏支持多种显示协议,VGA 控制器通过协议产生时序信号来控制光栅。
控制器产生同步脉冲 TTL 电平来设置电流通过偏转磁铁的频率,以确保像素或视频数据在适当
的时间送给电子枪。
视频数据一般来自重复显示存储器中一个或多个字节——它们被分配到每个像素单元。入
门实验板使用每个像素中的 3位,产生表 6.1 中可能的一种颜色。控制器指定视频数据缓冲器
以备电子束通过显示屏。然后,控制器接收并利用视频数据在适当的时间显示,电子束移动到
指定的像素点。
根据图 6.2 所示,VGA 控制器产生水平同步时序信号HS和垂直同步时序信号(VS),调
节在每个像素时钟视频数据的传送。像素时钟定义了显示像素信息的有效时间段。VS 信号定义
显示的更新频率,或刷新屏幕信息的频率。最小的刷新频率是取决于显示器的亮度和电子束的
强度,实际频率一般在 60120Hz 之间。给定的刷新频率的水平线的数量定义了水平折回频率。
VGA Signal Timing
6.2的时序信号是640×480,像素时25Mhz,刷新频率60Hz±1。图6.3说明了每个时序
的联系。同步脉冲的时序宽度(TPW)和前后门拱的间隔TFPTBP)基于观察多种VGA的显示屏
的结果。前后门拱的间隔是前后同步脉冲时间。在这些时段信息不能显示。
39
40
一般来说,时钟计数器通过像素时钟来控制水平时序信号。译码计数器的值产生 HS 信号。
在指定的行,计数器产生当前像素显示的位置。
一个独立的计数器产生垂直时序信号。垂直同步计数器在每个 HS 脉冲信号来临时自动加
1译码值产生 VS 信号。计数器产生当前显示行。这两个计数器从地址到显示缓冲器连续计数。
例如,入门实验板的 DDR SDRAM 提供了一个足够的显示缓冲区。
HS 脉冲的开始和 VS 脉冲的开始没有具体规定相对的时序关系。因此,计数器被分配到
简单格式的视频 RAM 地址,或分配到同步脉冲产生器的最小译码逻辑。
UCF Location Constraints
6.4 提供了 VGA 显示端口的 UCF 约束,包括 I/O 口管脚分配和 I/O 口使用标准,输出摆
率和输出驱动电流。
41
Chapter 7
RS-232 Serial Ports
Overview
7.1 所示,入门实验板有 2RS-232 串口:母口 DB9 DCE 和公口 DTE 连接器。DCE
口通过标准的串口电缆直接连到 PC 和工作站上。没有经过调制解调器或交换电缆不能用。
DTE 连接器用来控制其他的 RS-232 外围设备,如调制解调器、打印机或通过 DCE 连接器
完成简单的环回测试。
7.1 给出了 FPGA 2DB9 连接器之间的连接。FPGA 使用 LVTTL LVCMOS 电平
提供串行数据给 Maxim 器件——用来电平转换的,以满足 RS-232 电压的电平。反之,Maxim
件转换相应的 LVTTL 电平以满足 RS-232 串行输入数据给 FGPA。在 Maxim FPGA RXD
管脚之间串联一个电阻,以保护外部逻辑干扰。
连接器不支持硬件流控制。DCDDTR DSR 信号连接一起,如图 7.1 所示。同样,端口
RTS CTS 信号连接在一起。
UCF Location Constraints
7.2 7.3 分别为 RS-232 DTE DCE 端口提供了 UCF 约束,包括 I/O 口管脚分配和
I/O 口使用标准。
42
Chapter 8
PS/2 Mouse/Keyboard Port
入门实验板包括一个 PS/2 的鼠标/键盘接口和标准的 6管脚微 DIN 连接器——J14。图 8.1
给出了 PS/2 连接器,表 8.1 给出了连接信号。只有连接器的管脚 15连到 FPGA
PC 鼠标和键盘都采用 2-线 PS/2 串行总线与主机进行通信,本入门实验板就属于此种情
况。PS/2 总线包括时钟和数据线。鼠标和键盘通过识别信号的时序来驱动总线,它们均采用 11
位的字包括一个起始位、停止位和奇检验位。但是,鼠标和键盘的数据包打包方式不同。此外,
43
键盘允许双向数据交换,所以主机可以点亮键盘的状态灯。
8.2 和图 8.2 说明了 PS/2 总线的时序。只有当数据转换发生时,时钟和数据信号才被驱
动,否则,它们以高电平的形式处于空闲状态。时序定义了鼠标与主机通信的信号要求或键盘
与主机的双向通信。图 8.2 所示,当时钟信号是高电平使,敲击键盘或鼠标时往数据线写 1
字,在时钟低电平时,主机 PC 读该数据线。
Keyboard
键盘使用开集式驱动方式,这样键盘或主机均可以驱动 2-线总线。如果主机无需传送数
据给键盘,则可以单线输入方式。
PS/2 式键盘采用扫描式编码来获取按键的数值。如今几乎所有的键盘都采用 PS/2 式。
按键被按下时,都会产生一个独立的扫描码信号。按键的扫描码见图 8.3
如果按键按下并且按住不放,键盘则每隔 100ms 重复发送扫描码信号。当按键释放时,
盘在扫描码之后发送一个“F0。不管有没有按下 SHIF 键,键盘都发送同样的字符扫描码。
一些扩展键,按下时在扫描码之前发送一个“E0,而且它们可能会发送多于一个的扫描
码。当一个扩展键释放时,在扫描码之后发送一个“E0 F0
主机可以发送命令和数据给键盘。表 8.3 提供了一些常用的命令清单。
44
只有在空闲状态,数据线和时钟线均为高时,键盘才发送数据或命令给主机。
由于总线控制器是主方,在驱动总线之前,由键盘检查主方是否正在发送数据。时钟线可
以用作清除发送信号线。如果主方将时钟线置低,直到时钟线被释放,键盘才能发送数据。
键盘以 11 位字(包括 0起始位,接着是 8位的扫描码(最低位 LSB 先传)再接着是奇校
验位和终止位 1)发送数据给主机。当键盘发送数据时,它大约以 2030KHz 的频率产生 11
个时钟周期的传送时间。在时钟的下降沿数据有效,如图 8.2 所示。
Mouse
鼠标移动时产生一个时钟和数据信号,否则,这些信号保持高电平,说明处于空闲状态。
标每次移动,都发送 11 位字给主机。每个 11 位的字包括起始位 08位的扫描码(最低位 LSB
先传),奇校验位和终止位 1。每个传送的数据总共包括 33 位,即第 01122 位是起始位 0
102132 位是终止位 1。三个数据域所包含的数据如图 8.4 所示。在时钟的下降沿数据有
效,其时钟周期大约为 2030KHz
45
PS/2 式鼠标采用关联坐标体系,见图 8.5。鼠标右移时,X域产生一个正值,左移时,产生
负值。同理可得,鼠标上移时,Y域产生一个正值,下移时,产生负值。XS 位和 YS 位为每个
值的状态位,1表示负值。
XY值的大小代表鼠标移动速度的快慢。值越大,移动越快。状态字节的 XV YV 位表
示鼠标超出最大值,溢出。1表示溢出。此时如果鼠标继续移动,则第 33 位每隔 50ms 重复发
送一次。
状态字节的 LR域代表左右键按下。1表示相应键按下。
Voltage Supply
键盘的供给电压是 5V,而入门实验板的器件并不能承受 5V 电压,所以通信时串了个限流
电阻,如图 8.1 所示。
UCF Location Constraints
Chapter 9
Digital to Analog Converter (DAC)
入门实验板包括一个兼容 SPI4通道,串行数字-模拟转换器(DAC。该 DAC 器件
个线性工艺 LTC262412 位的。4个输出连到 J5 接头——使用 Digilent 6 管脚的外设模数格式。
46
SPI Communication
9.2 所示,FPGA 通过 SPI DAC 的输出通道进行数据通信。SPI 总线是全双工、同步、
定向通道——采用简单的 4线接口。在本例中,FPGA 作为主总线使用,驱动数据时钟信号
SPI_SCK)和传送串行数据(SPI_MOSI)给从数据线——本例为 DAC。与此同时,从数据
线提供串行数据(SPI_MISO)回传给主数据线。
47
Interface Signals
9.1 列出了 FPGA DAC 之间的接口信号。SPI_MOSISPI_MISO SPI_SCK 信号与
其它的器件复用 SPI 总线。DAC_CS 信号低电平有效送给 DACDAC_CLR 信号低电平有效,
同步复位送给 DAC
DAC 输出的串行数据主要送给多个 DAC。在多数应用中,该信号可以被视,尽管它可
以使用 SPI 总线的全双工方式通信。
Disable Other Devices on the SPI Bus to Avoid Contention
板上的 SPI 总线与其它器件复用。当 FPGA DAC 进行数据通信时,要失能其它的器件,
这点很重要,以避免总线冲突。表 9.2 提供了失能其它器件的信号与逻辑值。尽管 StrataFlash
PROM 是个并行器件,它的最低数据位还是和和 SPI_MISO 信号线复用。
48
SPI Communication Details
9.3 说明了 SPI 总线时序的具体应用。每位的传输与接收均相对于 SPI_SCK 时钟信号。
总线完全是静态的并支持最高的 50MHz。但是,在最高速或接近最高速时,请使用 LTC2624
数据手册检查时序。
在从片选信号 DAC_CS 置低后,FPGA SPI_MOSI 信号传送数据,MSB 位先传。LTC2624
SPI_SCK 的上升沿采集输入数据SPI_MOSI相对于时钟信号的上升沿,数据的有效时间
至少是 4ns
LTC2624 SPI_SCK 的下降沿采集输入数据SPI_MISOFPGA 在下个 SPI_SCK 的上升
沿采集该数据。FPGA 必须在 DAC_CS 变低后的 SPI_SCK 的第一个上升沿读取第一个 SPI_MISO
的值。否则,31 位会丢失。
传完所有的 32 位数据后,FPGA 完成 SPI 总线处理,置从片选信号 DAC_CS 为高。在高电
平即去时,DAC 内部开始进行数-模转换。
Communication Protocol
9.4 说明了 LTC2624 DAC 接口所需的通信协议。DAC 支持 24 位和 32 位协议。32 位的
协议如下所示。在 D/A 转换器的内部,SPI 接口由 32 位的移位寄存器组成。每个 32 位的指令
字随在数据值之后组成一条指令,一个地址。随着新指令进入 DAC,前 32 位指令字回送给主
器件。从 DAC 回应回的信息可以被忽视,尽管它对确认正确的通信有用。
49
FPGA 首先传送 8个无效位或无关位,随后4位的命令。最普通的使用命令是
COMMAND[3:0]=0011这指的是立即更新 DAC 的输出数据值。随后,FPGA 通过 4位的地址
域选择一个或所有的输出通道。地址域之后,FPGA 发送 12 位无符号数据——DAC 转换成模
拟值并输出到相应的输出端。最后,4个额外的无效位或无关位紧随在 32 位命令字之后。
Specifying the DAC Output Voltage
如图 9.2 所示,每个 DAC 输出电平与 12 位的无符号数字值 D[110]相一致,FPGA 经由
SPI 接口写给 DAC
电压的输出见等式 9.1。参考电压 VREFERENCE 4个输出通道之间有所差异。通道 A和通
B的参考电压是 3.3V,通 道 C和通道 D2.5V参考电压本身有±5%的波动,所以输出电
压会有相应的轻微波动。
DAC Outputs A and B
等式 9.2 提供了 DAC 输出通道 AB的输出电压。参考电压为 3.5V±5%。
DAC Outputs C and D
等式 9.3 提供了 DAC 输出通道 CD的输出电压。参考电压为 2.5V±5%。
UCF Location Constraints
50
Chapter 10: Analog Capture Circuit
入门实验板包括一个双通道的模拟信号采集电路,由可编程缩放预放大器和模-数转换器
DAC)组成,如图 10.1 所示。
模拟信号采集电路由线性工艺 LTC6912-1 可编程预放大器构成,其可以缩放从 J7 输入的模
拟信号,如图 10.2 所示。预放大器的输出连接到线性工艺 LTC1407A-1 ADC预放大器和 ADC
FPGA 连续编程或控制。
51
Digital Outputs from Analog Inputs
采集电路通过 VINA VINB 端口转换模拟电压,并用相应的 14 位数字表示,D[13:0]
见等式 10.1
增益GAIN是当前设置的,并送给可编程预放大器。增益可以设置成多种值,VINA
VINB 允许多种输入值,具体见表 10.2 所示。
放大器和 ADC 的参考电压是 1.65V一般由图 10.2 的分压电路产生。因而,1.65V 是输入
电压减去 VINA VINB 得到的。
ADC 的最大波动范围是±1.25V中点在参考电压 1.65V 附近。因此,1.25V 出现在分母上
以缩放模拟输入信号。
最后,ADC输出一个14位-2个辅助数字输出值。14位-2个辅助数字代表的值
13 13
2~2 1−−之间。因此,其分点的数量为8192
Programmable Pre-Amplifier
LTC6912-1 提供 2个独立的可编程增益转换放大器。放大器的目的是缩放 VINA VINB
的输入电压。DAC 的最大转换范围是 1.65±1.25V。
52
Interface
10.1 列出了 FPGA SPI_MOSISPI_MISO SPI_SCK(这三个信号与其它器件复用
SPI 总线)之间的接口信号。AMP_CS 是送给放大器的低电平有效的片选信号。
Programmable Gain
每个模拟通道有一个对应的可编程增益放大器,见图 10.2模拟信号出现在连接 J7 VINA
VINB 输入端口,其放大是相对于 1.65V 的。
每个放大器的增益的编程范围是-1~-100,见表 10.2
SPI Control Interface
10.3 给出了基于 SPI 的与放大器的通信接口。每个放大器的增益设置成 8位的命令字,
24位的部分组成。最高位 B3 先送。
从放大器输出的 AMP_DOUT 响应原先的增益设置。在大多数应用中,该值可以被忽视。
FPGA 声明 AMP_CS 为低时,SPI 总线开始进行数据传输,见图 10.4放大器在 SPI_SCK
时钟信号的上升沿采集 SPI_MOSI 的串行数据。放大器在 SPI_SCK 的下降沿通过 AMP_DOUT
输出串行数据。
放大器接口的速率相对较低,支持 10MHz 的时钟频率。
53
UCF Location Constraints
Analog to Digital Converter (ADC)
LTC1407A-1提供两个 ADC。当 AD_CONV 信号有效时,这两个模拟输入端口同时进行采
样。
Interface
10.3 列出了 FPGA ADC 的接口信号。SPI_MOSISPI_MISO SPI_SCK 这三个信号
与其它器件复用 SPI 总线。送给 DAC 的从片选信号 DAC_CS 低电平有效。DAC_CLR 异步复
位信号低电平有效。
54
SPI Control Interface
10.6 提供了 SPI 总线传输给 ADC 的一个例子。
AD_CONV 信号变高时,ADC 的两个通道同时采样。直到下个 AD_CONV 信号有效时
采样结果才被送出,即保留了一个采样周期。最大的采样频率大约是 1.5MHz
ADC 将采集到的模拟信号以 14 位-2个辅助二进制值的形式输出。
10.7 给出了具体的传输时序。AD_CONV 信号不再是原来意义上的 SPI 从片选使能信号
了。ADC SPI_MISO 信号处于高阻态以保证获得足够的 SPI_SCK 时钟周期。否则,ADC
止与其它 SPI 外设进行通信。图 10.6 所示,一次通信使用了 34 个时钟周期。ADC 在传输每个
14 位数据的前后使其输出保留 2个时钟周期的三态状态。
55
UCF Location Constraints
Disable Other Devices on the SPI Bus to Avoid
Contention
SPI总线与板上的其它器件复用。当FPGAAMP ADC进行通信时失能其它的器件是很
重要的,这样可以避免总线冲突。表10.4提供了失能其它器件的信号及其相应的逻辑值。尽管
StrataFlash PROM是个并行器件,它的最低位还是与SPI_MISO信号线复用。如果FPGA设置为主
串行配置模式时,Platform Flash PROM才有可能使能。
Connecting Analog Inputs
通过一个 DC(直流)隔离电容连接 AC 信号与 VINA VINB
56
Chapter 11
Intel StrataFlash Parallel
NOR Flash PROM
如图11.1所示,实验板包括一个128Mbit16Mbyte)的Intel StrataFlash parallel NOR Flash
PROM。如图所示,StrataFlash的一些连线与板上的其它一些元件复用。
StrataFlash PROM有以下多种功能:
1存储单个FPGA的配置文件;2存储两个不同的FPGA配置文件,并利用Spartan-3E FPGA’s
MultiBoot特点进行轮流转换;3)存 储 MicroBlaze处理器的代码;4)存MicroBlaze处理器的
代码并在执行代码之前将代码映射到DDR存储器;4)存储来自FPGA的永久数据。
StrataFlash Connections
11.1说明了FPGAStrataFlash之间的连接图。
虽然XC3S500E FPGA每个配置信息仅需要稍微多于2Mbit的容量,FPGA-to-StrataFlash
间的接口支持高达256MbitStrataFlash。实验板用的是128Mbit元件。地址线SF_A24没用到。
一般来说,StrataFlash元件连到XC3S500E支持8位的外围接口(BPI)配置。从FPGA 出来的高
4位并没有直接连到StrataFlash。相反,在配置时由XC2C64 CPLD控制这些管脚。正如表11.1
示,StrataFlash的一些连线与其它一些器件复用。
57
58
Shared Connections
除了StrataFlash的一些连线与其它一些器件复用外,StrataFlash的一些存储空间也与其它器
件复用。
Character LCD
字符LCD采用4位的数据接口。显示数据的连线同样与StrataFlash PROM上的信号线
59
SF_D<11:8>复用。如表11.2所示,FPGA通过SF_CE0LCD_RW信号线来控制StrataFlash PROM
的访问通道或字符LCD的读状态。
Xilinx XC2C64A CPLD
在配置时,Xilinx XC2C64A CoolRunner CPLD用来控制StrataFlash5位的地址线
SF_A<24:20>。在BPI模式的高4位地址线A<23:20>没有连接。相反,FPGA4I/O口连接到
StrataFlash PROM的高位地址线SF_A<23:0>上。可以参阅16章了解CPLD更详细的信息。
16 Mbyte StrataFlash PROM并没有用到最高有效位地址线SF_A<24>。它是为同样封装形式更大
容量的StrataFlash PROM提供扩展的。当然,SF_A<24>信号线也连到FX2扩展接头的
FX2_IO<32>上。
SPI Data Line
最低有效位数据线SF_D<0>与来自串行SPI外设、SPI_MISOPlatform Flash PROM的串行
输出信号线复用,见表11.3 为了避免冲突,FPGA必须确保在任何时刻只能有一个数据线有
效。
UCF Location Constraints
Address
11.2StrataFlash地址线管脚的UCF约束。
60
Data
11.3是数据线管脚的UCF约束。
Control
11.4是控制线管脚的UCF约束。
61
Setting the FPGA Mode Select Pins
可以将FPGA设置为BPI UP BPI DOWN模式,见表11.4
62
Chapter 12
SPI Serial Flash
实验板包括一个STMicroelectronics M25P16 16 Mbit SPI serial Flash,其有多种应用。SPI
Flash提供了可选的方案来配置FPGA——这是Spartan-3E FPGA 的一个新的特征,见图12.1
示。SPI Flash在配置后同样可以有其它的多种用途,如:1) 简单的永久性数据存储;2)存储
识别码、串号以及IP地址等等;3)将存储的MicroBlaze处理器代码映射到DDR SDRAM上。
UCF Location Constraints
12.2SPI Flash PROMUCF约束。
Configuring from SPI Flash
SPI Flash 的配置,FPGA的模式选择必须合理,SPI Flash必须包含一个有效的配置映射。
63
Setting the FPGA Mode Select Pins
对于SPI模式的FPGA配置管脚见图12.4。跳线的位置见图12.3
Creating an SPI Serial Flash PROM File
以下是如何将FPGA的位流文件配置到SPI Serial Flash PROM的步骤。
Setting the Configuration Clock Rate
选择连接M25P16 SPI serial Flash时,FPGA支持12MHz的配置时钟,具体设置见图12.5
64
Formatting an SPI Flash PROM File
产生配置文件之后,见图12.6操作。
启动IMPATC之后,双击PROM File Formatter,见图12.7
65
接下来如图12.812.912.1012.11所示进行相应的操作。
66
67
68
PROM完成格式后,IMPACT会示出PROM的当前状态,所选的位流文件以及位流文件占
PROM的空间。图12.12就是XCF04S Platform Flash PROM存储一个位流文件的例子。
要产生当前PROM文件,如图12.13所示进行操作。
69
如图12.14所示,IMPACT示出PROM文件成功生成。见图12.8的设置,PROM Formatter产生
一个输出文件。在本例中,输出文件名为MySPIFlash.mcs
Downloading the Design to SPI Flash
SPI Flash进行编程有多种方法,如下:1)采用带有XAPP445XSPI编程软件。通过采
JTAG编程电缆(板上没有提供)由并行口下载到SPI Flash上;2)采用基于SPI FlashPicoBlaze
参考设计。使用终端模拟器,Hyperlink,通过PC的串口将SPI Flash的编程数据下载到FPGA
嵌入式PicoBlaze处理器对SPI serial Flash进行编程;3)采用JTAG工具通过FPGA JTAG链接
SPI Flash编程到FPGA上。其链接见相应的参考资料;4ISE8.2i提供有另外的编程支持。
Downloading the SPI Flash using XSPI
以下是使用XSPI编程下载到SPI Flash的步骤。
Download and Install the XSPI Programming Utility
XSPI编程软件的应用见应用笔记XAPP445
Attach a JTAG Parallel Programming Cable
XSPI编程软件采用JTAG并口编程电缆,如:带飞行引线的Xilinx Parallel Cable IVDigilent
JTAG3 编程电缆。
这些电缆并没有随实验板一起提供,但可以单独购买。
首先,关掉实验板的电源。
如果板上连有USB电缆,拔掉。因为同时连接USB电缆和并口电缆会使IMPACT无法正确
识别。
JTAG的一端连到J12,如图12.15a所示。J12的物理位置见图12.3所示。将J12的连接头直
接连到SPI Flash管脚上,并不是连到JTAG链上。
JTAG3电缆直接连到J12上。JTAG3的标签对着J11跳线。如果使用飞行引线,它们必须
如图12.15b和表12.2所示连接。注意引线的颜色。灰色的INIT引线留着不用。
70
Insert Jumper on JP8 and Hold PROG_B Low
JTAG并行编程电缆直接与SPI Flash管脚相连。为了避免与FPGA的信号相冲突,确保连接
FPGA的管脚处于高阻态。在JP8(在PROG按钮附近)安装一个跳线迫使FPGAPROG_B管脚
为低,见图12.16所示。
将实验板重新上电。
Programming the SPI Flash with the XSPI Software
71
打开一个命令提示符或DOS窗口,改变XSPI安装路径。
XSPI安装软件会有一个使用向导,附在XAPP445上。提示符下敲打xspi查看快速帮助。
在提示符下敲打如下命令,使用事先生成的SPI-formatted Flash 文件来编SPI Flash。这 种
读写SPI Flash需要一个M12P16 SPI Flash,然后擦除、编程,最后写Flash
C:\xspi>xspi -spi_dev m25p16 -spi_epv -mcs -i MySPIFlash.mcs -o
output.txt
屏幕上会出现一个免责公告。Enter键继续。整个编程过程大约1分钟多,如图12.17所示。
SPI Flash编程后,卸掉JP8,如12.16a所示。如果编程正确,FPGA会从SPI Flash PROM
动配置,且DONE LED点亮。
Additional Design Details
12.18提供了SPI Flash接口使用的一些其它细节。在大多数应用中,该接口的简单应用正
如图12.1所示那样。但是,实验板支持多种配置方式并给出了Spartan-3E的一些其它性能。
72
Shared SPI Bus with Peripherals
配置之后,SPI Flash的配置管脚可以作为设计的其它应用。实验板上的SPI总线与其它的带
SPI的外围器件复用,如图12.18所示。配置后,要访问SPI Flash存储器,FPGA必须失能其它
复用PCI总线的器件。表12.3给出了这些器件的信号名和失能值。
Other SPI Flash Control Signals
M25P16 SPI Flash有两个额外的输入控制。低电平有效的写保护输入信号W和总线保持输入
信号没用,通过将外部上拉电阻置高来实现。
Variant Select Pins, VS[2:0]
处于SPI配置模式时,FPGA通过采样三个管脚VS[20]的值来判定哪个SPI的读命令送与SPI
Flash。对M25P16 FlashVS[20]111是其正确的命令字。VS[20]管脚通过外部的上拉电
阻接到3.3V。在BPI配置模式时,VS[20]管脚是并行永久性Flash的地址线A[19:17]这些信号
连接到StrataFlash parallel Flash PROM。在SPI配置后,VS[20]管脚变成用户编程I/O口,允许
完全访问StrataFlash parallel Flash PROM,而不管来自SPI FlashFGPA配置。
Jumper Block J11
SPI配置模式时,FPGA通过置低CSO_B管脚来选中SPI FlashCSO_B连到J11跳线上。
73
跳线提供一个选项来移动板上的SPI Flash到不同的选择线上(SPI_ALT_CS_JP11)。通过改变
J11的设置以及将要使用的SPI Flash连到JP12上就可以测试不同的SPI Flash器件。默认下,这两
个跳线都置在J11里头。
Programming Header J12
如图12.15所示,J12使用一个JTAG编程电缆来编程板上的SPI Flash
Multi-Package Layout
STMicroelectronics能够自动识别M25Pxx SPI系列Flash的封装。实验板支持16Mbit器件所有
的三种封装类型,如图12.19所示。默认情况下,实验板以8-lead, 8x6 mm MLP封装形式进行工
作。多封装同样支持8-pin SOIC 16-pin SOIC的封装。8-pin SOIC的管脚1MLP在板上的左上
角。然而,16-pin SOIC的管脚1却在右上角,原因是这种封装是90度的。16-pin SOIC封装形式
的每个面有4个管脚没有连接到板上。这些管脚必须悬空。为何要支持多封装形式?一句话,
活性。多封装布局提供了:
1)在小密度和大密度的SPI Flash PROM之间轻松实现密度移植。并非所有的SPI Flash
密度都可以在不同的封装形式里用。SPI Flash 的移植策略取决于FPGA提供的移植输出管脚的
精细程度。
2)在 FPGA的密度移植之间实现PROM配置的兼容性(一致性)Spartan-3E FPGA’s FG320
的管脚封装形式支持XC3S500EXC3S1200EXC3S1600E FPGA器件,无须修改。SPI Flash
的多种封装形式允许在相关联的PROM之间实现灵活的兼容。从而在板上为FPGA运行最优尺寸
SPI Flash
3提供安全措施。如果一种特定的SPI Flash密度在想要的封装里不可用,则可以安全地转
换到不同的封装形式或不同的密度。
74
Chapter 13
DDR SDRAM
实验板包括一个16位接口的512 Mbit (32M x 16) Micron Technology DDR SDRAM
(MT46V32M16),如 图 13.1所示。所有的 DDR SDRAM 接口的管脚连接到 FPGA’s I/O Bank 3
I/O Bank 3 DDR SDRAM 均由2.5V供电,由板上5V的输入电压经LTC3412调整得到。1.25V
的参考电压一般由2.5V电压经电阻分压得到,供给FPGA DDR SDRAM
所有的DDR SDRAM接口信号都是终端的。
差分时钟管脚SD_CK_P反馈给FPGA I/O Bank 0的管脚B9,以获得最佳通向FPGA’s Digital
Clock Managers (DCMs)的路径。当使用到MicroBlaze OPB DDR控制器时就要用到该路径了。
EDK 8.1i 开发软件同样可以获得MicroBlaze OPB DDR SDRAM 控制器的IP 核。
DDR SDRAM Connections
13.1给出了FPGADDR SDRAM之间的连接。
75
76
77
UCF Location Constraints
Address
13.2给出了DDR SDRAM地址线管脚的UCF约束。
Data
13.3给出了DDR SDRAM数据线管脚的UCF约束。
Control
13.4给出了DDR SDRAM控制线管脚的UCF约束。
78
Reserve FPGA VREF Pins
13.5I/O Bank 3 五个参考输入电压VREF的管脚约束。这些管脚不能用于通用I/O。禁 止
软件使用这些管脚,其约束如下。
79
Chapter 14
10/100 Ethernet Physical Layer
Interface
入门实验板包括一个标准的微系统——LAN83C185 10/100以太物理层PHY接口和一个
RJ-45连接器,如图14.1所示。FPGA内置一个以太介质控制器(MAC),入门实验板便可以连
到标准的以太网上。板上的25M晶振控制所有的时序。
Ethernet PHY Connections
FPGA通过MII连接到LAN83C185 Ethernet PHY,如图14.2。详细信息看表14.1
80
81
MicroBlaze Ethernet IP Cores
PHY 主要为 MicroBlaze 所用。例如,MAC EDK 开发平台的一部分。
82
MAC 核需要设计约束以满足任务要求。细节请参考 OPB-以太 MAC 数据手册。OPB
线的时钟频率必须是 65MHz 或高于 100Mbps 太传输速率和 6.5MHz 或快于 10Mbps 以太传输
速率。
UCF Location Constraints
14.410/100 Ethernet PHY interface接口的UCF约束,包括I/O管脚分配和标准。
83
Chapter 15
Expansion Connectors
实验板提供一个多样的扩展连接器,以便于与其它板外的器件轻松连接。其扩展 I/O 的连
接头如下:
1一个 100 管脚 hirose 扩展连接器与 FPGA 43 个用户 I/O 口相连,包括 15 个差分 LVDS
I/O 对和 2个只输入对;
2)三个 6管脚扩展连接器;
3)为Agilent or Tektronix无线探针提供的焊盘垫。
Hirose 100-pin FX2 Edge Connector (J3)
100管脚扩展连接器在板上的右边沿,见图15.1所示。该连接器是FX2-100P-1.27DS
Hirose1.27mm 的接头。本文中简称其为 FX2 连接器。
15.2所示,43FPGAI/O管脚与FX2连接器相连。除了其中的5个只输入管脚外,双向
I/O均可驱动或接收信号。5个管脚是:FX2_IP<38:35>FX2_IP<40>。见15.1这些管脚
中标为绿颜色的不能驱动FX2连接器,但可以接收信号。
尽管所有的三个连接到全I/O管脚,但这三个信号主要保留作为实验板与FX2连接器之间的
时钟信号。
84
Voltage Supplies to the Connector
实验板通过两个供给电源给 100 管脚 hirose FX 扩展连接器以及其它的板上附件提供电源,
见图 15.25.0V 的电压给所有的板上附件的 5V 逻辑或调节器。
一个分离的电源单独供给FPGA0I/O口同样的电压。连接到Hirose FPGA I/O 接口
都在0号上。默认下,0号的I/O的供给电压是3.3V。但是,使用JP9可以将电压转变为2.5V。一
FPGAI/O标准,特别是差分标准诸如RSDSLVDS——需要2.5V的输出电压。
为支持高速信号通过该连接器,FX2 连接器B面的大多数管脚接地。
Connector Pinout and FPGA Connections
15.1给出了100管脚hirose FX扩展连接器输出管脚与FPGA管脚的连线。FX22排连接
器,每排有50个管脚,见表15.1淡黄色部分。
15.1同样给出了与8LED36-管脚的附属接头(J1J2J4)以及无线调试接头J6
的复用的连线。
85
86
Compatible Board
Spartan-3E实验板的FX2相兼容的是来自DigilentVDEC1 Video Decoder Board
Mating Receptacle Connectors
实验板使用Hirose FX2-100P-1.27DS的连接器。该接头可以连接到其它任何兼容的100管脚
的连接器,包括贴板的和非带锁电缆的连接器。
Differential I/O
FX2J3支持高达15个差分I/O对和两对采用LVDSRSDS I/O标准的只输入对,见表15.2
所示。所有的I/O对支持差分终端输入DIFF_TERM选择对可通过外部终端电阻随意匹配。
这些信号并不布线到匹配差分阻抗,这需要考虑到最终的性能。但是,所有的路径对于最
小的偏移有相似的长度。
87
Using Differential Inputs
LVDSRSDS差分输入需要输入终端。有两种可选措施。其一是使用外部终端电阻,见图
15.3a。实验板为100欧的外部终端电阻提供焊盘垫。这些电阻并没有焊在板上。电阻的参考设
计标在印刷纸上,见标15.2所示。焊盘垫分布在实验板的正反两面,FPGAFX2连接器之间。
这些电阻并没有焊在板上。使用差分对1516时,需要外部的终端电阻。
其二见图15.3b所示,利用Spartan-3E的特点——片上差分终端,它是使用差分I/O信号的
DIFF_TERM属性。每个差分I/O管脚包含一个类似于内部大约120欧的终端电阻的线路。片上差
88
分终端只能在差分I/O对上使用,不能用在只输入对上,如1516对。
15.4和图15.5给出了输入差分终端电阻在板上正反两面的焊接位置。15.2给出了哪个电
阻连接具体的差分对。
Using Differential Outputs
差分输入信号并要求任何特定的电压。然而,LVDSRSDS差分输出信号需要I/O Bank 0
89
2.5V供给电压。实验板提供方案给I/O Bank 0供给3.3V2.5V的电压。
如果在FX2连接器上使用差分输出,JP9设置为2.5V如果跳线设置错误,输出开关正确,
信号电平则于规定的不符合。
UCF Location Constraints
15.7给出了FX2连接器管脚的UCF约束。
90
Six-Pin Accessory Headers
6管脚扩展连接器使用Digilent Peripheral Modules提供了简易的I/O扩展接口。
Header J1
如图15.8所示,在板上的右边缘顶部是6管脚扩展连接器的J1。它采用6管脚90度的插槽。
4FPGA管脚(FX2_IO<4:1>)连接到J1。这四个信号与FX2连接器复用。实验板向贴在J1
91
扩展板提供3.3V的电压。
Header J2
如图15.9所示,在板上的右边缘底部是6管脚扩展连接器的J2。它采用6管脚90度的插槽。
4FPGA管脚(FX2_IO<8:5>)连接到J2。这四个信号与FX2连接器复用。实验板向贴在J2
扩展板提供3.3V的电压。
Header J4
如图15.10所示,J4紧挨着J1。它采用0.1英尺圆心桩脚组成6管脚连接器。4FPGA管脚
FX2_IO<12:9>连接到J4这四个信号与FX2连接器复用。实验板向贴在J4的扩展板提供3.3V
的电压。
92
UCF Location Constraints
15.11是扩展连接器的UCF约束。
Connectorless Debugging Port Landing Pads (J6)
见图15.1,和J6连接器一样,实验板为无线连接器调试接口提供了焊盘垫。板上没有实物
的连接器,相反,只是无线连接探针。像Agilent一样,向逻辑分析仪提供了一个接口。该调试
接口主要为采用Agilent’s FPGA动态探针的Xilinx ChipScope Pro软件所用。当然,也可使用FPGA
Editor命令来使用Agilent Tektronix的探针,而无需ChipScope Pro软件。
15.3给出了连接器的输出管脚。只有18FPGA管脚连接到连接器上,连接器上的其它
焊盘垫没有用到。这18个管脚与FX2连接器(J3)和6管脚扩展连接器(J1J2J4
93
94
Chapter 16
XC2C64A CoolRunner-II CPLD
入门实验板包括一个Xilinx XC2C64A CoolRunner-II CPLDCPLD是个用户可编程以及适于
消费应用。CPLD的部分功能保留,以调整各种FPGA的配置存储器,即Xilinx Platform Flash
PROMIntel StrataFlash PROMCPLD必须为用户的应用提供了一下功能。
1)当FPGA为主串行配置模式(FPGA_M<2:0>=000)时,向XCF04S Platform Flash PROM
供一个低电平有效的使能信号。Platform Flash PROM在其它任何模式都失能。CPLD减少了跳线
的个数,简化了FPGA配置存储器的相互连接。
2)在BPI-UP配置模式(FPGA_M<2:0>=010FPGA有效时,StrataFlash PROM 地址线的5
个最高位 A[24:20]为二进制的 00000。在BPI-DOWN配置模式(FPGA_M<2:0>=011FPGA
效时,置StrataFlash PROM 地址线的5个最高位 A[24:20]为二进制的11111。在非BPI配置模式
FPGADONE管脚为高时,置A[24:20]ZZZZZ。在BPI模式时,根据5位地址的配置来识别
FPGA的实现形式。为什么要增加一个CPLD来模这种实现形式呢?以后的参考设计将说明了这
一独特的配置性能。在典型的BPI模式应用中,CPLD并不需要用到。
除了需要CPLD外,用户I/O口管脚132158个宏单元可为用户所用。
跳线JP10WDT_EN)定义了CPLD XC_WDT_EN信号的状态。默认情况下,该跳线为空,
信号线置为高电平。
XC_PROG_BCPLD输出,如果用到的话,必须配置为开漏输出(如:要么置低有效,
么悬空为高阻态,不能为高)。该信号直接连到FPGAPROG_B可编程管脚。
StrataFlash PROM地址的最高位是SF_A<24>,同FX2连接器的信号FX2_IO<32>一致。16M字节
StrataFlash PROM只用到低24位,SF_A<23:0>SF_A<24>用来提供给更大容量的StrataFlash
PROM
95
UCF Location Constraints
FPGA Connections to CPLD
96
CPLD
97
Chapter 17
DS2432 1-Wire SHA-1 EEPROM
入门实验板包括一个集成了 SHA-1 Maxim DS2432 串行 EEPROM。图 17.1 所示,DS2432
EEPROM 使用 Maxim 1-Wire 接口,顾名思义,它是用单线进行电源和串行通信的。1-Wire/
SHA-1 器件是移动式令牌,可以基于随机质询使用加密性能完善的散列算法生成信息认证代
(MAC)
DS2432 EEPROM 提供一个保护 FPGA 配置位流的方法(当然这种保护方法有很多),使得
要复制其信息有困难。根据 Xilinx 应用笔记 XAPP780,提供了一个可行的方案。
UCF Location Constraints

Navigation menu