• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

sdram芯片读写测试设计Verilog代码Quartus AX301开发板

9小时前
142
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-241112191921B8.docx

共1个文件

名称:sdram芯片读写测试设计Verilog代码Quartus? AX301开发板

软件:Quartus

语言:Verilog

代码功能:

SDRAM?即同步动态随机存储器,同步是指?Memory?工作需要同步时钟,内部的命令的发送不数据的传输都以它为基准;动态是指存储阵列需要不断的刷新来保证数据不丢失;随机是指数据不是线性依次存储,而是自由指定地址串行数据读写。因为 SDRAM 具有存取速度大大高于 FLASH 存储器, 且具有读/写的属性, 因此 SDRAM 在系统中主要用于程序的运行空间,大数据的存储及堆栈。

SDRAM?是高速的动态随机存取存储器,?它的同步接口和完全流水线的内部结构使其拥有极大的数据速率,?SDRAM?的时钟频率可以达到?100Mhz?以上,?一片?16?位数据宽度的?SDRAM?的读写数据带宽达到?1.6Gbit/s。

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

本代码已在AX301开发板验证,AX301开发板如下,其他开发板可以修改管脚适配:

AX301开发板.png

设计文档:

SDRAM?读写测试实验

1?实验简介

本实验为后续使用 SDRAM 的实验做铺垫,通过循环读写 SDRAM,了解 SDRAM 工作原理,和 SDRAM 控制器的写法,由于 SDRAM 比其他外设复杂,掌握 SDRAM 不是一时之事,但在已有?SDRAM?控制器情况下熟练应用,是后续音频、视频等需要用到?SDRAM?实验的基础。采用?HY57V2562GTR/W9825G6KH/HY57V561620FTP?型号?SDRAM。

2?实验原理

SDRAM?即同步动态随机存储器,同步是指?Memory?工作需要同步时钟,内部的命令的发送不数据的传输都以它为基准;动态是指存储阵列需要不断的刷新来保证数据不丢失;随机是指数据不是线性依次存储,而是自由指定地址串行数据读写。因为 SDRAM 具有存取速度大大高于 FLASH?存储器,且具有读/写的属性, 因此 SDRAM 在系统中主要用于程序的运行空间,大数据的存储及堆栈。

SDRAM?是高速的动态随机存取存储器,?它的同步接口和完全流水线的内部结构使其拥有极大的数据速率, SDRAM?的时钟频率可以达到?100Mhz?以上,?一片?16?位数据宽度的?SDRAM?的读写数据带宽达到?1.6Gbit/s。

2.1?硬件介绍

开发板设计采用 HY57V2562GTR/W9825G6KH/HY57V561620FTP 型号,容量为的 256Mbit,采用了 54?引脚的?TSOP?封装,?数据宽度都为?16?位,?工作电压为?3.3V,并且采用同步接口方式所有的信号都是时钟信号

其含有?16?位数据总线,?4?个?Bank。存储架构为?4Banks x 4Mbits x16,?最高的工作频率为?133Mhz。在?PCB?的设计上,?考虑高速信号的数据传输的可靠性,?走线上严格保证等长设计和阻抗控制

AX301/AX4010?开发板?SDRAM?部分的原理图如下:

2.2?SDRAM?的控制和时序介绍

SDRAM?具有以下几个特点:

(1)采取行列地址复用原则, SDRAM 的地址线在不同的命令下提供不同的地址, 行列地址复用 13 根地址线。
(2)需要定时刷新。
(3)在迚行读写时, 需先激活行。换页 读写时要预充电关闭的行, 然后再激活新的行迚行读写。
(4)SDRAM 正常工作之前配置模式寄存器

下图为 SDRAM 命令真值表,通过 CKE、CS、RAS、CAS、WE 的不同状态,发出不同的命令。

SDRAM?命令真值表

2.2.1?SDRAM?初始化

AX301/AX4010?开发板上的?SDRAM?的模式寄存器的?A0~A2?位为?SDRAM?读写?Burst?长度的设置;?A3?为?Burst?类型,选择连续模式还是交叉模式;?A4~A6?为?CAS?数据潜伏期设置;A9?选择工作模?式。

具体说明见下图所示:

部分代码展示:

//////////////////////////////////////////////////////////////////////////////////
//???The?external?memory?test?module?writes?the?address?as?data?and?compares????//
//???it?to?the?address??????????????????????????????????????????????????????????//
//??Author:?meisq???????????????????????????????????????????????????????????????//
//??????????msq@qq.com??????????????????????????????????????????????????????????//
//??????????ALINX(shanghai)?Technology?Co.,Ltd??????????????????????????????????//
//??????????heijin??????????????????????????????????????????????????????????????//
//?????WEB:?http://www.alinx.cn/????????????????????????????????????????????????//
//?????BBS:?http://www.heijin.org/??????????????????????????????????????????????//
//??????????????????????????????????????????????????????????????????????????????//
//////////////////////////////////////////////////////////////////////////////////
//??????????????????????????????????????????????????????????????????????????????//
//?Copyright?(c)?2017,ALINX(shanghai)?Technology?Co.,Ltd????????????????????????//
//????????????????????All?rights?reserved???????????????????????????????????????//
//??????????????????????????????????????????????????????????????????????????????//
//?This?source?file?may?be?used?and?distributed?without?restriction?provided????//
//?that?this?copyright?statement?is?not?removed?from?the?file?and?that?any??????//
//?derivative?work?contains?the?original?copyright?notice?and?the?associated????//
//?disclaimer.??????????????????????????????????????????????????????????????????//
//??????????????????????????????????????????????????????????????????????????????//
//////////////////////////////////////////////////////////////////////////////////
//================================================================================
//??Revision?History:
//??Date??????????By????????????Revision????Change?Description
//--------------------------------------------------------------------------------
//2017/6/28????????????????????1.0??????????Original
//*******************************************************************************/
module?mem_test
#(
parameter?MEM_DATA_BITS??????????=?32,??//external?memory?user?interface?data?width
parameter?ADDR_BITS??????????????=?23,??//external?memory?user?interface?address?width
parameter?BUSRT_BITS?????????????=?10,??//external?memory?user?interface?burst?width
parameter?BURST_SIZE?????????????=?128??//burst?size
)
(
input????????????????????????????rst,
input????????????????????????????mem_clk,?????????????????????????????//?external?memory?controller?user?interface?clock
output?reg???????????????????????rd_burst_req,????????????????????????//?to?external?memory?controller,send?out?a?burst?read?request
output?reg???????????????????????wr_burst_req,????????????????????????//?to?external?memory?controller,send?out?a?burst?write?request
output?reg[BUSRT_BITS?-?1:0]?????rd_burst_len,????????????????????????//?to?external?memory?controller,data?length?of?the?burst?read?request,?not?bytes
output?reg[BUSRT_BITS?-?1:0]?????wr_burst_len,????????????????????????//?to?external?memory?controller,data?length?of?the?burst?write?request,?not?bytes
output?reg[ADDR_BITS?-?1:0]??????rd_burst_addr,???????????????????????//?to?external?memory?controller,base?address?of?the?burst?read?request

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1350

  • 2-241112191921B8.docx
    下载

相关推荐