从配置PROMFLASH读取用户数据剖析.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
从配置PROM/FLASH读取用户数据 时间:2009-02-03 ? 来源:zcluan@ ? 作者:freehardman ? 点击:147 ? 字体大小:【大 中 小】 前沿 ??? 在FPGA设计中,配置FLASH(XCF00系列)主要的功能是存储FPGA设计,然后在上电之后,自动将设计装载到FPGA当中。在有些时候,FPGA设计并未全部将配置FLASH的存储单元全部占用,因此,未被占用的单元就被浪费掉了。 ??? 在某些应用中,用户需要在片外(FPGA外)存储自己定义的数据,这个时候就要单独挂FLASH芯片到FPGA上,这样不仅增加了设计难度(用户需要专门编写存储控制接口)、增加成本、增加布板难度、增加FPGA管脚使用数量等,从而给设计者带来很多不便。如果用户自定义的数据量不是很大,而且正好可以放到FLASH的未被占用的存储单元中,那么将极大减轻设计者的负担,减少成本,增加系统可靠性。 ??? 下面将详细介绍如何将用户自定义数据存储到PROM/FLASH中,以及如何读取这些数据。 具体实现 ?原理 ??? 要想实现将用户自定义数据写入FLASH以及从它们当中读出来,首先要明确以下几个问题: FPGA设计数据如何被写入到FLASH当中 FLASH中的数据如何被读到FPGA当中(配置FPGA过程) ??? 理解了以上两个问题,我们就能从总体上知道是什么原理使用户数据能写入到FLASH当中,并被读出来。看FIG1:(注:以下所有的讨论都是认为FPGA的配置模式是主-串模式) ? ??? 在FIG1中,有几个关键信号:CCLK,CE/,OE_RESET/,INIT/(INIT/在FPGA上)。在主-串模式配置过程中,上电之后,由FPGA的CCLK引脚发出时钟,驱动FLASH的CLK,而FLASH根据CE/、OE_RESET/的状态来确定是否地址增加(此“地址”是FLASH内部数据存储单元的地址)。如果FPGA将所有的设计数据读取完毕,则停止产生CCLK时钟。而CE/、OE_RESET/的状态可能在FPGA配置完毕之后变化,使地址复位。注意,当CCLK产生且FLASH有数据输出时,要判断这些数据是否是设计数据。判断的方法是通过一个同步字段来实现的。不同系列的FPGA同步字段会有不同,比如Virtex系列FPGA同步字段是AA995566h。在对应FPGA的配置手册中会找到其同步字段。 ??? 上述所述过程大概描述了一个FPGA的配置过程。因此,如果要想在FPGA配置成功之后,继续读取用户自定义在FLASH中的数据,就要在上述过程中做一下变动,而且不影响正常的FPGA配置。 ??? 通过研究FLASH的手册,可以知道,当CE/变高后, FLASH的地址计数器就会复位,而不再因为CLK有脉冲而地址增加。所以,当FPGA配置完毕后,设计者要阻值CE/变高。 ??? 在配置过程中,INIT/变低,表示FPGA接收的数据有CRC校验错误,这时FLASH的地址计数器会清零。 ??? 当OE_RESET/为低, FLASH的地址计数器复位。 ??? Tab1为OE_RESET/和CE/与FLASH地址的真值表: ? ??? 通过前面分析几个信号对FLASH地址的影响以及FPGA配置过程,可以有如下的方法来实现在成功配置FPGA之后,正确读取FLASH中的用户自定义数据: 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上,但是这样FLASH一直在使能,对芯片不好,也增加了功耗。 OE_RESET/直接连接到INIT/上,同时INIT/在FPGA成功配置后,要作为一个USER IO使用。这样一方面保证在FPGA配置过程中如果出现CRC错误,可以再重新发起一次配置动作;另一方面当FPGA成功配置后,INIT/成为一个USER IO,可以使该USER IO输出为高,这样OE_RESET/为高,FLASH内部地址不会复位,FLASH处在输出使能状态。 ??? 以上两个措施保证了在FPGA成功配置后,FLASH的地址不会清零。但是由于FPGA成功配置后,CCLK就停止产生,所以,尽管FLASH地址没有被复位,但是也不会增加。还要想办法使地址增加。 ???

文档评论(0)

aa15090828118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档