│ Micron sdram_datasheet.pdf
│ n2cpu_nii51005.pdf
│ 一种简易SDRAM控制器的设计方法.pdf
│ 动态随即存储器HY57V641620.pdf
│ 基于FPGA的SDRAM控制器的设计和实现.pdf
│ 详解SDRAM的原理和时序.pdf
│
├─FPGA读写SDRAM的实例
│ │ 使用说明请参看右侧注释====〉〉.txt
│ │
│ └─vga_system
│ │ altpll0.bsf
│ │ altpll0.ppf
│ │ altpll0.v
│ │ altpll0_bb.v
│ │ altpll0_wave0.jpg
│ │ altpll0_waveforms.html
│ │ burst_0.v
│ │ cpu.v
│ │ cpu_bht_ram.mif
│ │ cpu_dc_tag_ram.mif
│ │ cpu_ic_tag_ram.mif
│ │ cpu_jtag_debug_module.v
│ │ cpu_jtag_debug_module_wrapper.v
│ │ cpu_mult_cell.v
│ │ cpu_ociram_default_contents.mif
│ │ cpu_rf_ram_a.mif
│ │ cpu_rf_ram_b.mif
│ │ cpu_test_bench.v
│ │ FreeDevDAV.tcl
│ │ freedev_vga_inst.v
│ │ jtag_uart.v
│ │ led_pio.v
│ │ sdram.v
│ │ sdram_test_component.v
│ │ sopc_add_qip_file.tcl
│ │ sopc_builder_log.txt
│ │ sysid.v
│ │ sys_clk_timer.v
│ │ vga_fifo.v
│ │ vga_sys.bsf
│ │ vga_sys.ptf
│ │ vga_sys.ptf.bak
│ │ vga_sys.ptf.pre_generation_ptf
│ │ vga_sys.qip
│ │ vga_sys.sopc
│ │ vga_sys.v
│ │ vga_system.asm.rpt
│ │ vga_system.bdf
│ │ vga_system.done
│ │ vga_system.fit.rpt
│ │ vga_system.fit.smsg
│ │ vga_system.fit.summary
│ │ vga_system.flow.rpt
│ │ vga_system.jdi
│ │ vga_system.map.rpt
│ │ vga_system.map.smsg
│ │ vga_system.map.summary
│ │ vga_system.pin
│ │ vga_system.pof
│ │ vga_system.qpf
│ │ vga_system.qsf
│ │ vga_system.qws
│ │ vga_system.sof
│ │ vga_system.tan.rpt
│ │ vga_system.tan.summary
│ │ vga_system_assignment_defaults.qdf
│ │ vga_sys_generation_script
│ │ vga_sys_log.txt
│ │ vga_sys_setup_quartus.tcl
│ │ 使用说明请参看右侧注释====〉〉.txt
│ │
│ ├─.sopc_builder
│ │ install.ptf
│ │ install2.ptf
│ │ preferences.xml
│ │
│ ├─db
│ │ altsyncram_9tl1.tdf
│ │ altsyncram_abn1.tdf
│ │ altsyncram_b4e1.tdf
│ │ altsyncram_chp1.tdf
│ │ altsyncram_cub1.tdf
│ │ altsyncram_e502.tdf
│ │ altsyncram_ji01.tdf
│ │ altsyncram_k1l1.tdf
│ │ altsyncram_l6e1.tdf
│ │ altsyncram_lde1.tdf
│ │ altsyncram_m6e1.tdf
│ │ altsyncram_mge1.tdf
│ │ altsyncram_reb1.tdf
│ │ altsyncram_t072.tdf
│ │ altsyncram_uce1.tdf
│ │ altsyncram_veb1.tdf
│ │ alt_synch_pipe_0e8.tdf
│ │ alt_synch_pipe_1e8.tdf
│ │ a_dpfifo_8t21.tdf
│ │ a_fefifo_7cf.tdf
│ │ a_gray2bin_ldb.tdf
│ │ a_graycounter_fgc.tdf
│ │ a_graycounter_ggc.tdf
│ │ a_graycounter_p96.tdf
│ │ cntr_fjb.tdf
│ │ cntr_rj7.tdf
│ │ dcfifo_min1.tdf
│ │ decode_aoi.tdf
│ │ ded_mult_2o81.tdf
│ │ dffpipe_93c.tdf
│ │ dffpipe_mcc.tdf
│ │ dffpipe_pe9.tdf
│ │ dffpipe_qe9.tdf
│ │ dffpipe_re9.tdf
│ │ dpram_5h21.tdf
│ │ mult_add_4cr2.tdf
│ │ mult_add_6cr2.tdf
│ │ mux_1u7.tdf
│ │ prev_cmp_vga_system.fit.qmsg
│ │ prev_cmp_vga_system.map.qmsg
│ │ prev_cmp_vga_system.qmsg
│ │ scfifo_5n21.tdf
│ │ vga_system.(0).cnf.cdb
│ │ vga_system.(0).cnf.hdb
│ │ vga_system.(1).cnf.cdb
│ │ vga_system.(1).cnf.hdb
│ │ vga_system.(10).cnf.cdb
│ │ vga_system.(10).cnf.hdb
│ │ vga_system.(100).cnf.cdb
│ │ vga_system.(100).cnf.hdb
│ │ vga_system.(101).cnf.cdb
│ │ vga_system.(101).cnf.hdb
│ │ vga_system.(102).cnf.cdb
│ │ vga_system.(102).cnf.hdb
│ │ vga_system.(103).cnf.cdb
│ │ vga_system.(103).cnf.hdb
│ │ vga_system.(104).cnf.cdb
│ │ vga_system.(104).cnf.hdb
│ │ vga_system.(105).cnf.cdb
│ │ vga_system.(105).cnf.hdb
│ │ vga_system.(106).cnf.cdb
│ │ vga_system.(106).cnf.hdb
│ │ vga_system.(107).cnf.cdb
│ │ vga_system.(107).cnf.hdb
│ │ vga_system.(108).cnf.cdb
│ │ vga_system.(108).cnf.hdb
│ │ vga_system.(109).cnf.cdb
│ │ vga_system.(109).cnf.hdb
│ │ vga_system.(11).cnf.cdb
│ │ vga_system.(11).cnf.hdb
│ │ vga_system.(110).cnf.cdb
│ │ vga_system.(110).cnf.hdb
│ │ vga_system.(111).cnf.cdb
│ │ vga_system.(111).cnf.hdb
│ │ vga_system.(112).cnf.cdb
│ │ vga_system.(112).cnf.hdb
│ │ vga_system.(113).cnf.cdb
│ │ vga_system.(113).cnf.hdb
│ │ vga_system.(114).cnf.cdb
│ │ vga_system.(114).cnf.hdb
│ │ vga_system.(115).cnf.cdb
│ │ vga_system.(115).cnf.hdb
│ │ vga_system.(116).cnf.cdb
│ │ vga_system.(116).cnf.hdb
│ │ vga_system.(117).cnf.cdb
│ │ vga_system.(117).cnf.hdb
│ │ vga_system.(118).cnf.cdb
│ │ vga_system.(118).cnf.hdb
│ │ vga_system.(119).cnf.cdb
│ │ vga_system.(119).cnf.hdb
│ │ vga_system.(12).cnf.cdb
│ │ vga_system.(12).cnf.hdb
│ │ vga_system.(120).cnf.cdb
│ │ vga_system.(120).cnf.hdb
│ │ vga_system.(121).cnf.cdb
│ │ vga_system.(121).cnf.hdb
│ │ vga_system.(122).cnf.cdb
│ │ vga_system.(122).cnf.hdb
│ │ vga_system.(123).cnf.cdb
│ │ vga_system.(123).cnf.hdb
│ │ vga_system.(124).cnf.cdb
│ │ vga_system.(124).cnf.hdb
│ │ vga_system.(125).cnf.cdb
│ │ vga_system.(125).cnf.hdb
│ │ vga_system.(126).cnf.cdb
│ │ vga_system.(126).cnf.hdb
│ │ vga_system.(127).cnf.cdb
│ │ vga_system.(127).cnf.hdb
│ │ vga_system.(128).cnf.cdb
│ │ vga_system.(128).cnf.hdb
│ │ vga_system.(129).cnf.cdb
│ │ vga_system.(129).cnf.hdb
│ │ vga_system.(13).cnf.cdb
│ │ vga_system.(13).cnf.hdb
│ │ vga_system.(130).cnf.cdb
│ │ vga_system.(130).cnf.hdb
│ │ vga_system.(14).cnf.cdb
│ │ vga_system.(14).cnf.hdb
│ │ vga_system.(15).cnf.cdb
│ │ vga_system.(15).cnf.hdb
│ │ vga_system.(16).cnf.cdb
│ │ vga_system.(16).cnf.hdb
│ │ vga_system.(17).cnf.cdb
│ │ vga_system.(17).cnf.hdb
│ │ vga_system.(18).cnf.cdb
│ │ vga_system.(18).cnf.hdb
│ │ vga_system.(19).cnf.cdb
│ │ vga_system.(19).cnf.hdb
│ │ vga_system.(2).cnf.cdb
│ │ vga_system.(2).cnf.hdb
│ │ vga_system.(20).cnf.cdb
│ │ vga_system.(20).cnf.hdb
│ │ vga_system.(21).cnf.cdb
│ │ vga_system.(21).cnf.hdb
│ │ vga_system.(22).cnf.cdb
│ │ vga_system.(22).cnf.hdb
│ │ vga_system.(23).cnf.cdb
│ │ vga_system.(23).cnf.hdb
│ │ vga_system.(24).cnf.cdb
│ │ vga_system.(24).cnf.hdb
│ │ vga_system.(25).cnf.cdb
│ │ vga_system.(25).cnf.hdb
│ │ vga_system.(26).cnf.cdb
│ │ vga_system.(26).cnf.hdb
│ │ vga_system.(27).cnf.cdb
│ │ vga_system.(27).cnf.hdb
│ │ vga_system.(28).cnf.cdb
│ │ vga_system.(28).cnf.hdb
│ │ vga_system.(29).cnf.cdb
│ │ vga_system.(29).cnf.hdb
│ │ vga_system.(3).cnf.cdb
│ │ vga_system.(3).cnf.hdb
│ │ vga_system.(30).cnf.cdb
│ │ vga_system.(30).cnf.hdb
│ │ vga_system.(31).cnf.cdb
│ │ vga_system.(31).cnf.hdb
│ │ vga_system.(32).cnf.cdb
│ │ vga_system.(32).cnf.hdb
│ │ vga_system.(33).cnf.cdb
│ │ vga_system.(33).cnf.hdb
│ │ vga_system.(34).cnf.cdb
│ │ vga_system.(34).cnf.hdb
│ │ vga_system.(35).cnf.cdb
│ │ vga_system.(35).cnf.hdb
│ │ vga_system.(36).cnf.cdb
│ │ vga_system.(36).cnf.hdb
│ │ vga_system.(37).cnf.cdb
│ │ vga_system.(37).cnf.hdb
│ │ vga_system.(38).cnf.cdb
│ │ vga_system.(38).cnf.hdb
│ │ vga_system.(39).cnf.cdb
│ │ vga_system.(39).cnf.hdb
│ │ vga_system.(4).cnf.cdb
│ │ vga_system.(4).cnf.hdb
│ │ vga_system.(40).cnf.cdb
│ │ vga_system.(40).cnf.hdb
│ │ vga_system.(41).cnf.cdb
│ │ vga_system.(41).cnf.hdb
│ │ vga_system.(42).cnf.cdb
│ │ vga_system.(42).cnf.hdb
│ │ vga_system.(43).cnf.cdb
│ │ vga_system.(43).cnf.hdb
│ │ vga_system.(44).cnf.cdb
│ │ vga_system.(44).cnf.hdb
│ │ vga_system.(45).cnf.cdb
│ │ vga_system.(45).cnf.hdb
│ │ vga_system.(46).cnf.cdb
│ │ vga_system.(46).cnf.hdb
│ │ vga_system.(47).cnf.cdb
│ │ vga_system.(47).cnf.hdb
│ │ vga_system.(48).cnf.cdb
│ │ vga_system.(48).cnf.hdb
│ │ vga_system.(49).cnf.cdb
│ │ vga_system.(49).cnf.hdb
│ │ vga_system.(5).cnf.cdb
│ │ vga_system.(5).cnf.hdb
│ │ vga_system.(50).cnf.cdb
│ │ vga_system.(50).cnf.hdb
│ │ vga_system.(51).cnf.cdb
│ │ vga_system.(51).cnf.hdb
│ │ vga_system.(52).cnf.cdb
│ │ vga_system.(52).cnf.hdb
│ │ vga_system.(53).cnf.cdb
│ │ vga_system.(53).cnf.hdb
│ │ vga_system.(54).cnf.cdb
│ │ vga_system.(54).cnf.hdb
│ │ vga_system.(55).cnf.cdb
│ │ vga_system.(55).cnf.hdb
│ │ vga_system.(56).cnf.cdb
│ │ vga_system.(56).cnf.hdb
│ │ vga_system.(57).cnf.cdb
│ │ vga_system.(57).cnf.hdb
│ │ vga_system.(58).cnf.cdb
│ │ vga_system.(58).cnf.hdb
│ │ vga_system.(59).cnf.cdb
│ │ vga_system.(59).cnf.hdb
│ │ vga_system.(6).cnf.cdb
│ │ vga_system.(6).cnf.hdb
│ │ vga_system.(60).cnf.cdb
│ │ vga_system.(60).cnf.hdb
│ │ vga_system.(61).cnf.cdb
│ │ vga_system.(61).cnf.hdb
│ │ vga_system.(62).cnf.cdb
│ │ vga_system.(62).cnf.hdb
│ │ vga_system.(63).cnf.cdb
│ │ vga_system.(63).cnf.hdb
│ │ vga_system.(64).cnf.cdb
│ │ vga_system.(64).cnf.hdb
│ │ vga_system.(65).cnf.cdb
│ │ vga_system.(65).cnf.hdb
│ │ vga_system.(66).cnf.cdb
│ │ vga_system.(66).cnf.hdb
│ │ vga_system.(67).cnf.cdb
│ │ vga_system.(67).cnf.hdb
│ │ vga_system.(68).cnf.cdb
│ │ vga_system.(68).cnf.hdb
│ │ vga_system.(69).cnf.cdb
│ │ vga_system.(69).cnf.hdb
│ │ vga_system.(7).cnf.cdb
│ │ vga_system.(7).cnf.hdb
│ │ vga_system.(70).cnf.cdb
│ │ vga_system.(70).cnf.hdb
│ │ vga_system.(71).cnf.cdb
│ │ vga_system.(71).cnf.hdb
│ │ vga_system.(72).cnf.cdb
│ │ vga_system.(72).cnf.hdb
│ │ vga_system.(73).cnf.cdb
│ │ vga_system.(73).cnf.hdb
│ │ vga_system.(74).cnf.cdb
│ │ vga_system.(74).cnf.hdb
│ │ vga_system.(75).cnf.cdb
│ │ vga_system.(75).cnf.hdb
│ │ vga_system.(76).cnf.cdb
│ │ vga_system.(76).cnf.hdb
│ │ vga_system.(77).cnf.cdb
│ │ vga_system.(77).cnf.hdb
│ │ vga_system.(78).cnf.cdb
│ │ vga_system.(78).cnf.hdb
│ │ vga_system.(79).cnf.cdb
│ │ vga_system.(79).cnf.hdb
│ │ vga_system.(8).cnf.cdb
│ │ vga_system.(8).cnf.hdb
│ │ vga_system.(80).cnf.cdb
│ │ vga_system.(80).cnf.hdb
│ │ vga_system.(81).cnf.cdb
│ │ vga_system.(81).cnf.hdb
│ │ vga_system.(82).cnf.cdb
│ │ vga_system.(82).cnf.hdb
│ │ vga_system.(83).cnf.cdb
│ │ vga_system.(83).cnf.hdb
│ │ vga_system.(84).cnf.cdb
│ │ vga_system.(84).cnf.hdb
│ │ vga_system.(85).cnf.cdb
│ │ vga_system.(85).cnf.hdb
│ │ vga_system.(86).cnf.cdb
│ │ vga_system.(86).cnf.hdb
│ │ vga_system.(87).cnf.cdb
│ │ vga_system.(87).cnf.hdb
│ │ vga_system.(88).cnf.cdb
│ │ vga_system.(88).cnf.hdb
│ │ vga_system.(89).cnf.cdb
│ │ vga_system.(89).cnf.hdb
│ │ vga_system.(9).cnf.cdb
│ │ vga_system.(9).cnf.hdb
│ │ vga_system.(90).cnf.cdb
│ │ vga_system.(90).cnf.hdb
│ │ vga_system.(91).cnf.cdb
│ │ vga_system.(91).cnf.hdb
│ │ vga_system.(92).cnf.cdb
│ │ vga_system.(92).cnf.hdb
│ │ vga_system.(93).cnf.cdb
│ │ vga_system.(93).cnf.hdb
│ │ vga_system.(94).cnf.cdb
│ │ vga_system.(94).cnf.hdb
│ │ vga_system.(95).cnf.cdb
│ │ vga_system.(95).cnf.hdb
│ │ vga_system.(96).cnf.cdb
│ │ vga_system.(96).cnf.hdb
│ │ vga_system.(97).cnf.cdb
│ │ vga_system.(97).cnf.hdb
│ │ vga_system.(98).cnf.cdb
│ │ vga_system.(98).cnf.hdb
│ │ vga_system.(99).cnf.cdb
│ │ vga_system.(99).cnf.hdb
│ │ vga_system.asm.qmsg
│ │ vga_system.asm_labs.ddb
│ │ vga_system.cbx.xml
│ │ vga_system.cmp.bpm
│ │ vga_system.cmp.cdb
│ │ vga_system.cmp.ecobp
│ │ vga_system.cmp.hdb
│ │ vga_system.cmp.logdb
│ │ vga_system.cmp.rdb
│ │ vga_system.cmp.tdb
│ │ vga_system.cmp0.ddb
│ │ vga_system.cmp2.ddb
│ │ vga_system.cmp_bb.cdb
│ │ vga_system.cmp_bb.hdb
│ │ vga_system.cmp_bb.logdb
│ │ vga_system.cmp_bb.rcf
│ │ vga_system.dbp
│ │ vga_system.db_info
│ │ vga_system.eco.cdb
│ │ vga_system.fit.qmsg
│ │ vga_system.hier_info
│ │ vga_system.hif
│ │ vga_system.map.bpm
│ │ vga_system.map.cdb
│ │ vga_system.map.ecobp
│ │ vga_system.map.hdb
│ │ vga_system.map.logdb
│ │ vga_system.map.qmsg
│ │ vga_system.map_bb.cdb
│ │ vga_system.map_bb.hdb
│ │ vga_system.map_bb.logdb
│ │ vga_system.merge_hb.atm
│ │ vga_system.pre_map.cdb
│ │ vga_system.pre_map.hdb
│ │ vga_system.psp
│ │ vga_system.pss
│ │ vga_system.rtlv.hdb
│ │ vga_system.rtlv_sg.cdb
│ │ vga_system.rtlv_sg_swap.cdb
│ │ vga_system.sgdiff.cdb
│ │ vga_system.sgdiff.hdb
│ │ vga_system.signalprobe.cdb
│ │ vga_system.sldhu_30e344a040fd07e1533c49de5f2d67d1.cmp.atm
│ │ vga_system.sldhu_30e344a040fd07e1533c49de5f2d67d1.cmp.logdb
│ │ vga_system.sldhu_30e344a040fd07e1533c49de5f2d67d1.map.atm
│ │ vga_system.sldhu_30e344a040fd07e1533c49de5f2d67d1.map.logdb
│ │ vga_system.sld_design_entry.sci
│ │ vga_system.sld_design_entry_dsc.sci
│ │ vga_system.smp_dump.txt
│ │ vga_system.syn_hier_info
│ │ vga_system.tan.qmsg
│ │ vga_system.tis_db_list.ddb
│ │
│ ├─freedev_bt656
│ │ bt656_detection.v
│ │ bt656_fifo.v
│ │ bt656_fifo_bb.v
│ │ freedev_bt656.v
│ │ freedev_bt656_hw.tcl
│ │ freedev_bt656_hw.tcl~
│ │
│ ├─freedev_cycloneII_50
│ │ │ class.ptf
│ │ │
│ │ └─system
│ │ │ asmi.v
│ │ │ cmp_state.ini
│ │ │ cpu_0.ocp
│ │ │ cpu_0.v
│ │ │ cpu_0_test_bench.v
│ │ │ data_RAM.hex
│ │ │ data_RAM.v
│ │ │ delay_reset_block.bdf
│ │ │ firmware_ROM.hex
│ │ │ firmware_ROM.v
│ │ │ FreeDevDAV_board.tcl
│ │ │ freedev_cycloneII_50.asm.rpt
│ │ │ freedev_cycloneII_50.bsf
│ │ │ freedev_cycloneII_50.done
│ │ │ freedev_cycloneII_50.fit.eqn
│ │ │ freedev_cycloneII_50.fit.rpt
│ │ │ freedev_cycloneII_50.fit.summary
│ │ │ freedev_cycloneII_50.flow.rpt
│ │ │ freedev_cycloneII_50.map.eqn
│ │ │ freedev_cycloneII_50.map.rpt
│ │ │ freedev_cycloneII_50.map.summary
│ │ │ freedev_cycloneII_50.pin
│ │ │ freedev_cycloneII_50.pof
│ │ │ freedev_cycloneII_50.ptf
│ │ │ freedev_cycloneII_50.ptf.bak
│ │ │ freedev_cycloneII_50.qpf
│ │ │ freedev_cycloneII_50.qsf
│ │ │ freedev_cycloneII_50.qws
│ │ │ freedev_cycloneII_50.sof
│ │ │ freedev_cycloneII_50.tan.rpt
│ │ │ freedev_cycloneII_50.tan.summary
│ │ │ freedev_cycloneII_50.v
│ │ │ freedev_cycloneII_50_generation_script
│ │ │ freedev_cycloneII_50_log.txt
│ │ │ freedev_cycloneII_50_setup_quartus.tcl
│ │ │ freedev_cycloneII_50_top.bdf
│ │ │ jtag_uart_0.v
│ │ │ payload_buffer.hex
│ │ │ payload_buffer.v
│ │ │ reset_counter.v
│ │ │ rf_ram.mif
│ │ │ sopc_builder_debug_log.txt
│ │ │ sysid.v
│ │ │
│ │ ├─db
│ │ │ altsyncram_ca01.tdf
│ │ │ altsyncram_gq01.tdf
│ │ │ altsyncram_p111.tdf
│ │ │ altsyncram_toc1.tdf
│ │ │ altsyncram_vuo1.tdf
│ │ │ a_dpfifo_qap.tdf
│ │ │ a_fefifo_7cf.tdf
│ │ │ cntr_dl8.tdf
│ │ │ cntr_rj7.tdf
│ │ │ cntr_vm8.tdf
│ │ │ decode_1oa.tdf
│ │ │ decode_rpe.tdf
│ │ │ dpram_pcp.tdf
│ │ │ freedev_cycloneII_50.(0).cnf.cdb
│ │ │ freedev_cycloneII_50.(0).cnf.hdb
│ │ │ freedev_cycloneII_50.(1).cnf.cdb
│ │ │ freedev_cycloneII_50.(1).cnf.hdb
│ │ │ freedev_cycloneII_50.(10).cnf.cdb
│ │ │ freedev_cycloneII_50.(10).cnf.hdb
│ │ │ freedev_cycloneII_50.(11).cnf.cdb
│ │ │ freedev_cycloneII_50.(11).cnf.hdb
│ │ │ freedev_cycloneII_50.(12).cnf.cdb
│ │ │ freedev_cycloneII_50.(12).cnf.hdb
│ │ │ freedev_cycloneII_50.(13).cnf.cdb
│ │ │ freedev_cycloneII_50.(13).cnf.hdb
│ │ │ freedev_cycloneII_50.(14).cnf.cdb
│ │ │ freedev_cycloneII_50.(14).cnf.hdb
│ │ │ freedev_cycloneII_50.(15).cnf.cdb
│ │ │ freedev_cycloneII_50.(15).cnf.hdb
│ │ │ freedev_cycloneII_50.(16).cnf.cdb
│ │ │ freedev_cycloneII_50.(16).cnf.hdb
│ │ │ freedev_cycloneII_50.(17).cnf.cdb
│ │ │ freedev_cycloneII_50.(17).cnf.hdb
│ │ │ freedev_cycloneII_50.(18).cnf.cdb
│ │ │ freedev_cycloneII_50.(18).cnf.hdb
│ │ │ freedev_cycloneII_50.(19).cnf.cdb
│ │ │ freedev_cycloneII_50.(19).cnf.hdb
│ │ │ freedev_cycloneII_50.(2).cnf.cdb
│ │ │ freedev_cycloneII_50.(2).cnf.hdb
│ │ │ freedev_cycloneII_50.(20).cnf.cdb
│ │ │ freedev_cycloneII_50.(20).cnf.hdb
│ │ │ freedev_cycloneII_50.(21).cnf.cdb
│ │ │ freedev_cycloneII_50.(21).cnf.hdb
│ │ │ freedev_cycloneII_50.(22).cnf.cdb
│ │ │ freedev_cycloneII_50.(22).cnf.hdb
│ │ │ freedev_cycloneII_50.(23).cnf.cdb
│ │ │ freedev_cycloneII_50.(23).cnf.hdb
│ │ │ freedev_cycloneII_50.(24).cnf.cdb
│ │ │ freedev_cycloneII_50.(24).cnf.hdb
│ │ │ freedev_cycloneII_50.(25).cnf.cdb
│ │ │ freedev_cycloneII_50.(25).cnf.hdb
│ │ │ freedev_cycloneII_50.(26).cnf.cdb
│ │ │ freedev_cycloneII_50.(26).cnf.hdb
│ │ │ freedev_cycloneII_50.(27).cnf.cdb
│ │ │ freedev_cycloneII_50.(27).cnf.hdb
│ │ │ freedev_cycloneII_50.(28).cnf.cdb
│ │ │ freedev_cycloneII_50.(28).cnf.hdb
│ │ │ freedev_cycloneII_50.(29).cnf.cdb
│ │ │ freedev_cycloneII_50.(29).cnf.hdb
│ │ │ freedev_cycloneII_50.(3).cnf.cdb
│ │ │ freedev_cycloneII_50.(3).cnf.hdb
│ │ │ freedev_cycloneII_50.(30).cnf.cdb
│ │ │ freedev_cycloneII_50.(30).cnf.hdb
│ │ │ freedev_cycloneII_50.(31).cnf.cdb
│ │ │ freedev_cycloneII_50.(31).cnf.hdb
│ │ │ freedev_cycloneII_50.(32).cnf.cdb
│ │ │ freedev_cycloneII_50.(32).cnf.hdb
│ │ │ freedev_cycloneII_50.(33).cnf.cdb
│ │ │ freedev_cycloneII_50.(33).cnf.hdb
│ │ │ freedev_cycloneII_50.(34).cnf.cdb
│ │ │ freedev_cycloneII_50.(34).cnf.hdb
│ │ │ freedev_cycloneII_50.(35).cnf.cdb
│ │ │ freedev_cycloneII_50.(35).cnf.hdb
│ │ │ freedev_cycloneII_50.(36).cnf.cdb
│ │ │ freedev_cycloneII_50.(36).cnf.hdb
│ │ │ freedev_cycloneII_50.(37).cnf.cdb
│ │ │ freedev_cycloneII_50.(37).cnf.hdb
│ │ │ freedev_cycloneII_50.(38).cnf.cdb
│ │ │ freedev_cycloneII_50.(38).cnf.hdb
│ │ │ freedev_cycloneII_50.(39).cnf.cdb
│ │ │ freedev_cycloneII_50.(39).cnf.hdb
│ │ │ freedev_cycloneII_50.(4).cnf.cdb
│ │ │ freedev_cycloneII_50.(4).cnf.hdb
│ │ │ freedev_cycloneII_50.(40).cnf.cdb
│ │ │ freedev_cycloneII_50.(40).cnf.hdb
│ │ │ freedev_cycloneII_50.(41).cnf.cdb
│ │ │ freedev_cycloneII_50.(41).cnf.hdb
│ │ │ freedev_cycloneII_50.(42).cnf.cdb
│ │ │ freedev_cycloneII_50.(42).cnf.hdb
│ │ │ freedev_cycloneII_50.(43).cnf.cdb
│ │ │ freedev_cycloneII_50.(43).cnf.hdb
│ │ │ freedev_cycloneII_50.(44).cnf.cdb
│ │ │ freedev_cycloneII_50.(44).cnf.hdb
│ │ │ freedev_cycloneII_50.(45).cnf.cdb
│ │ │ freedev_cycloneII_50.(45).cnf.hdb
│ │ │ freedev_cycloneII_50.(46).cnf.cdb
│ │ │ freedev_cycloneII_50.(46).cnf.hdb
│ │ │ freedev_cycloneII_50.(47).cnf.cdb
│ │ │ freedev_cycloneII_50.(47).cnf.hdb
│ │ │ freedev_cycloneII_50.(48).cnf.cdb
│ │ │ freedev_cycloneII_50.(48).cnf.hdb
│ │ │ freedev_cycloneII_50.(49).cnf.cdb
│ │ │ freedev_cycloneII_50.(49).cnf.hdb
│ │ │ freedev_cycloneII_50.(5).cnf.cdb
│ │ │ freedev_cycloneII_50.(5).cnf.hdb
│ │ │ freedev_cycloneII_50.(50).cnf.cdb
│ │ │ freedev_cycloneII_50.(50).cnf.hdb
│ │ │ freedev_cycloneII_50.(51).cnf.cdb
│ │ │ freedev_cycloneII_50.(51).cnf.hdb
│ │ │ freedev_cycloneII_50.(52).cnf.cdb
│ │ │ freedev_cycloneII_50.(52).cnf.hdb
│ │ │ freedev_cycloneII_50.(53).cnf.cdb
│ │ │ freedev_cycloneII_50.(53).cnf.hdb
│ │ │ freedev_cycloneII_50.(54).cnf.cdb
│ │ │ freedev_cycloneII_50.(54).cnf.hdb
│ │ │ freedev_cycloneII_50.(55).cnf.cdb
│ │ │ freedev_cycloneII_50.(55).cnf.hdb
│ │ │ freedev_cycloneII_50.(56).cnf.cdb
│ │ │ freedev_cycloneII_50.(56).cnf.hdb
│ │ │ freedev_cycloneII_50.(6).cnf.cdb
│ │ │ freedev_cycloneII_50.(6).cnf.hdb
│ │ │ freedev_cycloneII_50.(7).cnf.cdb
│ │ │ freedev_cycloneII_50.(7).cnf.hdb
│ │ │ freedev_cycloneII_50.(8).cnf.cdb
│ │ │ freedev_cycloneII_50.(8).cnf.hdb
│ │ │ freedev_cycloneII_50.(9).cnf.cdb
│ │ │ freedev_cycloneII_50.(9).cnf.hdb
│ │ │ freedev_cycloneII_50.asm.qmsg
│ │ │ freedev_cycloneII_50.asm_labs.ddb
│ │ │ freedev_cycloneII_50.cbx.xml
│ │ │ freedev_cycloneII_50.cmp.cdb
│ │ │ freedev_cycloneII_50.cmp.hdb
│ │ │ freedev_cycloneII_50.cmp.logdb
│ │ │ freedev_cycloneII_50.cmp.rdb
│ │ │ freedev_cycloneII_50.cmp.tdb
│ │ │ freedev_cycloneII_50.cmp0.ddb
│ │ │ freedev_cycloneII_50.cmp2.ddb
│ │ │ freedev_cycloneII_50.db_info
│ │ │ freedev_cycloneII_50.eco.cdb
│ │ │ freedev_cycloneII_50.fit.qmsg
│ │ │ freedev_cycloneII_50.hier_info
│ │ │ freedev_cycloneII_50.hif
│ │ │ freedev_cycloneII_50.map.cdb
│ │ │ freedev_cycloneII_50.map.hdb
│ │ │ freedev_cycloneII_50.map.logdb
│ │ │ freedev_cycloneII_50.map.qmsg
│ │ │ freedev_cycloneII_50.pre_map.cdb
│ │ │ freedev_cycloneII_50.pre_map.hdb
│ │ │ freedev_cycloneII_50.psp
│ │ │ freedev_cycloneII_50.rtlv.hdb
│ │ │ freedev_cycloneII_50.rtlv_sg.cdb
│ │ │ freedev_cycloneII_50.rtlv_sg_swap.cdb
│ │ │ freedev_cycloneII_50.sgdiff.cdb
│ │ │ freedev_cycloneII_50.sgdiff.hdb
│ │ │ freedev_cycloneII_50.signalprobe.cdb
│ │ │ freedev_cycloneII_50.sld_design_entry.sci
│ │ │ freedev_cycloneII_50.sld_design_entry_dsc.sci
│ │ │ freedev_cycloneII_50.syn_hier_info
│ │ │ freedev_cycloneII_50.tan.qmsg
│ │ │ freedev_cycloneII_50_cmp.qrpt
│ │ │ mux_0kb.tdf
│ │ │ scfifo_j4p.tdf
│ │ │
│ │ └─freedev_cycloneII_50_sim
│ │ atail-f.pl
│ │ contents_file_warning.txt
│ │ jtag_uart_0_input_mutex.dat
│ │ jtag_uart_0_input_stream.dat
│ │ jtag_uart_0_output_stream.dat
│ │
│ ├─freedev_i2c
│ │ │ cb_generator.pl
│ │ │ class.ptf
│ │ │ i2c_master_bit_ctrl.v
│ │ │ i2c_master_byte_ctrl.v
│ │ │ i2c_master_defines.v
│ │ │ i2c_master_top.v
│ │ │ i2c_master_top_bak.v
│ │ │ i2c_master_top_可用备份.v
│ │ │ i2c_master_top_精简可用.v
│ │ │ timescale.v
│ │ │
│ │ └─hdl
│ │ i2c_master_top.v
│ │
│ ├─freedev_sram
│ │ │ cb_generator.pl
│ │ │ class.ptf
│ │ │
│ │ └─hdl
│ ├─freedev_vga
│ │ 0720freedev_vga.v
│ │ 0923freedev_vga.v
│ │ freedev_vga.v
│ │ freedev_vga.v.bak
│ │ freedev_vga_hw.tcl
│ │ read_memoryline.v
│ │ vga_fifo.v
│ │ 行OKfreedev_vga.v
│ │
│ ├─serial_segment
│ │ │ cb_generator.pl
│ │ │ class.ptf
│ │ │
│ │ └─hdl
│ │ serial_segment.v
│ │
│ ├─software
│ │ ├─.metadata
│ │ │ │ .lock
│ │ │ │ .log
│ │ │ │ version.ini
│ │ │ │
│ │ │ └─.plugins
│ │ │ ├─com.altera.nj.ui
│ │ │ │ dialog_settings.xml
│ │ │ │
│ │ │ ├─org.eclipse.cdt.core
│ │ │ │ .log
│ │ │ │ altera.components.1194661208859.pdom
│ │ │ │ hello_led_0.1194661203593.pdom
│ │ │ │ hello_led_0_syslib.1194661202546.pdom
│ │ │ │ vga_control.1194661698937.pdom
│ │ │ │ vga_control_syslib.1194661698562.pdom
│ │ │ │
│ │ │ ├─org.eclipse.cdt.make.core
│ │ │ │ .log
│ │ │ │ hello_led_0.sc
│ │ │ │ hello_led_0_syslib.sc
│ │ │ │ specs.c
│ │ │ │ specs.cpp
│ │ │ │ vga_control.sc
│ │ │ │ vga_control_syslib.sc
│ │ │ │
│ │ │ ├─org.eclipse.cdt.make.ui
│ │ │ │ dialog_settings.xml
│ │ │ │
│ │ │ ├─org.eclipse.cdt.ui
│ │ │ │ dialog_settings.xml
│ │ │ │
│ │ │ ├─org.eclipse.core.resources
│ │ │ │ ├─.history
│ │ │ │ │ ├─2b
│ │ │ │ │ │ a05a6599348f001c1434da84a0d5bab7
│ │ │ │ │ │
│ │ │ │ │ ├─2c
│ │ │ │ │ │ 205f851d398f001c1434da84a0d5bab7
│ │ │ │ │ │
│ │ │ │ │ ├─38
│ │ │ │ │ │ 90223a2f358f001c1434da84a0d5bab7
│ │ │ │ │ │
│ │ │ │ │ ├─4d
│ │ │ │ │ │ 90072d72338f001c1434da84a0d5bab7
│ │ │ │ │ │
│ │ │ │ │ ├─52
│ │ │ │ │ │ 30932e99348f001c1434da84a0d5bab7
│ │ │ │ │ │
│ │ │ │ │ ├─5c
│ │ │ │ │ │ c0067bf0378f001c1434da84a0d5bab7
│ │ │ │ │ │ d053b4ac358f001c1434da84a0d5bab7
│ │ │ │ │ │
│ │ │ │ │ ├─6f
│ │ │ │ │ │ c0d61e72338f001c1434da84a0d5bab7
│ │ │ │ │ │
│ │ │ │ │ ├─79
│ │ │ │ │ │ 20dd3099348f001c1434da84a0d5bab7
│ │ │ │ │ │
│ │ │ │ │ ├─7c
│ │ │ │ │ │ 21dd3099348f001c1434da84a0d5bab7
│ │ │ │ │ │
│ │ │ │ │ ├─86
│ │ │ │ │ │ a0cb6799348f001c1434da84a0d5bab7
│ │ │ │ │ │
│ │ │ │ │ ├─90
│ │ │ │ │ │ 91072d72338f001c1434da84a0d5bab7
│ │ │ │ │ │
│ │ │ │ │ ├─9a
│ │ │ │ │ │ 40408671338f001c1434da84a0d5bab7
│ │ │ │ │ │
│ │ │ │ │ ├─ab
│ │ │ │ │ │ 405e8171338f001c1434da84a0d5bab7
│ │ │ │ │ │
│ │ │ │ │ ├─af
│ │ │ │ │ │ e024dba0348f001c1434da84a0d5bab7
│ │ │ │ │ │
│ │ │ │ │ ├─b1
│ │ │ │ │ │ 41408671338f001c1434da84a0d5bab7
│ │ │ │ │ │
│ │ │ │ │ ├─ba
│ │ │ │ │ │ 90156a99348f001c1434da84a0d5bab7
│ │ │ │ │ │
│ │ │ │ │ ├─be
│ │ │ │ │ │ c0140453348f001c1434da84a0d5bab7
│ │ │ │ │ │
│ │ │ │ │ ├─c1
│ │ │ │ │ │ 908983d8358f001c1434da84a0d5bab7
│ │ │ │ │ │
│ │ │ │ │ ├─d1
│ │ │ │ │ │ 80ec18ec348f001c1434da84a0d5bab7
│ │ │ │ │ │
│ │ │ │ │ ├─d4
│ │ │ │ │ │ f06d9eb3378f001c1434da84a0d5bab7
│ │ │ │ │ │
│ │ │ │ │ ├─e5
│ │ │ │ │ │ 91223a2f358f001c1434da84a0d5bab7
│ │ │ │ │ │
│ │ │ │ │ ├─ea
│ │ │ │ │ │ 0035dc4c398f001c1434da84a0d5bab7
│ │ │ │ │ │
│ │ │ │ │ └─fd
│ │ │ │ │ c09578f0378f001c1434da84a0d5bab7
│ │ │ │ │
│ │ │ │ ├─.projects
│ │ │ │ │ ├─altera.components
│ │ │ │ │ │ └─.indexes
│ │ │ │ │ │ properties.index
│ │ │ │ │ │
│ │ │ │ │ ├─hello_led_0
│ │ │ │ │ │ └─.indexes
│ │ │ │ │ │ │ history.index
│ │ │ │ │ │ │ properties.index
│ │ │ │ │ │ │
│ │ │ │ │ │ ├─33
│ │ │ │ │ │ │ history.index
│ │ │ │ │ │ │
│ │ │ │ │ │ └─af
│ │ │ │ │ │ history.index
│ │ │ │ │ │
│ │ │ │ │ ├─hello_led_0_syslib
│ │ │ │ │ │ └─.indexes
│ │ │ │ │ │ │ properties.index
│ │ │ │ │ │ │
│ │ │ │ │ │ ├─33
│ │ │ │ │ │ │ history.index
│ │ │ │ │ │ │
│ │ │ │ │ │ └─af
│ │ │ │ │ │ history.index
│ │ │ │ │ │
│ │ │ │ │ ├─vga_control
│ │ │ │ │ │ └─.indexes
│ │ │ │ │ │ │ history.index
│ │ │ │ │ │ │ properties.index
│ │ │ │ │ │ │
│ │ │ │ │ │ ├─33
│ │ │ │ │ │ │ history.index
│ │ │ │ │ │ │
│ │ │ │ │ │ └─af
│ │ │ │ │ │ history.index
│ │ │ │ │ │
│ │ │ │ │ └─vga_control_syslib
│ │ │ │ │ └─.indexes
│ │ │ │ │ │ properties.index
│ │ │ │ │ │
│ │ │ │ │ ├─33
│ │ │ │ │ │ history.index
│ │ │ │ │ │
│ │ │ │ │ └─af
│ │ │ │ │ history.index
│ │ │ │ │
│ │ │ │ ├─.root
│ │ │ │ │ │ 2.tree
│ │ │ │ │ │
│ │ │ │ │ └─.indexes
│ │ │ │ │ history.version
│ │ │ │ │ properties.index
│ │ │ │ │ properties.version
│ │ │ │ │
│ │ │ │ └─.safetable
│ │ │ │ org.eclipse.core.resources
│ │ │ │
│ │ │ ├─org.eclipse.core.runtime
│ │ │ │ └─.settings
│ │ │ │ org.eclipse.cdt.debug.core.prefs
│ │ │ │ org.eclipse.cdt.debug.ui.prefs
│ │ │ │ org.eclipse.cdt.managedbuilder.core.prefs
│ │ │ │ org.eclipse.cdt.ui.prefs
│ │ │ │ org.eclipse.core.resources.prefs
│ │ │ │ org.eclipse.ui.editors.prefs
│ │ │ │ org.eclipse.ui.ide.prefs
│ │ │ │ org.eclipse.ui.prefs
│ │ │ │
│ │ │ ├─org.eclipse.debug.core
│ │ │ │ └─.launches
│ │ │ │ hello_led_0 Nios II HW configuration.launch
│ │ │ │ vga_control Nios II HW configuration.launch
│ │ │ │ vga_control programmer.launch
│ │ │ │
│ │ │ ├─org.eclipse.debug.ui
│ │ │ │ dialog_settings.xml
│ │ │ │ launchConfigurationHistory.xml
│ │ │ │
│ │ │ ├─org.eclipse.ui.ide
│ │ │ │ dialog_settings.xml
│ │ │ │
│ │ │ └─org.eclipse.ui.workbench
│ │ │ dialog_settings.xml
│ │ │ workbench.xml
│ │ │
│ │ ├─altera.components
│ │ │ │ .cdtproject
│ │ │ │ .project
│ │ │ │
│ │ │ ├─.settings
│ │ │ │ org.eclipse.cdt.core.prefs
│ │ │ │
│ │ │ └─Newlib C Library
│ │ ├─hello_led_0
│ │ │ │ .cdtbuild
│ │ │ │ .cdtproject
│ │ │ │ .project
│ │ │ │ application.stf
│ │ │ │ hello_led.c
│ │ │ │ readme.txt
│ │ │ │
│ │ │ ├─.settings
│ │ │ │ org.eclipse.cdt.core.prefs
│ │ │ │ org.eclipse.cdt.managedbuilder.core.prefs
│ │ │ │
│ │ │ └─Debug
│ │ ├─hello_led_0_syslib
│ │ │ │ .cdtbuild
│ │ │ │ .cdtproject
│ │ │ │ .project
│ │ │ │ readme.txt
│ │ │ │ system.stf
│ │ │ │
│ │ │ ├─.settings
│ │ │ │ org.eclipse.cdt.core.prefs
│ │ │ │ org.eclipse.cdt.managedbuilder.core.prefs
│ │ │ │
│ │ │ └─Debug
│ │ ├─vga_control
│ │ │ │ .cdtbuild
│ │ │ │ .cdtproject
│ │ │ │ .project
│ │ │ │ application.stf
│ │ │ │ readme.txt
│ │ │ │ vga_control.c
│ │ │ │
│ │ │ ├─.settings
│ │ │ │ org.eclipse.cdt.core.prefs
│ │ │ │ org.eclipse.cdt.managedbuilder.core.prefs
│ │ │ │
│ │ │ └─Debug
│ │ └─vga_control_syslib
│ │ │ .cdtbuild
│ │ │ .cdtproject
│ │ │ .project
│ │ │ readme.txt
│ │ │ system.stf
│ │ │
│ │ ├─.settings
│ │ │ org.eclipse.cdt.core.prefs
│ │ │ org.eclipse.cdt.managedbuilder.core.prefs
│ │ │
│ │ └─Debug
│ └─vga_sys_sim
│ atail-f.pl
│ dummy_file
│ jtag_uart_input_mutex.dat
│ jtag_uart_input_stream.dat
│ jtag_uart_output_stream.dat
│
├─Micro SDRAM Ctrl verilog
│ │ README
│ │
│ ├─func_sim
│ │ func_sim.cfg
│ │ func_sim.log
│ │ func_sim.vpd
│ │ run_sim
│ │ string_decode_fn.v
│ │ tb_sdrm.v
│ │
│ ├─micron
│ │ bank0.txt
│ │ bank1.txt
│ │ mt48lc1m16a1-8a.v
│ │ mt48lc1m16a1.v
│ │ test.v
│ │
│ ├─par
│ │ run_par
│ │ sdrm.edf
│ │ sdrm.ucf
│ │ sdrm_par.sdf
│ │ sdrm_par.v
│ │
│ ├─post_route
│ │ post_route.cfg
│ │ post_route.log
│ │ post_route.vpd
│ │ run_sim
│ │ sdrm_par.sdf
│ │ sdrm_par.v
│ │ string_decode_post_route.v
│ │ tb_post_route.v
│ │
│ ├─src
│ │ brst_cntr.v
│ │ cslt_cntr.v
│ │ define.v
│ │ ki_cntr.v
│ │ rcd_cntr.v
│ │ ref_cntr.v
│ │ sdrm.v
│ │ sdrmc_state.v
│ │ sdrm_t.v
│ │ sys_int.v
│ │
│ └─synth
│ run_synth
│ sdrm.edf
│ sdrm.scr
│ setup.scr
│
└─SDRAM Ctrl1
my_uart_tx.v
rx_data_gene.v
sdram_cmd.v
sdram_ctrl.v
sdram_para.v
sdram_top.v
speed_select.v
test_top.v
vtf_test1.v
waveperl.log
—————————————————————————-
Log:
1.11 Jennifer Tran 06/16/1999
– change controller state machine to 1-hot
– add test bench, micron model
– add synthesis script, place & route script, constraint file
– add README file
– include VHDL version
1.13 Jennifer Tran 06/28/1999
– change p_int.v to sys_int.v,
remove ale signal,
register all inputs from the system to guarantee 125MHz operation
1.14 Jennifer Tran 09/09/1999
– fix OFFSET constraint in par/top.ucf
– minor changes to support FPGA Express and Synplicity
– Note: simplicity users still need to remove use std.textio.all in all vhd files
—————————————————————————-
======================
= Design Description =
======================
The SDRAM controller is designed for the Virtex V300bg432-6. It’s simulated with Micron SDRAM models. The design is verified with backannotated simulation at 125MHz
====================
= Design Hierarchy =
====================
sdrm (top level)
sys_int (system interface)
sdrm_t (SDRAM controller)
sdrmc_state (state machine)
brst_cntr (burst counter)
rcd_cntr (ras-cas-delay counter)
ref_cntr (refresh counter)
cslt_cntr (cas-latency counter)
ki_cntr (keep-idle-during-refresh-active counter)
=================
= Design Notes =
=================
DLL: (in sdrm module)
—-
. dll0: use for clock mirror, provide the clock for the external SDRAM
. dll1: use for deskewing clock signal inside the FPGA (Clk_j), also provide clk2x (Clk_i)
Use global clock buffers for clock signals:
——————————————-
. There are 4 BUFGPs in Virtex. They provide low-skew high-fanout routings.
Use LUT Shift Register to delay signals by certain number of clock cycles
————————————————————————–
. delay DLL lock signal (in sdrm_t module)
. delay data (in sys_int module)
Registering all inputs and ouputs to SDRAM: (in sdrm module)
——————————————-
. All signals going to the SDRAM are registered in the IOB
This makes it easy to calculate timings b/t the FPGA and SDRAM
For write cycles, add FPGA Tiockp to SDRAM Tsu
For read cycles, add SDRAM Tac to FPGA Tsu and
. The tristate signal for the data lines are also registered in the IOB
. Instead of 1 tristate signal for the Data lines,
we duplicate it to 4 signals, each having 8 loads.
This was done to reduce net delays on that tristate signal.
The tristate signal is sd_doe_n in sdrm
Use fast output buffers: (in sdrm module)
————————
. IOBUF_F_12: all signals interfacing to SDRAM
These may create more bounce but are ~2ns faster than regular OBUFs
Use NODELAY mode for input buffers: (in ucf constraint file)
———————————–
. The default IBUF has additional delay to give negative hold time. This eliminates pad-to-pad hold time
. Set NODELAY attribute on inputs to reduce IBUF delay by about 1.5ns
Set timing constraints for place & route tool: (in ucf constraint file)
———————————————
. set clock period on input clock (Clkp)
. set periods b/t clk1x and clk2x (Clk_j, Clk_i)
. set OFFSET constraint for inputs and outputs
================
= Instructions =
================
. to run functional simulation:
cd func_sim
run_sim
. to compile the design
cd synth
run_synth
cd ../par
run_par
. to run backannotated simulation:
cd post_route
run_sim
==============================
= Frequently asked questions =
==============================
1. Is RAS to CAS delay programmable?
————————————
. No, the data registers has a fixed number of pipeline stages. This reference design supports RAS-to-CAS delay of 2 clock cycles. If you need to adjust to a different RAS-to-CAS delay, change the SRL16 Address values in sys_int.v. The address value should be (Trcd/Tck) +1
. Note, you still need to write the RAS-to-CAS value to the Controller’s Mode Reg during PRECHARGE command. The value should be (Trcd/Tck) -2
2. How do I modify the design to support 128Mb/256Mb SDRAM parts with a 64-bit data bus?
—————————————————————————————-
. You’ll need to add more IO buffers for the extra data and address signals (in sdrm.v)
. You’ll need to change ADDR_MSB and DATA_MSB (in define.v)
. In the current design, instead of 1 tristate signal for the Data lines,
we duplicate it to 4 signals, each having 8 loads.
This was done to reduce net delays on that tristate signal.
You may need to add 4 more tristate lines if you’re going to 64-bit.
The tristate signal is sd_doe_n in sdrm.v
=========
= files =
=========
verilog:
README
src/
brst_cntr.v
cslt_cntr.v
define.v
ki_cntr.v
sys_int.v
rcd_cntr.v
ref_cntr.v
sdrm.v
sdrm_t.v
sdrmc_state.v
micron/ SDRAM model from micron
mt48lc1m16a1-8a.v
func_sim/ functional simulation
tb_sdrm.v test bench
string_decode_fn.v display SDRAM state in ASCII
run_sim script to run verilog
func_sim.log verilog log file
func_sim.vpd vpd file for virsim waveform viewer
func_sim.cfg configuration file for virsim
synth/ synthesis
run_synth script to run FPGA compiler
sdrm.scr Synopsys FPGA Compiler script
setup.scr setup file for FPGA Compiler
par/ place & route
run_par script to run Xilinx place & route tool
sdrm.ucf constraint file
sdrm.edf link to ../synth/sdrm.edf (edif netlist)
post_route/ backannotated simulation
run_sim script to run verilog simulation
sdrm_par.v link to ../par/sdrm_par.v
sdrm_par.sdf link to ../par/sdrm_par.sdf
tb_post_route.v test bench
vhdl:
README
src/
brst_cntr.vhd
cslt_cntr.vhd
ihdlutil.vhd
ki_cntr.vhd
sys_int.vhd
rcd_cntr.vhd
ref_cntr.vhd
sdrm.vhd
sdrm_t.vhd
sdrmc_state.vhd
t.vhd
t_sdrm.vhd
vrlgutil.vhd
micron/
ed_comnd.vhd
io_utils.vhd
mt48lc1m16a1-8a.v
mti_pkg.vhd
readme.txt
stdlogar.vhd
test.txt
test.vhd
util1164.vhd
vec_gen.vhd
func_sim/
README
modelsim.ini
run_sim
tb_sdrm.vhd
synth/
compile_scr
sdrm.scr
setup.scr
par/
run_par
sdrm.ucf