CycloneII系列FPGA配置.docx

上传人:b****5 文档编号:4164187 上传时间:2022-11-28 格式:DOCX 页数:17 大小:1,007.59KB
下载 相关 举报
CycloneII系列FPGA配置.docx_第1页
第1页 / 共17页
CycloneII系列FPGA配置.docx_第2页
第2页 / 共17页
CycloneII系列FPGA配置.docx_第3页
第3页 / 共17页
CycloneII系列FPGA配置.docx_第4页
第4页 / 共17页
CycloneII系列FPGA配置.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

CycloneII系列FPGA配置.docx

《CycloneII系列FPGA配置.docx》由会员分享,可在线阅读,更多相关《CycloneII系列FPGA配置.docx(17页珍藏版)》请在冰豆网上搜索。

CycloneII系列FPGA配置.docx

CycloneII系列FPGA配置

 

杨宁

65

CycloneII系列FPGA配置

杨宁65

摘要:

由于CycloneII系列器件是用易失性的SRAM结构单元来存储配置数据的,因此在每次系统上电时都要进行重配置。

用户能够利用DCLK频率高达40MHz的AS(主动串行)模式、PS(被动串行)模式或是JTAG对FPGA器件进行配置操作。

另外,为了减小存储需求和配置时刻,CycloneII系列器件能够利用紧缩数据进行配置。

本文的目的是让用户了解CycloneII器件的配置特点,让用户把握如何利用CycloneII器件所支持的配置方式对此系列FPGA进行配置。

同时,也会介绍配置管脚的利用及配置文件的格式等相关信息。

关键词:

CycloneII;FPGA;配置

第一节、CycloneII器件配置概述:

用户能够利用AS、PS和JTAG模式配置CycloneII系列FPGA。

选择何种配置方式取决于MSEL管脚的电平状态,请参照表1-1。

表1-1CycloneII配置模式

配置模式

MSEL1

MSEL0

描述

AS(20MHz)

0

0

使用串行配置器件(EPCS1、EPCS4、EPCS16或EPCS64)

PS

0

1

使用增强配置器件(EPC1、EPC2、EPC4、EPC8或EPC16)或者是微机加上电缆

FastAS(40MHz)

1

0

同AS模式

JTAG

*

*

下载电缆和微机(外部控制器)

第二节、配置文件格式

表2-1列出了几个CycloneII系列器件的没有紧缩过的配置文件的大小(近似值)。

若是要计算多器件配置时的配置数据的存储空间,能够将相应的值相加。

表2-1CycloneII系列器件的.rbf文件大小(RawBinaryFile)

器件

数据大小(Bits)

数据大小(Bytes)

EP2C5

1,265,792

152,998

EP2C8

1,983,536

247,974

EP2C20

3,892,496

486,526

EP2C35

6,858,656

857,332

EP2C50

9,963,392

1,245,424

EP2C70

14,319,216

1,789,902

用表2-1的值只是为了在设计之前大致的估量配置文件的大小。

不同的配置文件格式的大小并非一样,但即便是不同款的设计软件,只要目标器件必然的情形下,那么它编译的无紧缩配置文件大小是固定的;而紧缩过的文件大小在每次编译时都有所改变,这是由设计时的紧缩比例来决定。

第三节、配置数据紧缩

CycloneII器件支持配置数据的紧缩,这能节省配置数据存储的空间和配置时刻。

那个特性使得设计者能够将紧缩过的配置数据存储在配置芯片或其他的存储器(Flash)中,而且传送的也是紧缩过的数据流文件。

在配置期间,CycloneII器件实时解压这些数据流而且将其配置到SRAM单元中。

数据紧缩能使得配置数据减小35%---55%左右。

需要注意的是,CycloneII器件不支持在JTAG模式下的配置数据流的解紧缩,只能在AS及PS模式下进行。

尽管紧缩算法一样,但CycloneII器件与增强配置器件(EPC4、EPC八、EPC16)的解紧缩特性却不一样,在增强配置器件中存储的紧缩数据在传送给CycloneII器件之前就进行解紧缩了。

在PS模式下,为了减少配置时刻,用户能够利用CycloneII器件的解压特性而发送紧缩过的配置数据进行器件配置。

需要注意的是在利用增强配置器件的时候,用户不能同时利用CycloneII和增强配置器件的解压特性。

固然也能够在AS模式下,利用CycloneII器件的解压特性进行配置,但那个时候用户寄存配置数据的是串行配置器件(EPCS一、EPCS4、EPCS16orEPCS64)。

