关于AHB-RAM的一些内容1

在介绍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,是这两个组件之间的桥梁。

 

 

 

 

 

 

  • 9
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: AHB RAM验证和AHB GPIO验证是数字电路设计中非常重要的两个方面。AHB RAM验证是检测AHB总线上的RAM中有无错误,而AHB GPIO验证是确保GPIO模块能够正确地连接到AHB总线。 AHB RAM验证的主要目的是确保RAM存储器的正常操作。在AHB系统中,RAM是存储器的最常用类型之一。AHB RAM验证可以确保RAM存储器能够正确地读取和写入数据。这种验证通常涉及到RAM的不同操作模式,例如随机访问和半随机访问,在检测到错误时,该验证可以修复错误在RAM中的位置。 AHB GPIO验证的主要目的是确保GPIO模块与AHB总线的正确连接。在一个完整的AHB系统中,GPIO模块作为输入输出端口使用。由于其重要性,可以使用GPIO模块来与外部设备进行通信,并在需要时向系统控制器发送信息。因此,确保GPIO模块通过AHB总线发送和接收信息是非常重要的。在验证期间,则需要检查所有GPIO口的访问权限和控制能力,以确保其在程序规定的时间内正常工作。 因此,AHB RAM验证和AHB GPIO验证涉及到不同的验证因素。AHB RAM验证重点是存储器的操作,而AHB GPIO验证主要关注GPIO模块在AHB总线上的连接,这些验证都是确保数据的可靠传输和存储的重要组成部分。 ### 回答2: AHB RAM验证和AHB GPIO验证都是针对AHB总线上的不同设备的验证工作。AHB RAM验证主要是验证AHB总线上的RAM存储器,而AHB GPIO验证则主要是验证GPIO(通用输入输出)设备的功能。 首先,AHB RAM验证的目标是验证随机访问存储器(RAM)的正确性。因此,该验证需要验证存储器中的读和写操作。同时,也需要测试存储器的读写时序和数据传输正确性,以确保存储器能够正常使用。 相比之下,AHB GPIO验证的目标则是验证GPIO设备的输入和输出功能是否正确。因此,该验证需要针对GPIO设备的输入和输出信号进行测试,并验证这些信号是否能正确地从GPIO设备进入和离开AHB总线。 另外,AHB RAM验证需要对存储器进行读取和写入操作,以验证存储器内部的数据传输是否正确。这需要读取已存储的数据并对比读取结果,以确保它们匹配。相比之下,AHB GPIO验证需要检测GPIO设备产生信号是否符合规范,无需进行数据匹配。 总体而言,AHB RAM验证和AHB GPIO验证是两种可以同时进行的验证,并且这两个验证方法在AHB总线设备开发过程中都非常重要。选择不同的验证方法需要根据验证的目的来确定。 ### 回答3: AHB RAM验证和AHB GPIO验证是两种不同的验证技术,AHB RAM验证主要是验证AHB总线上的RAM存储器的正常工作和存储功能是否正确,而AHB GPIO验证主要是验证GPIO模块的正常工作是否正确。 在AHB RAM验证中,验证工程师通常会使用AHB总线读写数据到RAM,然后再从RAM中读取数据进行比对。验证工程师还会验证RAM是否正确地响应读写操作,并且验证读写地址能否正确指向RAM中的正确位置。在此过程中,验证工程师还需要验证是否存在因为读写操作而导致的RAM数据异常等。 AHB GPIO验证过程中则需要验证GPIO的各种输入输出操作是否正确。验证工程师需要通过模拟各种输入输出信号或模拟GPIO端口的逻辑状态,然后验证GPIO模块能否正确地对输入/输出信号做出响应,并输出正确的信号状态。GPIO验证还需要验证GPIO模块是否能够正确地工作在不同的工作模式下,并且能否正确地响应GPIO端口与其他芯片之间的通信。 因此,AHB RAM验证和AHB GPIO验证是两个不同领域的验证技术,在验证过程中所需注意的问题和方法也不同。在验证芯片的各个模块时,验证工程师会根据实际情况选择使用适当的验证技术,以确保芯片的正常工作和稳定性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值