首页 > 编程知识 正文

sdram和异步fifo,异步fifo课设

时间:2023-05-06 00:19:54 阅读:60328 作者:2186

FIFO APP应用程序:

1、写入千兆位以太网数据,向DDR3写入数据时

2 .当AD采样时钟和内部时钟不同时,需要通过FIFO进行转换

3、频率不同时也需要用FIFO变换

Vivado中FIFO生成器的配置方法

1、

2、标准先进先出

读取read mode时延迟1个周期的时钟,第一个word fall through

读取模式读取时没有延迟时钟周期,如果提供使能,则有数据,读取延迟=0。

3、

读取数据计数显示fifo中有多少数据。

异步FIFO实现

具体实现代码:

`时间比例1 ns/1ps

//

//Company:

//Engineer:

//

//create date :2016/08/1014336042336033

//Design Name:

//Module Name: fifo_timing

//Project Name:

//Target Devices:

//Tool Versions:

//Description:

//

//Dependencies:

//

//Revision:

//revision 0.01 -文件创建

//Additional Comments:

//

//

module fifo_timing (

inputwiresclk,

inputwirerst_n,

inputwirer_clk,

inputwiredata_v,

inputwire[7:0]data_in,

outputwiredata_ov,

outputwire[15:0]data_out,

output wirefifo_w_clk,

outputwirefifo_r_clk,

outputwirefifo_w_en,

outputwire[7:0]fifo_w_data,

inputwirefifo_full,

outputwirefifo_r_en,

inputwire[15:0]fifo_r_data,

inputwirefifo_empty,

input wire [ 8:0 ] FIFO _ rd _ count

);

无线全功能;

wireempty;

//r_clk

regr_flag;

wire[8:0]rd_data_count;

reg[8:0]r_cnt;

wirerd_en;

assign fifo_w_clk=sclk;

assign fifo_r_clk=r_clk;

assign FIFO _ w _ en=data _ v (FIFO _ full );

assign fifo_w_data=data_in;

assign FIFO _ r _ en=r _ flag (FIFO _ empty );

assign data_out=fifo_r_data;

assign data_ov=r_flag;

assignrd_en=r_flag;

always @ (posedger _ clkornegedgerst _ n ) ) ) ) ) ) ) ) )。

if(rst_n==1'B0 ) ) ) ) ) ) )。

r_flag=1'b0;

) ) )

r_flag=1'b0;

(else if (FIFO _ rd _ count=' d255r _ flag==1' B0 ) ) ) ) ) ) 652 )

r_flag=1'b1;

always @ (posedger _ clkornegedgerst _ n ) ) ) ) ) ) ) ) )。

if(rst_n==1'B0 ) ) ) ) ) ) )。

r_cnt='d0;

elseif(r_flag==1'B1 ) ) ) ) )。

r_cnt=r_cnt 1'b1;

else

r_cnt='d0;

assigndata_ov=r_flag;

最终模块

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。