AHBRAM模块验证笔记

AHBRAM模块验证笔记

AHBRAM模块解读

在这里插入图片描述
AHBRAM是一个以AHB协议通信的RAM存储模块。RAM内部含有4块BRAM模块,每块BRAM均能存储8bit的数据,存储空间为16KB,整块RAM存储空间为64KB。通过AHB协议对RAM进行写操作时,根据接口上传输位宽和传输地址逻辑判断后,使能对应的BRAM块,并存入数据;通过AHB协议对RAM进行读操作时,根据接口上传输地址,对4个BRAM模块相应地址的数据进行拼接并读出。
其中,通信协议AHB采用了简化版:
1、只有一个master和一个slave,hgrant = 1;
2、模块预置条件:每次传输均正确且传输完成,hready = 1,hresp = okay;
3、单时钟沿变化;
4、支持burst传输,但只考虑single传输,即hburst = single,htrans = idle / Nonseq两种状态;
5、burst传输支持最大位宽为32bit。

AHBRAM验证结构布局

在这里插入图片描述
整个验证环境env中,包含了一个mst_agt,其中drv通过与之连接的TLM端口获取到挂载在sqr上的seq,并将其驱动到接口上,进而与RAM模块进行交互,而mon则将接口上监测到的数据通过其item_observed_port发送到其与之连接的端口上,比如scb和cov的anasis_imp上。scb内创建了模拟RAM行为的mem,对mon向其发送的数据进行相应的读写操作,cov则创建了2个功能覆盖组,并对相应信号进行采样。同时环境中还包含有virt_sqr,其不与任何driver进行通信,而是作为底层sqr的管理者,协调各个sqr。一旦virt_seq挂载在virt_sqr上,其就能通过p_sqr拿到各个底层的sqr句柄,进而使用·`uvm_do系列宏完成激励的创建、约束发送等。同时,virt_seq例化在test层次,更接近于用户,将激励与环境结构隔离开来,便于环境的可重用;同时在tb中,例化了AHBRAM模块,并指定地址位宽addresswith = 16。

AHBRAM测试用例

在这里插入图片描述
(1)base_test主要工作:
1、创建了cfg配置对象,并指定ram的有效地址范围为32‘h0~32’h0000_FFFF;
2、通过config_db#(virtual rkv_ahbram_if)::get(this, " ",“vif”,cfg.vif)获得虚接口句柄;
3、将env中cfg配置成创建的cfg后,创建整个env环境结构。
(2)其余test则继承于base_test,但在其run_phase中例化了不同的seq,且将其挂载至顶层virt_sqr,同时通过objection机制控制仿真的运行。
diff_haddr_test和diff_hsize_test分别针对要传输的transaction的addr和burst_size做随机约束后,通过uvm_do_with宏完成读写测试; haddr_word_unligned_test随机约束burst_size,并规定burst_size = 16bit和32bit时,addr[1] = 0和addr[1:0] = 0(即支持字不对齐传输),通过uvm_do_with宏完成读写测试;
reset_w2r_test则测试复位后对应addr的存储空间复位值是否为全X。

AHBRAM覆盖率收集

定义2个covergroup,分别关心传输地址addr和传输类型、传输位宽:
在这里插入图片描述
使用固定种子seed_1和随机种子分别跑以上测试,可以得到合并后的代码覆盖率情况如下:
在这里插入图片描述
功能覆盖率情况如下:
在这里插入图片描述

分析覆盖率收集情况

在这里插入图片描述
关心传输地址addr的功能覆盖组地址的边界未覆盖到,同时非法地址未覆盖到。
在这里插入图片描述
代码覆盖率中hwdata和hrdata等信号的个别bit的翻转未覆盖到。

添加新的测试用例

(1)针对合法地址边界和非法地址以及数据的bit位翻转,编写如下测试用例:
在这里插入图片描述
备注:非法地址读写时,会按低位截取有效地址进行读写,即能正常读写,但写入地址不是预期地址。
此时覆盖率情况如下:
在这里插入图片描述
在这里插入图片描述
此时再次分析覆盖率:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
由于设计中AHBRAM不支持64bit位宽传输,同时只验证single传输,功能覆盖率对应部分可以先exclude;而hready、hreadyout恒为1,hresp=okay,且hselbram为1,代码覆盖率部分也可先exclude;可以得到最终的覆盖率情况:
在这里插入图片描述
在这里插入图片描述

异常激励测试

由于RAM不支持64bit位数据传输,则采用64bit位宽数据作为异常激励进行读写测试:
在这里插入图片描述
此时,DVE仿真窗口会报ERROR错误:
在这里插入图片描述
同时,RAM无法写入64bit数据,且只能读出之前对应地址存储的数据:
在这里插入图片描述

  • 10
    点赞
  • 73
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
### 回答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设计的正确性和性能符合预期。验证过程需要仔细设计测试用例和评估工具,同时需要对设计进行仿真和调试,以确保设计的稳定性和可靠性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值