当用户使能了紧缩功能,QuartusII软件就会产生紧缩过的配置数据文件。

那个紧缩文件能够减少数据在配置器件或Flash(这种需要协操纵器)中寄存的空间,固然也能减少配置进程所花费的时刻。

有两种方式能够使能CycloneII器件配置数据的紧缩:

一种是在编译之前(在编译设置中),另一种是在编译后(在转换配置文件格式下)。

当用户对多个CycloneII器件进行配置时,配置数据紧缩一样也能够针对每一个器件进行选择。

在以下图3-1中,在配置链路上有两个CycloneII器件,若是第一个CycloneIIFPGA利用了紧缩使能,那么它会从配置器件中接收到紧缩过的配置数据;而第二个CycloneIIFPGA没有利用数据紧缩,那么它将接收到非紧缩的配置数据流文件。

图3-1紧缩或不紧缩配置数据的配置

第四节、AS模式:

在AS配置模式下,要利用串行配置器件来配置CycloneII系列FPGA,这些配置器件是低本钱、非易失性设备,只有4个信号接口,这些优良特性使其成为理想的低本钱配置解决方案。

这种器件利用串行接口来传送串行数据。

在配置时,CycloneII系列FPGA通过串行接口读取配置数据或通过紧缩的数据来配置内部的逻辑单元。

这种由FPGA来操纵外部器件的配置方式确实是主动串行模式(Activeserial),而有外部设备(如PC机,或其他设备)操纵FPGA进行配置的方式称为被动串行模式(Passiveserial)。

表4-1列出了AS配置模式时,MESL的管脚状态。

配置模式

MSEL1

MSEL0

AS(20MHz)

0

0

FastAS(40MHz)

1

0

1、AS模式下配置一个CycloneII系列FPGA:

串行配置器件具有4个I/O接口:

串行时钟输入(DCLK)、串行数据输出(DATA)、AS数据输入(ASDI)和片选信号(nCS)。

这四个信号与CycloneII系列FPGA相连的示用意如以下图4-1所示:

图4-1AS模式下单芯片配置示用意

注意:

1、Vcc为;2、CycloneII器件利用ASD0信号操纵串行配置操纵器;

3、此信号能够不连接,或用于通用I/O口;

在CycloneII器件上电重起时,将nSTATUS和CONF_DONE信号拉低,将所有I/O口设置为高阻态(可能100ms)。

重起后,CycloneII器件释放nSTATUS,使得外部10K的上拉电阻将nSTATUS信号拉高,从而进入配置模式。

现在所有I/O口仍然持续高阻态。

整个配置进程包括:

重起(reset)、配置(configuration)和初始化(initialization)时期。

(1)、重起时期

当nCONFIG或nSTATUS为低电平的时候,器件(FPGA)处于重起状态。

重起以后,CycloneII器件释放nSTATUS,外部10K上拉电阻将其拉高,现在器件进入配置状态。

(2)、配置时期

由CycloneII器件内部产生的串行时钟(DCLK)用来操纵整个配置进程,CycloneII器件内部能够产生DCLK信号时钟,利用MESL管脚能够选择时钟频率为20MHz或40MHz。

40MHz的频率能够使得配置所花费时刻更短。

由于温度、电压等因素的阻碍,内部产生的DCLK的频率并非固定,见下表5-2所示。

表4-2DCLK的频率

内部频率选择

最小

典型

最大

单位

40MHz

20

26

40

MHz

20MHz

10

13

20

MHz

在AS和FastAS模式下,串行配置器件在DCLK的上升沿锁定输入和操纵信号,在DCLK的下降沿输出配置数据。

而CycloneII器件在DCLK的下降沿输出操纵信号,也在下降沿锁定输入的配置数据。

在配置时,CycloneII器件通过nCSO信号(此信号连接串行配置器的nCS)选中串行配置器件。

以后CycloneII器件通过串行时钟信号(DCLK)及串行地址信号(ASDO)来发送操纵命令和地址信号;串行配置器件利用DATA信号发送配置数据到CycloneII器件的DATAO接口。

在CycloneII器件接收到所有的配置数据后,就会释放CONF_DONE,使得外部连接的10K上拉电阻将其拉高。

固然,现在CycloneII器件停止对DCLK信号的操纵。

一旦CONF_DONE信号进入高电平的时候,那么就进入初始化状态。

如此也确实是说必然要在CONF_DONE信号上接入10K的上拉电阻。

