欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    同步FIFO设计(5页).doc

    • 资源ID:47774501       资源大小:183.50KB        全文页数:5页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    同步FIFO设计(5页).doc

    -第 1 页同步同步 FIFO 设计设计-第 2 页同步 fifo 设计1功能定义:用 16*8 RAM 实现一个同步先进先出(FIFO)队列设计。由写使能端控制该数据流的写入 FIFO,并由读使能控制 FIFO 中数据的读出。写入和读出的操作由时钟的上升沿触发。当 FIFO 的数据满和空的时候分别设置相应的高电平加以指示。2顶层信号定义:信号名称I/O功能描述源/目标 备注RstIn全局复位(低有效)管脚ClkIn全局时钟管脚频率 10Mhz;占空比:50%Wr_enIn低有效写使能管脚Rd_enIn低有效读使能管脚Data_in7:0In数据输入端管脚Data_out7:0 Out数据输出端管脚EmptyOut空指示信号管脚为高时表示 fifo 空FullOut满指示信号管脚为高时表示 fifo 满3顶层模块划分及功能实现该同步 fifo 可划分为如下四个模块,如图 1 所示:存储器模块(RAM)用于存放及输出数据;读地址模块(rd_addr)用于读地址的产生;写地址模块(wr_addr)用于写地址的产生标志模块(flag_gen)-用于产生 FIFO 当前空满状态。图 1 同步 FIFO 的模块划分1)RAM 模块本设计中的 FIFO 采用采用 16*8 双口 RAM,以循环读写的方式实现;l 根据 rd_addr_gen 模块产生的读地址,在读使能(rd_en)为高电平的时候,将 RAM 中 rd_addr3:0地址中的对应单元的数据在时钟上升沿到来的时候,读出到 data_out7:0中。l根 据 wr_addr_gen 产 生 的 写 地 址 和 在 写 使 能(wr_en)为 高 电 平 的 时 候,将 输 入 数 据(data_in7:0)在时钟上升沿到来的时候,写入 wr_addr3:0地址对应的单元。以下是 ram 程序:module ram(clk,wr_en,rd_en,data_in,wr_addr,rd_addr,data_out);input clk;input rd_en;input wr_en;input7:0data_in;input3:0wr_addr;input3:0rd_addr;output7:0data_out;reg 7:0data_out;parameter max_count=5b10000;reg 7:0fifo0:max_count;/读操作-第 3 页always (posedge clk)beginif(rd_en)data_out=fiford_addr;end/写操作always (posedge clk)beginif(wr_en)fifowr_addr=data_in;endendmodule2)wr_addr_gen:该模块用于产生 FIFO 写数据时所用的地址。由于 16 个 RAM 单元可以用 4 位地址线寻址。本模块用 4 位计数器(wr_addr3:0)实现写地址的产生。l 在复位时(rst=0),写地址值为 0。l 如果 FIFO 未满(full)且有写使能(wr_en)有效,则 wr_addr3:0加 1;否则不变。module wr_addr_gen(clk,rst,full,wr_en,wr_addr);input clk,rst;input full;input wr_en;output 3:0wr_addr;reg 3:0wr_addr;always (posedge clk or negedge rst)beginif(!rst)wr_addr=4b0000;else if(full=0&wr_en=1)wr_addr=wr_addr+1;elsewr_addr=4b0000;endendmodule3)rd_addr_gen:该模块用于产生 FIFO 读数据时所用的地址。由于 16 个 RAM 单元可以用 4 位地址线寻址。本模块用 4 位计数器(rd_addr3:0)实现读地址的产生。l 在复位时(rst=0),读地址值为 0。l 如果 FIFO 未空(empty)且有读使能(rd_en)有效,则 rd_addr3:0加 1;否则不变。module rd_addr_gen(clk,rst,emptyp,rd_en,rd_addr);input clk,rst;input emptyp;input rd_en;output 3:0rd_addr;reg 3:0rd_addr;-第 4 页always (posedge clk or negedge rst)beginif(!rst)rd_addr=4b0000;else if(emptyp=0&rd_en=1)rd_addr=rd_addr+1;elserd_addr=4b0000;endendmodule4)flag_gen 模块flag_gen 模块产生 FIFO 空满标志。本模块设计并不用读写地址判定 FIFO 是否空满。设计一个计数器,该计数器(pt_cnt)用于指示当前周期中 FIFO 中数据的个数。由于 FIFO 中最多只有 16 个数据,因此采用 5 位计数器来指示 FIFO 中数据个数。具体计算如下:l 复位的时候,pt_cnt=0;l 如果 wr_en 和 rd_en 同时有效的时候,pt_cnt 不加也不减;表示同时对 FIFO 进行读写操作的时候,FIFO 中的数据个数不变。l 如果 wr_en 有效且 full=0,则 pt_cont+1;表示写操作且 FIFO 未满时候,FIFO 中的数据个数增加了 1;l 如果 rd_en 有效且 empty=0,则 pt_cont-1;表示读操作且 FIFO 未满时候,FIFO 中的数据个数减少了 1;l 如果 pt_cnt=0 的时候,表示 FIFO 空,需要设置 empty=1;如果 pt_cnt=16 的时候,表示 FIFO 现在已经满,需要设置 full=1。module flag_gen(clk,rst,full,emptyp,wr_en,rd_en);input clk,rst;input rd_en;input wr_en;output full,emptyp;reg full,emptyp;reg4:0count;parameter max_count=5b01111;always (posedge clk or negedge rst)beginif(!rst)count=0;elsebegincase(wr_en,rd_en)2b00:count=count;2b01:if(count!=5b00000)count=count-1;2b10:if(count!=max_count)-第 5 页count=count+1;2b11:count=count;endcaseendendalways(count)beginif(count=5b00000)emptyp=1;elseemptyp=0;endalways(count)beginif(count=max_count)full=1;elsefull=0;endendmodule最后的顶层模块如下所示:仿真波形:

    注意事项

    本文(同步FIFO设计(5页).doc)为本站会员(1595****071)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开