- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
【FPGA基础篇】XilinxFIFO详细解析
FIFO官⽅⼿册要点
FIFO作为FPGA岗位求职过程中最常被问到的基础知识点,也是项⽬中最常被使⽤到的IP,其意义是⾮常重要的。本⽂基于对FIFO
Generator的Xilinx官⽅⼿册的阅读与总结,汇总主要知识点如下:
类型
FIFO的类型区分主要根据FIFO在实现时利⽤的是芯⽚中的哪些资源,其分类主要有以下四种:
1. shift register FIFO:通过寄存器来实现的,这种类型的FIFO最好少⽤,因为我们都知道FF资源在FPGA是⾮常珍贵的。
2. built-in FIFO:这种类型的FIFO只有7系列之后(包括UltraScale)才有。笔者的理解是⼀种集成的FIFO硬核
3. Block Ram FIFO:通过块RAM的资源配置形成的FIFO,其本质是Block RAM+⼀些外设电路。
4. Distributed Ram FIFO:通过分布式RAM配置形成的FIFO,与BRAM类似,只是RAM的类型不⼀样。
Reset
shift register FIFO和built-in FIFO的复位信号是不可选的,即⼀定存在的。对于shift register FIFO和7系列的built-in FIFO,Xilinx只
提供了异步复位 ;⽽对于UltraScale,复位是同步复位信号,但提供了w_rst_busy和rd_rst_busy输出信号表⽰FIFO是否已经复位完毕。
Block RAM FIFO 和 Distributed RAM FIFO的复位信号是可选的。对于共⽤时钟的FIFO,选择同步复位和异步复位的区别主要在于是否
复位信号是否和共⽤时钟同步;当选择异步复位时,可以Enable Safety Circuit,顾名思义就是让电路更安全,即通过复位完成信号
wr_rst_busy和rd_rst_busy来表⽰是否FIFO已经复位完成。对于独⽴时钟的FIFO,即读和写的时钟分开,Enable Reset
Synchronication时只有⼀个rst(实际上这个复位是异步复位),不使能时有两个时钟域的rst,分别为wr_rst和rd_rst,⽽这两个复位信号
实际上是同步于各⾃的时钟的,同时也能Enable Safety Circuit,是不是觉得好像整错了,其实Xilinx的官⽅⽂档就是这么说明的,如果还
是觉得有问题,实践⼀下……
其实上边的如果不理解,我 ⾃⼰总结了⼀下:看复位是同步复位还是异步复位,只需要看信号的名字,对于srst(Synchronized Reset)和
wr_rst/rd_rst,这⼏个rst是同步复位,⼀个同步于共⽤时钟,其余两个同步于各⾃的时钟域;对于rst,则认为是异步复位。
写操作
写数据只有在din输⼊同时wr_ack被断⾔时才写⼊到FIFO中。这⾥wr_ack是对数据接收的应答,断⾔时表⽰接收成功。当然也可以不使能
wr_ack,这样⼦其实也没什么⼤问题,只是wr_ack的存在会让数据的写⼊更加安全。
需要注意的⼀个关键点是,FIFO被写满时,即使再输⼊数据,写⼊请求还是会被忽略的,FIFO中的数据保持不变。
满标志
满标志有full和almost_full两种。full表⽰不能写数据了,almost_full则表⽰只能再写⼊⼀个数据。当full被断⾔时,写请求会被忽略掉,
同时overflow溢出标志被断⾔。
【注】built-in FIFO不⽀持almost_full标志。
写操作时序分析
上图是从datasheet中copy的⼀个典型的写操作时序图。
1. 当wr_en被使能为1时,表⽰写操作开始,并在时钟上升沿开始写⼊。此时full为低电平表⽰FIFO未满,可以写⼊。
2. 当数据写⼊成功时,wr_ack被断⾔,即拉⾼表⽰数据写⼊成功***(此时我们还是得注意写⼊成功那个时刻,wr_ack实际上还是低电
平,真正能检测到⾼电平的还是得在下个时钟沿)***。
3. 当FIFO只能再⽀持写⼀个数据时,almost_full被断⾔***(应该注意到,这些标志信号都是有⼀个cycle的延迟的,即实际上当我们检测
到amost_full拉⾼时,最后⼀个数据也在同时刻写⼊FIFO,所以FIFO在这个时刻已经满了)***。
4. 当FIFO的almost_full拉⾼时,再次写⼊⼀个数据,则full也被断⾔。
5. 当FIFO的full被断⾔时,再写⼊数据,wr_ack被拉低,同时overflow溢出信号被断⾔。
6. 在FIFO被写满时,如果
您可能关注的文档
- 井控培训考试题(答案) .pdf
- 就业知识竞赛策划方案 .pdf
- 【精品】2021年全国小学生科普知识竞赛题库含答案(15) .pdf
- 农业政策与法规复习思考题 .pdf
- 口腔医学基础知识题库 .pdf
- 《地球物理测井》-A卷-数学答案 .pdf
- 高中优秀学生复习资料 地理必修五-自然灾害与防治 知识点总结.pdf
- 北语18秋Oracle数据库开发作业1234 .pdf
- 预计2023贵州高考分数线_历年录取分数线是多少 .pdf
- 电大本科《传感器与测试技术》期末试题及答案(试卷号07).pdf
- 2024年05月山东交通职业学院招考聘用博士研究生50人笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月安徽芜湖市弋江区老年学校(大学)工作人员特设岗位公开招聘2人笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月山东东营河口区教育类事业单位招考聘用22人笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月山东交通职业学院招考聘用100人笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月山东威海职业学院招考聘用高层次人才2人笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月安徽石台县事业单位工作人员33人笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月山东滨州市博兴县事业单位公开招聘考察笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月安徽蚌埠固镇县湖沟镇选聘村级后备干部7人笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月山东省安丘市教育和体育局所属事业单位学校公开2024年招考232名工作人员笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月山东临沂临港经济开发区工作人员(5人)笔试历年典型题及考点剖析附带答案含详解.docx
文档评论(0)