所有的AS配置信号(DATAO、DCLK、nCSO、ASDO)在FPGA内部都有一个一直工作的微弱的上拉电阻。

因此,在配置以后,这些信号都被拉高。

(3)、初始化时期

在CycloneII器件中,初始化时钟信号即能够是芯片内部产生(与DCLK不一样)也能够利用可选的CLKUSR管脚。

内部时钟是默许的初始化时钟信号,这有利于CycloneII器件进行更合理的初始化进程,也幸免用户给FPGA的CLKUSR管脚提供额外的时钟信号。

现在你能够将CLKUSR用作通用I/O接口。

若是用户想要延迟初始化,那么能够利用CLKUSR管脚。

利用CLKUSR使得用户能够操纵芯片何时进入用户状态。

当用户使能了UserSuppliedStart-upClock选项,那么CLKUSR确实是初始化的时钟信号。

这并非阻碍配置进程。

在接收到所有的配置数据而且CONF_DONE被拉高后,CycloneII器件需要299个时钟周期才能完成初始化进程。

CLKUSR的最高频率为100MHz。

CycloneII器件用INIT_DONE信号的由低到高的转变,来讲明终止了初始化进程而进入到用户模式下。

EnableINIT_DONEoutput选项被选中的时候INIT_DONE信号才有效。

(有必要说明此选项在何处进行设置)。

若是利用此信号,那么要将此信号线上接入10K的上拉电阻,目的是在配置一开始且nCONFIG为低时将此信号拉高。

一旦利用此信号的标志位(在配置数据的第一帧中)进入FPGA器件后,INIT_DONE信号进入低电平。

此信号由低到高的转变那么标志了器件进入了用户模式状态。

若是用户没有利用此信号,初始化进程的终止是在CONF_DONE信号变高后再通过299个时钟周期(现在利用了CLKUSR)或是在CONF_DONE变高后经Tcf2um(现在利用的是内部的时钟)。

(4)、用户时期

当初始化进程终止后,FPGA进入用户模式状态。

在用户模式下,用户I/O口上并再也不利用内部微弱的上拉电阻,而是由用户的设计来决定。

当器件在用户模式下,用户能够将nCONFIG信号置低,来进行从头配置。

此信号置低的时刻最少要维持40us。

当此信号为低时,CycloneII器件重起,进入重起时期。

CycloneII器件也将nSTATUS和CONF_DONE拉低且所有I/O口为三态。

一旦nCONFIG和nSTATUS进入高电平后,那么进入重配置状态。

(5)、配置进程中犯错

若是在配置进程中显现错误,CycloneII器件将nSTATUS信号拉低来讲明数据帧的错误,现在CONF_DONE信号仍为低。

若是用户在软件中使能了Auto-Restartconfigurationaftererror选项,CycloneII器件将通过cCSO信号将串行配置器件从头设置,且在重起时刻以后(40us)释放nSTATUS,从而进行重配置工作。

若是Auto-Restartconfigurationaftererror没有开启,那么外部系统必需监控nSTATUS上的状态。

一旦显现错误,那么将nCONFIG信号拉低至少40us以便从头配置器件。

2、AS模式下多器件配置

用户能够利用一个串行配置器件来配置多个FPGA器件,能够利用芯片使能(nCE)及芯片使能输出(nCEO)信号级联多个FPGA芯片。

将第一个FPGA的nCE接地,将输出(nCEO)接到下一个芯片的输入上(nCE),且在后面的nCE信号上利用外部10K的上拉电阻。

当第一个器件取得配置数据后,就会将将nCEO拉低,从而对下个器件进行配置。

最后一个器件的nCEO能够悬空也能够用作通用I/O口。

在链路中的第一个CycloneII器件是配置操纵者,它负责整个链路上的配置。

对第一个CycloneII器件选用AS模式来进行配置,而其他的器件利用PS模式。

由于所有其他的Altera的器件都支持PS配置模式,因此也能够将其他器件连接到此链路中。

在多器件链路中,每一个器件的nCONFIG、nSTATUS、CONF_DONE、DCLK和DATAO信号都连在一路,如以下图5-2所示:

图4-2AS模式下多器件的配置电路

说明:

Vcc为伏;此电压为nCEO所在的Bank区的Vccio电压;nCEO可浮空或用于一般I/O;

如上图所示,连路中所有器件的nCONFIG、CONF_DONE都连接在一路,并在外部接入了10K的上拉电阻。

