目录

  • 1. 解题技巧/公式
  • 2. 例题详解
    • case-1
    • case-2
    • case-3
    • case-4
    • case-5
    • case-6
    • case-7
    • case-8
    • case-9
    • case-10
  • Reference

1. 解题技巧/公式

FIFO深度计算的关键在于
在规定时间内传输的数据等于接收的数据,写快读慢的情况下,突发burst写入的数据减去该burst时间内读出的数据,多余的数据需要能缓冲下来,让接收端在剩下空闲的时间能从容地把多余的数据读出来。

举例:写时钟频率 w_clk,读时钟频率 r_clk
写时钟周期里,每B个时钟周期会有A个数据写入FIFO
读时钟周期里,每Y个时钟周期会有X个数据读出FIFO
fifo_depth = burst_length - burst_length/w_clk * r_clk * (X/Y)
其中,burst考虑背靠背情况,burst_length = A*2

2. 例题详解

case-1


写快读慢,总传输数据为120。
数据全部写入的时间为Burst Length / Writing frequency(单位ns,1 / Writing frequency为写入一个数据的时间,*120就是写入全部数据的时间)
再 ✖ 读频率 Reading Frequency,得到写入120个数据的时间内,最多读取的数据个数。
总传输数据 - 最多读取出的数据,为剩余未读取的数据,为FIFO深度。

case-2

fA > fB with one clk cycle delay between two successive reads and
writes.(在两个连续的读写之间隔1个clk)

这个场景与case -1没有什么不同,因为两个连续的读和写之间总是会有一个时钟周期延迟。所以,这个方法和前面的一样。

case-3


(每2个clk写一个数据,每4个clk读一个数据)

解:写120个数据需要的时间:2/80mhz(1个数据的时间)×120
在该时间内最多读的数据数:再×50mhz/4(4个时钟读一个)
fifo_depth = 120-120×2/80mhz×50mhz/4= 83

case-4


和case3相同,只是问题描述方式不同

case-5


写满读快,FIFO深度为1即可

case-6


写频率:30/2 = 15mhz;读频率:50/4 = 12.5mhz
fifo_depth = 120-120/15mhz×12.5mhz = 20

case-7


如果clkA和clkB之间没有相位差,则不需要FIFO,如果clka和clkb有相位差,可以采用两级dff或者深度为1的fifo。

case-8


写频率:50/2 = 25mhz,读频率50/4 = 12.5mhz
fifo_depth = 120-120/25mhz×12.5mhz = 60

case-9


对于100个clk下读80个数据,一共有如下几种情况

考虑最坏情况,也就是最短时间内把数据写完,就是case4,160个clk就把160个数据全写完,问题转化为在160个clk下,最多读取多少数据?
最多读160clk×8data/10clk
fifo_depth = 160 - 160×8/10 = 32

case-10


这题非常的绕,首先clkA是写时钟,clkB是读时钟,从第二行可以看出burst size是100,clkB的时钟比较快,因此读写同时工作时(不需要fifo),这里提到duty cycle(en_b),clkb工作的时间只占1/4占空比,也就是说还有3/4的时间是只有写操作的,FIFO需要存储这一部分数据。
fifo_depth = 100*3/4 = 75,这是最坏情况下的深度为75。

Reference

https://blog.csdn.net/CrazyUncle/article/details/97012907
https://blog.csdn.net/maxwell2ic/article/details/81110963
https://hardwaregeeksblog.files.wordpress.com/2016/12/fifodepthcalculationmadeeasy2.pdf

