原创 基础篇: 第六章 编程与配置

2010-6-18 18:32 3344 7 7 分类: FPGA/CPLD

ByteBlaster II下载电缆:是在前一代 ByteBlasterMV下载电缆的基础上做了一些改进。最主要的是其供电电压可以支持5V、3.3V、2.5V 、1.8V等几种。ByteBlaster II支持的配置方式有以下3种:


. AS方式:可以对altera的AS串行配置芯片(EPCS系列)进行编程;


. PS方式:可以对FPGA进行配置;


.JTAG方式:可以对FPGA、CPLD以及altera配置芯片(EPC系列)编程。


 


配置芯片分以下3种:


.增强型配置器件:EPC16、EPC8、EPC4. 可支持大容量FPGA的单片配置,可以由JTAG接口进行在系统编程(in system programming),可以支持FPP快速配置方式。


.AS串行配置器件:EPCS64 、EPCS16 、EPCS4、 EPCS1;专门为stratix II、cyclone II和cyclone 器件设计的单片、低成本的配置芯片,可由下载电缆或其他设备进行重复编程。


. 普通配置器件:EPC2, EPC1, EPC1441。容量相对较小,其中只有EPC2可以重复编程,要支持大容量FPGA的配置,可以将多片级联起来。


配置文件说明:


.sof (SRAM object file):如果选择配置模式为JTAG或PS方式,使用altera的下载电缆对FPGA进行配置时,将用到.sof文件。该文件为quartus II自动产生,使用.sof文件进行配置时,Quartus II下载工具将控制整个配置的顺序,并为配置数据流自动插入合适的头信息,其他配置文件都是从 . sof产生出来。


.pof(programmer object file):用来对各种altera配置芯片进行编程的文件。需注意的是,需要在Quartus II工具中设置编程器件类型,才可以生成该类型的. pof文件。对一些小的FPGA中,多个FPGA的 .sof文件可以放到一个 .pof文件中,烧制到一个配置文件中;而对较大的FPGA,如果一个配置器件不够,可以使用多个配置器件,工具可以将配置文件分到几个配置芯片中。


.rbf(raw binary file):二进制的配置文件,只包含配置数据的内容。通常被用在外部的智能配置设备上,如微处理器。例如,一种用法是将.rbf文件通过其他工具转换成十六进制的数组文件,编译到微处理器的执行代码中,由微处理器将数据载入到FPGA中;也可以由处理器在配置过程中完成实时的转换工作。 .rbf中的LSB(最低位)被首先载入到FPGA中。


.rpd(raw programming data file):用外部编程设备对AS串行配置芯片进行在系统编程。这个文件是由.pof转换而来的。选择不同的AS配置芯片,转换得到的.rpd文件大小都不一样。


..hex或hexout(hexadecimal file)


.ttf(Tabular Text File)


.sbf(serial bitstream file)


.jam(jam file)


.jbc(jam byte-code file)


产生各种配置文件


        选择输出的文件类型:


        【setting】——【device】——【device & pin options】——【programming files】


        【file】——【convert programming files】——【programming file type】


 



单板调试及调试注意事项:


配置的可靠性:为了保证配置数据在配置过程中和在正常使用中不被破坏,altera的器件中设计了一些保护电路,以使altera工艺的FPGA可靠性大大提高。


. 配置过程的CRC校验:在对FPGA进行配置的过程中,FPGA将为输入的每一帧数据进行CRC校验。如果发现校验的结果与数据流中带的结果不一致,FPGA会将nSTATUS信号拉低,指示配置过程中有错误发生。CRC校验电路可以保证不会将错误的或不完整的数据配置到FPGA中。


. 掉电重配置保护:altera的FPGA在系统掉电时,有一种特殊的机制将保证系统的高可靠性。FPGA中的SRAM单元需要一定的电压来维持其中正确的数据(这个电压甚至比激活器件POR电路的电压还低)。当FPGA的VCC出现低电压时,芯片将停止工作,同时将通过nSTATUS拉低来指示操作错误,这时FPGA需要被重新配置。如果nCONFIG信号在单板上被拉高,那么当VCC一旦恢复正常后,重配置就开始了,nSTATUS上的低脉冲将通过OE管脚复位配置芯片。。。。。。。


. configuration RAM数据的CRC校验:正常工作过程中,在altera的FPGA(stratix系列和cyclone系列)内部有一个CRC计算电路,对FPGA内部配置RAM(CRAM)中的数据不断进行CRC校验,如果发现错误,将进行CRC_ERROR管脚指示出来,表示需要对FPGA进行重新配置,这个特性可以应用在要求高的可靠性的场合,如电信级设备以及航空领域。


         从以上可见,altera器件中提供了许多配置错误检测机制,能帮助用户实现更可靠的系统功能。


单板设计要点:


. DCLK处理方式:虽然DCLK的时钟频率通常不高,但是在设计DCLK时,需要将DCLK信号当作高速的时钟信号来处理。在PCB布线时,要注意DCLK的信号质量,因为任何DCLK上的上冲、下冲、振铃或其他噪声都可能造成配置数据的错误,这一要求同样适用于JTAG的时钟信号TCK。


. 多片配置信号处理:在多片FPGA的配置链中,一般建议将多片FPGA器件的DCLK、DATA0(DATA[7:0])、nCONFIG、nSTATUS和CONF_DONE信号连在一起,这样可以保证所有器件同时开始和结束配置,而且如果有一个器件在配置过程中出错,nSTATUS管脚被拉低,所有的FPGA都将被重新配置。在调试阶段,用户通常使用JTAG配置模式,往往需要将各个FPGA的nSTATUS和CONF_DONE信号单独的上拉处理,以便分别调试。


. 驱动高扇出信号:在多器件配置链中,配置信号往往需要被重新驱动(buffering)来保持良好的信号完整性和防止时钟偏斜等问题,最好要保证DCLK和DATA信号线每带4个器件就重新驱动一次。同样在JTAG配置方式中,需要保证每个芯片都能将TCK、TDI和TMS重新驱动。


. 配置芯片的延时:在配置芯片将配置数据全部送到FPGA中以后,将期待在其的nCS管脚(连到FPGA的CONF_DONE管脚上)上收到一个逻辑高电平。


调试建议:


(1)测试DCLK信号,观测该信号由没有上冲、下冲、振铃等现象。一个不干净的DCLK往往会影响配置,导致配置过程中出现CRC校验错误。


(2)用户可以通过检测INIT_DONE信号来判断FPGA是否已经开始接收数据。此管脚是一个可选的配置管脚,可以通过Quartus II中的开关打开,当INIT_DONE管脚上的一个从高到低的跳变就表示FPGA配置真正开始,并开始接收配置数据。如果INIT_DONE管脚一直保持为高,就说明FPGA没有接收到正确配置数据的文件头。


(3)如果配置数据被全部写入到FPGA中,而CONF_DONE信号没有变高,需要检查CONF_DONE管脚是否被上拉到Vcc,确保其不会被其他的驱动源驱动为低。


 


其他内容参照《FPGA配置方式【转】   

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
7
关闭 站长推荐上一条 /3 下一条