在第一个器件接收到所有的配置数据后,将它的nCEO信号置低,而且释放CONF_DONE信号,但后面的设备在接收到配置数据之前仍然维持CONF_DONE信号为低。

当所有的设备都取得它们的配置数据后且释放CONF_DONE后,外部的上拉电阻将此信号拉高,从而使得链路中所有设备同时进入初始化状态。

第五节、PS模式:

用户能够利用PS配置模式对CycloneII器件进行配置。

在此模式下,由外部操纵器(如PC机、MaxII系列CPLD或其它嵌入式系统)操纵整个配置进程。

配置数据在DCLK的上升沿由DATAO输入到CycloneII器件的内部。

(在PS模式下,能够利用CycloneII器件的解紧缩特性)在PS模式下MSEL=01;

1、使用MAXII器件对单CycloneII器件的配置

在PS模式下,能够利用MAXII器件作为外部操纵器,将配置数据从外部存储器(Flash)传送到CycloneII器件。

配置数据的存储格式能够是RBF、HEX、TTF等。

图5-1为MAXII器件与CycloneII器件连接的示用意。

图5-1用外部操纵器操纵的配置模式示用意

说明:

Vcc=;nCEO可浮空或用作一般I/O

系统加电后,CycloneII器件通过大约100ms的重起时期,nSTATUS被拉低,所有效户I/O为高阻态。

整个配置进程由:

重起时期、配置时期和初始化时期组成。

(1)、重起时期:

在现在期CycloneII器件的nCONFIG和nSTATUS被拉低,MAXII必需将nCONFIG由低拉高才能终止重起而进入到配置时期。

当nCONFIG由低变成高时,CycloneII器件退出重起时期,将nSTATUS信号释放,使得外部的10K上拉电阻将其拉高。

使得CycloneII器件进入配置时期而预备接收配置数据。

MAXII能决定器件何时开始配置。

(2)、配置时期:

在CycloneII器件的nSTATUS变成高电平后,MAXII器件通过DATAO管脚发送配置数据。

若是利用配置数据的格式为RBF、HEX或TTF类型,那么先从每一个字节的最低位开始发送。

例如:

你要发送的数据为021BEE01FA,那么最先传送的数据流为:

0100-00001101-10000111-01111000-00000101-1111。

CycloneII器件通过DATAO管脚接收数据,利用DCLK管脚接收时钟信号。

数据在DCLK的上升沿存入FPGA,直到CONF_DONF变高之前,数据被持续的存入到目标器件。

在CycloneII器件成功的接收到所有的配置数据以后,就会释放CONF_DONE,使得外部的10K上拉电阻将其拉高。

CONF_DONE信号由低到高的转变那么说明器件终止了配置时期而进入到初始化时期。

(3)、初始化时期:

在CycloneII器件中,初始化时钟信号即能够是芯片内部产生(与DCLK不一样)也能够利用可选的CLKUSR管脚。

内部时钟是默许的初始化时钟信号,这有利于CycloneII器件进行更合理的初始化进程,也幸免用户给FPGA的CLKUSR管脚提供额外的时钟信号。

现在你能够将CLKUSR用作通用I/O接口。

若是用户想要延迟初始化,那么能够利用CLKUSR管脚。

利用CLKUSR使得用户能够操纵芯片何时进入用户状态。

当用户使能了UserSuppliedStart-upClock选项,那么CLKUSR确实是初始化的时钟信号。

这并非阻碍配置进程。

在接收到所有的配置数据而且CONF_DONE被拉高后,CycloneII器件需要299个时钟周期才能完成初始化进程。

CLKUSR的最高频率为100MHz。

CycloneII器件用INIT_DONE信号的由低到高的转变,来讲明终止了初始化进程而进入到用户

模式下。

EnableINIT_DONEoutput选项被选中的时候INIT_DONE信号才有效。

(有必要说明此选项在何处进行设置)。

若是利用此信号,那么要将此信号线上接入10K的上拉电阻,目的是在配置一开始且nCONFIG为低时将此信号拉高。

一旦利用此信号的标志位(在配置数据的第一帧中)进入FPGA器件后,INIT_DONE信号进入低电平。

此信号由低到高的转变那么标志了器件进入了用户模式状态。

若是用户没有利用此信号,初始化进程的终止是在CONF_DONE信号变高后再通过299个时钟周期(现在利用了CLKUSR)或是在CONF_DONE变高后经Tcf2um(现在利用的是内部的时钟)。