[IC笔试题] FIFO深度计算相关推荐

  1. 数字IC笔试题,大疆校招16题(仅供参考)

    \\\插播一条: 自己在今年整理一套单片机单片机相关论文800余篇 论文制作思维导图 原理图+源代码+开题报告+正文+外文资料 想要的同学私信找我. 数字IC笔试题,大疆校招16题(仅供参考) 1.异 ...

  2. (85)FPGA面试题-FIFO深度计算

    1.1 FPGA面试题-FIFO深度计算 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA面试题-FIFO深度计算: 5)结束语. 1.1.2 本节引言 &quo ...

  3. 数字IC笔试题---千题解,量大管饱,图文并茂

    前言 出笔试题汇总,是为了总结秋招可能遇到的问题,做题不是目的,在做题的过程中发现自己的漏洞,巩固基础才是目的. 所有题目结果和解释由笔者给出,答案主观性较强,若有错误欢迎评论区指出,资料整理来自于& ...

  4. 艾为数字ic面试题_数字IC笔试题(2017年)

    转眼之间又到了一年一度的校招时间,回想去年这个时候,真的是经历了长达数月的兵荒马乱.现在也入职几个月了,想给去年的自己找工作做个总结,也供今年校招的童鞋做一些参考. 废话不多说,结合多家的笔试题,变来 ...

  5. 禾赛科技2021数字IC笔试题

    笔试题A 1道单选,6道问答 单选1:八进制数657的16进制表示是什么? (1AF) 问答: 使用1个或非门搭建非门,有几种方法? 使用二输入MUX搭建与非门 化简逻辑表达式out=A+B((AB+ ...

  6. 南芯半导体数字IC笔试题

    笔试题型 总共八道题,其中前四道为5分的画图题和简答题,后四道为20分的设计题和简答题,题目较为基础,难度不大. (1)跨时钟域的问题 (2)竞争与冒险 (3)数字IC的素质与技能 (4)消除毛刺电路 ...

  7. 2020届部分校招IC笔试题

    1 AMD 1.1 if A=4'b0011,B=3'b110 and C=4'b1110,then which one is the correct result for expression of ...

  8. 华为海思 2021数字芯片/IC 笔试题+解析

    题目来源于众多网友对笔试的记录.回忆. 理解不到位,难免出错,解析仅为个人看法,有不同意见请留言指教,谢谢! 题型: 30个单选+10个多选 单选 1.影响芯片成本的主要因素是die size和封装, ...

  9. 数字IC笔试题(2)——降低动态IR DROP

    (华为海思芯片多选)降低动态IR DROP的方法包括()(注意:题目中的IP DROP实际应该是IR DROP) A. 降低工作频率: B. 增加接入的电源地IO数量: C. 增加LVT cell的比 ...

最新文章

  1. JS 事件冒泡和事件捕获
  2. linux 内存不足时候 应该及时回收page cache
  3. 【Android 逆向】IDA 工具使用 ( 交叉引用数量设置 | 调试设置 )
  4. [VS2005]一个简单的CodeSnippet —— 生成类的构造函数。
  5. Yii:$app来源
  6. [导入]ASP常用函数:getIMG()
  7. php 不解析,php不解析html代码
  8. Frame - 快速创建高品质的 Web 应用原型
  9. 将一个list转化成一颗树的输出方法
  10. vs2010 如何更改界面
  11. WPF基础到企业应用系列7——深入剖析依赖属性(WPF/Silverlight核心)
  12. ed是什么梗_《JOJO的奇妙冒险》那些梗
  13. c语言设计一个自动阅卷功能,基于WEB的C语言编程题自动阅卷系统的设计与实现...
  14. Reactor | Epoll 模型理解
  15. vue 点击文字input_Vue实现点击按钮复制文本内容
  16. 银行联行号cnasp查询(二)
  17. 基于TCP的STM32 IAP bootloader初步设计
  18. %02x与%2x 区别
  19. MD-Pandoc进阶教程:图表、文献和目录
  20. 视频号运营指南百科书,新手必备干货丨国仁网络

热门文章

  1. Android使用高斯模糊实现模糊背景
  2. STM32F407通过cube模拟U盘
  3. android模拟器限制网速,安卓模拟器设置网速和延迟
  4. 【工具总结】前端常用辅助工具
  5. 显卡显存测试u盘 mats_【茶茶】非公路在何方?AORUS RTX 2060测试报告
  6. 苹果id可以彻底注销吗_淘宝店铺注销了有什么影响吗?后续还可以开吗?
  7. 怎么用计算机算虚数,小E教你们如何用计算机算虚数
  8. 汉字转首字母大写并排序
  9. Chrome版本与chromedriver兼容版本对照表
  10. Python中赋值的含义