Altera Cyclone II FPGA的几种代码配置
1、根据FPGA在配置电路中的角色,配置数据可以使用3种方式载入到目标器件中:
(1) FPGA主动方式:由FPGA来主动输出控制和同步信号给FPGA的串行配置芯片(EPCS系列),配置芯片收到命令后,把配置数据发给FPGA,完成配 置过程;在AS模式下,FPGA必须与AS串行配置芯片配合使用,它与FPGA的接口为四跟信号线,分别为:串行时钟输入(DCLK),AS控制信号输入 (ASDI),片选信号(nCS),串行数据输出(DATA)。
(2) FPGA被动方式:被动模式下,由系统的其他设备发起并控制配置过程,这些设备可以是配置芯片(EPC系列),或者单板的微处理器、CPLD等。FPGA 在配置过程中完全处于被动地位,只是输出一些状态信号来配合配置过程;在PS模式下,需要配置时钟(DCLK),配置数据(DATA0),配置命令 (nCONFIG),状态信号(nSTATUS),配置完成指示(CONF_DONE)这四个信号来完成配置过程。 (3) JTAG模式:使用JTAG进行配置可以使用Altera的下载电缆,或者通过智能主机模拟JTAG的时序来进行配置;JTAG接口由四个必须的信号TDI、TDO、TMS和TCK,以及一个可选的TRST构成。
2、若使用ByteBlasterII下载电缆,支持的配置方式有以下3种: AS方式:对AS配置芯片(ECPS系列)进行编程; PS方式:可以对FPGA进行配置;
JTAG方式:可以对FPGA、CPLD以及Altera配置芯片(EPC系列)编程。 3、AS及PS模式下的注意事项
PS模式:如果你用电缆线配置板上的FPGA芯片,而这个FPGA芯片已经有配置芯片在板上,那你就必须隔离缆线 与配置芯片的信号一般平时调试时不会把配置芯片焊上的,这时候用缆线下载程序.只有在调试完成以后,才把程序烧在配置芯片中,然后将芯片焊上.或者配置芯 片就是可以方便取下焊上的那种.这样出了问题还可以方便地调 试.
AS模式下: 用过一块板子用的AS下载,配置芯片一直是焊在板子上的,原来AS方式在用线缆对配置芯片进行下载的时候,会自动禁止对FPGA的配置,而PS方式需要电路上隔离。
4、一般在做FPGA实验板,(如cyclone系列)的时候,用AS+JTAG方式,这样可以用JTAG方式调试,而最后程序已经调试无误了后,再用AS模式把程序烧到配置芯
片里去,而且这样有一个明显的优点,就是在AS模式不能下载的时候,可以利用Quartus自带的工具生成JTAG模式下可以利用的jic文件来验证配置芯片是否已经损坏。 信号名 DATA0 DCLK nCONFIG nSTATUS 说明 配置数据 配置时钟 器件复位脚(该信号的上升沿使配置开始) 状态位(如果该信号线为低,表明在配置过程中出现错误,需重新配置) CONF_DONE 输出 状态位(在配置完成后,该信号为高) 具体5个引脚的功能如下: (1) DATA0:输入;单片机串行的配置数据输入口。
(2) DCLK:输入;为外部数据源提供时钟。
(3) nCONFIG:输入;配置控制输入。低电平使ACEX1K器件复位,在由
低到高的跳变过程中启动配置。
(4)nSTATUS:双向漏极开路(需接上拉电阻);上电后,ACEX1K立即驱动该引脚到低
电平,然后在100ms内释放掉它。nSTATUS必须经过1K电阻上拉到VCC,如果配置中发生错误,ACEX1K将其拉低。
(5) CONF_DONE:双向漏极开路(需接上拉电阻);状态输出。在配置期间,ACEX1K将其驱动为低电平。所有配置数据无误差接收后,由于有上拉电阻,所以将其变为高电平,表示配置成功。CONF_DONE必须经过1K电阻上拉到VCC。
其中在配置中还有另外几个引脚需要注意:
(1) nCE:输入;ACEX1K器件使能输入;nCE为低电平时使能配置过程,
为单片配置时,nCE必须始终为低。
(2) nCEO:输出(专用于多片器件);ACEX1K配置完成后,输出为低电
平。在多片级联配置时,驱动下一片的nCE端,从而实现多片FPGA的配置。
在AS模式下 如果出现如下错误
Error: Can't recognize silicon ID for device 1
1。确认你的QII中选择的配置芯片是否和电路板中的芯片一致
2。检查你的下载线是否损坏,据说下载线长不应该超过30CM 但是我自己做的大概有50CM也可以正常使用
3。确定你的配置芯片是否损坏,可以使用JTAG烧写配置芯片测试下,如果可写 那就可以排除该错误
4。检查你的电路中的AS模式中的上拉电阻和下拉电阻是否虚焊,还有MSEL0与MSEL1是否选择正确
和nSTATUS是否接上拉电阻等
I/O 输入 输入 输入 输出
Altera Cyclone II FPGA的几种代码配置加载方式
Altera cycloneII系列FPGA使用SRAM单元存储配置信息,由于SRAM存储器是易失性的,所以每次上电后配置信息都会重新加载到cycloneII芯片中。可以使用AS(action serial)配置方式,这需要DCLK的频率达到40MHz的情况下,配置cycloneII芯片。也可使用PS(passive serial)和JTAG(Joint Test Action Group)方式来配置。此外,cycloneII芯片还能接收压缩的配置信息比特流,在运行过程中解压这些数据,来降
低
存
储
要
求
和
配
置
时
间
。
2 N+ A1 {1 X! z) a* |; S%
可以通过cycloneII芯片的MSEL引脚的高低来选择哪中配置方式,MSEL引脚是有其所在bank的VCCIO引脚驱动的,MSEL[1..0]引脚有9K欧的内部下拉电阻始终有效。在上电复位和重新配置时,MSEL引脚肯定是出于LVTTL Vil或者Vih电平,分别被看作逻辑低和逻辑高。因此,为了避免因使用了错误的配置方法而产生问题,需要将MSEL[ ]引脚连接到其所在的I/O bank的VCCIO和GND,不需要连上拉或下拉电阻。MESL[ ]
引脚不需要处理器或其他的器件来驱动。
* l# g; |( r( P e9 E
, k# f, O5 j' W( A2 q8 D2 m3 }
说明:1.只有EPCS16和EPCS64器件需要DCLK达到40MHz的时钟,其余的EPCS只需要DCLK达到20MHz。具体的选型可参考Serial Configuration Devices Data Sheet。 2.JTAG配置的优先权高于其他的配置方式,这就意味着MSEL引脚的设置可忽略。 3.不可让MSEL引脚悬空,将他们连到VCCIO或GND,这些引脚在做成产品后支持非JTAG配置方式。如果只使用JTAG配置,可将MSEL引脚都连到GND。
下表所示的是未压缩的cycloneII配置文件的大小,在计算多种器件的配置所需的存储空间总数时,要将每个器件的文件大小相加。
上表中的数据只是估计了设计编译之前的文件大小,不同的配置文件格式,如Hexadecimal(十六进制.hex)或者Tabular Text File(表格式文件.ttf)格式,都是大小不同的。不管怎样,对于任何具体版本的QuartusII软件,对于相同器件的任何设计平台,都有的未压缩配置文件大小。如果使用压缩,那么文件的大小是可变的,因为每次编译的压缩率依赖于设计。
+ M/ u3 K& T) u% \\: cycloneII器件支持在存储空间中存放压缩的配置信息。这一特性就允许在配置芯片或其他存储器中存放压缩的配置信息,并把压缩的配置信息装载入cycloneII芯
片。在配置过程中,cycloneII芯片实时的解压这些bit流,并配置他的SRAM单元。
T\ r3 N R6 O+ m,
初步的数据表明,压缩可将配置bit流的大小减少35%到50%。 cycloneII芯片的AS和PS配置方式都支持解压,而JTAG模式不支持。
虽然都是使用相同的压缩运算,但是cycloneII芯片的解压特性不同于扩展配置芯片(EPC16,EPC8和EPC4)的解压特性。扩展芯片中允许存放压缩的数据,在传送到目标芯片之前进行解压。
0 ^5 H9 s+ I( {! R, J 在PS模式,要用cycloneII解压特性,因为发送压缩的配置信息可以减少配置时间。不可以同时使用cycloneII芯片和扩展配置芯片的解压特性。压缩算法不能递归,并可能增大配置文件,而不会进一步压缩。
使用AS配置模式,如果想要节省串行配置芯片的存储空间,就需要使用cycloneII芯片的解压特点。
- p4 b4 b! Z s9 N 如果使用压缩,QuartusII软件会生成一个带压缩配置信息的文件,这个压缩文件减少了配置芯片或者Flash的存储空间,也减少了将其传送到cycloneII芯片中所需的时间,cycloneII芯片解压配置文件的时间要小于传送配置信息到FPGA的时间。 有两种方法压缩cycloneII的bit流,在编译前(在Compiler Settings菜单中),编译后选择(在Convert Programming Files窗口)。
在project的编译器设置中选择是否压缩,选择Assignment菜单下的Device选项,打开setting窗口,选好所需的cycloneII芯片后打开Device&Pin Options窗口,在General 设置一栏下选中Generate compressed bitstreams。如下图所示:
- C1 I\% r