SDRAM_verilog_串口例程 (1)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

SDRAM工程顶层RTL视图:clkrst_nclk_100mclk_25msdram_clksys_rst_nclkrst_nsdram_rd_reqsdram_wr_reqsys_addr[21..0]sys_data_in[15..0]sdram_cas_nsdram_ckesdram_cs_nsdram_ras_nsdram_rd_acksdram_we_nsdram_wr_acksys_data_out[15..0]sdram_ba[1..0]sdram_addr[11..0]sdram_data[15..0]clk_100mclk_25mrdf_rdreqsdram_rd_acksdram_wr_acksyswr_donewrf_wrreqwrf_din[15..0]sys_data_out[15..0]sdram_rd_reqsdram_wr_reqtx_startsys_data_in[15..0]rdf_dout[15..0]clkrst_nsdram_rd_acksyswr_donewrf_wrreqwrf_din[15..0]moni_addr[21..0]clkrst_ntx_starttx_data[7..0]fifo232_rdreqrs232_txsdram_top:uut_sdramtopclkrst_nsdram_clksdram_ckesdram_cs_nsdram_ras_nsdram_cas_nsdram_we_nrs232_txsdram_ba[1..0]sdram_addr[11..0]rdf_dout[15..0]sdram_data[15..0]sys_ctrl:uut_sysctrlsdfifo_ctrl:uut_sdffifoctrldatagene:uut_datageneuart_ctrl:uut_uartctrlSDRAM控制器RTL视图:clkrst_nsdram_rd_reqsdram_wr_reqsdram_busysdram_rd_acksdram_wr_acksys_dout_rdyinit_state[4..0]work_state[3..0]cnt_clk[8..0]clkrst_nsys_addr[21..0]init_state[4..0]work_state[3..0]sdram_cas_nsdram_ckesdram_cs_nsdram_ras_nsdram_we_nsdram_ba[1..0]sdram_addr[11..0]clkrst_nsys_data_in[15..0]work_state[3..0]cnt_clk[8..0]sys_data_out[15..0]sdram_data[15..0]sdram_cmd:module_002sdram_wr_data:module_003clkrst_nsdram_wr_reqsdram_rd_reqsdram_wr_acksdram_rd_acksdram_busysys_dout_rdysdram_ckesdram_cs_nsdram_ras_nsdram_cas_nsdram_we_nsys_addr[21..0]sys_data_in[15..0]sys_data_out[15..0]sdram_ba[1..0]sdram_addr[11..0]sdram_data[15..0]sdram_ctrl:module_001FIFO控制器RTL视图:rdclkrdreqwrclkwrreqdata[15..0]q[15..0]wrusedw[8..0]rdclkrdreqwrclkwrreqdata[15..0]q[15..0]wrusedw[8..0]CINA[8..0]B[8..0]LESS_THAN1CINA[8..0]B[8..0]LESS_THAN=A[8..0]B[8..0]EQUAL1LessThan09'h008--sdram_wr_req~0sdram_rd_req~0Equal09'h000--tx_start~0clk_25mclk_100mwrf_wrreqsdram_wr_acksdram_wr_reqrdf_rdreqsdram_rd_acksdram_rd_reqsyswr_donetx_startwrf_din[15..0]sys_data_in[15..0]sys_data_out[15..0]rdf_dout[15..0]LessThan19'h100--wrfifo:uut_wrfifordfifo:uut_rdfifo首先由写SDRAM逻辑模块在上电延时后从SDRAM的0地址开始写入递增数据,随后通过内部FIFO依次送入SDRAM;SDRAM的所有地址写完数据后,启动SDRAM读逻辑,从0地址开始读出SDRAM内的数据放入缓存FIFO中,然后串口模块把该FIFO中的数据依次上传到PC机(串口线接到PC机,使用串口调试助手观察即可)。整个过程主要就是测试SDRAM读写,内部逻辑大都使用25MHz的时钟,SDRAM读写使用了100MHz,通过PLL进行设置。该工程基于altera的QuartusII8.1i进行设计,使用更高版本的软件均可。工程内包括了时序分析、测试用例脚本。代码里除了PLL配置、FIFO配置使用了IPcore,SDRAM控制等部分全部使用基本verilog语法编写,适合于altera的cyclone系列EP1C3T144C8器件。/*************************SDRAM顶层模块*********************************/modulesdr_test(clk,rst_n,sdram_clk,sdram_cke,sdram_cs_n,sdram_ras_n,sdram_cas_n,sdram_we_n,sdram_ba,sdram_addr,sdram_data,//sdram_udqm,sdram_ldqmrs232_tx,/*sdram_rd_req,sdram_wr_ack,sdram_rd_ack,sys_data_out,sdram_busy,sys_data_in,sys_dout_rdy,*/rdf_dout/*,rdf_rdreq*/);inputclk;//系统时钟,100MHzinputrst_n;//复位信号,低电平有效//FPGA与SDRAM硬件接口outputsdram_clk;//SDRAM时钟信号outputsdram_cke;//SDRAM时钟有效信号outputsdram_cs_n;//SDRAM片选信号outputsdram_ras_n;//SDRAM行地址选通脉冲outputsdram_cas_n;//SDRAM列地址选通脉冲outputsdram_we_n;//SDRAM写允许位output[1:0]sdram_ba;//SDRAM的L-Bank地址线output[11:0]sdram_addr;//SDRAM地址总线//outputsdram_udqm;//SDRAM高字节屏蔽//outputsdram_ldqm;//SDRAM低字节屏蔽inout[15:0]sdram_data;//SDRAM数据总线outputrs232_tx;//RS232发送数据信号//////////////////////////////////////////////////SDRAM的封装接口测试引出/*outputsdram_rd_req;//系统读SDRAM请求信号outputsdram_wr_ack;//系统写SDRAM响应信号outputsdram_rd_ack;//系统读SDRAM响应信号output[15:0]sys_data_in;//写SDRAM时数据暂存器,4个突发读写字数据,默认为00地址bit15-0;01地址bit31-16;10地址bit47-32;11地址bit63-48output[15:0]sys_data_out;//读SDRAM时数据暂存器,(格式同上)outputsdram_busy;//SDRAM忙标志,高表示SDRAM处于工作中outputsys_dout_rdy;//SDRAM数据输出完成标志*/output[15:0]rdf_dout;//sdram数据读出缓存FIFO输出数据总线//outputrdf_rdreq;//sdram数据读出缓存FIFO数据输出请求,高有效//////////////////////////////////////////////////SDRAM的封装接口wiresdram_wr_req;//系统写SDRAM请求信号wiresdram_rd_req;//系统读SDRAM请求信号wiresdram_wr_ack;//系统写SDRAM响应信号,作为wrFIFO的输出有效信号wiresdram_rd_ack;//系统读SDRAM响应信号,作为rdFIFO的输写有效信号wire[21:0]sys_addr;//读写SDRAM时地址暂存器,(bit21-20)L-Bank地址:(bit19-8)为行地址,(bit7-0)为列地址wire[15:0]sys_data_in;//写SDRAM时数据暂存器wire[15:0]sys_data_out;//sdram数据读出缓存FIFO输入数据总线wiresdram_busy;//SDRAM忙标志,高表示SDRAM处于工作中wiresys_dout_rdy;//SDRAM数据输出完成标志//wrFIFO输入控制接口wire[15:0]wrf_din;//sdram数据写入缓存FIFO输入数据总线wirewrf_wrreq;//sdram数据写入缓存FIFO数据输入请求,高有效//rdFIFO输出控制接口wire[15:0]rdf_dout;//sdram数据读出缓存FIFO输出数据总线wirerdf_rdreq;//sdram数据读出缓存FIFO数据输出请求,高有效//系统控制相关信号接口wireclk_25m;//PLL输入25MHz时钟wireclk_100m;//PLL输出100MHz时钟wiresys_rst_n;//系统复位信号,低有效//------------------------------------------------//例化系统复位信号和PLL控制模块sys_ctrluut_sysctrl(.clk(clk),.rst_n(rst_n),.sys_rst_n(sys_rst_n),.clk_25m(clk_25m),.clk_100m(clk_100m),.sdram_clk(sdram_clk));//------------------------------------------------//例化SDRAM封装控制模块sdram_topuut_sdramtop(//SDRAM.clk(clk_100m),.rst_n(sys_rst_n),.sdram_wr_req(sdram_wr_req),.sdram_rd_req(sdram_rd_req),.sdram_wr_ack(sdram_wr_ack),.sdram_rd_ack(sdram_rd_ack),.sys_addr(sys_addr),.sys_data_in(sys_data_in),.sys_data_out(sys_data_out),.sys_dout_rdy(sys_dout_rdy),//.sdram_clk(sdram_clk),.sdram_busy(sdram_busy),.sdram_cke(sdram_cke),.sdram_cs_n(sdram_cs_n),.sdram_ras_n(sdram_ras_n),.sdram_cas_n(sdram_cas_n),.sdram_we_n(sdram_we_n),.sdram

1 / 27
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功