SDRAM读写一字(下)
SDRAM读写一字
SDRAM控制模块
上电后进行初始化状态,初始化完成后进入空闲状态,在此进行判断如下判断:
如果自刷新时间到,则进行自刷新操作,操作完成后重新进入空闲状态;
如果读使能有效则进行读操作,操作完成后产生完成信号并延迟一个时钟周期重新进入空闲状态;
如果写使能有效则进行写操作,操作完成后产生完成信号并延迟一个时钟周期重新进入空闲状态。
其中自刷新状态的优先性最高,然后是写操作、最后是读操作;
SDRAM控制状态机流程图:
控制模块代码
自刷新定时
自刷新15us定时流程图
自刷新代码
SDRAM顶层模块
sdram_bank_add:读写SDRAM的地址
write_data: 写如sdram的数据
read_data: 从sdram读出的数据
read_req: 读数据请求信号
write_req: 写数据请求信号
rw_ack: 读写应答信号
bus_signal: 忙信号
init_done: 初始化完成信号,输出,高电平有效
SDRAM接口信号
sdram_clk: sdram时钟信号
sdram_data: sdram读写数据
sdram_command:cke、cs_n、ras、cas_n、we_n,SDRAM指令信号
sdram_address:[13:12]BA , [11:0]Addr,SDRAM地址信号
sdram_dqm: SDRAM数据掩码
SDRAM测试模块编写
测试模块设计
根据SDRAM的顶层模块的接口信号,在判断sdram初始化完成后对sdram的特定地址进行写入数据,在写入完成后延迟一段时间,然后将该特定地址的数据读出显示在LED灯上,一验证整个工程的功能。
测试模块流程图
测试代码
实验效果
SDRAM原理图
LED原理图
实验的工程夹文件为"sdram_read_write_a_word",其源代码文件如下:
实验中对地址为10和11分别写入:16'h5555和16'h0003;
然后通过指定地址读出数据显示在LED灯上,实验中可以自行更改读写的地址和数据,以验证读写的正确性。
每日推送不同科技解读,原创深耕解读当下科技,敬请关注微信公众号“科乎”。
SDRAM读写一字(下)的更多相关文章
- SDRAM读写一字(上)
SDRAM读写一字 系统设计 SDRAM指令 指令 常量名 CKE CSn RAS CASn WEn 备注 空操作 NOP 1 0 1 1 1 行激活 ACTIVE 1 0 0 1 1 读操作 ...
- 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验十九:SDRAM模块② — 多字读写
实验十九:SDRAM模块② — 多字读写 表示19.1 Mode Register的内容. Mode Register A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A ...
- 如果让你来做HashMap扩容,如何实现在不影响读写的情况下扩容?
我觉得逼格高,不是体现在问题多刁钻,知识点多深,而是一个非常明确,无歧义的问题,能考察出面试者多方面的能力.这个问题背后:1.了解java中,HashMap的实现:如果一个面试者了解这一点,说明至少他 ...
- SDRAM读写操作
SDRAM读写操作 1.读操作 2.写操作 SDRAM所有时序参数都可以在芯片手册上查到.
- 基于Mysql-Proxy实现Mysql的主从复制以及读写分离(下)
基于Mysql-Proxy实现Mysql的主从复制以及读写分离(下) 昨天谈到了Mysql实现主从复制,但由于时间原因并未讲有关读写分离的实现,之所以有读写分离,是为了使数据库拥有双机热备功能,至于双 ...
- 【6集iCore3_ADP触摸屏驱动讲解视频】6-5 底层驱动之SDRAM读写(下)
源视频包下载地址: 链接:http://pan.baidu.com/s/1jIC2LKy 密码:zyn3 银杏科技优酷视频发布区: http://i.youku.com/gingko8
- SDRAM读写状态解析
SDRAM的写状态流程 IDLE状态到WRITE状态 (1)在IDLE状态需要先给ACT命令激活某一行,此时处于Row Active状态. (2)在Row Active状态之后,给Write命令则会进 ...
- sqlite数据库读写在linux下的权限问题
近期在学linux,恰巧有个php项目要做.于是配置好环境打算在linux下做. 无奈站点执行后一片空白.经过调试发现是sqlite数据库的问题. 安装sqlite扩展 apt-get install ...
- 正确理解Python文件读写模式字w+、a+和r+
w+ 和 r+的差别不难理解.还有a+ +同一时候读写,就可以读又可写,边写边读.边读边写,不用flush,用seek 和 tell可測得. fp = open("a.txt", ...
随机推荐
- 导出HTML
版权声明:本文为博主原创文章,未经博主允许不得转载.
- Android UI编程(1)——九宫格(GridView)
(转自:http://blog.csdn.net/Thanksgining/article/details/42968847) 参考博客:http://blog.csdn.net/xyz_lmn/ar ...
- C语言数据库编程
----摘自个人C语言数据库项目报告 3.4逻辑结构的SQL语句实现 创建基本表: 3.4-1建立商品表: create table goods(goods_id int primary key,go ...
- To create my first app in iOS with Xcode(在Xcode创建我的第一个iOS app )
To create my first app in iOS create the project. In the welcome window, click “Create a new Xcode p ...
- monkeyrunner之夜神模拟器的安装与使用(二)
在上一篇文章-安卓开发环境搭建中,我们创建并启动了eclipse自带的安卓模拟器,该模拟器不仅启动慢,而且在使用过程中的反应速度也是出奇的差,经常出现卡机现象.为了解决这种现象,因此,我们又寻找到了更 ...
- 理解 QEMU/KVM 和 Ceph(2):QEMU 的 RBD 块驱动(block driver)
本系列文章会总结 QEMU/KVM 和 Ceph 之间的整合: (1)QEMU-KVM 和 Ceph RBD 的 缓存机制总结 (2)QEMU 的 RBD 块驱动(block driver) (3)存 ...
- 睡觉问题早晚成为我顶头疼的问题。。。-PHP
hi 昨晚又作自己,睡不好整个人都不好... 1.PHP实现页面静态化 二.纯静态化 2.2 实现页面纯静态化的原理 --基本方式 file_put_contents()函数: 使用php内置缓存机制 ...
- 贪吃蛇(C++实现,VC6.0编译,使用了EasyX图形库)
程序效果: 代码: //main.cpp 1 #include <iostream> #include<fstream> #include <graphics.h> ...
- u3d_shader_surface_shader_6
主题:1.膨胀效果:2.surface shader实际生成的代码: o(︶︿︶)o 粘贴复制代码易,理解透彻代码难... 一:膨胀效果 1.在#pragma 编译指令里添加vertex:vert以 ...
- Convert.ToDateTime(值),方法可以把一个值转化成DateTime类型。
例子:将日历控件的值转化成DateTime类型. DateTime beginDate = Convert.ToDateTime(this.beginCalendar.EditValue);