今天在看到fifo计算深度时,这个题的计算纠结了好久,原因是对题意理解不深刻
题目如下:
第一个点是 en_B,period(en_B) = period(CKA)*100
意思就是 en_B这个信号的周期是CKA的100倍,假如CKA = 40ns,CKB = 10ns
那么 en_B的周期就是4000ns,在这个4000ns里,只有25%的时间即1000ns是有效的,可以用来读写数据。
第二个点是 CKA CKB哪个是写时钟域
这1000ns里是用来读还是写数据,其实fifo深度计算的实质就是在规定的时间内写数据,还有多少没有被读完,深度就是没有读完的数据。所以写时钟总是快的那个,否则,读数据的处理能力太强,那么fifo里面一直会发出empty信号。
1000ns 写时钟为10ns,可以写100个数据,读时钟40ns,可以读走25个数据,剩下75个数据,即fifo的深度为75