(4)用户利历时期:

初始化完成以后,CycloneII器件进入到用户利历时期。

在现在期,用户I/O口上再也不有微弱的上拉电阻,各个IO口如何连接,决定于用户的设置。

确保在配置终止后DCLK和DATAO没有浮空,MAXII器件必需将它们拉高或拉低。

在配置完成后,CycloneII器件的DATAO管脚不能用于用户I/O口利用。

当器件在用户模式下,用户能够将nCONFIG信号置低,来进行从头配置。

此信号置低的时刻最少要维持40us。

当此信号为低时,CycloneII器件重起,进入重起时期。

CycloneII器件也将nSTATUS和CONF_DONE拉低且所有I/O口为三态。

一旦nCONFIG和nSTATUS进入高电平后,那么进入重配置状态。

(5)配置进程发生错误

若是在配置进程中发生错误,CycloneII器件将nSTATUS信号拉低使得MAXII器件得知显现错误。

若是用户在软件中使能了Auto-Restartconfigurationaftererror选项,CycloneII器件在通过一个重起时刻(大约40us)释放nSTATUS信号,使得外部的10K上拉电阻将其拉高。

这时MAXII器件在不给nCONFIG低电平脉冲(重起用)的情形下从头进行配置。

若是没有选中Auto-Restartconfigurationaftererror选项,MAXII器件必需产生一个低脉冲(40us)给nCONFIG,使得CycloneII器件进行重起。

MAXII器件同时也监测CONF_DONE和INIT_DONE这两个信号来确保配置成功。

MAXII器件必需监测CycloneII的CONF_DONE信号,来探测错误和获知配置终止。

若是所有的配置数据都已经发送,但CONF_DONE或INIT_DONE都没有变高,那么MAXII器件就从头配置目标器件。

二、使用MAXII器件对多CycloneII器件的配置

用MAXII器件对多CycloneII器件的配置与对单CycloneII器件的配置很相似,不一样的是级联了多个CycloneII器件。

如以下图5-2所示:

图5-2PS模式下MAXII器件对多CycloneII器件的配置

说明:

Vcc=;Vcc连接到nCEO所在的Bank区I/O电压。

在多器件PS模式下,将第一个CycloneII器件的nCE接到Gnd,将nCEO接到下一个器件的nCE上。

在外部利用10K的上拉电阻将nCEO拉高。

在第一个器件配置完成后,会将它的nCEO拉低,使得下一个FPGA的nCE使能,让下一个FPGA在不到一个时钟周期内进入配置状态。

因此,MAXII器件在不中断的情形下将配置数据传送给下一个FPGA。

能够使最后一个nCEO管脚浮空或用于通用I/O口。

用户必需将CycloneII器件的nCONFIG、nSTATUS、DCLK、DATAO和COBF_DONE这些信号别离连接在一路。

配置信号上可能需要Buffer来维持信号的完整性和避免时钟倾斜。

每通过三个器件就要对DCLK和DATA这两个信号进行缓冲,这是因为所有器件的CONF_DONE都联在一路,所有器件初始化和进入用户利用状态是在同一时刻。

因为所有器件上的nSTATUS和CONF_DONE都是连接在一路的,因此在任意一个CycloneII器件上显现配置错误,都会使得整个链路上的配置停止而进入重配置状态。

若是用户在软件中使能了Auto-Restartconfigurationaftererror选项,CycloneII器件

在通过一个重起时刻(大约40us)释放nSTATUS信号,使得外部的10K上拉电阻将其拉高。

这时MAXII器件在不给nCONFIG低电平脉冲(重起用)的情形下从头进行配置。

若是没有选中Auto-Restartconfigurationaftererror选项,MAXII器件必需产生一个低脉冲(40us)给nCONFIG,使得CycloneII器件进行重起。

若是在你的系统中利用的是同一种型号的CycloneII系列FPGA(大小、速度品级、封装),而且它们的配置数据相同。

那么用户将这些芯片的nCE连接到Gnd,且其他的配置信号别离连接在一路,就能够够像配置一个器件一样来配置这些器件(节省配置时刻)。

这种情形下,nCEO管脚就能够够用作通用I/O口来利用。

为了保证信号的完整性和避免时钟信号倾斜,要在DATA和DCLK链路上加入Buzzer(每4个器件需要加入一组)。

所有器件开始配置和完成配置的时刻是一致的。

图5-3给出了PS模式下所有器件同时同意

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 学科竞赛

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1