RAM动态配置FPGA

上传人:野鹰 文档编号:3156641 上传时间:2017-07-30 格式:DOCX 页数:7 大小:58.46KB
返回 下载 相关 举报
RAM动态配置FPGA_第1页
第1页 / 共7页
RAM动态配置FPGA_第2页
第2页 / 共7页
RAM动态配置FPGA_第3页
第3页 / 共7页
RAM动态配置FPGA_第4页
第4页 / 共7页
RAM动态配置FPGA_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《RAM动态配置FPGA》由会员分享,可在线阅读,更多相关《RAM动态配置FPGA(7页珍藏版)》请在金锄头文库上搜索。

1、 在数据采集系统中有许多算法,包括数据的采集、预处理、变换还有基本参数的测量都可以在 FPGA 内完成,特别是对采集数据的多种变换,如快速傅里叶变换和小波变换等直接提高了系统的性能和分析能力。但是由于系统中要用的算法太多,但是 FPGA 的容量是有限的,因此在我们的系统中对 FPGA 使用了比较灵活的配置方式,既有用来调试的 JTAG 方式,又有固定的 AS 方式,还有可以重新配置的 PS 方式。在 ARM 的 SDRAM 中放置多个配置文件,既可以达到一个系统多样的功能。FPGA 配置方式简介配置是对 FPGA 的内容进行编程的过程。对于 SRAM 结构的 FPGA 来说,每次掉电都需要重新

2、进行配置,这是 SRAM 工艺 FPGA 的一个特点也是一个缺点。在FPGA 内部有许多可编程的多路器、逻辑、互连线结点和 RAM 初始化内容等,都需要配置数据来控制。FPGA 中的配置寄存器 RAM 就起到这样一个存放配置数据的作用 4。根据 FPGA 在配置电路中的角色,配置数据可以使用三种方式载入到目标器件中:1.FPGA 主动(Active)方式2.FPGA 被动(Passive)方式3.JTAG 方式在主动方式下,目标 FPGA 来主动输出控制和同步信号给 Altera 专用的一种串行配置芯片,如 EPCS1 和 EPCS4,在配置芯片收到命令后,就把配置数据发给 FPGA,完成配置

3、过程。由于设计中选用的 FPGA 容量比较大,所以设计中使用 EPCS16 来配置 EP3C25。在被动方式下,由系统中的其他设备发起并控制配置过程。这些设备可以是 Altera 的配置芯片,或者是微处理器、CPLD 等智能设备。FPGA 在配置的过程中完全处于被动地位,只是输出一些状态信号来配合配置过程。本设计就是使用外围的 ARM 处理器来配置 FPGA。 JTAG 是 IEEE 1149.1 边界扫描测试协议的标准接口。绝大多数的 FPGA 都支持使用 JTAG 口进行配置。从 JTAG 接口进行配置可以使用 Altera 的下载电缆,通过 Quartusii 工具下载,也可以使用智能主

4、机,如微处理器来模拟 JTAG 时序进行配置。相比较上述三种配置方式,我们设计中跟倾向与使用被动方式来配置 FPGA,它与主动方式相比有以下几个优点:1.降低硬件成本。省去了 FPGA 专用 EPROM 的成本,而几乎不增加其他成本。以 Altera 的 EP3C25 为例,板上至少要配一片以上的 EPCS16,每片 EPCS16的价格要二十多元,容量 16M。EP3C25 的配置文件为 5.8Mbits,而提供 5.8Mb的存储空间,对于大部分单板来说(如 ARM 系统的单板的 SDRAM 为 256M),是不需要增加硬件的。即使增加 16Mb 存储空间,通用存储器也会比 FPGA 专用 E

5、PROM 便宜很多。2实现真正现场可编程-FPGA 的特点就是现场可编程,只有使用 CPU对 FPGA 编程才能体现这一特点。如果设计周全的话,单板上的 FPGA 可以做到在线升级。PS 配置流程在 FPGA 正常工作时,配置数据存储在配置寄存器中,由于 SRAM 是易失性存储器,在 FPGA 重新上电之后,外部电路需要将配置数据重新载入片内的配置RAM 中。在芯片配置完成之后,内部的寄存器以及 I/O 管脚必须初始化。等到初始化完成以后,芯片才按照用户设计的功能正常工作,即进入用户模式。在 PS 方式下,FPGA 处于完全被动的地位,我们可以使用 DCLK(配置时钟)、DATA0(配置数据)

