当前位置: 首页 > news >正文

数字IC验证——PSS可移植测试用例

PSS是Accellera组织定义的测试用例生成规范,其思想是定义一个抽象模型,EDA工具可以从中生成适用于每个设计层次结构和每个验证平台的测试,即PSS定义了统一的测试场景,而场景的使用可以横跨不同验证层次和配置。
这种特性决定了PSS本身是不可执行的,用户需要EDA工具分析抽象模型从而生成实现。

一、概述

1.1 技术特征

  • 垂直复用性:不同验证层次,包括模块级、子系统级、以及系统级验证(软件仿真/EMU/FPGA/硅后测试)
  • 水平复用性:不同验证项目跨平台使用
  • 不同验证环境,例如cache子系统验证、pcie子系统验证等

1.2 技术生态

商用PSS工具

  1. Synopsys VCPS

二、具体实现

2.1 架构层次

导入
导入
DSL
解析器
C++
testcase

输入

测试用例的描述文件,分为两种格式,分别是DSL格式(Domain Specific Language,领域特定语言)和C++语言格式。

输出

输出就是不同验证层次下的测试用例。

2.2 设计流程

  1. 验证计划制定
  2. 根据功能点搭建PSS模型,模型中主要包括对测试场景或行为进行描述的action、不同action之间的组合调度、约束信息以及覆盖率组信息
  3. 随后将PSS模型基于PSS解析器生成用于特定平台的测试用例。
    此外也可以通过PSS模型中的覆盖率组收集基于图形的覆盖率,对该类覆盖率的分析可以发现现有测试约束以及配置中可能存在的缺陷或漏洞,从而得知当前生成的case是否满足验证计划中要求的全部测试场景。
  4. case生成完成后进入动态仿真阶段。

在这里插入图片描述
注意,PSS模型构建的工作主要分为两部分,其一是利用PSS做测试场景建模,其二是采用PSS测试场景并为之提供映射测试单元动作的接口语言实现。由于PSS调用了验证人员提供的接口库,确保了在特定场景下的随机性,因此通常先利用PSS实现测试场景描述,再利用PSS测试场景来生成更为详尽且针对DUT随机性更强、覆盖更全的测试代码。

2.3 举例说明

以PCIe控制器的模块级、子系统、系统级验证举例说明。

PSS模型构建——跨层次验证测试用例生成

模块级验证关注单一功能的测试场景,例如PCIe控制的AXI总线接口组件的读写功能、ATU地址转换、TL层模块的cfg/mem报文等;
子系统验证关注多个模块间的协调组合场景,例如AXI slave接口事务到ATU地址转换单元再到不同的TLP事务之间的组合;
而在系统级验证,除了多个模块单元间的协调组合,还会加入多个子系统之间的调度与协调,例如PCIe控制器接入到SoC后,与中断控制器中断路由、与DDR的数据读写交互等。
因此从验证流程来讲,验证层次越高,验证场景越复杂,但大多会涵盖底层级验证中的测试场景。

三、PSS标准

action的特征

http://www.lryc.cn/news/153172.html

相关文章:

  • java设计模式---策略模式
  • 5-redis集群搭建安装
  • (数字图像处理MATLAB+Python)第十一章图像描述与分析-第七、八节:纹理描述和其他描述
  • MySQL提权
  • FPGA优质开源项目 – UDP万兆光纤以太网通信
  • 如何中mac上安装多版本python并配置PATH
  • window 常用基础命令
  • lintcode 1815 · 警报器 【simple vip 前缀和数组】
  • 【强化学习】MDP马尔科夫链
  • SpringBoot自写项目记录
  • Windows10上使用llama-recipes(LoRA)来对llama-2-7b做fine-tune
  • 06-限流策略有哪些,滑动窗口算法和令牌桶区别,使用场景?【Java面试题总结】
  • 2021年06月 C/C++(六级)真题解析#中国电子学会#全国青少年软件编程等级考试
  • Tuxera NTFS for Mac2023苹果电脑Mac硬盘读写工具
  • 系统调用的过程
  • Python将多个文件的名称或后缀名由大写字母修改为小写的方法
  • Debezium的三种部署方式
  • 通讯协议057——全网独有的OPC HDA知识一之接口(十二)IOPCHDA_DataCallback
  • 后端SpringBoot+前端Vue前后端分离的项目(一)
  • docker 安装 MySQL5.7
  • 分布式session的4种解决方案
  • SQL Server2008下载地址
  • MySQL函数和约束
  • 关于一个git的更新使用流程
  • vue 对后端返回字段值为null的变成空字符串
  • C++,菱形继承和虚继承
  • js实现一行半文本的截取
  • 计算一个区间时间差值,时间保留剩下的差值
  • uniapp 微信小程序添加隐私保护指引
  • 行业追踪,2023-08-30