AHB to Sram设计
规格说明

- 现在要对addr1进行操作(原addr1中存储的数据为data),现在需要写入data1,下一拍对addr1进行读操作,需要读出data1(读出最新的数据data1,而不是data),这时候需要一个buffer,将上一拍的data1作为读数据进行返回,因为data1可能还没有写到sram中.
接口

AHB读时序

AHB写时序

- 第一拍给出地址和控制信号
- 在hready为高的时候,在第二拍给出写数据
SRAM读时序

- SRAMCS是片选信号,chip select,只有为高的时候SRAM才会真正的工作;
- 不考虑反压和错误的情况下,时序与AHB读时序相同
SRAM写时序

- 第一拍给出地址的同时给出写数据,和AHB总线不同,AHB总线是在下一拍给出写数据
时序转换

全部是读的情况

- 使用组合逻辑,将AHB的读写地址给到SRAM的读写地址,在下一拍将读数据给到AHB读数据
全部是写的情况

*** 由于SRAM的写操作命令地址和数据是在一拍完成的,而AHB写数据要在第二拍才能写入,所以需要将AHB中的地址延迟一拍再与SRAM中的地址进行同步,**这样地址数据就满足了sram接口要求。
- 将AHB的地址和控制信号打一拍之后,再将地址和控制信号给到SRAM
先读后写
先读后写:先读后写实际上不涉及数据更新,就是写跟在读后面而已,下面时序稍微有点问题,对于读这一部分ADDR和DATA。AHB和SRAM两侧应该是同一拍的。


先写后读
读写地址相同,当读写地址相同的时候,需要完成读数据的拼接以及更新。
- 首先判断是否是先写后读,我们需要把写的控制信号打一拍。如果这一拍是读,上一拍是写同时满足,则说明出现了先写后读。buf_pend代表buffer write data valid。
- 判断是否读写地址相同,上一拍的地址和这一拍的地址相同,则代表读写地址相同。



- 可以将buf_pend拉高。并且地址也相同,因此buf_hit也会拉高。这个时候HRDATA返回的数据就应该是完成替换以后的值。

数据更新
- 对读数据更新,可以看到如果buf_hit并且buf_we有效,则代表上一拍确实写了这个字节,这种情况下我们就应该把这一字节替换成上一拍写的值,而不是用SRAM读出来的值。
- addr2写操作不会在下一拍就写进去SRAM,因为出现了先写后读,这个写SRAM的操作会被暂时的pending住!当addr3来的时候,这个时候addr对应的data2才能够写进去。


AHB to Sram设计的更多相关文章
- 静态存储SRAM设计
SRAM即静态随机存取存储器.它是具有静止存取功能的内存,不需要刷新电路便能保存它内部存储的数据.在工业与科学用的很多子系统,汽车电子等等都用到了SRAM.现代设备中很多都嵌入了几千字节的SRAM.实 ...
- AHB总线协议
https://blog.csdn.net/linton1/article/details/79649249 1. 简介 AHB(Advanced High Performance Bus)总线规范是 ...
- AHB接口转APB
AHB接口转APB 情景 有一个以AHB接口时序设计的IP,现在需将其移至APB总线上,即将使用APB接口时序驱动该IP. 基本思路 将APB的接口信号映射到AHB的接口信号 要点 APB挂接在AHB ...
- ahb时序解析
ahb 总线架构 AHB(Advanced High Performance Bus)总线规范是AMBA(Advanced Microcontroller Bus Architecture) V2.0 ...
- AMBA总线介绍
The Advanced Microcontroller Bus Architecture (AMBA) specification defines an on- chip communication ...
- 4k/1k边界问题
AXI总线,burst操作,不能跨4K边界问题! 在Master_A设计中,假如Master_A只操作一块64M SDRAM(此Master_A不操作任何其他Slave),读写的数据量远远大于4K.因 ...
- [转帖]DRAM芯片战争,跨越40年的生死搏杀
DRAM芯片战争,跨越40年的生死搏杀 超级工程一览 ·2017-08-20 12:50·半导体行业观察 阅读:1.4万 来源:内容来自超级工程一览 , 谢谢. DRAM是动态随机存储器的意思,也就是 ...
- FPGA的存储方式大全
好的时序是通过该严密的逻辑来实现的.http://blog.csdn.net/i13919135998/article/details/52117053介绍的非常好 有RAM(随机存储器可读可写)RO ...
- AHB SRAM控制器设计
- 基于AHB总线的master读写设计(Verilog)
一.AHB总线学习 1. AHB总线结构 如图所示,AHB总线系统利用中央多路选择机制实现主机与从机的互联问题.从图中可以看出,AHB总线结构主要可分为三部分:主机.从机.控制部分.控制部分由仲裁器. ...
随机推荐
- 【笔记整理】request模块基本使用
基本使用 发送get请求.获取响应各种请求.响应信息 def fun1(): url = "http://www.baidu.com" resp = requests.get(ur ...
- lottie 动画在 vue 中的使用
前言 最近我所负责的项目中,我采用了动画效果,并开始使用 gif 来实现.然而,在实践过程中,我发现 gif 格式的动画在 git 中出现了明显的锯齿感,这让我非常困扰.为了追求更完美的表现效果,我最 ...
- Vue3节流指令封装
节流指令 import { ObjectDirective } from 'vue' interface ThrottleEl extends HTMLElement { throttleEvent: ...
- Halo新年灯笼-halonewyaer
title: Halo新年灯笼 date: 2021-12-29 15:49:34.665 updated: 2022-03-10 16:00:53.189 url: https://www.yby6 ...
- redis + AOP + 自定义注解实现接口限流
限流介绍 限流(rate limiting) 是指在一定时间内,对某些资源的访问次数进行限制,以避免资源被滥用或过度消耗.限流可以防止服务器崩溃.保证用户体验.提高系统可用性. 限流的方法有很多种 ...
- Java 集合(二) Map
Map 定义的是键值对的映射关系,一般情况下,都会选择 HashMap 作为具体的实现,除了 HashMap 之外,另一个使用到的比较多的 Map 实现是 TreeMap HashMap 构造函数 H ...
- RV1126 DSI 调试
一.基本信息 开发板:RV1126 linux版本:4.19.111 显示屏:HX070JGI50(7寸) 显示器分别率:1024 * 600 二.MIPI协议 连接示意图(图片来源,正点资料) MI ...
- linux中redis下载安装部署启动
下载安装部署 创建一个存放Redis的文件夹,下载安装包 mkdir redis 进入redis文件 cd redis 下载redis安装包 wget http://download.redis.io ...
- Copy攻城狮辛酸史:含泪“一分钟”跑通MindSpore的LeNet模型
摘要:一个Cope 攻城狮用切身实例告诉你: Cope代码体验一时爽,BUG修改花半天. 前言:此文为r0.7-beta的操作实践,为什么我的眼里常含泪水,因为我对踩坑这件事爱得深沉.谨以此文献给和我 ...
- 细说Python Lambda函数的用法,建议收藏!
摘要:今天我就和大家聊聊lambda函数,在Python编程中,大家习惯将其称为表达式. 名称是用于引用或寻址任何实体的约定.我们周围的几乎所有事物都有名字.编程领域也与此一致.但这是必须命名的吗?还 ...