FPGA数字IC笔试面试009—异步/同步FIFO深度计算
1. 假设两个异步时钟clk_a和clk_b,clk_a=148.5M,clk_b=140M。如图所示,clk_a时钟域中连续1920个16bit的数据通过data_valid标记,有效数据之后,紧接着720个无效数据时钟周期。请问,该数据通过异步fifo同步到clk_b时钟域,异步fifo的最小深度是多少?请写出计算过程。
对于读写同时进行的FIFO,有一个简便计算公式
FIFO_Depth >= Burst_length -Burst_length* (rd_clk/ wr_clk)*(rd_rate)
2. 设计一个同步fifo,读写时钟相同,每100个时钟写入10个数据,每10个cycle读出1个数据,计算这个同步FIFO的最小深度。
答案:18
解析:fifo设计中最小深度的要求是不溢出(overflow),考虑极限情况,写入数据最多的时候时候就是需要存储数据最多的时候,也是FIFO深度的下限值,即最小深度。
考虑最大数据情况,考虑写数据的连续200个时钟周期,前一个100个时钟记作TimeA,后一个记作TimeB,写数据的恰好在TimeA的最后和TimeB的最前,即20个时钟周期发生连续的20次写,而对应的20个时钟周期会读出2个数据,所以这里需要的最小深度为20-2=18。
FPGA数字IC笔试100道题 文章被收录于专栏
笔试刷题及解析,FPGA和数字IC类的笔试题汇总、解析,助力实习、提前批、秋招