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

    SDRAM控制器课设报告完整编辑.doc

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

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

    SDRAM控制器课设报告完整编辑.doc

    .SDRAM控制器课设报告<姓名>北京至芯科技FPGA培训课程2016年4月30日星期六目录一、SDR控制器设计31.1 SDR控制器的顶层设计31.1.1 基本需求31.1.2 顶层框图符号31.2 SDR控制器的上电序列31.2.1 上电序列的架构设计31.2.2 上电序列的状态机设计(STG)31.3 SDR控制器的上电和刷新序列31.3.1 顶层架构31.3.2 刷新序列模块的状态机设计(STG)31.4 SDR控制器的上电刷新读写序列(完整控制器设计)41.4.1 顶层设计41.4.2 顶层设计51.4.3 写序列设计61.4.4 读序列设计(有跨时钟域问题)61.4.5 主控制器设计8二、DDR2控制器设计92.1 编写自己的控制器92.1.1 顶层设计92.1.2 顶层架构102.2 使用Altera的IP核(DDR2 HPCII,数据块搬运模块例子)112.2.1 数据块搬运模块顶层112.2.2 数据块搬运模块的状态转移图12三、DDR3控制器设计12一、SDR控制器设计1.1 SDR控制器的顶层设计mux_sel1:0wr_enwr_donerd_enrd_doneref_enref_doneinit_eninit_donecontrollerrdatacol_addrba_addrrow_addrrd_bus19:0clkrd_enrd_doneread_fsmread_lsmwdatacol_addrba_addrrow_addrsdr_dq15:0out_enint_dq15:0sdr_cs_nsdr_ras_nsdr_cas_nsdr_we_nsdr_asdr_basdr_ckeclkwr_enwr_donewr_bus19:0write_fsmwrite_lsmclkreft_enref_time9:0ref_timerclkref_enref_doneref_bus19:0clkinit_eninit_doneref_fsmref_lsminit_bus19:0init_fsminit_lsmwdatardatasdr_driver_v142b00sdr_dqmsoft_rst_nrst_delaylockedsdr_clksdr_clk(180)local_clkclk(0)global_resetref_clksdr_pllsoft_rst_nclklocal_wrreqlocal_ validlocal_rdata63:0local_rdreqlocal_wdata63:0local_addr24:0local_readycol_addrba_addrrow_addrmux_selreft_enref_time1.1.1 基本需求1.1.2 顶层框图符号1.2 SDR控制器的上电序列1.2.1 上电序列的架构设计donesdr_cs_nsdr_ras_nsdr_cas_nsdr_we_nsdr_a12:0sdr_ba1:0sdr_ckesdr_dqm1:0sdr_dq15:0sdr_clkclksoft_rst_nclkglobal_rstref_clkPLLSDRINIT_FSM1.2.2 上电序列的状态机设计(STG)cnt=0cmd=LMRA=MBA=0cnt>=tRFC - 1cnt=cnt+1cmd=NOPcnt<tRFC - 1cnt=0cmd=RFCcnt>=tRFC - 1cnt=cnt + 1cmd=NOPcnt<tRFC - 1cnt=0cmd=REFcnt>=tRP - 1cnt=cnt + 1cmd=NOPcnt<tRP - 1A10=1cmd=PRE*cnt=0cke=1cmd=NOPcnt>=T100uscnt=cnt + 1cnt<T100uscmd=INHsdr_a=0sdr_ba=0sdr_cke=0cnt=0done=0S6S5S4S3S0rstTn+1S2T1S1T0pcRST 0To+1Tp+1Tp+3cnt=0done=1cnt>=tMP-1cnt=cnt+1cmd=NOPcnt<tMP-11.3 SDR控制器的上电和刷新序列1.3.1 顶层架构ref_bus19:0ref_fsmref_lsmclkref_enref_done1.3.2 刷新序列模块的状态机设计(STG)cnt<tRP - 1cnt=cnt + 1cmd=NOPcnt>=tRFC - 1cnt=cnt + 1cmd=NOPcnt<tRFC - 1A10 = 1cmd=PRE*cmd=NOPa=0ba=0cke=1cnt=0ref_done=0S3S0rstT0+1S2T2S1T0RST 0cnt=0cmd=REFcnt>=tRP - 1cnt=0ref_done=11.4 SDR控制器的上电刷新读写序列(完整控制器设计)1.4.1 顶层设计说明:1. 突发长度BL=4,本地数据宽度=16*4=64;2. 忽略数据写掩码,DQM始终为03. 全部读写命令均使能APsdr_driverref_clksdr_m16a2sdr_cs_nsdr_we_nsdr_dq15:0global_resetsdr_ras_nlocal_wrreqsdr_cas_nlocal_addr24:0local_readysdr_a12:0local_wdata63:0sdr_ba1:0local_rdreqsdr_ckelocal_rdata63:0sdr_dqm1:0local_ validsdr_clklocal_clk顶层接口正常和非正常的写时序:sdr_clklocal_clklocal_readynormal(正常写)abnormal(非正常写)local_validvalidlocal_wdatadont carelocal_wrreqlocal_addrdont carevalid顶层接口正常和非正常的读时序:sdr_clklocal_clklocal_readynormal(正常读)abnormal(非正常读)local_validlocal_rdatadont carelocal_rdreqlocal_addrdont carevalidvalidsdr_cs_nsdr_ras_nsdr_cas_nsdr_we_nsdr_asdr_basdr_cke1.4.2 顶层设计sdr_m16a2init_doneinit_eninit_bus19:0init_fsminit_lsmclkref_doneclkref_enref_bus19:0ref_fsmref_lsmmux_sel1:0write_fsmwrite_lsmclkwr_enwr_donewr_bus19:0sdr_dq15:0int_dq15:0row_addrsdr_clkcol_addrba_addrout_enwdatasdr_readrd_bus19:0rd_doneclksdr_dqm2b00rd_encapture_clkrow_addrrdatacol_addrba_addrref_timemux_selrow_addrcol_addrba_addrinit_enclkrd_doneref_ensoft_rst_nrd_enwr_enlocal_ validlocal_rdata63:0wr_donelocal_rdreqlocal_wdata63:0local_addr24:0ref_donelocal_readywdatardatacontrollerinit_donelocal_wrreqreft_enclk(0)local_clkref_clkglobal_resetsdr_clk(180)sdr_pllsoft_rst_nrst_delaylockedcapture_clk(180)ref_time9:0clksdr_driver_v141ref_timerreft_en1.4.3 写序列设计写序列时序:写序列模块的STG(BL=4):cnt<ctRCD-1 cmd=NOPcnt=cnt+1* int_dq=wdata47:32S4S3S2T2T0S1S0RST* cmd=NOPint_dq=wdata31:16cnt>=ctRCD-1 cmd=WRa9:0=col_addra10=1ba=ba_addrint_dq=wdata15:0out_en=1rst cmd=NOPcke=1a=0ba=0int_dq=0out_en=0cnt=0done=0* cmd=ACTa=row_addrba=ba_addr* int_dq=wdata63:48S6S5* out_en=0done=11.4.4 读序列设计(有跨时钟域问题)读序列架构:fitterrdata63:0 dq_sys15:0 sync_reglatency=2dq_cap15:0 sdr_dq15:0 capture_regcapture_clkclkclkfit_enread_fsmrow_addr12:0 fit_load1:0ba_addr1:0 col_addr9:0 rd_bus19:0 clkrd_donerd_ensdr_read说明:1. 装配器Fitter的fit_en有效时,将dq_sys装配到rdata,此时,若fit_load=0,则装配到rdata15:0,fit_load=1则装配到rdata31:16,fit_load=2则装配到rdata47:32,fit_load=3则装配到rdata63:482. 再同步寄存器链的长度为2(SL=2)读序列时序设计(CL=2,BL=4,SL=2,AP模式,ctRCD=2)SL=2t3CL=2t2tRCD=2t1t0clksdr_clkcapture_clkRDNOPNOPACTcmdxCOLxRowaxValidxValidbaD3D2D1D0sdr_dqinvalidinvalidD3D2D1D0dq_capinvaliddq_sys0D3invalidD2D1D0dq_sysD1D0invalidinvalidD3D2fit_en2103fit_loadrdata63:047:031:015:0cnt<CL+SL-1 cmd=NOPcnt=cnt+1cnt<ctRCD-1 cmd=NOPcnt=cnt+1读序列状态机设计:S4t3S3S2t1S1t0S0rst cmd=NOPcke=1a=0ba=0fit_en=0fit_load=0cnt=0done=0RSTcnt>=CL+SL-1 fit_en=1fit_load=0cnt = 0cnt>=ctRCD-1 cmd=RDa9:0=col_addra10=1ba=ba_addrcnt = 0* fit_load=1* cmd=ACTa=row_addrba=ba_addr* fit_load=2S7S6S5* fit_en=0done=1* fit_load=31.4.5 主控制器设计!init_done init_en=1mux_sel=SEL_INITS0RSTinit_done init_en=0mux_sel=SEL_REFreft_en=1local_ready=1ref_time>=ctREF ref_en=1reft_en=0mux_sel=SEL_REF!ref_doneS1!rd_doneS4rd_done rd_en=0local_ready=1local_valid=1local_rdata=rdatawr_done wr_en=0local_ready=1local_valid=1S3STG:rst init_en=0ref_en=0reft_en=0row_addr=0col_addr=0ba_addr=0local_ready=0local_valid=0wdata=0(ref_time<ctREF)*(!rdreq)*(!wrreq) S2ref_done ref_en=0reft_en=1rdreq rd_en=1mux_sel=SEL_RDba_addr=local_addr24:23row_addr=local_addr22:10col_addr=local_addr9:0local_ready=0local_valid=0wrreq wr_en=1mux_sel=SEL_WRba_addr=local_addr24:23row_addr=local_addr22:10col_addr=local_addr9:0wdata=local_wdatalocal_ready=0local_valid=0!wr_doneS1部分算法流程图ASM charts:S1ref_time>=ctREF wrreq ref_en=1reft_en=0mux_sel=SEL_REFwr_en=1mux_sel=SEL_WRba_addr=local_addr24:23row_addr=local_addr22:10col_addr=local_addr9:0local_ready=0local_valid=0rdreq rd_en=1mux_sel=SEL_RDba_addr=local_addr24:23row_addr=local_addr22:10col_addr=local_addr9:0local_ready=0local_valid=0S2S3S4二、DDR2控制器设计2.1 编写自己的控制器2.1.1 顶层设计说明:1. 突发长度BL=4,本地数据宽度=16*4=64;2. 忽略数据写掩码,DQM始终为03. 全部读写命令均使能APddr2_driverddr2(MT47H32M16)ref_clkddr_cs_nddr_we_nglobal_resetddr_ras_nlocal_wrreqddr_cas_nlocal_addr24:0local_readyddr_a12:0local_wdata63:0ddr_ba1:0ddr_odtlocal_rdreqddr_ckeddr_clklocal_rdata63:0ddr_clk_nlocal_ validddr_dq15:0local_clkddr_dm1:0ddr_dqs1:02.1.2 顶层架构ddr2(MT47H32M16)ddr2_initinit_enclkinit_doneeref_busddr2_refclkref_doneref_enrd_busddr2_readrd_donecol_addrwr_bus20:0wdataba_addrddr2_writecol_addrrow_addrclkinit_busddr_cs_n.ddr2_ddioint_buswrite_clkrd_enmux_selddr2_datapathcontrol_doing_rdclkcontrol_ rdatarow_addrba_addrrdataddr_dqwr_enddr_dqswr_donecontrol_ wdataddr_dmcontrol_ beddr_clkcontrol_ dqs_burstcontrol_ doing_wrddr_clk_pcontrol_ wdata_validddr2_pllclkref_clkresynch_clkwrite_clkglobal_resetpostamble_clkpll_rst_nddr2_pll_delaysoft_reset_ninit_enddr2_fsmlocal_wrreqinit_donedll_ctrl5:0local_clklocal_ validlocal_rdata63:0local_rdreqlocal_wdata63:0local_addr24:0local_readyref_endll_updateddr2_dllref_doneclkrd_donerd_ensoft_reset_nwr_enwr_donemux_seldll_addnsubba_addrcol_addrrow_addrdll_offset5:0clksoft_reset_nwdataddr2_driverrdata2.2 使用Altera的IP核(DDR2 HPCII,数据块搬运模块例子)说明(基本需求):1. 使用DDR2 HPCII构建的数据搬运模块2. 本地突发长度设置为4(local_size=4)3. 全速运行设置4. DDR2器件采用16位宽,4Bank,速度667Mbps,存储器时钟333MHz5. 数据搬运尺寸设置为LPM参数DEPTH=512,即512本地字(全速情况下字宽为32)6. 数据搬运模块具有块搬运启动命令start。start命令启动一次从source至target的搬运7. 数据搬运模块具有块搬运清除命令clear。clear命令启动一次从target区的清零2.2.1 数据块搬运模块顶层MT48LC32M16A2 (DDR2,DIMM)mem_cs_n0:0bm_hpc(DDR2HPC II)bm_source_addr23:0bm_fsm(FSM)local_wdata31:0local_write_reqlocal_addresss23:0mem_ras_nbm_startbm_target_addr23:0local_read_reqmem_cas_nbm_donelocal_burstbeginmem_we_nmem_addr12:0bm_clearlocal_be3:0mem_ba1:0local_size2:0mem_cke0:0local_readymem_odt0:0local_rdata_validlocal_rdata31:0mem_dq15:0local_refresh_ackdmem_dm1:0mem_dqs1:0local_init_donemem_clk0:0mem_clk_n0:0phy_clksoft_reset_nref_clkglobal_resetblock_move_16022.2.2 数据块搬运模块的状态转移图* local_read_req=0local_burstbegin=0!local_rdata_valid!local_rdata_valid!local_rdata_validS7local_rdata_valid temp2=local_rdatalocal_rdata_valid temp1=local_rdataS6local_rdata_valid temp0=local_rdataS5!local_rdata_validS4local_rdata_valid temp3=local_rdataS11S10S9S8local_ready local_write_req=1local_bustbegin=1local_address=target+4*cntlocal_wdata=temp0S12!local_ready!start*!clear!local_init_done local_init_done bm_done=1S3S2S1S0RSTstart bm_done=0source= bm_source_addrtarget= bm_target_addrcnt=0local_ready local_read_req=1local_burstbegin=1local_address=source+4*cntrst local_address=0local_write_req=0local_read_req=0local_burstbegin=0local_wdata=0local_be=4b1111local_size=4bm_done=0temp3:0=0cnt=0source=0target=0clear_flag=0!local_ready local_write_req=0!local_ready local_write_req=0!local_ready local_write_req=0clear bm_done=0target= bm_target_addrcnt=0temp3:0=0clear_flag=1!local_readylocal_ready local_wdata=temp2llocal_write_req=1local_ready local_bustbegin=0local_wdata=temp1local_write_req=1local_ready local_wdata=temp3llocal_write_req=1(cnt<127)*!clear_flag cnt=cnt+1local_write_req=0(cnt<127)*clear_flag cnt=cnt+1local_write_req=0(cnt>=127) local_write_req=0bm_done=1clear_flag=0三、DDR3控制器设计

    注意事项

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

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




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

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

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

    收起
    展开