AHB-SRAM简单设计之架构图解

前言

还是慢慢来,比较快!在接触这个小项目时,就有种想法,吃透项目!

参考文章:基于AHB总线的sram控制器设计AHB—SRAMC项目(结构图,核心代码、Testbench架构)

  • 问:对于小白,该项目有哪些模块?如何着手?
  • 答:这个项目分为三个模块,一个顶层模块sram_top.v,两个内部模块sram_slave_if.v和sram_core.v。其中sram_core.v,一般是公司买的,不用自己写,所以大家可以直接拿来用;sram_slave_if.v是总线控制单元,我们主要是设计这个内部模块;sram_top顶层模块,就是把前面这两个模块例化并连接即可。因此,这个项目的核心部分就是设计sram_slave_if.v

AHB-SRAM介绍

SRAM在整个系统中作为缓存,SRAM控制器实现SRAM存储器与AHB总线的数据信息交换,其一端连接AHB总线,另一端连接SRAM(8k*8两个bank),将AHB总线上的读写操作转换成标准的SRAM读写操作(将控制信号和地址信号及数据信号进行转化,并将其发送给相应的SRAM存储器,进行实际的数据存取)。

本项目中的SRAM控制器具有较低的功耗和较小的面积,其一端连接AHB总线,另一端连接大小为64K的SRAM存储器,该存储器为单端口。本项目的SRAM控制器的作用就是实现SRAM存储器与AHB总线的数据信息交换。其简单结构示意图如图所示:

在这里插入图片描述

AHB-SRAM结构图(详细版)

在这里插入图片描述

SRAM 控制器各模块详细描述

01. 内部模块 | AHB总线控制单元 ahb_slave_if.v

AHB总线控制单元 ahb_slave_if.v部分的详细设计,点击链接跳转!

总线的控制单元,在设计上称为slave interface(从机端口),用来连接总线与SRAM控制器所有AHB总线传输过来的数据信号都必须经过总线控制单元的转换处理,才能驱动对应的模块(这里是sram模块)。总线控制单元的接口图如图所示:
在这里插入图片描述
小白请注意,上面这张图是AMBA协议中的原图—— AHB bus slave interface(AHB总线从机端口),不是什么玄学!

图中左侧的数据信号为AHB总线传输到总线控制单元的信号,包括地址和数据信号。图中右侧为控制单元反馈给AHB总线的信号。这些信号都是与AHB总线兼容的。当HSEL信号有效时,总线控制单元与 SRAM存储器控制单元之间可以进行信息传输,实现对SRAM存储器的读写操作。

总线控制单元的主要作用就是接收来自AHB总线的地址和数据信息等,将这些总线访问的指令信息处理后送到其他单元:将读写地址信息传送到地址路径,将写数据送到数据路径,同时接收数据路径返回的读数据。

02. 内部模块 sram_core.v

内部模块 sram_core.v部分的详细设计,点击链接跳转!

一般地,此部分代码不需要自己写。如需此部分代码,请点击链接跳转博客了解

03. 顶层模块 | SRAM控制单元 sram_top.v

SRAM控制单元 sram_top.v部分的详细设计,点击链接跳转!

SRAM控制单元直接控制SRAM存储器进行存取操作,因此,SRAM 控制单元与SRAM存储器连接的接口信号也很重要。SRAM存储控制单元和SRAM存储器的信号接口图如下所示:
在这里插入图片描述

SRAM的工作原理很简单,SRAM控制单元根据接收到的总线控制信号,将这些信号处理转化为SRAM存储器可以识别的信号,发送到 SRAM存储器;之后,将经过地址译码的物理地址传送到存储器的地址总线,并将数据路径处理的数据送到SRAM存储器的数据总线。最后,SRAM存储器进行相应的读写访问。如果是写操作,SRAM 控制单元的任务就完成了,SRAM 存储器已将数据信息按照要求写入。如果是读操作,SRAM控制单元需要接收返回的读数据,将其送到数据路径,由数据路径将信息传输给AHB总线,最终实现总线对SRAM的读操作。

AHB-SRAMC设计规格:

支持8位、16位和32位的SRAM数据读写操作;

支持SRAM单周期读写(直接影响Soc性能);

支持在多块SRAM组成的存储器中,根据不同地址系统选择一块或者多块SRAM。未被选中的SRAM则处于 low power standby状态。(低功耗)

主要注意2个问题:

AHB总线传输,数据位宽有 8/16/32的传输模式,而sram不一定支持。这里采用4个sram来实现,每块sram对应一个byte。

AHB总线时序和sram时序的转化。AHB总线数据传输具有地址周期和数据周期,AHB的地址和控制信号发送完毕后,下一个周期才发送数据,而sram的写时序是同时输入地址和数据,所以这里对AHB的地址和控制信号做打拍处理。

sram_tb.v跑出来的波形图

生成波形的相关文件,已打包上传至github,请点击跳转,并自行下载!
在这里插入图片描述

在这里插入图片描述

后记

这是AHB-SRAM项目的架构,如果需要看其他部分,请点击跳转
AHB-SRAM简单设计之架构图解
这篇文章,涉及到的所有文件,已打包上传至博客,请点击跳转,并自行免费下载!
AHB-SRAM简单设计之总线控制单元 ahb_slave_if.v
AHB-SRAM简单设计之内部模块 sram_core.v
AHB-SRAM简单设计之 顶层模块sram_top.v

