- 3
- 0
- 约9.54千字
- 约 17页
- 2018-11-30 发布于江苏
- 举报
重读《异步FIO结构》
重读《异步FIFO结构》 [CPLD/FPGA]发布时间:2009-06-18 15:09:18
项目中多处需要用到FIFO,傻瓜式的调用Altera的库即可完成设计。为了深入了解FIFO的结构,上网找了些资料。异步FIFO只能自己写。
一、关于同步FIFO
1、在前面的日志里贴出了一个从网上找的同步FIFO的原代码,本人进行了稍微修改,原始的文章为:/Upload/2009/6/18/30d4e845-8448-42fc-bd8d-ce6543759ac5.rar,文章名字叫“同步FIFO原理剖析”。根据其介绍的同步FIFO原理修改的代码以及测试激励:/Upload/2009/6/18/575687b3-0cbf-4e1b-b3be-12766daa84f
2、 今天有时间重新拜读了异步FIFO结构(翻译),文章中讲述异步FIFO之前先讲述了同步(单时钟)FIFO。原理虽然和上述的同步FIFO一致,但是有些论述特别是对于空和满的判断个人觉得讲的非常精辟。特摘录一些重点:
1)、写指针指向下一个将要写入的位置;读指针指向下一个将要读取的位置。
2)、空和满写指针和读指针是相等的。但是满或者空的决定并不仅仅基于指针的值,而是基于引起指针值相等的操作。如果指针相等的原因是复位或者读操作,FIFO认为是空;如果原因是写操作,那么FIFO认为是满。
3)、一般情况下(指非临界状况下)读操作和写操作同时都在使其指针增加,但是不改变空标志和满标志的状态。
在空或满的临界状态同时读操作和写操作都是不允许的。
由以上几点得出空和满标志状态变化的条件(未包含复位条件):
写操作无条件的清除空标志;
write_pointer=(read_pointer+1),读操作置空;
读操作无条件的清除满标志;
read_pointer=(write_pointer+1),写操作置满(包括read_pointer=0,而write_pointer=depth-1的情况,这里与同步FIFO原理剖析中稍有不同)。
将以上空满判断条件稍加改动:a、临界状态下如果同时有读和写操作,如果FIFO空,那么只允许写,如果满则只允许读;b、对于空和满置位操作,文章中论述的基础是FIFO的深度-depth为2的幂,将深度改为可参数化的任意整数的时候,需要对读和写到depth-1的位置进行判决。
根据以上改动将文章中提供的FIFO原代码修改如下(文章中提供的原代码本身就有问题):/Upload/2009/6/19/266ec7ec-7779-4780-a9ba-8db4b4e46450.rar;FIFO的测试激励:/Upload/2009/6/19/17819c8c-72d0-4130-a0db-ca01fe42e8b0.rar。
以下是ModelSim的仿真波形,包含了“写满”,以及“读空”:
另外,FIFO的almost_empty,almost_full以及usedw(有效字)信号可以参考我修改的《同步fifo原理剖析》源码。
最后在板子上跑的结果如下:
附上QII工程:/Upload/2009/6/19/3cd341ed-f5c8-4e41-998d-e064122a7544.rar。
二、关于异步FIFO
异步FIFO的接口信号包括异步的写时钟(wr_clk)和读时钟(rd_clk)、与写时钟同步的写有效(wren)和写数据(wr_data)、与读时钟同步的读有效(rden)和读数据(rd_data)。为了实现正确的读写和避免FIFO的上溢或下溢,通常还应该给出与读时钟和写时钟同步的FIFO的空标志(empty)和满标志(full)以禁止读写操作。
下面给出异步FIFO的功能模块图:
由上图可以看出,写地址产生模块根据写时钟和写有效信号产生递增的写地址,读地址产生模块根据读时钟和读有效信号产生递增的读地址。FIFO的操作如下:在写时钟wr_clk的上升沿,当wren有效时,将wr_data写入双口RAM中写地址对应的位置中;始终将读地址对应的双口RAM中的数据输出到读数据总线上。这样就实现了先进先出的功能。 写地址产生模块还根据读地址和写地址关系产生FIFO的满标志。当wren有效时,若写地址+2=读地址时,full为1;当wren无效时,若写地址+1=读地址时,full为1。读地址产生模块还根据读地址和写地址的差产生FIFO的空标志。当rden有效时,若写地址-1=读地址时,empty为1;当rden无效时,若写地址=读地址时,empty为1。按照以上方式产生标志信号是为了提前一个时钟周期产生对应的标志信号。 由于空标志和满标志控制了FIFO的操作,因此标志错误会引起操作的错误。如上所述,标志的产生是通过对读写地址的比较产生的,当读写时钟完全异步时,对读
您可能关注的文档
最近下载
- 汽车NVH基础知识培训课件.pptx VIP
- 2025年招标采购人员专业能力评价考试(招标采购专业理论与法律基础·初、中级)历年参考题库含答案详解.docx VIP
- 2025年江苏信息职业技术学院单招笔试英语试题库含答案解析.docx VIP
- 2025年政府采购评审专家考试题库附含答案.docx VIP
- 2025年江苏信息职业技术学院单招笔试英语试题库含答案解析.docx VIP
- GJB8848-2016 系统电磁环境效应试验方法.docx VIP
- 2025年秋学期开学第一课收心班会课件.pptx VIP
- 党支部书记组织生活会对照检查材料.doc VIP
- 2025年心理咨询师团体心理咨询中的存在主义团体治疗技巧专题试卷及解析.pdf VIP
- 创新器械系列专题研究报告(二):脑机接口专题,百年探索迎来质变,脑机接口产业爆发临界点将至-.docx VIP
原创力文档

文档评论(0)