在介绍AHB-RAM模块之前,我准备先讲一讲AHB总线。

AHB总线是AMBA总线规范的一部分,可用于高性能,高时钟频率的系统结构。AHB可以将CPU,高带宽的签上RAM,高带宽的外部存储器接口,DMA总线master,各种拥有AHB接口的控制器连接起来形成一个完整的独立的soc系统。

AHB总线由master,slave,arbiter,数据多路,地址控制多路和译码器构成。当master发起依次读/写操作时(只能由一个主设备使用总线),从设备(通过地址译码器的地址映射来选择使用哪个从设备)响应读/写操作,arbiter允许某一个主设备控制总线。

在传输中从机通过响应信号来表示状态(HRESP[1:0])分别由OKAY,ERROR,RETRY和SPLIT RETRY都表示传输不能立刻完成,但总线应该继续尝试传输。

总的来说,总线分为三组:写数据总线,读数据总线,地址控制总线。

接下来讲一讲总线的操作。当一个master向arbiter发出请求要占用线,在这段时间按值能允许一个master可以接入总线,并且对指定的slave进行读写。得到授权的总线开始AHB传输,首先发出地址和控制信号,主要提供地址信息,传输方向,带宽和BURST类型,译码器根据地址和控制信号确定哪个slave和master进行传输,在每一次传输过程中,包括:1,一个地址和控制周期  2.一个或者多个数据周期。值得注意的是,地址和控制周期不可以扩展,但是数据周期可以通过HREADY进行扩展,当HREADY为低时剋给传输加一个等待状态让slave有足够的时间来采样数据,只有完成了一个完整的BURST传输,arbitrer才会让其他的master进入总线。

我们看下简单传输。在第一个周期的上升沿,MASTER驱动地址和控制信号,第二个周期的上升沿,SLAVE采样地址和控制信号,并将HREADY拉高,如果是写操作的话,master会在第二个周期上升沿传输写入的数据,如果是读操作的话,slave会在HREADY拉高后将数据写入总线。第三个周期上升沿,如果是写操作,master获取HREADY高信号,表明slave已经接收数据。如果是读操作的话,master获取HREADY信号,表明此时读数据有效并被master接受。需要注意的是,HREADY信号在数据有效期间必须为高,并延续到第三个周期的上升沿之后,确保master的正确采样。由于AHB-RAM仅做了简单传输,因此不再赘述其他传输。

AHB-RAM模块的第一步,就是VIP的构建:1.首先构建出具有ahb层次的monitor/sequencer/driver。分别使用AHB等次组件构建master和slave层次的master agent和slave agent组件。

2.构建自身的config,所有层次的组件都应该有config句柄,并且通过configdb获取config,以及定义枚举类型和宏文件_defines types。

3.构建ahb interface,并且加入协议相关的assert coverage。

4.构建ahb sequence的transaction类。

5.构建基础的sequence,通过修改seuence中变量的值来是先发送不同的数据。

6.使用base_sequence来实现具体的ahbram测试的sequence,通过vortual_sequence挂载到virtual_sequencer上。

简单来说,我们实现了一个agent组件直接用于顶层复用,transaction.sv实现激励类型,driver.sv实现协议时序和数据驱动,monitor实现了对接口数据额检测采样,seqeuencer用于将sequence传送给driver,是这两个组件之间的桥梁。

