asyn_fifo】的更多相关文章

//Module Name:afifo_ctrl //Description:parameterized afifo module afifo_ctrl( clk_push, rst_push_n, clk_pop, rst_pop_n, push, push_data, full, pop, pop_data, empty, mem_waddr, mem_wen, mem_wdata, mem_raddr, mem_ren, mem_rdata, almost_full ); ; //the…
基本原理:       1.读写指针的工作原理 写指针:总是指向下一个将要被写入的单元,复位时,指向第1个单元(编号为0). 读指针:总是指向当前要被读出的数据,复位时,指向第1个单元(编号为0).      2.FIFO的"空"/"满"检测 FIFO设计的关键:产生可靠的FIFO读写指针和生成FIFO"空"/"满"状态标志. 当读写指针相等时,表明FIFO为空,这种情况发生在复位操作时,或者当读指针读出FIFO中最后一个字后…
首先声明:该文章是在刘志伟老师的<Modelsim的Tcl命令>的基础上写的,希望我们能越来越自动化. 1.编写好源文件.包含asyn_fifo.v.fifomem.v.rptr_empty.v.wptr_full.v.sync_r2w.v.sync_w2r.v和Testbench文件fifo_asyntb.v.  (这是异步FIFO的程序)在此建议使用Notepad++编译器编写. 2.编写.do文件(run.do),内容如下: #Create the work library   vlib…
最近在写一个异步FIFO的时候,从网上找了许多资料,文章都写的相当不错,只是附在后面的代码都多多少少有些小错误. 于是自己写了一个调试成功的代码,放上来供大家参考. 非原创 原理参考下面: 原文 https://www.cnblogs.com/SYoong/p/6110328.html 上代码: module Asyn_FIFO_tb; ; reg clk_wr; reg clk_rd; reg rst_n_rd; reg rst_n_wr; :] data_wr; reg wr_en; wir…
现在开始对上一篇博文介绍的异步FIFO进行功能验证,上一篇博文地址:http://blog.chinaaet.com/crazybird/p/5100000872 .对异步FIFO验证的平台如图1所示. 图1  异步FIFO验证平台 其中,clock为时钟生成器,asyn_fifo_if为产生异步FIFO读写命令的模块,asyn_fifo为异步FIFO设计模块. 验证顶层模块testbench的代码如下所示: /*******************************版权申明*******…
今天要介绍的异步FIFO,可以有不同的读写时钟,即不同的时钟域.由于异步FIFO没有外部地址端口,因此内部采用读写指针并顺序读写,即先写进FIFO的数据先读取(简称先进先出).这里的读写指针是异步的,处理不同的时钟域,而异步FIFO的空满标志位是根据读写指针的情况得到的.为了得到正确的空满标志位,需要对读写指针进行同步.一般情况下,如果一个时钟域的信号直接给另一个时钟域采集,可能会产生亚稳态,亚稳态的产生对设计而言是致命的.为了减少不同时钟域间的亚稳态问题,我们先对它进行两拍寄存同步,如图1所示…