当前位置:首页 > > 芯片验证工程师
[导读]两个系统(SystemA和SystemB),使用两个不同的时钟clkA(100MHz)和clkB(70MHz)。这两个时钟彼此之间都是异步的。数据必须从SystemA传递到SystemB。SystemA能够在100个时钟周期内写入70个word的数据,而SystemB在每个时钟周...

两个系统(SystemA和SystemB),使用两个不同的时钟clkA(100MHz)和clkB(70MHz)。这两个时钟彼此之间都是异步的。数据必须从SystemA传递到SystemB。


SystemA能够在100个时钟周期内写入70个word的数据,而SystemB在每个时钟周期都能够读取一个word的数据。为上述规格设计一个具有最小深度的FIFO


为了避免溢出(即由于FIFO写快读满导致写入的数据被覆盖),我们需要计算在最坏情况下FIFO所需的深度。

 

对于SystemA 100个时钟可以写入70个word数据,这意味最快可以在70个时钟周期内完成数据传输,另外30个时钟周期处于空闲状态。而最坏情况下从第101个时钟周期开始又连续传输70个word数据。

<---30---><---70---><---70---><---30---><--first burst-----><---second burst--->根据最坏的情况,在两次共140个数据写入期间可以读出数据为:

140*(1/100MHz)*70MHz *1 = 98word所以在140次写数据期间最多只能读98次。剩下的数据呢?它不应该丢失。我们需要把它们保存在FIFO中,所以FIFO的最小深度应该是

140-98 = 42

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