- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
先进先出存储器FIFO
1.什么是 FIFO?
FIFO 是英文 First In First Out 的缩写,是一种先进先出的数据缓存器,他与普通存
储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点就是只能顺序写入数据,
顺序的读出数据,其数据地址由内部读写指针自动加 1 完成,不能像普通存储器那样可以由
地址线决定读取或写入某个指定的地址。
2.什么情况下用 FIFO?
FIFO 一般用于不同时钟域之间的数据传输,比如FIFO 的一端时AD 数据采集,另一端
时计算机的 PCI 总线,假设其 AD 采集的速率为 16 位 100K SPS,那么每秒的数据量为
100K×16bit=1.6Mbps,而 PCI 总线的速度为 33MHz,总线宽度 32bit,其最大传输速率为
1056Mbps,在两个不同的时钟域间就可以采用 FIFO 来作为数据缓冲。另外对于不同宽度的数
据接口也可以用 FIFO,例如单片机位 8 位数据输出,而 DSP 可能是 16 位数据输入,在单片
机与 DSP 连接时就可以使用 FIFO 来达到数据匹配的目的。
3.FIFO 的一些重要参数
FIFO 的宽度:也就是英文资料里常看到的 THE WIDTH,它只的是 FIFO 一次读写操作的
数据位,就像 MCU 有 8 位和 16位,ARM 32 位等等,FIFO 的宽度在单片成品 IC 中是固定的,
也有可选择的,如果用 FPGA 自己实现一个FIFO,其数据位,也就是宽度是可以自己定义的。
FIFO 的深度:THE DEEPTH,它指的是 FIFO 可以存储多少个 N 位的数据 (如果宽度为 N)。
如一个 8 位的 FIFO,若深度为 8,它可以存储 8 个 8 位的数据,深度为 12 ,就可以存储 12
个 8 位的数据,FIFO 的深度可大可小,个人认为 FIFO 深度的计算并无一个固定的公式。在
FIFO 实际工作中,其数据的满/空标志可以控制数据的继续写入或读出。在一个具体的应用
中也不可能由一些参数算数精确的所需FIFO 深度为多少,这在写速度大于读速度的理想状
态下是可行的,但在实际中用到的 FIFO 深度往往要大于计算值。一般来说根据电路的具体
情况,在兼顾系统性能和 FIFO 成本的情况下估算一个大概的宽度和深度就可以了。而对于
写速度慢于读速度的应用,FIFO 的深度要根据读出的数据结构和读出数据的由那些具体的
要求来确定。
满标志:FIFO 已满或将要满时由FIFO 的状态电路送出的一个信号,以阻止FIFO 的写
操作继续向 FIFO 中写数据而造成溢出 (overflow)。
空标志:FIFO 已空或将要空时由FIFO 的状态电路送出的一个信号,以阻止FIFO 的读
操作继续从 FIFO 中读出数据而造成无效数据的读出 (underflow)。
读时钟:读操作所遵循的时钟,在每个时钟沿来临时读数据。
写时钟:写操作所遵循的时钟,在每个时钟沿来临时写数据。
读指针:指向下一个读出地址。读完后自动加 1。
写指针:指向下一个要写入的地址的,写完自动加 1。
读写指针其实就是读写的地址,只不过这个地址不能任意选择,而是连续的。
4.FIFO 的分类
根均 FIFO 工作的时钟域,可以将 FIFO 分为同步 FIFO 和异步 FIFO。同步FIFO 是指读
时钟和写时钟为同一个时钟。在时钟沿来临时同时发生读写操作。异步 FIFO 是指读写时钟
不一致,读写时钟是互相独立的。
5.FIFO 设计的难点
FIFO 设计的难点在于怎样判断 FIFO 的空/满状态。为了保证数据正确的写入或读出,
而不发生益处或读空的状态出现,必须保证 FIFO 在满的情况下,不能进行写操作。在空的
状态下不能进行读操作。怎样判断FIFO 的满/空就成了FIFO 设计的核心问题。由于同步FIFO
几乎很少用到,这里只描述异步 FIFO 的空/满标志产生问题。
在用到触发器的设计中,不可避免的会遇到亚稳态的问题 (关于亚稳态这里不作介绍,可查
看相关资料)。在涉及到触发器的电路中,亚稳态无法彻底消除,只能想办法将其发生的概
率将到最低。其中的一个方法就是使用格雷码。格雷码在相邻的两个码元之间只由一位变换
(二进制码在很多情况下是很多码元在同时变化)。这就会避免计数器与时钟同步的时候发生
亚稳态现象。但是格雷码有个缺点就是只能定义 2^n 的深度,而不能像二进制码那样随意的
定义 FIFO
您可能关注的文档
- 企业办公文件加密刻不容缓.pptx
- 优化轧制规程在宽厚板轧机上的应用.pdf
- 伊朗高锰钢辙叉的结构研究.pdf
- 仿牛仔金属纤维防辐射孕妇装.docx
- 优质焦炉硅砖生产工艺研究.pdf
- 会议礼仪课后测试.pdf
- 会做这些菜的男人才是好男人.pdf
- 众里寻_股_千百度_股票收益率与百度搜索量关系的实证探究_赵龙凯.pdf
- 伺服式液压压边拉延模具的设计.pdf
- 伯杰氏细菌鉴定手册.pdf
- 分析介绍情节xys02 matlabplot.pdf
- 内容性功能不育1591-s2 main.pdf
- 专着oxaliplatin-用于注射.pdf
- 当代水利工程科技前沿falkirk wheel.pdf
- 2017 bht品牌形象跟踪调研项目问卷-中文版modified.pdf
- 膝关节稳定性及运动协调性损伤韧带扭伤chinese sprain中文kneelig.pdf
- 项目摘要中英文团队.pdf
- 所以小提琴上low bnq一幕-13 tenor trombone 1.pdf
- liquefaction analysis of house foundation based simple ground survey基于简单地面调查LiqueFaction分析房屋.pdf
- 参考说明文案sliding gate up f 1063 sinopec rd centre-mechMech plumbing.pdf
文档评论(0)