现场可编程门阵列FPGA(Field Programmable Gate Array)是一种高密度可编程逻辑器件,其逻辑功能的实现是通过把设计生成的数据文件配置进芯片内部的静态配置数据存储器(SRAM)来完成的,具有可重复编程性,可以灵活实现各种逻辑功能。FPGA的这种特性使其在现代电子系统设计中得到了广泛应用。基于SRAM工艺的FPGA是易失性的,系统掉电以后其内部配置数据将丢失,因此需要外接ROM保存其配置数据。FPGA的配置是有时序要求的,如果FPGA本身不能控制配置时序,就需要有外部配置器件来进行时序控制。以Altera公司的系列FPGA为例,其本身不能控制配置时序,就有专用的EPC系列配置器件供其使用。在含有微处理器(MPU或MCU)的系统中(如嵌入式系统),可以使用微处理器产生配置时序,将保存在系统ROM的配0置数据置入FPGA。
1 APEX 20K系列FPGA配置方式及配置文件
1.1 配置方式介绍
Altera公司的APEX 20K系列FPGA可以使用以下方式进行配;
①使用专用配置器件,如EPC16、EPC8、EPC2、EPC1、EPC1441;
②被动串行方式(PS),使用微处理器的串行步接口或ByteBlaster下载电缆;
③被动并行同步方式(PPS),使用微处理器的并行同步接口;
④被动并行异步方式(PPA),使用微处理器的并行异步接口;
⑤边界扫描方式(JTAG),使用JTAG下载电缆。
使用方式①时,需要首先使用下载电缆将计算机生成的FPGA配置文件烧入EPC配置器件中,然后由EPC配置器件控制配置时序对FPGA进行配置,一次烧写即可重复使用。使用方式②、③、④时,配置文件事先以二进制形式保存在系统ROM中,可以脱离开计算机重复使用。若使用方②、③、④时,配置文件事先以二进制形式保存在系统ROM中,可以脱离开计算机重复使用。若使用方式②,微处理器将配置数据以串行(比特流)方式送给FPGA,在配置时钟驱动下完成配置。若使用方式③,微处理器将配置数据以并行(字节)方式送给FPGA,由FPGA在其内部将并行数据转换成串行数据,该串行化的过程需要外部配置时钟的驱动。在配置时钟速率相同的情况下,方式②、③所用的配置时间几乎相同,但方式②的接口要比方式③简单,若使用方式④,微处理器仍将配置数据以并行方式送给FPGA,在FPGA内部完成数据串行化;与方式③不同的是,该过程不需要外部配置时钟的驱动,但其接口更复杂,并且需要进行地址译码,增加了系统的复杂程度,一般很少采用。使用方式⑤时需要计算机的配合,无法在最终的实际系统中脱机使用。
通过上述讨论可以看出,在使用APEX 20K系列FPGA开发实际应用系统,特别是要形成某种产品时,如果系统中不含微处理器,只能使用方式①;若系统中含有微处理器,方式①、②、③、④都可以使用,但②、③、④可以发现,方式②的接口最简单,实现起来比其它两种方式都方便因而在含有微处理器的系统中得到了广泛应用。
1.2 配置文件的使用
Altera公司的开发工具Quartus II及MAX+PLUS II可以生成多种格式的配置文件,针对不同的配置方式要使用不同格式的配置文件。设计项目编译以后会自动生成.sof文件和.pof文件。其中.pof文件在配置方式①使用专用配置器件时使用,.sof文件用于通过连接在计算机上的下载电缆直接对FPGA进行配置的场合,配置方式可以是JTAG方式或PS方式中使用ByteBlaster下载电缆的情况。基于.sof文件还可以生成.hex、.rbf和.ttf文件。.hex文件是Intel Hex格式的ASCII码文件,第三方的编程器可以使用这种格式的文件对Altera公司的配置器件进行编程。.rbf文件是二进制文件,1字节的rbf数据包含8bit的配置数据,使用时将其存入ROM中。微处理器人ROM使用这种格式的文件。.ttf文件是列表文本文件,.rbf文件的ASCII码存储形式,并且各个字节之间用逗号进行了分隔。如果系统中有其它程序,可以将.ttf文件作为系统程序源代码的一部分,和其它程序一起编译。系统可采用.ttf文件作为系统程序的一个头文件使用,其配置数据以数组形式被配置程序使用。对于某种特定型号的FPGA,无论其设计有多复杂,在相同版本的开发工具下生成的配置文件大小是一样的。
文章评论(0条评论)
登录后参与讨论