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

上传人:一*** 文档编号:2757710 上传时间:2020-05-04 格式:DOC 页数:25 大小:107.84KB
返回 下载 相关 举报
SDRAM控制器课设报告完整编辑.doc_第1页
第1页 / 共25页
SDRAM控制器课设报告完整编辑.doc_第2页
第2页 / 共25页
点击查看更多>>
资源描述

《SDRAM控制器课设报告完整编辑.doc》由会员分享,可在线阅读,更多相关《SDRAM控制器课设报告完整编辑.doc(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、.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二、

2、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_fsmrea

3、d_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_v142b0

4、0sdr_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_

5、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=cnt + 1cmd=NOPcnt=tRP - 1cnt=cnt + 1cmd=NOPcnt=T100uscnt=cnt + 1cnt=tMP-1cnt=cnt+1cmd=N

6、OPcnttMP-11.3 SDR控制器的上电和刷新序列1.3.1 顶层架构ref_bus19:0ref_fsmref_lsmclkref_enref_done1.3.2 刷新序列模块的状态机设计(STG)cnt=tRFC - 1cnt=cnt + 1cmd=NOPcnt=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_

7、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

8、_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_bus1

9、9: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

10、_ 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

11、(BL=4):cnt=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_regca

12、pture_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,A

13、P模式,ctRCD=2)SL=2t3CL=2t2tRCD=2t1t0clksdr_clkcapture_clkRDNOPNOPACTcmdxCOLxRowaxValidxValidbaD3D2D1D0sdr_dqinvalidinvalidD3D2D1D0dq_capinvaliddq_sys0D3invalidD2D1D0dq_sysD1D0invalidinvalidD3D2fit_en2103fit_loadrdata63:047:031:015:0cntCL+SL-1 cmd=NOPcnt=cnt+1cnt=CL+SL-1 fit_en=1fit_load=0cnt = 0cnt=ct

14、RCD-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_doneS

15、1!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 wrreq ref_en=1reft_en=0mux_sel=SEL_REFwr_en=1mux_sel=SEL_WRba_addr=local_add

16、r24: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. 全部读写命令均使能A

17、Pddr2_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_encl

18、kinit_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_ be

19、ddr_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_rea

20、dyref_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,速度667Mbp

21、s,存储器时钟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_addresss2

22、3: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_clks

23、oft_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_val

24、id 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_bu

25、rstbegin=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

26、=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(cnt127)*!clear_flag cnt=cnt+1local_write_req=0(cnt=127) local_write_req=0bm_done=1clear_flag=0三、DDR3控制器设计

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

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

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