代码改变世界

工作笔记-SDRAM的读写

2012-04-07 13:35  yucan  阅读(258)  评论(0编辑  收藏  举报

用Quartus II的MegaFunction中的FIFO时,通常会用到wrusedw或rdusedw这两个信号,前者标志当前FIFO已经被使用了多少Word,后者表示当前FIFO还有多少Word可供读取。需要注意的是,若在二者已经达到了最大值时继续进行相应的读写操作,则二者均会溢出,并非保持最大值或某一数值。例如:设置FIFO有16个Word,则二者均有4位(4位二进制数刚好可以表示16个数值),假设现在只写不读,则当wrusedw等于15时,FIFO已经写满,此时若继续写入数据,则wrusedw在下一个有效时钟边沿到来时,会等于0,而并非保持15这个数值。相应的,在该FIFO中读数时,若rdusedw等于0后仍然继续读数,则下一个有效时钟边沿到来时,rdusedw会等于15而并非保持0。建议在使用二者的数值作为条件时,设定一个范围。