笔者是小白,自学输出过程中,难免有错误,请大家指正!
github上有一个类似的项目,就是memory_bist不一样,大家可以点击跳转下载

  • 37
    点赞
  • 299
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 16
    评论
### 回答1: ahb-sram指的是高级外围总线(AHB)和静态随机存储器(SRAM)之间的接口设计和验证。 AHB-SRAM设计验证主要关注于确保AHB总线和SRAM之间的通信正常和可靠。设计验证的过程包括以下几个关键步骤: 1. 规划设计验证策略:在开始验证之前,需要明确定义验证目标和计划。确定验证所需资源、验证方法和验证环境等。 2. 静态验证:进行静态验证以评估设计的一致性和正确性。这可以通过使用模拟和仿真工具来完成,以验证设计的逻辑功能是否符合规格要求。 3. 动态验证:通过建立高级仿真模型或使用硬件描述语言(HDL)编写测试程序,进行动态验证。这些测试程序模拟了实际使用AHB-SRAM接口的情况,验证了设计和实现是否能够正确地处理各种读写操作和异常情况。 4. 性能验证:通过使用性能评估工具和技术,测试和验证设计在处理大量数据时的吞吐量、延迟和带宽等性能指标。这有助于确保AHB-SRAM设计能够满足系统需求。 5. 集成验证:将AHB-SRAM设计与其他子系统和外设集成,验证设计在整个系统中的功能和性能。这涉及到集成测试和系统级仿真,以确保整个系统的一致性和稳定性。 6. 错误排查和调试:在设计验证过程中,可能会发现各种问题和错误。需要进行适当的排查和调试,以找出问题的原因,并修复设计中的错误。 通过上述步骤的设计验证过程,可以最大程度地确保AHB-SRAM设计在实际应用中的正确性和可靠性。这样可以提高系统的稳定性和性能,并降低后续开发和维护的风险和成本。 ### 回答2: AHB(SRAM)设计验证是对AHB(SRAM)的硬件设计进行验证的过程。AHB指的是高级外设总线(Advanced High-performance Bus),是一种用于处理器与外设之间的通信的总线协议。SRAM指的是静态随机存取存储器(Static Random-access Memory),是一种常见的计算机内存存储单元。 AHB-SRAM设计验证旨在确保这个硬件设计符合AHB协议,并能够正确地存储和读取数据。验证过程一般包括以下几个步骤: 1. 设计规划:确定设计验证的目标和范围,编写验证计划和验证测试案例。 2. 功能验证:通过对设计电路进行功能仿真,验证设计的各项功能是否满足需求。通过使用一些特定的设计验证工具,对设计电路进行输入和输出的模拟,以验证逻辑电路的正确性。 3. 性能验证:通过对设计电路进行性能仿真,验证设计的时序和时钟频率是否满足要求。通过模拟各种情况下的数据存储和读取操作,检测潜在的性能瓶颈。 4. 物理验证:通过对设计电路进行物理验证,验证设计的布局和连线是否符合物理设计规范和约束条件。通过使用专业的物理验证工具,检查电路中是否存在物理故障,如电气连接问题、时序冲突等。 5. 集成验证:将设计电路与其他相关组件进行集成,验证整个系统的功能和性能。 AHB-SRAM设计验证是一个非常关键的步骤,它能够检测和纠正设计中的错误和问题,确保最终设计的可靠性和稳定性。只有通过了验证的设计才能进行后续的制造和生产。同时,设计验证还能够提供设计改进和优化的反馈,以便进一步提高设计的性能和效果。 ### 回答3: AHB(SRAM)是一种特定类型的静态随机存取存储器设计,用于在系统总线上进行数据传输和存储。设计验证是确保设计的功能和性能符合规范和需求的过程。 AHB-SRAM设计验证的目标是验证AHB-SRAM的功能正确性、数据的一致性和性能方面的指标。验证过程通常包括以下几个步骤: 1. 功能验证:通过编写测试用例,验证AHB-SRAM在不同的读写操作下是否能够正确地读写数据。测试用例需要覆盖各种读写情况,包括随机读写、顺序读写等。同时还需要测试错误情况下的处理机制,比如写入冲突、读取无效地址等。通过功能验证可以确保AHB-SRAM能够按照规定的操作进行数据的读写。 2. 数据一致性验证:在多核系统中,多个处理器可能同时访问AHB-SRAM。数据一致性验证的目标是验证在多个处理器同时读写AHB-SRAM时,数据的一致性是否能够保持。验证过程中需要考虑读写操作的时序和数据同步机制,确保在多个处理器之间进行数据交换时不会出现数据冲突或数据丢失的情况。 3. 性能验证:AHB-SRAM的性能指标包括读写延迟和带宽。性能验证的目标是通过测试用例和性能评估工具来验证AHB-SRAM能够在规定的时钟周期内完成读写操作,并能够满足带宽需求。性能验证可以帮助确定系统中AHB-SRAM的使用限制和资源分配。 通过上述验证步骤,可以确保AHB-SRAM设计的正确性和性能符合预期。验证过程需要仔细设计测试用例和评估工具,同时需要对设计进行仿真和调试,以确保设计的稳定性和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杰之行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值