ALTERA在LPM(library of parameterized mudules)库中提供了参数可配置的单时钟FIFO(SCFIFO)和双时钟FIFO(DCFIFO)。FIFO主要应用在需要数据缓冲且数据符合先进先出规律的同步或异步场合。LPM中的FIFO包含以下几种:
1.SCFIFO:单时钟FIFO;
2.DCFIFO:双时钟FIFO,数据输入和输出的宽度相同;
3.DCFIFO_MIXED_WIDTHS:双时钟FIFO,输入输出数据位宽可以不同。
配置不细说,直接看时序来理解。
1. 同步FIFO验证时序

IP核设置说明:
开辟空间8bits*8words;almost_full设置为“6”;almost_empty设置为“2”;采用普通同步FIFO模式(the data becomes available before “rdreq” is asserted)。
引脚说明:
- aclr和sclr:
aclr为异步清零,不管何时,只要出现上升沿,立刻清除q中数据,q<=8’bx。emtpy为1;full为0;almost_empty为1(根据参数判断);almost_full为0。
sclr为同步清零,只有sclr在clock上升沿时为“1”才能执行清除,效果同aclr。 - wrreq和rdreq:读写使能,高电平有效,clock上升沿执行读、写操作。
- full:当写入数据量达到最大空间时,clock上升沿写入最后一个数据同时full拉高;读取数据时随clock上升沿触发同时拉低。
- empty:与fu

本文介绍了ALTERA LPM库中的SCFIFO和DCFIFO,详细阐述了同步FIFO和异步FIFO的验证时序,包括各信号功能和时序关系,并通过实例探讨了DCFIFO在不同读写时钟频率下的工作情况,最后提出了在实际设计中遇到的时钟相位问题。
最低0.47元/天 解锁文章
963

被折叠的 条评论
为什么被折叠?



