蚂蚁文库
换一换
首页 蚂蚁文库 > 资源分类 > DOC文档下载
 

同步FIFO的设计与实现

  • 资源ID:52636678       资源大小:380.00KB        全文页数:20页
  • 资源格式: DOC        下载权限:游客/注册会员    下载费用:20积分 【人民币20元】
快捷注册下载 游客一键下载
会员登录下载
三方登录下载: 微信快捷登录 QQ登录  
下载资源需要20积分 【人民币20元】
邮箱/手机:
温馨提示:
支付成功后,系统会自动生成账号(用户名和密码都是您填写的邮箱或者手机号),方便下次登录下载和查询订单;
支付方式: 微信支付    支付宝   
验证码:   换一换

 
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,既可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰   

同步FIFO的设计与实现

同步缓冲器FIFO的设计与实现 姓名 学号012004022102 班级2010级测控1班 院系限制系 专业测控技术与仪器 同组人姓名 (说明我们三个人前面的报告部分是一样的,因为课设基本是三个人协商完成,所以就感觉报告部分没什么不同的就只写了一份报告) 目 录 1原理与系统设计3 2设计思想4 3源码与注释5 4仿真12 5综合15 6心得体会与建议19 1 原理与系统设计 FIFO(First In First Out)是一种可以实现数据先入先出的存储器件。FIFO就像一个单向管道,数据只能按固定的方向从管道一头进来,再按相同的依次从管道另一头出去,最先进来的数据必定是最先出去。FIFO被普遍用作数据缓冲器。 FIFO的基本单元是寄存器,作为存储器件,FIFO的存储实力是由其内部定义的存储寄存器的数量确定的。本题中所设计的是同步FIFO(即输出输入端时钟频率一样),异步复位,其存储实力为(16x8),输出两个状态信号full与empty,以供后继电路运用。 依据系统要求,画出的系统框图,如图1所示 图1同步FIFO框图 端口说明 输入in_data 输入数据端口,位宽为8位; read_n 读使能端,当read_n0时,可以读出数据; write_n 写使能端,当write_n0时,可以写入数据; clock 时钟信号, 在时钟的正边沿进行采样; reset_n 复位信号,当reset_n0时,计数器及读写都被清零(即读写地址指针都指向0) 输出out_data 输出数据端口,位宽为8位;; fullFIFO状态信号,当full1时,表明该FIFO存储器已经写满; emptyFIFO状态信号,当empty1时,表明该FIFO存储器已经读空; FIFO满的状况下,不能再写,写指针不能加1; FIFO空的状况下,不能再读,读指针不能加1; 2 设计思想 由以上的系统框图和端口分析,我们将设计的重点定在了解决以下三个核心问题上 1. FIFO的存储体如何表示 2. 如何实现“先进先出”的逻辑功能 3. 如何知道FIFO内部运用了多少,是满是空 针对以上三个问题,我们所实行的方法是 1. 定义一个168的二维数组来表示FIFO的存储体。 2. 为了实现“先进先出”的逻辑功能,我们定义了“读指针”及“写指针”,分别用来指示读操作与写操作的位置。 3. 为了表示FIFO是满还是空,我们定义了一个计数器,用以标记FIFO已运用了多少空间。 在解决了以上三个重点问题以后,针对同步FIFO的逻辑功能,我们拟定了以下一个结构图,如图2所示 图2 FIFO设计结构图 3.源码与注释 3.1源代码 我们在完成了之前两步的打算工作之后,进行了源码的设计,详细的代码如下 define DEL 1 //为了使仿真接近真实情形,我们定义了从时钟到输出的延时 module sfifoclock,reset_n,in_data,read_n,write_n,out_data,full,empty; //输入信号 clock; //输入时钟 reset_n; //复位信号,低有效 [70] in_data; //输入的数据 read_n; //读限制信号,低有效 write_n; //写限制信号,低有效 //输出信号 output[70] out_data; //FIFO的输出数据 output full; //FIFO满标记信号 output empty; //FIFO空标记信号 //信号声明 reg [70] out_data; reg [70] fifo_mem[150]; //FIFO存储体即8*16存储器,用数组表示 reg [40] counter; //计数器表示FIFO中已用了多少 reg [30] rd_pointer; //FIFO读指针,指向下次读操作的地址 reg [30] wr_pointer; //FIFO读指针,指向下次读操作的地址 //赋值声明,给出满标记与空标记的实现 assign DEL fullcounter161b11b0; assign DEL emptycounter01b11b0; //本模块实现读指针、写指针和计数器的功能 alwaysposedge clock or negedge reset_n begin ifreset_n begin //计数器及读、写指针清零 rd_pointerDEL 4b0; wr_pointerDEL 4b0; counterDEL 5b0; end else begin ifread_n begin //假如FIFO为空,不能

注意事项

本文(同步FIFO的设计与实现)为本站会员(15775730132)主动上传,蚂蚁文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知蚂蚁文库(发送邮件至2303240369@qq.com或直接QQ联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们


网站客服QQ:2303240369

copyright@ 2017-2027 mayiwenku.com 

网站版权所有  智慧蚂蚁网络

经营许可证号:ICP备2024020385号



收起
展开