3542|2

6892

帖子

0

TA的资源

五彩晶圆(高级)

楼主
 

请教大家一个异步FIFO的问题 [复制链接]

 

 

最近在做一个异步的fifo,有一些疑问想请教大家:

首先,我使用的SRAM模型是这样的:在写时钟wrclk的上升沿检测写使能valid_wr,如果有效,则在相应的地址wraddr中写入数据datain,在读时钟rclk的上升沿检测读使能valid_rd,如果有效,则读出相应地址raddr的数据dataout。(valid_wr和使能wr_enfull_n有关,valid_rd和使能rd_enempty_n有关),我在空满标志位产生上有一个疑问,比如说写数据吧,如下图所示:

在这个图中,假设只写数据没有读数据,假设外部总线其所发出的数据为DATAINWREN,(注意到所给数据只在clk的上升沿变化),在clk第一个上升沿(如图)发送第一个数据,此时wr_ptrM-2,而同步后的读指针syn_rd_ptrM,且不变,在第二个上升沿fifo检测到rwen,并且full无效且valid_wr有效,则写入数据data1wr_ptr1变为M-1full不变,与此同时外部总线检测(也在上升沿,即在clk2这点)full,没有满,则继续发数据data2,注意,这时候两个指针只差一个,在第3clk上升沿,fifo检测到wr_en,且valid_wr有效,则写入data2,而由于写信号引起了指针相等,则此时ful有效,即表示fifo满了,问题来了,此时(clk3上升沿)外部总线要检测full信号以决定是否继续发数据,但监测点full为高,即表示未满,则外部总线还可以继续发送数据,而此时valid_wr已经无效,数据不会写进SRAM中。我就很奇怪,这样做确实可以防止fifo被重复写,但总线上发出的数据并没有被写进去,好像丢了一样,我自己分析是不是总线在检测full信号时并不是在上升沿去做,如果在下降沿来检测full信号,则就可以看到full的变化,在上图中就是wr_endata_in都向后推半个周期,这样就看似合理了,就像iic总线中主机和从机的关系那样,主机下降沿发数据,从机上升沿接数据,但现在的电路中很少使用双沿,搞不明白,还请大家帮助一下。

此帖出自FPGA/CPLD论坛

最新回复

O(∩_∩)O哈哈~,我不懂。。。。  详情 回复 发表于 2010-9-30 09:28
点赞 关注
个人签名一个为理想不懈前进的人,一个永不言败人!
http://shop57496282.taobao.com/
欢迎光临网上店铺!
 

回复
举报

569

帖子

0

TA的资源

一粒金砂(高级)

沙发
 

读写FIFO 或SRAM 把握以下两个原则,保证你没任何问题:

1。 写FIFO 或SRAM 时, 写信号,数据和地址 同时有效, 数据在一个时钟周期就可以写入FIFO或SRAM;

2.    读FIFO或SRAM 时,读信号,地址同时有效,数据在延迟一个系统时钟周期,数据有效。

此帖出自FPGA/CPLD论坛
 
 

回复

23

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
O(∩_∩)O哈哈~,我不懂。。。。
此帖出自FPGA/CPLD论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表