规格说明

  • 现在要对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. NC65获取Token以及相关信息

    private static void setToken() { IPriviledgedGenerator tokenGenerator = (IPriviledgedGenerator) Busi ...

  2. 在CentOS安装BIND,把所有DNS请求日志转发到syslog服务器去

    在CentOS安装BIND,把所有DNS请求日志转发到syslog服务器去 在vim /etc/named.conf里配置的内容 logging { channel default_debug { f ...

  3. 良心国产工具,比Xshell好用还免费!

    使用或维护Linux系统的都知道,我们日常对服务器的操作,一般都会借助SSH工具远程登录到服务器之后进行操作.常用的SSH工具有不少,比如:Xshell.Putty.SSH Secure Shell ...

  4. 2.elasticsearch中的mapping

    mapping 顾名思义,代表了映射关系.是文档中字段和数据类型的映射关系 为什么要了解mapping 虽然elasticsearch中已尽有的动态mapping(Dynamic Mapping),而 ...

  5. 什么是Helm?它是如何提升云原生应用私有化部署效率的

    公众号「架构成长指南」,专注于生产实践.云原生.分布式系统.大数据技术分享 试想一下,如果有一个项目有50 个微服务,每个微服务都有service.deployment.ingress.pvc等 ya ...

  6. JavaFx之使用指定字体样式(二十九)

    JavaFx之使用指定字体样式(二十九) javafx use specified font 29 javafx默认的字体样式太丑,可能需要我们自定义字体样式. 之前说好放弃学习javafx,没想到越 ...

  7. 如何抑制特定 clang-tidy 警告

    ️ clang-tidy 的规则能够帮助检查潜在的问题,不要盲目抑制警告! 可以通过添加 NOLINT, NOLINTNEXTLINE, 以及 NOLINTBEGIN - NOLINTEND 注释来抑 ...

  8. 当 BACnet 遇上 IoT,你将体验到不一样的大楼

    本文分享自华为云社区<当 BACnet 遇上 IoT>,作者:美码师zale . 引言 在十四五规划中,"新基建"无疑是倍受关注的重点领域.而关于"新基建&q ...

  9. BeanDefinition解密:构建和管理Spring Beans的基石

    本文分享自华为云社区<Spring高手之路11--BeanDefinition解密:构建和管理Spring Beans的基石>,作者: 砖业洋__ . BeanDefinition是Spr ...

  10. 如何在Windows上将iOS应用上传到App Store

      Application Uploader iOS App上架工具是一款非常好用的针对iOS苹果应用程序软件开发的实用编程工具,它的主要作用是帮助用户进行快速的程序应用设计和程序应用调试,节省用户进 ...