电力电子转战数字IC20220531day15——双端口RAM与异步FIFO

本文详细阐述了如何使用512X8的双端口RAM实现FIFO,涵盖了FIFO的工作原理、同步FIFO的同步处理、异步FIFO的格雷码同步策略,并介绍了FIFO深度计算及空满状态检测的方法。通过实例代码展示了如何在异步时钟下创建一个深度为256的FIFO模块。
摘要由CSDN通过智能技术生成

512X8的双端口RAM来实现FIFO

module dualRAM (
read_clk,
write_clk,
read_allow,
write_allow,
read_address,
write_address,
read_data,
write_data,
);

//这里可以定义三个常数:RAM的位宽为8,深度为512,地址位宽为9

input read_clk;
input write_clk;
input read_allow;
input write_allow;
input [8:0] read_address;
input [8:0] write_address;
input [7:0] write_data;
output [7:0] read_data;
reg [7:0] read_data;
reg [7:0] mem[511:0];

always@(posedge write_clk)
begin
if(write_allow)
mem[write_address]<=write_data;
end

always@(posedge read_clk)
begin
if(read_allow)
read_data<=mem[read_address];
end

endmodule

FIFO是什么?

First In First Out,是一种先进先出的数据缓存器,没有外部读写地址线

缺点:只能顺序写入和读出数据,数据地址由内部读写指针自动+1

用处:不同时钟域之间的数据传输;不同宽度的数据接口之间的数据传输

分类:同步FIFO(读时钟和写时钟为同一个时钟)和异步FIFO

核心问题:如何判断空或满的状态ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值