PS被动串行模式(MSEL1=0、MSEL0=0),PPS被动并行同步模式(MSEL1=1、MSEL0=0),PSA被动串行异步模式(MSEL1=1、MSEL0=0),PPA被动并行异步模式
(MSEL1=1、MSEL0=1),JTAG模式(MSEL1=0、MSEL0=0)。图2.8为FPGA芯片
PS模式配置电路。
ALTERA的MAX7000系列器件TCKTDOTMSTDIVCC VCC 引脚1GNDVCCGND GNDByteBlaster10芯接口
图2.8 ByteBlaster(MV)配置FPGA
2.2.5 芯片介绍
(1)FPGA的配置方式
在利用FPGA进行设计时可以利用FPGA的ICR特性,通过连接PC机的下载电缆快速地下载设计文件至FPGA进行硬件验证。Altera的基于SRAM LUT的FPGA提供了五种配置模式,这些模式通过FPGA上的两个模式选择引脚MSEL1和MSEL0和设定的电平来决定的。FPGA的配置引脚功能如下:
MSEL0、MSEL1:输入,(0,0)为串行配置或使用配置器件模式;(1,0)为并
行同步模式;(1,1)为并行异步模式。
nSTATUS:双向集电极开路,上电后被器件拉低,在5uS之,被器件释放,(当
使用一个专用配置器件时,专用加载器件将控制这个脚为低长达200ms。)这个管脚必须通过一个1K电阻上拉到VCCIO; 如果在配置过程中,如有错误发生,本管脚被器件拉;如果在配置或初始化过程中,有一个外部的信号源驱动本管脚为低,则器件进入一个错误的状态;在配置或初始化之后,驱动本管脚为低,不会影响器件。但是,如果使用专用配置器件,驱动本管脚低将引起配置器件试图去配置FLEX 器件。
nCONFIG:输入,配置控制引脚,由0-1的跳变开始配置,由1-0跳变则复位器
件;当设定本管脚为0时,所有I/O为三态。
CONF_DONE:双向集电极开路,状态输出:在配置之前和配置过程中,器件驱
动本管脚为0,一旦所有配置数据都被接收并没有错误发生,则初始化时钟周期开始
时器件释放本管脚;状态输入:在所有数据被接收后,本管脚为高电平,器件初始化,然后进入用户模式;本管脚必须通过一个1K的电阻上拉到VCCIO外部的信号源可以驱动本管脚为低,来延迟初始化的过程,当使用一个配置器件进行配置除外,在配置以及初始化之后,驱动本管脚为低,不影响配置器件。
DCLK:输入,时钟输入,用于从一个外部信号源输入时钟数据进入器件,在串
行异步模式或并行异步模式配置中,DCLK应当被拉高,不能悬空。
nCE:输入,低有效芯片使能,本管脚使用低电平使能器件来允许配置,对于单
芯片配置应当被固定为低电平,在配置以及初始化过程和用户模式,本管脚必须固定为低电平;在级联时,第一片的nCE接地,前一片的nCEO接后一片的nCE。
nCEO:输出,当设备配置完成后被驱动为低电平。在多器件配置过程中,这个
管脚用来连接后面器件的nCE引脚,最后一片的nCEO悬空。
nRS:输入,读选通输入:对于APEX II、 Mercury、ACEX 1K、 APEX 20K
和 FLEX10K器件低电平表示在DATA7引脚输出的是RDYnBSY信号;对于 FLEX 6000 器件,低电平表示在DATA引脚输出的是RDYnBSY信号,如果 nRS 管脚没有使用,应该被固定连接到高电平。
RDYnBSY:输出,忙闲信号:高电平表示器件准备好来存取另外字节的数据;高
电平表示器件没有准备好接收另外字节的数据。
nCS、CS:输入,片选择信号:nCS为低电平且CS为高电平器件被使能可以进行
配置,如果只有一个芯片选择输入被使用,那么另外一个必须被激活,在配置和初始化的过程中,nCS和CS管脚必须被处于有效状态。
CLKUSR:输入,可选的用户时钟输入信号:用在初始化过程中;(注:在初始化
过程中可以继续使用配置数据用的DCLK,或者切换到用CLKUSR)。
DATA[7..1]:数据输入:并行的字节流数据通过DATA[7..1]与DATA0输入器
件。
DATA0:输入,数据输入:在串行配置模式下比特流数据通过DATA0写入器件。 DATA7:输出,在FPGA配置方式,DATA的数据是被RDYnBSY信号通过电平触发
方式在nRS信号已经被锁存之后写入。
INIT_DONE:输出集电极开路,状态管脚:可以被用来指示器件已经被初始化
或者已经进入用户模式;在配置过程中INIT_DONE 引脚保持低电平,在初始化之前和之后,INIT_DONE引脚被释放,被上拉到VCCIO通过一个外部上拉电阻,因为
INIT_DONE在配置之前是三态,所以被外部的上拉电阻拉到高电平。因此监控电路
必须能够检测一个0-1的跳变信号。
DEV_OE:输入,此管脚需要在编译设置中设定才能实现第一功能,缺损是第二
功能;当本引脚被拉低,所有I/O都是三态。当本引脚被拉高,所有I/O在正常的程序控制状态。
(2)FLEX1OK配置引脚
FLEX1OK主要由嵌入式阵列块、逻辑阵列块、快速通道(FastTrack)和I/O单
元四部分组成。
如图2.9为 FLEX 10K10主要引脚功能,该装置采用的FLEX EPF10K10有84个引脚,各主要引脚功能如下(图2.9):
1213141516171819202122232425262728293031321110GCLCK1IN1ID/O49/nRSEV_OEI/GON48DIIN/nWSNT4I/O47/CSI/O46/nCSVCCINTI/O6/DATA1I/O5/DATA2I/O4/DATA3I/O3/DATA4I/O2/DATA5I/O1/DATA6I/O0/DATA7DEV_OETCCONKFnCEO98765432184838281807978777675VCCINTnCONFIGI/O20I/O21I/O22I/O23I/OVC2C4INTGNDINTGCLK2IN2VCCINTGNIN3DINT
图2.9 FLEX10K10芯片引脚图
FLEX10K系列采用重复可构造的CMOS SRAM工艺,把连续的快速通道互连与
独特的嵌入式阵列结构相组合,同时也结合了众多可编程器件的有点来完成普通门阵列的宏功能。每个FLEX 10K器件包括一个嵌入式阵列和一个逻辑阵列,它能让设计人员轻松地开发出存储器、数字信号处理器以及特殊逻辑等强大功能于一身的芯片。同时,改芯片具有的多电压功能可以全面支持以不同电压工作的产品。
333435363738394041424344454647484950515253I/O25I/O26I/O27I/O28I/O29I/O30I/O31DATA0DCLKnCETDII/O7I/O8I/O9I/O10VCCINTI/O11I/O12I/O13I/O14I/O15GNDINT I/O16I/O17I/O18 I/O19MSEL0 MSEL1A L T E R AFLEXEPF10K10LC8484-PIN PLCC TDOI/O45/CLKUSRI/O44I/O43I/O42/RDYnBSYINTI_DONEGNDINTI/O41I/O40I/O39I/O38VCCINTI/O37I/O36I/O35I/O34I/O33TMSnTRSTnSTATUSI/O32747372717069686766656463626160595857565554EPF10K10有84I/O口,其丰富的IO资源,大大满足了用户的需求,其具体的IO引脚与对应的引脚序号如表2.4所示:
表2.4 I/O引脚对应的引脚序号
引 脚 I/O7 I/O8 I/O9 I/O10 I/O11 I/O12 I/O13 I/O14 I/O15 I/O16 编 号 16 17 18 19 21 22 23 24 25 27 引 脚 I/O17 I/O18 I/O19 I/O20 I/O21 I/O22 I/O23 I/O24 I/O25 I/O26 编 号 28 29 30 35 36 37 38 39 47 48 引 脚 I/O27 I/O28 I/O29 I/O30 I/O31 I/O32 I/O33 I/O34 I/O35 I/O36 编 号 49 50 51 52 53 54 58 59 60 61 引 脚 I/O37 I/O38 I/O39 I/O40 I/O41 I/O43 I/O44 引 脚 62 64 65 66 67 71 72 FLEX10K10主要特点如下:
① 它是工业世界的第一种嵌入式可编程逻辑器件,提供了在单个器件中的系统集成,具有实现宏函数的嵌入式阵列和实现普通功能的逻辑阵列;
② 高密度,它具有10000—150000个可用门,高达40960位部RAM; ③ 系统支持多电压I/O接口; ④ 低功耗,系统维持状态小于0.5mA;
⑤ 灵活的部连接,快速、可预测连线延时的快速通道连续式分布结构。
3 波形发生器的VHDL描述
完整的波形发生器由三部分组成:由计数器构成的地址信号发生器、波形数据
ROM和D/A。在FPGA的顶层文件中,计数器通过外来的控制信号和高速时钟信号向
波形数据ROM发出地址信号,输出波形的频率由发出的地址信号速度决定;当固定波频率扫描出地址时,输出波形是固定频率,而当以周期性变方式扫描输出地址时,则输出波形为扫描信号。波形数据ROM中存有发生器的波形数据。基于FPGA波形发生器的VHDL的实现经过以下几个过程,首先利用MATLAB软件编写波形查找表程序生成波形查找表(请参看第4章)获得波形数据,利用MAX+plusⅡ软件依次建立波形数据文件、在FPGA生成ROM空间存储波形数据再经过编译、仿真、下载和测试即可以得到波形了。
3.1 波形发生器的VHDL描述
3.1.1 正弦信号波形数据文件的建立
正弦波数据存储器ROM地址线宽度为6,数据线宽度为8,在FPGA中用VHDL硬件描述语言实现存储空间的扩展,正弦波波形数据由64点构成,在MATLAB环境下,通过采样获取,关于采样数据的获取方法,在本文的第四章有详细说明。波形数据在FPGA的时序控制下,经DAC0832进行D/A转换,实现将数字信号转化成模拟信号,模拟信号通过放大,滤波后,可实现波形的还原。
波形数据文件:
WIDTH=8; DEPTH=64;
ADDRESS_RADIX=HEX; DATA_RADIX=DEC; CONTENT BEGIN
00:255;01:254;02:252;03:249;04:245;05:239;06:233;07:255;08:217;09:207;0A:197;0B:186;0C:174;0D:162;0E:150;0F:137;10:124;11:112;12:99;13:87;14:75;15:64;16:53;17:43;18:34;19:26;1A:19;1B:13;1C:8;1D:4;1E:1;1F:0;20:0;21:1;22:4;23:8;24:13;25:19;26:26;27:34;28:43;29:53;2A:64;2B:75;2C:87;2D:99;2E:112;2F:124;30:137;31:150;32:162;33:174;34:186;35:197;36:207;37:217;38:225;39:233;3A:239;3B:245;3C:249;3D:252;3E:254;3F:255; END;