- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
本小节核心内容提纲
一、FIFO 常见参数主要有。
1. FIFO 的宽度:即FIFO 一次读写操作的数据位;
2. FIFO 的深度:指的是FIFO 可以存储多少个N 位的数据(如果宽度为N )。FIFO 的深
度相当于蓄水池的容量,如果过小,则上游节点总是接收满信号,使得系统的数据吞吐
量降低。如果过大,则浪费空间太多。因此,FIFO 的深度是一个很关键的参数。
3. 满标志:FIFO 已满或将要满时由FIFO 的状态电路送出的一个信号,以阻止FIFO 的写
操作继续向FIFO 中写数据而造成溢出(overflow)。
4. 空标志:FIFO 已空或将要空时由FIFO 的状态电路送出的一个信号,以阻止FIFO 的读
操作继续从 FIFO 中读出数据而造成无效数据的读出(underflow)。如我们前面讲述,
空满标志非常重要。本节我们重点讨论如何设计空满标志位电路。
5. 读时钟:读操作所遵循的时钟,在每个时钟沿来临时读数据。
6. 写时钟:写操作所遵循的时钟,在每个时钟沿来临时写数据。在FIFO 中,这两个时钟
通常都不相同,而且以异步时钟。
二、FIFO 的总体结构。
1. 双端口SRAM ,用来存储上游节点写入的数据wdata ,下游节点用rdata 将其读出。SRAM
的读写地址采用了每次只递增1 的机制,保证了写入和读出按顺序进行,写和读到最高
地址后,重新返回零地址。
2. 在上游节点和 SRAM 之间有一个满信号生成电路,这个电路通过判断写时钟域下,写
指针和读指针的关系,然后实时生成满信号wfull ,以通知上游节点停止写操作。
3. 同样地,在下游节点和SRAM 之间有一个空信号生成电路,这个电路通过判断读时钟
域下,写指针和读指针的关系,然后实时生成空信号rempty ,以通知下游节点停止读操
作。
4. 这两个模块的工作机制是我们要重点关注的。这里还需要注意的是,将读指针传递到写
时钟域才能产生满信号,将写指针传递到读时钟域才能产生空信号,因此,这里就涉及
到如何处理信号传输的亚稳态问题。
三、空满标志
1. 正确的产生空满标志是任何FIFO 设计的关键;空满状态产生的原则是:写满而不溢出,
能读空而不多读。
2. 空状态。当读写地址相等时,说明已经写入的数据,已经全部被读走,此时,FIFO 还
尚未有新的数据写入,说明FIFO 为空,这种情况发生在复位操作时,或者当读地址读
出FIFO 中最后一个字后,追赶上了写地址。如果两个指针的MSB 相同,则说明两个
指针折回的次数相等。其余位相等,说明FIFO 为空。
3. 满状态。当写地址超过读地址,写到最高地址后,重新从零开始写,再次追上了读地址。
此时,读地址已经读过的地址空间,再一次被写地址写入。而读地址到最高地址之间的
数据,还尚未被读。说明此时FIFO 处于满的状态。如果两个指针的MSB 不同,说明
写指针比读指针多折回了一次;如r_addr=0000,而w_addr = 1000, 为满。
4. 传输读写指针之前,需要将其先由二进制转为格雷码,然后再发送到对方的时钟域下。
5. 如果采用格雷码,对于“空”的判断依然依据二者完全相等。而对于“满”的判断,由于gray
码除了MSB 外,具有镜像对称的特点,当读指针指向7 ,写指针指向8 时,注意地址
增加到最大地址7 时,然后会返回0 ,所以此处8 和0 虽然轮次不同,但是实际上是同
一个地址。此时,除了MSB ,其余位皆相同,就不能说它为满。在gray 码上判断为满
必须同时满足以下3 条:wptr 和同步过来的rptr 的MSB 不相等,因为wptr 必须比rptr
多折回一次;wptr 与rptr 的次高位不相等;剩下的其余位完全相等。
四、FIFO 深度
写时钟频率为WCLK;读时钟频率为RCLK;写时每B 个时钟周期内会有A 个数据写入
FIFO ,说明写入效率是A/B ;读时每Y 个时钟周期内会有X 个数据读出FIFO ,说明读出效
率是X/Y 。这种情况下,FIFO 的最小深度是多少?
(burst_length/WCLK)表示这个burst 的持续时间,持续时间乘以读时钟频率,可知道读
数据在效率100%的时候的读出数据个数,然后再乘以读数据效率(X/Y))则
您可能关注的文档
- 芯动力——硬件加速设计方法 (15).pdf
- 芯动力——硬件加速设计方法 (16).pdf
- 芯动力——硬件加速设计方法 (17).pdf
- 芯动力——硬件加速设计方法 (18).pdf
- 芯动力——硬件加速设计方法 (20).pdf
- 芯动力——硬件加速设计方法 (21).pdf
- 芯动力——硬件加速设计方法 (22).pdf
- 芯动力——硬件加速设计方法 (23).pdf
- 信号与系统 (10)孙露-趁早.pdf
- 信号与系统 (9)孙露-趁早.pdf
- 2025年《出口退税风险》知识考试题库及答案解析.docx
- 2025年中国家具钉子数据监测研究报告.docx
- 无锡学院2024-2025学年第2学期《线性代数》期末试卷(A卷)及参考答案.docx
- 2025年《道路交通事故处理程序与法律适用》知识考试题库及答案解析.docx
- 2025年《电梯安全管理条例》知识考试题库及答案解析.docx
- 2025年《档案保管工作规范》知识考试题库及答案解析.docx
- 2025年《档案利用与开发》知识考试题库及答案解析.docx
- 2025年《电梯安全规范》知识考试题库及答案解析.docx
- 2025年《村民委员会公共事务管理规则》知识考试题库及答案解析.docx
- 2025年《成本管理会计》知识考试题库及答案解析.docx
原创力文档


文档评论(0)