当前位置:首页 > 数据库 > 正文

异步fifo读空?fifo最后一个数读不出来

异步fifo读空?fifo最后一个数读不出来

大家好,关于异步fifo读空很多朋友都还不太明白,今天小编就来为大家分享关于fifo最后一个数读不出来的知识,希望对各位有所帮助!硕士生找工作的时候把异步fifo写成一...

大家好,关于异步fifo读空很多朋友都还不太明白,今天小编就来为大家分享关于fifo最后一个数读不出来的知识,希望对各位有所帮助!

硕士生找工作的时候把异步fifo写成一个项目经历,是不是显得很low啊

异步fifo本身不low,一个进程有异步,一台电脑有异步,一个集群有异步,异构集群也有异步,应用场景大了,能做到fifo本身就是本事。以前网络不好的时候,2g环境和wifi经常切换,写聊天软件,udp掉包,粘包,乱序,这种现在很少遇到的问题,那时候解决了也花了很久。不依赖他人的框架,能完成的设计都不low。

fifo寄存器原理

FIFO(FirstInputFirstOutput)是指先进先出。FIFO存储器是一个先入先出的双口缓冲器,即第一个进入其内的数据第一个被移出,其中一个是存储器的输入口,另一个口是存储器的输出口。

FIFO寄存器原理:根据FIFO工作的时钟域分为同步/异步FIFO。同步FIFO是指读时钟和写时钟为同一个时钟在时钟沿来临时同时发生读写。异步FIFO读写时钟不一致,读写相互独立。为了定位读取和写入的位置需要进行读写指针的设置。

读指针:总是指向下一个将要读取的单元,复位时指向第一个单元(编号为0)。

写指针:总是指向当前要被读出的数据,复位时指向第一个单元(编号为0)。

当第一次读写指针相等时,表明FIFO为空,这种情况发生在复位操作时或者当读指针读出FIFO中最后一个字后,追赶上写指针时,此时读空信号有效。

当读写指针再次相等时,表明FIFO为满,这种情况发生在,当写指针转了一圈折回来(wrappedaround)又追上了读指针。

异步电路和同步时序电路的区别

一、原理不同

同步电路利用时钟脉冲使其子系统同步运作,而异步电路不使用时钟脉冲做同步,其子系统是使用特殊的“开始”和“完成”信号使之同步。

二、优点不同

由于异步电路具有下列优点--无时钟歪斜问题、低电源消耗、平均效能而非最差效能、模块性、可组合和可复用性--因此近年来对异步电路研究增加快速,论文发表数以倍增,而IntelPentium4处理器设计,也开始采用异步电路设计。

v异步电路主要是组合逻辑电路,用于产生地址译码器、FIFO或RAM的读写控制信号脉冲,其逻辑输出与任何时钟信号都没有关系,译码输出产生的毛刺通常是可以监控的。

同步电路是由时序电路(寄存器和各种触发器)和组合逻辑电路构成的电路,其所有操作都是在严格的时钟控制下完成的。这些时序电路共享同一个时钟CLK,而所有的状态变化都是在时钟的上升沿(或下降沿)完成的。

三、分析不同

异步时序逻辑电路分析时,还需考略各触发器的时钟信号,当某触发器时钟有效信号到来时,该触发器状态按状态方程进行改变,而无时钟有效信号到来时,该触发器状态将保持原有的状态不变。

扩展资料

同步逻辑有两个主要的缺点:

1、时钟信号必须要分布到电路上的每一个触发器。而时钟通常都是高频率的信号,这会导致功率的消耗,也就是产生热量。即使每个触发器没有做任何的事情,也会消耗少量的能量,因此会导致废热产生。

2、最大的可能时钟频率是由电路中最慢的逻辑路径决定,也就是关键路径。意思就是说每个逻辑的运算,从最简单的到最复杂的,都要在每一个时脉的周期中完成。

一种用来消除这种限制的方法,是将复杂的运算分开成为数个简单的运算,这种技术称为“流水线”。这种技术在微处理器中非常的显著,用来帮处提升现今处理器的时钟频率。

参考资料来源:

参考资料来源:

好了,关于异步fifo读空和fifo最后一个数读不出来的问题到这里结束啦,希望可以解决您的问题哈!

最新文章