关于AHB-RAM的一些内容1相关推荐

  1. 手机内存RAM、ROM简介

    手机内存包含两个:一个是运行内存(RAM),一个是机身内存(ROM).两者的功能有所不同,运行内存是对手机操作系统和其它程序运行过程中,产生的临时数据进行存储的媒介.如果手机运行的程序比较多,占用运行 ...

  2. ROM、PROM、EPROM、EEPROM、RAM、SRAM、DRAM的区别

    平时对于这些个相近的名词一看到就头疼,看了这篇文章后豁然开朗!!! 在微机的发展初期,BIOS都存放在ROM(Read Only Memory,只读存储器)中.ROM内部的资料是在ROM的制造工序中, ...

  3. Virtex-6中的BRAM(Block RAM)模块、DSP 模块XtremeDSP

    BRAM(Block RAM)模块 Virtex-6中嵌入BRAM,大大拓展了FPGA的应用范围和应用的灵活性.BRAM可被配置为单端口RAM.双端口RAM.内容地址存储器(CAM)以及FIFO等常用 ...

  4. FPGA 内部双口块RAM 读写实现

    由XILINX官网文档PG058 "LogiCORE IP Block Memory Generator v8.2" FPGA 内部块RAM 的读时序如下图: 可知,块RAM的读延 ...

  5. 关于DS12C887 以外部RAM方式访问

    DS12C887 的引脚排列如图1 所示,各管脚的功能说明如下: GND.VCC:直流电源,其中VCC 接+5V 输入,GND 接地,当VCC 输入为+5V 时,用 户可以访问DS12C887 内RA ...

  6. 全国计算机技术与软件专业技术资格(水平)考试【软件评测师】-考试内容总结(一)计算机系统构成及硬件基础知识...

    全国计算机技术与软件专业技术资格(水平)考试 软件评测师--考试内容总结       By林雨辰2014.11.08 1.计算机系统构成及硬件基础知识 1.1计算机系统的构成 1.1.1设计电子数字计 ...

  7. oftPerfect RAM Disk 内存盘管理,提高软件速度

    目录 主要特点 使用 RAM 磁盘的五个理由 如何使用 Chrome 缓存设置 其他 oftPerfect RAM Disk是一种高性能的 RAM 磁盘应用程序,它可以让您在计算机上拥有一个完全存储在 ...

  8. 动态半导体ram依据什么存储信息_静态ram和动态ram的区别是什么

    随机存取存储器(random access memory,RAM)又称作"随机存储器",是与CPU直接交换数据的内部存储器,也叫主存(内存).它可以随时读写,而且速度很快,通常作为 ...

  9. ae RAM 预览需要2 个或更多框架对回放 解决

    After Effects error:RAM preview needs 2 or more frames to playback 解释为:"RAM 预览需要2 个或更多框架对回放&quo ...

  10. CDN到底是什么?浅析一下CDN内容分发网络

    CDN到底是什么?内容分发网络? 一.CDN的解释 二.CDN的作用 三.CDN的工作原理 四.CDN访问与传统访问的区别 五.CDN应用场景 六.关于CDN的一些常见名词 一.CDN的解释 CDN的 ...

最新文章

  1. java输入星期几的字母_输入字母判断星期几java编程答案
  2. 怎么看电脑电源多少w_电脑电源怎么测试通电
  3. 这么香的技术还不快点学起来,不吃透都对不起自己
  4. 网站安全之XSS漏洞攻击以及防范措施
  5. 定义css设备类型-Media Queries
  6. iOS开发之网络编程--获取文件的MIMEType
  7. 1.9编程基础之顺序查找02:输出最高分数的学生姓名
  8. RabbitMQ架构
  9. 微信小程序的三级分销-项目表格设计
  10. turbo c语言编程环境,turbo c(编程软件)
  11. 截图工具Snipaste
  12. ZEMAX 2018中文版光学仿真视频教程
  13. Visual Studio 2017 激活密钥 [复制记录]
  14. POJ - 3537 Crosses and Crosses (MLI - SG)
  15. java调用peopleSoft webservice
  16. SEO 优化--助力网站推广
  17. 转帖几篇文章回味一下ACM^_^
  18. 用php语言说句情话,50句最美情话,套路我都懂,只是舍不得对你用
  19. laragon mysql版本_laragon 使用(php版本升级切换)
  20. java计算机毕业设计教师继续教育MyBatis+系统+LW文档+源码+调试部署

热门文章

  1. php pdf数字签名,用PHP从PDF中检索数字签名信息
  2. Linux局域网共享打印机(实用型文档)
  3. 私有云厂商云宏破解金融行业转型“数字底座”难题
  4. [MetalKit]45-Using eGPUs with Metal 在 eGPU上使用 Metal
  5. Python+Vue计算机毕业设计“爱尚”农产品销售平台的设计与实现3fuz0(程序+LW+源码+部署)
  6. 【论文阅读笔记】Incremental Network Quantizatio:Towards Lossless CNNs with Low-Precision Weights
  7. 初步使用计算机的教学反思,静夜思教学反思(精选10篇)
  8. 卷积神经网络图像分类的性能评估指标有哪些
  9. Value did not match schema:\n1. return.ok.Ok2: Invalid type. Expected: array, given: null
  10. 《地理信息系统导论》chapter 17 最小耗费路径分析和网络分析