6、、nCONFIG(配置命令)、nSTATUS(状态信号)和 CONF_DONE(配置完成指示)来完成配置过程。FPGA 接收配置时钟、配置命令和配置数据,给出配置的状态信号以及配置完成指示信号,具体的 PS 配置时序图如下图 4-10 所示:图 1 PS 配置时序图nCONFIG:配置控制状态输入。低电平时使器件复位,由低到高上升沿跳变时 FPGA 启动配置程序。nSTATUS:器件状态位输出。FPGA 配置时先将此引脚拉低,然后在 5s 内释放。nSTATUS 经 10k 的电阻上拉,该信号拉低时表示配置过程中发生错误,需要重新配置。CONF_DONF:器件状态位输出。双向漏极开路,在配置前

7、和配置期间为状态输出,配置过程中 FPGA 将其拉低。所有配置数据无错误接收并且初始化时钟周期开始后,FPGA 将其拉高,表示配置成功。DCLK:配置时钟,一般为外部数据源提供的时钟。DATA0:数据输入,在 DATA0 引脚上配置数据一位位输入 FPGA。整个配置周期由三种阶段组成:复位阶段、配置阶段和初始化阶段。1.复位阶段:当 nSTATUS 和 nCONFIG 被拉低时,FPGA 处于复位模式。当 nCONFIG 拉高,nSTATUS 也被释放后就表示 FPGA 随时接收来至于外部存储器的配置数据并开始配置阶段。 2.配置阶段:在 nSTATUS 拉高后,外部处理器将配置数据一位一位逐

8、一的送到 DATA0 脚上。当配置文件选择 rbf、hex 或者 ttf 格式时,数据首先发送最低有效位,例如:rbf 文件包含字符串 02 1B EE 01 FA,应该以 0100-0000 1101-1000 0111-0111 1000-000 0101-1111 的顺序发送数据。FPGA 在 DCLK 上升沿时接收来自于 DATA0 的配置数据。数据按时钟顺序配置到 FPGA,直到 CONF_DONE 引脚被拉高。FPGA 接收配置数据成功后,开漏极的 CONF_DONE 引脚被 FPGA 拉高。CONF_DONE 的上升沿跳变表示配置结束,器件初始化阶段开始。3.初始化阶段:初始化时

9、钟的默认时钟是内部时钟。如果使用内部时钟,器件可以给正确的初始化提供时钟周期,可以将配置文件完整的传入器件,保证器件配置和初始化正确。在初始化阶段并不需要提供额外的外部时钟周期。配置完成后驱动DCLK 不要影响到器件工作。当完成初始化过程后,FPGA 正式进入用户模式。ARM 配置 FPGA 的实现设计中使用 S3C2410 来配置 EP3C25,S3C2410 核心板内存高达 256M,工作频率达到 203M,I/O 资源丰富,完全适合配置 FPGA 的条件。下图 2 为使用 ARM处理器配置 FPGA 的结构框图,被动串行配置的主要配置引脚有:nSTATUS、nCONFIG、DCLK、CO

10、NF_DONE 和 DATA0。 图 2 使用 ARM 配置 FPGA依照上节所示的配置过程,ARM 配置 FPGA 的操作流程图如下图 3 所示:图 3 ARM 配置 FPGA 程序流程图ARM 配置 FPGA 的具体程序如下:void ps_config(void)U8 dat; unsigned int i,j;rGPECON = 0x55555555; /GPE 全部设置为输出rGPGCON = 0xff55579a; /GPG11 为输出(nCONFIG).GPG5 为输出(DLCK)rGPGDAT=rGPGDAT&0xf7df; /nCONFIG 拉低,DCLK 拉低rGPEDAT

11、=rGPEDAT&0xfff2; /GPE0.2.3 拉低(DATA0,CONF_DONE,nSTATUS)delay1us(1);rGPGDAT=rGPGDAT|0x800; /nCONFIG 拉高delay1us(50);rGPEDAT=rGPEDAT|0x8; /nSTATUS 拉高delay1us(230);for(i=0;i1; rGPEDAT=rGPEDAT|0x4; /CONF_DONE 拉高 实验时将 FPGA 中的程序编写综合之后,使用 quartus 生成二进制的 ttf 文件,以数组的形式放到程序的头文件中。经过实验验证,ARM 配置 FPGA 大约需要 10s,如果希望在更短的时间内配置成功,可以使用并行被动配置,系统选用 Cycloneiii 代 FPGA 支持 FPP 配置(Fast Passive Parallel),唯一的区别就是数据发送由一位变为了八位。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号