前言

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

参考文章:基于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不一样,大家可以点击跳转下载

AHB-SRAM简单设计之架构图解相关推荐

  1. AHB-SRAM简单设计之 顶层模块sram_top.v

    前言 这部分就是顶层模块,直接将两个子模块例化并且连接端口就行了,直接看图施工! SRAM控制单元 sram_top.v module sramc_top(//input signalsinput w ...

  2. AHB-SRAM简单设计之内部模块 sram_core.v

    前言 他们都说这一部分不需要自己设计,还说了公司里面这部分都是买的,dft和bist前期就不用介入工作,因为买的IP里面已经集成进去了.如果公司没买IP,都是自己做的,那就需要前期和设计工程师一起交流 ...

  3. 基于 AHB 总线的 SRAM 控制器设计

    基于 AHB 总线的 SRAM 控制器设计 一.基于 AHB 的 sram 设计 1.总体设计框架 2.AHB总线传输协议 ①没有等待状态的单个读写操作 ②有等待状态的单个读写操作 ③连续读写操作 二 ...

  4. 【架构基础】简单设计原则

    简单设计来源于极限编程(ExtremeProgramming,简称XP).XP是由KentBeck在1996年提出的,是一种软件工程方法学,是敏捷软件开发中最富有成效的几种方法学之一.XP存在四个核心 ...

  5. 插件式设计的架构模型与实例

    插件式设计近年来非常流行,其中eclipse起了推波助澜的作用,提到插件式就会不由自主的想到eclipse.其实插件式设计并不是什么新事物,早在几十年前就有了.像X Server就是基于插件式设计的, ...

  6. MongoDB架构图解

    MongoDB架构图解 本文图片来自Ricky Ho的博文MongoDB构架(MongoDB Architecture),这是个一听就感觉很宽泛的话题,但是作者在文章中确实对MongoDB由内至外的架 ...

  7. python控制modem的at指令_硬件设计MCU架构+Python命名空间和作用域

    硬件设计-MCU架构 CISC结构的单片机 其数据线和指令线分时复用,称为冯-诺伊曼结构 优点:指令丰富,功能较强,但确定取指令和取数据不能同时进行,速度受限,且价格也很高:属于CISC结构的单片机有 ...

  8. 闲谈简单设计(KISS)疑惑

    忙碌了一年了项目又到了交付了,虽然项目能成功上线(因为还有维护支持的团队).但是个人从技术上看,这是一个不那么成功的项目,因为后期艰难的修复bug,添加feature.这与简单设计有什么关系呢?在某模 ...

  9. Java生鲜电商平台-团购模块设计与架构

    Java生鲜电商平台-团购模块设计与架构 说明:任何一个电商系统中,对于促销这块是必不可少的,毕竟这块是最吸引用户的,用户也是最爱的模块之一,理由很简单,便宜. 我的经验是无论是大的餐饮点还是小的餐饮 ...

最新文章

  1. 【怒怼老乔】苹果手机ios系统居然特喵的不支持日期yyyy-MM-dd HH:mm:ss.ms,只支持 yyyy/MM/dd HH:mm:ss
  2. 【整理】JDK MacOS X
  3. 使用Tensorflow实现残差网络ResNet-50
  4. 2020中国人工智能年度评选报名即将截止!4大类别7大奖项开放申请
  5. 安防市场规模超万亿 罗曼股份推智慧联动安防
  6. [转]Angular 单元测试讲解
  7. mysql n 识别_mysql – 不能有“不识别”的N:M关系吗?
  8. 说说关于JVM三色标记算法
  9. python达内教程_达内教你如何零基础入门python编程
  10. rgmanager 介绍
  11. 黑马程序员全套Java教程_Java基础入门视频教程零基础自学Java必备教程视频讲义(3)
  12. Android project not found. Are you sure this is a React Native project?
  13. 中国心率监测器行业市场供需与战略研究报告
  14. stn在mnist上的实现
  15. 计算机科学技术的广告语,赞美科技的句子-十大经典深入人心科技类广告语
  16. 个人支付方案(免签约)-支付宝当面付开通教程
  17. 朋友圈大数据:你的朋友圈出卖了你,大数据就是这么给力!!!
  18. 常用正则表达式—身份证号(JavaScript,Regex)
  19. vmware 6.0 虚拟机 和 diskeeper 冲突
  20. Word,PDF,PPT,TXT之间的转换方法

热门文章

  1. android apktool使用教程,Apktool 使用教程
  2. SQL报错:Ambiguous column name ‘数据库某列’
  3. (一)基于知识图谱的医疗问答系统(实例+代码理解)保姆级教程
  4. NEAR官方文档翻译(三)基础(Basics)- 数据存储(Data Storage)
  5. APP多平台快速切换
  6. 揭秘:一线互联网薪资曝光,看看你的价值,有没有被低估?
  7. 老猪带你玩转自定义控件三——sai大神带我实现ios 8 时间滚轮控件
  8. 湖北大学计算机考入清华,倒数第一考入清华 如何逆袭?
  9. 数据集:Udacity Self-Driving 目标检测数据集
  10. 用计算机看影碟是数字化过程,2012年上海市高中学业水平考试信息科技