AHB to APB bridge

2023-11-18

SPEC

DUT如下:
在这里插入图片描述

具体功能描述可参考ARM官方文档:AHB to APB sync-down bridge

验证框架图

在这里插入图片描述

测试点分解以及设计测试用例

测试点分解

  • 对于APB端,APB2、APB3、APB4的信号都要测到。
  • 在APB的时钟频率小于AHB的时钟频率时的频率范围。
  • 传输过程中发生reset模块功能能否恢复。
  • HADDR与PADDR的范围:0x0000~0xFFFF。
  • 对于AHB来说,由HBURST[2:0]决定的八种不同的burst传输、HSIZE[2:0]决定的传输size以及write/read的排列组合。
  • 由HTRANS[1:0]决定的transfer type。
  • HPROT、HREADYOUT、HRESP的检查。
  • 多个AHBtransfer连续传输检查。
  • APBACTIVE检查。
  • PSTRB、PPROT、PREADY、PSLVERR的检查。
  • Parameter检查。

设计测试用例

  • AHB端
  1. AHB Single Write32
  2. AHB Single Read32
  3. AHB Burst(HBURST[2:0]随机、HSIZE[2:0]随机、Data,Addr随机,Addr的边界值如0x0000,0xFFFF需覆盖、write/read操作随机、HPROT[3:0]随机。

将上述sequence进行组合,测试连续间断/不间断的AHB传输。

  • APB端
  1. PREADY信号保持为1。
  2. PREADY信号为0,且持续随机个周期。
  3. PSLVERR信号保持为0
  4. PSLVERR信号拉高,且有效的位置随机。
  5. Parameter如ADDRWIDTH、REGISTER_RDATA、REGISTER_WDATA。
  • AHB与APB的频率比:
    2:1、3:1、4:1、8:1、16:1

具体的Sequence及testcase

Sequence

  • AHB端
  1. ahbl_mst_single_write32_seq
class ahbl_mst_single_write32_seq extends ahbl_mst_basic_seq;
	function new(string name = "ahbl_mst_single_write32_seq");
    	super.new(name);
	endfunction
    `uvm_object_utils(ahbl_mst_single_write32_seq)
	virtual task body();
		`uvm_do_with(req,{hsel   == 1'b1;
                      	  htrans == ahbl_mst_pkg::NSEQ;
                     	  hsize  == ahbl_mst_pkg::WORD;
                     	  hburst == ahbl_mst_pkg::SINGLE;
                     	  hwrite == 1'b1;})
	endtask
endclass
  1. ahbl_mst_single_read32_seq
class ahbl_mst_single_read32_seq extends ahbl_mst_basic_seq;
	function new(string name="ahbl_mst_single_read32_seq");
    	super.new(name);
    endfunction
     `uvm_object_utils(ahbl_mst_single_read32_seq)

  virtual task body();
    `uvm_do_with(req,{hsel   == 1'b1;
                      htrans == ahbl_mst_pkg::NSEQ;
                      hsize  == ahbl_mst_pkg::WORD;
                      hburst == ahbl_mst_pkg::SINGLE;
                      hwrite == 1'b0;})
  endtask
endclass
  1. ahbl_mst_burst_seq
class ahbl_mst_burst_seq extends ahbl_mst_basic_seq;
	function new(string name="ahbl_mst_burst_seq");
    	super.new(name);
	endfunction
	`uvm_object_utils(ahbl_mst_burst_seq)
	virtual task body();
		`uvm_do_with(req,{hsel == 1'b1;})
	endtask
endclass
  • APB端
  1. apb_slv_rdy_seq
class apb_slv_rdy_seq extends apb_slv_basic_seq;
	function new(string name = "apb_slv_rdy_seq");
		super.new(name);
	endfunction
	`uvm_object_utils(apb_slv_rdy_seq)
	virtual task body();
		`uvm_do_with(req,{slverr     == 1'b0;
                          nready_num == 0;})
	endtask
endclass
  1. apb_slv_nrdy_seq
class apb_slv_nrdy_seq extends apb_slv_basic_seq;
	function new(string name="apb_slv_nrdy_seq");
    	super.new(name);
	endfunction
	 `uvm_object_utils(apb_slv_nrdy_seq)
	virtual task body();
		`uvm_do_with(req,{slverr == 1'b0;
                      	  nready_num inside {[1:5]};})
	endtask
endclass
  1. apb_slv_slverr_seq
class apb_slv_slverr_seq extends apb_slv_basic_seq;
	function new(string name = "apb_slv_slverr_seq");
    	super.new(name);
	endfunction
	`uvm_object_utils(apb_slv_slverr_seq)
	virtual task body();
		`uvm_do_with(req,{slverr == 1'b1;
                          nready_num inside {[1:5]};})
	endtask
endclass

testcase

  • ahbl_mst_single_read32
  • ahbl_mst_single_write32_apb_slv_nrdy
  • ahbl_mst_burst
  • ahbl_mst_burst_apb_slv_slverr
  • ahbl_mst_tight_transfer
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AHB to APB bridge 的相关文章

  • 树06--二叉树中和为某一值的路径

    树06 二叉树中和为某一值的路径 jz24 题目概述 解析 参考答案 注意事项 说明 题目概述 算法说明 输入一颗二叉树的根节点和一个整数 按字典序打印出二叉树中结点值的和为输入整数的所有路径 路径定义为从树的根结点开始往下一直到叶结点所经
  • 课程设计步骤模板计算机,计算机络基础校园课程设计模板.doc

    计算机络基础校园课程设计模板 哈尔滨理工大学 计算机网络基础课程设计 学生姓名 姜金辉 学 号 1130370210 学 院 荣成学院 系 别 软件工程系 专业班级 计应11 2 设计 论文 题目 计算机网络课程设计 指导教师 徐辉 201

随机推荐

  • Vue后台 - 利用 mockjs 完成数据的获取、编辑、增加、删除和分页

    一 前言 很多vue后台的模板都用了mockjs来模拟假数据 并且利用mockjs的拦截请求完成了很多功能 比如数据的获取 编辑 增加 删除等 所以就利用了一个后台模板 在这基础上删除了一些页面 根据一个项目原型自己试着学习mockjs的一
  • 潜入地图_潜入

    潜入地图 By Taylor Barkley Program Officer for Tech and Innovation at Stand Together 提供者 Stand Together技术与创新计划官Taylor Barkle
  • Git, Gitlab使用文档

    一 前期准备 配置网络 连接局域网 下载 windows git 注册gitlab账号 注册后需要管理员确认通过 二 配置ssh 本处来源 docker下gitlab安装配置使用 1 打开本地git bash 使用如下命令生成ssh公钥和私
  • Spring源码学习之BeanDefinition源码解析

    本文作者 磊叔 GLMapper本文链接 https juejin cn post 6844903553820000269 Bean的定义主要由BeanDefinition来描述的 作为Spring中用于包装Bean的数据结构 今天就来看看
  • VMware虚拟化- 虚拟化与VMware的基础介绍

    1 什么是虚拟化 1 1 虚拟化概念 通俗的理解 如果你问 什么是虚拟化 我想大部分人的回答都会是 就是在一个操作系统中运行另一个操作系统 虽然这个答案也没错 但这并不是真正 虚拟化 的意义 只能说是虚拟化在硬件和操作系统之间的一个实践 事
  • 2023华为OD机试真题【计算敌人数量】

    题目描述 有一个大小是N M的战场地图 被墙壁 分隔成大小不同的区域 上下左右四个方向相邻的空地 属于同一个区域 只有空地上可能存在敌人 E 请求出地图上总共有多少区域里的敌人数小于K 输入描述 第一行输入为N M K N表示地图的行数 M
  • chromecast 协议_Chromecast和Android TV有什么区别?

    chromecast 协议 Google isn t particularly known for its clear branding This is certainly the case when it comes to Chromec
  • windows IPad 文件导入

    windows IPad 文件导入 首先下载iTunes Apple官网 itunes 打开软件 连接IPad 点击该按钮 点击文件共享和上传的软件 之后直接文件拖拽到右边的文档框里面
  • openwrt设置定时重启(天/周/月)

    1 进入openwrt管理页面 找到 系统 计划任务 编辑命令行 点击 保存 2 系统 启动项 中找到cron 确认状态为 开启 点击 重启 使计划生效 或重启系统 说明 一定要设置延时 防止无限重启 每天凌晨1点45分 延时70秒后自动重
  • Navicat for oracle创建数据库

    前言 其实在Oracle中的概念并不是创建数据库 而是创建一个表空间 然后再创建一个用户 设置该用户的默认表空间为我们新创建的表空间 这些操作之后 便和你之前用过的mysql数据库创建完数据库一模一样了 如果你用过mysql的话 当然如果O
  • 基于E-R模型的关系型数据库设计方法

    摘要 在管理信息系统开发中 数据库设计的目标是建立DBMS能识别的关系数据模型 而关系数据模型建立的基础是首先建立E R模型 通过E R模型才能转换为关系数据模型 如何建立E R模型以及如何将E R模型转换为关系数据模型 是管理信息系统开发
  • logback日志不打印到文件问题深入剖析

    详细探究logback不打印日志到文件的问题分析与案例演示 并提供官网bug的提交链接 环境与配置 问题 解决 原因 测试源码 测试结果 深入 线程出异常是否还会打印日志 环境与配置 使用maven构建的 引入logback依赖如下 注 其
  • vue2解决并实现页面刷新内容不变化

    前言 我们都知道 在vue中数据是响应式的 但是对于刷新的之后数据也会丢失 这就得借助于数据库存储 那么在vue中怎么去实现数据库的连接以及数据传输呢 下面我们来一起看一看 在之前我也在这个问题上困扰了很长时间 为了让大家都能看得懂 给大家
  • WPF之UI虚拟化

    在WPF应用程序开发过程中 大数据量的数据展现通常都要考虑性能问题 有下面一种常见的情况 原始数据源数据量很大 但是某一时刻数据容器中的可见元素个数是有限的 剩余大多数元素都处于不可见状态 如果一次性将所有的数据元素都渲染出来则会非常的消耗
  • neutron的DHCP错误之”sudo: unable to resolve host node-1\novs-vsctl:“

    问题背景 使用ESX创建虚拟机 并在虚拟机上创建一个三节点的openstack环境 参考官方的ICEHOUSE版本 注 ubuntu 14 04只支持到icehouse版 为加快虚拟机的创建时间 本文首先创建了一个控制节点c 1 并进行更新
  • pci无线配置服务器,PCI配置空间(中文).doc

    PCI Configuration 名词说明 PCI为Peripheral Component Interconnect 的缩写 它是由 Intel 所发表的另一种局部总线 另一种为 VESA Local Bus 以配合 Pentium 系
  • ACE_Proactor实现

    ACE Proactor实现了Facade模式 其方法可以分为四类 生命周期管理方法 事件循环管理方法 定时器管理方法 IO操作facilitator方法 须知ACE Proactor是使用Bridge模式的 ACE aynch Read
  • 内网安全-隧道搭建&穿透上线&FRP&NPS&Ngrok

    目录 环境介绍 内网穿透 Ngrok 入门 上线 tcp协议 内网穿透 Frp 简易型 上线 内网穿透 Nps 自定义 上线 环境介绍 实验目的 让msf上线外网 通常情况下 内网可以访问外网 但是外网无法访问到内网 所以外网的木马通常情况
  • 将二叉树转为有序的双向链表

    一 题目要求 输入一棵二叉排序树 现在要将该二叉排序树转换成一个有序的双向链表 而且在转换的过程中 不能创建任何新的结点 只能调整树中的结点指针的指向来实现 include
  • AHB to APB bridge

    目录 SPEC 验证框架图 测试点分解以及设计测试用例 测试点分解 设计测试用例 具体的Sequence及testcase Sequence testcase SPEC DUT如下 具体功能描述可参考ARM官方文档 AHB to APB s