对于FIFO的输出有两种:1、输出为时序clk,这样当master发起读信号,一个clk之后有效数据才能传送到master,两个clk时master才能读取有效数据;(但对于此种也可以进行改进,让master一个clk即能读取数据:fifo的输出端保持输出将要被读取的数据,被读取后output next被读取数据,即输出端output尚未读取的数据)
2、输出为组合逻辑,当前clk内有效数据即能传送到master,一个clk时master即能读取有效数据。
下面贴出两种FIFO的code:
第一种输出为timing logic:
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 07/16/2014 01:32:23 PM
// Design Name:
// Module Name: round_fifo
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
`define BUF_WIDTH 5

本文探讨了FIFO的两种输出方式。第一种是时序输出,通常需要两个时钟周期master才能读取有效数据,但可以通过优化实现一个时钟周期读取。第二种是组合逻辑输出,允许在一个时钟周期内将有效数据传送到master。并给出了两种输出方式的代码示例。
最低0.47元/天 解锁文章
358

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



