当前位置:   article > 正文

有一种方法是用异步FIFO来处理跨时钟域处理_异步fifo跨时钟域处理

异步fifo跨时钟域处理

在进修跨时钟域处理的时候,有一种方法是用异步FIFO来处理跨时钟域处理的

f6b0f13ca5df8e44a3b2ad41df9f2789.png

在进修跨时钟域处理的时候,有一种方法是用异步FIFO来处理跨时钟域处理的。那么在这之前先看看同步FIFO实现。

所谓同步FIFO,就是读写时钟是同一个时钟频次。本次实现是通过计数器的形式来实现满空标志。详细实现如下:

module fifo_sync(

input clk,

inputrst_n,

input[7:0]datain, //输写数据inputwr, //写请求inputrd, //读请求

outputreg[7:0] dataout, //输出数据outputempt, //空标志outputfull   //满标志);

//定义寄存器reg [3:0]cnt; //计数器用于计算FIFO中寄存了多少数据,方便提供满空标志reg [3:0]wr_ptr, rd_ptr; //读写指针reg[7:0]fifo_mem[15:0]; //定义16个8位的寄存器用于寄存数据,FIFO管道//定义状态parameter S0 = 2'b00, S1 = 2'b01, S2 = 2'b10, S3 = 2'b11;

//用一段式状态机简略实现FIFOalways @(posedge clk or negedge rst_n) begin

if(!rst_n) begin

cnt

wr_ptr

rd_ptr

dataout

end

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/206668?site
推荐阅读
相关标签
  

闽ICP备14008679号