规格说明

  • 现在要对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设计的更多相关文章

  1. 静态存储SRAM设计

    SRAM即静态随机存取存储器.它是具有静止存取功能的内存,不需要刷新电路便能保存它内部存储的数据.在工业与科学用的很多子系统,汽车电子等等都用到了SRAM.现代设备中很多都嵌入了几千字节的SRAM.实 ...

  2. AHB总线协议

    https://blog.csdn.net/linton1/article/details/79649249 1. 简介 AHB(Advanced High Performance Bus)总线规范是 ...

  3. AHB接口转APB

    AHB接口转APB 情景 有一个以AHB接口时序设计的IP,现在需将其移至APB总线上,即将使用APB接口时序驱动该IP. 基本思路 将APB的接口信号映射到AHB的接口信号 要点 APB挂接在AHB ...

  4. ahb时序解析

    ahb 总线架构 AHB(Advanced High Performance Bus)总线规范是AMBA(Advanced Microcontroller Bus Architecture) V2.0 ...

  5. AMBA总线介绍

    The Advanced Microcontroller Bus Architecture (AMBA) specification defines an on- chip communication ...

  6. 4k/1k边界问题

    AXI总线,burst操作,不能跨4K边界问题! 在Master_A设计中,假如Master_A只操作一块64M SDRAM(此Master_A不操作任何其他Slave),读写的数据量远远大于4K.因 ...

  7. [转帖]DRAM芯片战争,跨越40年的生死搏杀

    DRAM芯片战争,跨越40年的生死搏杀 超级工程一览 ·2017-08-20 12:50·半导体行业观察 阅读:1.4万 来源:内容来自超级工程一览 , 谢谢. DRAM是动态随机存储器的意思,也就是 ...

  8. FPGA的存储方式大全

    好的时序是通过该严密的逻辑来实现的.http://blog.csdn.net/i13919135998/article/details/52117053介绍的非常好 有RAM(随机存储器可读可写)RO ...

  9. AHB SRAM控制器设计

  10. 基于AHB总线的master读写设计(Verilog)

    一.AHB总线学习 1. AHB总线结构 如图所示,AHB总线系统利用中央多路选择机制实现主机与从机的互联问题.从图中可以看出,AHB总线结构主要可分为三部分:主机.从机.控制部分.控制部分由仲裁器. ...

随机推荐

  1. hszxoj ATM [tarjan]

    hszxoj ATM 题目描述:\(Siruseri\) 城中的道路都是单向的.不同的道路由路口连接.按照法律的规定, 在每个路口都设立了一个 \(Siruseri\) 银行的 \(ATM\) 取款机 ...

  2. python 实现一个简单的计算器

    python 实现一个简单的计算器 本文主要整合下tkinter ,实现下简单的计算器. 代码如下: #!/usr/bin/python3 # -*- coding: UTF-8 -*- " ...

  3. minio集群部署

    minio集群部署 1.说明: 安装前需要再添加一个磁盘后将磁盘挂载到/opt/minio目录,minio集群部署需要独占磁盘分区,不能使用文件夹代替. 运行分布式 MinIO 实例的服务器时间差不应 ...

  4. nginx-通过配置不同的虚拟主机实现,不同的uri访问不同资源

    先来一个配置 再来另外一个 这两个地址对应的域名都配置解析了,并且解析的ipv4地址是你的服务器ip,且上面配置文件中的内容都在服务器做了相应的配置,对应的路径下的资源是需要准备好的(比如网站或图片或 ...

  5. C++ 观察者模式实现

    观察者模式 主体(被观察者)通知一个或多个观察者状态改变/数据更新/事件发生. 描述 C++ 实现观察者模式有几个要点: 观察者都有一个共同的抽象基类 Listener,定义了一个纯虚接口 OnNot ...

  6. Mysql tls 会话:再一次抓包之后,我认识到…

    本文分享自华为云社区<有些事你只有抓包才知道之mysql tls会话>,作者:张俭. 你的mysql客户端和服务端之间开启tls了吗?你的回答可能是No,我根本没开启mysql的tls. ...

  7. 手把手带你通过API创建一个loT边缘应用

    摘要:使用API Arts&API Explorer调用IoT边缘服务接口创建应用,了解边缘计算在物联网行业的应用. 本文分享自华为云社区<使用API Arts&API Expl ...

  8. 一文带你了解GaussDB(DWS) 的Roach逻辑备份实现原理

    摘要:Roach工具是GaussDB(DWS)推出的一款主力的备份恢复工具,包含物理与逻辑备份两种主要能力,本文着重于讲解Roach逻辑备份的实现原理. 一.简介 在大数据时代,数据的完整和可靠性成为 ...

  9. 想了解Python中的super 函数么

    摘要:经常有朋友问,学 Python 面向对象时,翻阅别人代码,会发现一个 super() 函数,那这个函数的作用到底是什么? 本文分享自华为云社区<Python 中的 super 函数怎么学, ...

  10. KubeEdge边缘计算在顺丰科技工业物联网中的实践

    摘要:顺丰物联网平台负责人胡典钢为大家带来了 " 边缘计算在工业物联网中的应用实践与思考 " ,阐述了工业物联网的发展背景.整体架构设计以及边缘计算在此过程中承担的重要角色,并梳理 ...