异步FIFO的指针比较技术-Read.PDFVIP

  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文档。上传文档
查看更多
异步FIFO的指针比较技术-Read.PDF

异步 FIFO 的指针比较技术 微电子研究所 程农 曾代兵 摘要: 异步FIFOs 用于实现一时钟域到另一时钟域安全传送数据。使用FIFO 传送数据需要涉 及多时钟域设计问题,而设计多时钟域异步FIFO 中的关键技术是不同时钟域间的读写指针 间比较,异步FIFO 指针比较不能使用通常的同步技术来实现,需要特殊处理技术。本文详 细描述实现异步FIFO 的一种特殊处理技术。 1 介绍 为了便于理解FIFO 设计,首先需要理解FIFO 指针的工作原理。写操作,数 据写入目前写指针所指Memory 位置,同时写指针自动加 1;读操作,读出目前 读指针所指数据,同时确保读指针自动加1。FIFO “空”是指读指针追上写指针, 读写指针相等,或者开始复位读写都为零;FIFO “满”是指写指针超过读指针 一圈,写读指针相等。 异步FIFOs 指读、写指针不同时钟驱动,属于不同源时钟,即使用一个时钟 域写数据,使用另一个时钟域读数据,而且两个时钟域是异步的。实现异步FIFOs 功能的设计方法相当多,各种各样;不过据统计,大多数设计都有问题或者设计 有缺陷,更困难的是异步 FIFOs 设计上缺陷很难被发现。设计异步 FIFOs 的关 键是如何保证异步 FIFOs 可靠传送数据?由于一时钟域信号跨越时钟边界到另 一时钟域,需要确保信号同步于跨越后时钟域,如何保证信号同步又成为设计的 关键。 2 格雷码 读、写指针用来表示 FIFO 地址的,其特点是每次操作指针增 1;如果采用 二进制表示指针,地址增1 需要多位数码反转,在同一时钟沿采集多位数码会造 成逻辑误判。由于格雷码增1 操作仅仅反转一位,对指针采用格雷码表示形式。 实际设计过程中,为增加格雷码转换速度,采用双 Flip-Flop 结构形式,一 Flip-Flop 采样Binary 地址指针,另一Flip-Flop 采样Binary-Gray 后地址指针; 由于设计中省略 Gray-Binary 地址指针逻辑,使得组合逻辑更少,相应操作速 度会更快。 实际上,二进制增加是有条件的,例如:要吗FIFO 为非“空”,要吗FIFO 为非“满”。如果满足条件,地址指针才能增加;如果不满足条件,指针不能增 加,保持原来值。逻辑框图如图1 所示: 图1 格雷码设计 3 满/空检测 异步FIFO 需要检测FIFO 是否 “满”或者 “空”,而 “满”或者 “空”状态 生成必须比较不同时钟域的指针情况。因此,准确检测 “满”或 “空”是设计的 关键。 检测“满”或者“空”困难在于以下两个方面:1)读、写指针间的异步特 性,由于异步特性造成读、写指针比较出错;2 )“满”和 “空”都是读写指针相 等,如何区分“满”和“空”? 关于区分“满”和“空”,实际设计采用将地址空间分为 4 部分,使用地址 的高2 位决定FIFO 是“满”或者“空” 的方向,如图2 所示: 图2 满/空检测方向生成 wptr[n] 、wptr[n-1]表示经过 Gray 变换后写指针的高两位,rptr[n] 、rptr[n-1] 表示经过 Gray 变换后读指针的高两位,wrst_n 表示指针复位信号;dirset_n 和 dirrst 表示中间生成信号;direction 表示 “满”或 “空”方向信号,如果direction 为高电平,FIFO 可能“满”,如果direction 为低电平,FIFO 可能为“空”。 4 FIFO 结构 设计的异步FIFO 的整体框架结构如图3 所示,包含了4 个模块: 图3 异步FIFO 框架 上图中,FIFO Memory 模块为双端口RAM, wdata 、rdata 为其数据读写总线, waddr 、raddr 为读写地址,wclken 是写使能;CMP 模块是Gray 码转变后地址指 针的异步比较模块;FIFO wptrfull 模块为FIFO 写指针处理模块,winc 为写有 效信号,wfull 为返回“满”信号;FIFO rptrempty 为FIFO 读指针处理模块, rempty 为返回的读“空”信号。

文档评论(0)

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

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

1亿VIP精品文档

相关文档