非对称长宽比指的是FIFO的读写端口的数据宽度不同,呈现比例关系;非对称长宽比允许FIFO的输入和输出深度不同,支持如下的写读宽高比:1:8、1:4、1:2、1:1、2:1、4:1、8:1。
只有以下几种FIFO支持非对称长宽比:
对于非对称长宽比,只有当可以写入或读取一个完整的单词时,满和空标志才会激活。FIFO不允许访问部分字。例如,假设一个完整的FIFO,如果写宽度是8位,读宽度是2位,你必须完成四个有效的读操作,然后才能完全撤销和写操作。
写位宽小于读位宽
对于非对称长宽比,如果写宽度小于读宽度(1:8,1:4,1:2),则优先读取最高有效位(即最先写的在高位),见下图。
在该图中,连续进行4次写操作后,才能进行一次读操作。第一个写操作是01,接着是00、11,最后是10。内存从左到右(MSB到LSB)被填满。执行读操作时,接收到的数据为01_00_11_10。
在时序图中可以发现,当写操作进行四次后,empty信号才拉低(如果两个端口宽度一致,一般写一次就可以拉低)
写位宽大于读位宽
对于非对称长宽比,如果写宽度大于读宽度(8:1,4:1,2:1),则优先读取写数据的最高有效位(即从最高位开始读取)。
假设写位宽为8,读位宽为4,则结果见下图: