首页 > FWFT FIFO读操作注意

FWFT FIFO读操作注意

FWFT:First Word Fall Through的缩写,好像是Xilinx的说法,Altera对应的概念是Show-ahead synchronous(SASO)。即数据在rdreq有效之前就有效了,rdreq作为一个应答(ACK)。

    需要注意的是当rdreq连续时,容易多读一个数据,所以读时需要对几乎空进行判读,在FIFO BFM的代码读任务里有如下代码:

    if(fifo_rd_req==1'b1)

    begin

        fifo_rd_req <= #U_DLY ~fifo_alempty;

    end

    else

    begin

        fifo_rd_req <= #U_DLY ~fifo_empty;

    end

    代码的目的就是在快空时读一次停一次。

    如果不是连续的读,例如在状态机里读一个数据,然后跳到下一个状态,则可以不用判读几乎空标志,伪代码如下:

    ST1:

    begin

        if(fifo_empty==1'b0)

        begin

            fifo_rd_req <= #U_DLY 1'b1;

        end

        stm <= #U_DLY ST2;

    end

    ST2:

    begin

        fifo_rd_req <= #U_DLY 1'b0;

        stm <= #U_DLY ST3;

    end

转载于:https://www.cnblogs.com/hfyfpga/p/4254888.html

更多相关:

  • CFAbsoluteTime start = CFAbsoluteTimeGetCurrent(); //在这写入要计算时间的代码 // do something CFAbsoluteTime end = CFAbsoluteTimeGetCurrent(); NSLog(@"%f", end - start); 转载于:ht...

  • Given a sorted integer array without duplicates, return the summary of its ranges. For example, given [0,1,2,4,5,7], return ["0->2","4->5","7"]. 代码要求对数组中的元素进行分段。 首先给...

  • Hello,此BAT脚本能够帮助开发者将某目录下全部SQL脚本按文件名称依次在指定数据库中批量执行。不用忍受powershell invoke-sqlcmd 的笨重。在指执行时多一种选择。 bat文件 @echo off @REM ******** ******** General Batch for Starting SQL...

  • Description 设有一个n×m(小于100)的方格(如图所示),在方格中去掉某些点,方格中的数字代表距离(为小于100的数,如果为0表示去掉的点),试找出一条从A(左上角)到B(右下角)的路径,经过的距离和为最小(此时称为最小代价),从A出发的方向只能向右,或者向下。 Sample Input 4 4 4 10 7 0...

  • 有些Windows聚焦图片确实很漂亮,很希望保留下来,但是Windows聚焦图片总更好,网上有得到聚焦图片的方法,每次都手动去弄真麻烦,于是自己编了一个小程序,自动得到Windows聚焦图片,下面是运行这个小程序得到Windows聚焦图片的效果! 小工具以及源码下载:http://download.csdn.net/detail/su...