2022年从配置PROMFLASH读取用户数据 .pdf
《2022年从配置PROMFLASH读取用户数据 .pdf》由会员分享,可在线阅读,更多相关《2022年从配置PROMFLASH读取用户数据 .pdf(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、从配置 PROM/FLASH读取用户数据时间 :2009-02-03 来源 : 作者 :freehardman 点击:147 字体大小 : 【大 中 小】前沿在 FPGA 设计中,配置FLASH(XCF00 系列)主要的功能是存储FPGA 设计,然后在上电之后,自动将设计装载到FPGA 当中。在有些时候,FPGA设计并未全部将配置FLASH 的存储单元全部占用,因此,未被占用的单元就被浪费掉了。在某些应用中,用户需要在片外 (FPGA 外)存储自己定义的数据,这个时候就要单独挂FLASH 芯片到 FPGA 上,这样不仅增加了设计难度(用户需要专门编写存储控制接口)、增加成本、增加布板难度、增加
2、FPGA 管脚使用数量等,从而给设计者带来很多不便。如果用户自定义的数据量不是很大,而且正好可以放到FLASH的未被占用的存储单元中,那么将极大减轻设计者的负担,减少成本,增加系统可靠性。下面将详细介绍如何将用户自定义数据存储到PROM/FLASH 中,以及如何读取这些数据。具体实现原理要想实现将用户自定义数据写入FLASH 以及从它们当中读出来,首先要明确以下几个问题:FPGA设计数据如何被写入到FLASH 当中FLASH 中的数据如何被读到FPGA 当中(配置FPGA过程)理解了以上两个问题,我们就能从总体上知道是什么原理使用户数据能写入到FLASH 当中,并被读出来。看FIG1:(注:以
3、下所有的讨论都是认为FPGA 的配置模式是主串模式)在 FIG1 中,有几个关键信号:CCLK,CE/,OE_RESET/,INIT/ (INIT/ 在 FPGA 上)。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 9 页 - - - - - - - - - 在主串模式配置过程中,上电之后, 由 FPGA 的 CCLK引脚发出时钟, 驱动 FLASH 的 CLK,而 FLASH 根据 CE/、OE_RESET/的状态来确定是否地址增加(此“ 地址” 是 FLASH 内部
4、数据存储单元的地址) 。 如果 FPGA 将所有的设计数据读取完毕,则停止产生CCLK时钟。而 CE/、OE_RESET/的状态可能在FPGA 配置完毕之后变化,使地址复位。注意,当CCLK产生且FLASH 有数据输出时,要判断这些数据是否是设计数据。判断的方法是通过一个同步字段来实现的。不同系列的FPGA 同步字段会有不同,比如Virtex 系列 FPGA 同步字段是AA995566h 。在对应 FPGA 的配置手册中会找到其同步字段。上述所述过程大概描述了一个FPGA 的配置过程。因此,如果要想在FPGA 配置成功之后,继续读取用户自定义在FLASH 中的数据,就要在上述过程中做一下变动,
5、而且不影响正常的 FPGA 配置。通过研究 FLASH 的手册,可以知道,当CE/变高后,FLASH 的地址计数器就会复位,而不再因为CLK 有脉冲而地址增加。所以,当FPGA配置完毕后,设计者要阻值CE/变高。在配置过程中,INIT/ 变低,表示FPGA 接收的数据有CRC校验错误,这时FLASH 的地址计数器会清零。当 OE_RESET/为低,FLASH 的地址计数器复位。Tab1 为 OE_RESET/和 CE/与 FLASH 地址的真值表:通过前面分析几个信号对FLASH地址的影响以及FPGA 配置过程,可以有如下的方法来实现在成功配置FPGA 之后,正确读取FLASH 中的用户自定义
6、数据:CE/信号脚在 FPGA 成功配置后,不能为高,因此将该引脚连接到一USER IO 上,这样当 FPGA 配置成功后,该USER IO 输出低,这样CE/就不会变高,从而PROM/FLASH 地址就不会复位。在我们一般的应用中,是将FPGA 的 DONE 引脚连接到 CE/上,这样的目的是当FPGA成功配置后, DONE 变高,从而CE/变高,这样FLASH 的地址就复位了。如果我们采用一USER IO 连接到 CE/上,那么这个时候,DONE脚就不能在连接到CE/上。 DONE 脚此时可以只驱动LED就可以了。注意 DONE脚的上拉电阻要保留。其实CE/也可以直接接到GND 上,但是这
7、样FLASH 一直在使能,对芯片不好,也增加了功耗。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 9 页 - - - - - - - - - OE_RESET/直接连接到INIT/ 上,同时 INIT/ 在 FPGA成功配置后, 要作为一个USER IO 使用。这样一方面保证在FPGA 配置过程中如果出现CRC错误,可以再重新发起一次配置动作;另一方面当FPGA 成功配置后, INIT/ 成为一个USER IO,可以使该USER IO 输出为高, 这样 OE_RESET
8、/为高, FLASH 内部地址不会复位,FLASH 处在输出使能状态。以上两个措施保证了在FPGA 成功配置后, FLASH 的地址不会清零。但是由于FPGA 成功配置后, CCLK就停止产生,所以,尽管FLASH 地址没有被复位,但是也不会增加。还要想办法使地址增加。在上述条件满足时,地址增加就要有时钟输入到FLASH 的 CLK 引脚上。由于CCLK的不可控性(尽管BitGen 中有一些选项可以影响CCLK的变化。我没有仔细去研究过),因此需要有一个设计者可控的时钟信号输入到FLASH 的 CLK引脚上。当 FPGA成功配置后, CCLK为 3 态且有一个弱的到VCCO的上拉, 因此将一个
9、USER IO 连接到 FLASH 的 CLK 引脚上是可行的。也就是说FPGA的 CCLK和一个 USER IO 同时都连接到FLASH的 CLK引脚上。这样,设计者就可以在FPGA 成功配置后,通过控制USER IO 来产生时钟脉冲,来读取自定义在 FLASH 中的数据。因为数据是串行的,而且FLASH 的地址对设计者来说不可见,因此借鉴 FPGA 在配置时是如何确定从FLASH读出的数据是设计数据的方法:识别同步头。因此,在生成用户自定义数据的时候,也要考虑一个有意义的同步头数据。如数据可以按照FIG2 来分布:如何生成用户数据并加入到mcs 文件中,在后面有描述。Read宏单元实现从前
10、面描述,清楚了在硬件上如何改动,使之适合在FPGA配置成功后,能读取FLASH中的用户自定义数据。但是,如何读取、读取这个动作如何实现,还是需要专门设计一个模名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 9 页 - - - - - - - - - 块才可以。FIG3 是一个标准的读FLASH 数据的宏单元框图:该宏单元实现了在FPGA 成功配置后,从FLASH中读取用户自定义数据。各引脚信号说明,见 Tab2 :Table2:Read PROM/FLASH 宏单元信号描
11、述与功能信号名IO 方向描述clock 输入所有信号的寄存都是在clock 的上升沿reset 输入异步低有效复位信号。该信号将所有逻辑复位到初始状态。din/d0 输入连接到 FLASH 的数据输出引脚。用户数据出现在该引脚上。read 输入该信号低有效。该信号指示该宏单元从FLASH 中读取下一个8bit 数据。next_sync 输入该信号低有效。该信号指示该宏单元搜索存储在FLASH 中的下一个同步字段。dout7:0 输出用户自定义数据会出现在该总线上。该总线上是否是有效的用户数据,由data_ready来指示。当 data_ready 保持一个时钟周期的低电平时,表明该总线上的数据
12、是有效的。data_ready 输出该信号低有效。当该信号持续一个时钟周期为低时,就表明dout7:0上的数据是有效的用户自定义数据。sync 输出该信号低有效。当从检测到从FLASH 中读出的数据有同步字段时,该信号变低。reset_prom 输出该信号低有效。当该宏单元被复位时,该信号就会变低。该信号连接到FLASH 的 CE/或 OE_RESET/上。当该信号为低时,使FLASH 的地址计数器复位。cclk 输该信号非 FPGA 引脚上那个CCLK。该信号只是模拟CCLK。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年从配置PROMFLASH读取用户数据 2022 配置 PROMFLASH 读取 用户 数据
限制150内