Xilinx FIFO IP 输入 的最大位宽 是 1024 bit ,当需要缓存的数据是 1280bit 又或者是 1536等 。怎么办呢?
有一个办法就是拆数据,将1280拆5个 256bit输入,也就是可以使用 5个 256位宽输入的FIFO拼接起来。(其它位宽也行,如32bit等,8的倍数);
如下框图为例子:

 使用如下rtl 代码处理即可;
 将所有 子FIFO IP的 full 信号 或 起来;
 将所有 子 FIFO IP的 empty 信号 与起来 ;
assign empty   = &empty_o   ;
assign full    = |full_o    ;
genvar i;
generate
    for(i=FIFO_WIDTH; i<=DATA_WIDTH; i=i+FIFO_WIDTH) begin :
        FIFO FIFO_inst(
            .rst                   (rst                           ),
            .wr_clk                (wr_clk                        ),
            .rd_clk                (rd_clk                        ),
            .din                   (din[i-1:i-FIFO_WIDTH]         ),
            .wr_en                 (wr_en                         ),
            .rd_en                 (rd_en                         ),
            .dout                  (dout[i-1:i-FIFO_WIDTH] ),
            .full                  (full_o[i/FIFO_WIDTH-1]        ),
            .empty                 (empty_o[i/FIFO_WIDTH-1]       )
    );
    end
endgenerate



















