SoC中多层AHB总线的断言验证应用 下载本文

内容发布更新时间 : 2024/5/7 7:41:38星期一 下面是文章的全部内容请认真阅读。

龙源期刊网 http://www.qikan.com.cn

SoC中多层AHB总线的断言验证应用

作者:宋小明 薛红喜 刘斌 李宏 来源:《现代电子技术》2011年第22期

摘要:随着SoC设计复杂程度的不断提高,芯片的功能验证面临的挑战越来越大。断言作为一种描述属性的方法,可以快速地验证设计代码是否满足系统要求。基于断言的验证方法学近年来发展极为迅速,应用也越来越广泛。在基于证的一种有效的验证方法。

关键词:断言; System Verilog Assertion; AHB; 验证 中图分类号:

g1

文献标识码:A文章编号:

总线架构上的SoC系

统验证过程中,采用System Verilog Assertion验证方法,证明SVA是SoC设计过程中功能验

(1. School of Electronics Engineering, University of Electronic Science and Technology of China, Chengdu 610054, China;

2. Chengdu institute, Huawei Technologies Co., Ltd., Chengdu 610041, China)

Abstract: With the continuous increase of SoC design complexity, the functional verification for chips is confronted with the challenge. The assertion as a method of the property description can

erification

methodology develops rapidly in recent years and its applications are increasingly widespread. The System Verilog Assertion as a verification method is adopted in the SoC system verification based on

tion result proves verifies that System Verilog

Assertion is an effective method of the functional verification in SoC design. Keywords: assertion; System Verilog Assertion; AHB; verification

收稿日期:

引言

龙源期刊网 http://www.qikan.com.cn

随着集成电路芯片的规模越来越大,SoC已经成为IC设计的发展趋势。在复杂的SoC系统中,如何高效验证SoC的功能正确性、完备性已经成为芯片是否成功的一个最重要的因素。芯片的功能验证已成为芯片设计的瓶颈,而且业界普遍认为芯片的整个验证工作已经占据了芯片开发周期的70%以上[1],从最初的单元验证到集成验证乃至系统验证,验证面临的挑战是越来越大。

目前的功能验证主要分为基于形式验证的静态功能验证和基于仿真的动态功能验证。形式验证方法是使用数学方法形式化地去证明设计实现部分或者全部满足系统属性的描述。动态验证方法则主要是指仿真,通过对DUT(Design Under Test)施加特定的测试向量,看DUT是否按照系统属性预期的那样出现结果[2]。 1基于断言的验证语言

断言是对设计的属性的描述,又被称为监视器或者检验器,已经被用作一种调试技术的方法,尤其适合于设计中的时序以及因果的逻辑判断。

基于断言的功能验证方法ABV(Assertion Based Verification),将形式验证中的断言技术和基于动态仿真的验证方法结合的一种验证方法。ABV的出现得到广泛的应用,成为先进的设计验证方法学的核心,因为它可以快速定位设计中的缺陷,尤其对于逻辑上的因果行为的验证非常适合。基于断言的验证方法主要的应用有以下几种:控制逻辑(总线仲裁器)、接口设计(总线接口、请求响应协议)、FSM(内部状态跳转)、数据完整性(FIFO设计)等方面。

基于断言的验证可以用于“白盒”、“黑盒”、“灰盒”3种验证方法中。对于白盒设计而言,断言是要嵌入到设计代码中去的,所以这种情况下的断言一般由设计人员编写并且添加断言。而黑盒验证一般用于不同的模块之间的接口特性的观测,例如总线之间的协议,断言用于此种情况时候,可以描述模块之间的信号转换是否符合要求。而灰盒测试是介于上述2种方法之间的验证方法[3]。

目前业界比较流行的基于断言的验证语言主要有:SVA(SystemVerilog Assertion),OVA(Open Vera Assertion),PSL(Property Specification Language),OVL(Open Verification Library)等。SVA作为SV语言中重要的组成部分,提供了非常丰富的验证方法,避免盲目的设计大量的测试向量来覆盖设计中的问题所导致的时间消耗。此外,SVA除了不能实现编程语法以外,OVL,PSL有的功能它都具备,并且工具开发容易,比较容易学习。本文基于SVA语言为例来说明基于断言的验证方法学。 2System Verilog Assertion 2.1System Verilog Assertion简介

龙源期刊网 http://www.qikan.com.cn

断言语言SystemVerilog Assertion 是System Verilog的重要组成部分。SystemVerilog是一种硬件描述和验证语言(Hardware Description and Verification Language,HDVL),构建于

之上,改进了Verilog代码的生产率、可读性以及可重用性。SystemVerilog提供

了更加简洁的硬件描述,同时又为SystemVerilog能够使用现存的工具进入当前的硬件实现流程提供了一个简单的途径。SystemVerilog还为受控验证平台的开发、约束随机测试平台的开发、覆盖驱动验证以及基于断言的验证提供了广泛的支持。2005年11月,SystemVerilog成为电子设计的一种新的标准语言(SystemVerilog,其进行修订,目前版本是

的一个组成部分,即SystemVerilog Assertion(SVA)[4]。

2.2System Verilog Assertion语法

SVA验证语言分为2种:并发断言、即时断言。

并发断言(Concurrent Assertion):并发断言基于时钟周期,在时钟边沿根据变量的采样的值计算待测试的表达式是否符合系统预期的值。可以在形式验证和动态仿真中运用。 即时断言(Immediate Assertion):即时断言中,待测试的表达式本质不是和时序相关,而是立即被赋值,而且即时断言必须放在过程块中去声明定义,可以用于动态仿真。

下面以分别以2个实际的例子来介绍并发断言和即时断言是如何建立起来的。首先介绍并发断言。假设有2个信号a与b,在时钟上升沿来的时候,如果a为高电平,则2个时钟周期之后,b必须为高电平。实现过程可以分为以下3个步骤:

(1) 建立序列表达式,以“sequence”为关键字,s1描述的是在时钟上升沿来的时候,a为高电平,s2描述的是在时钟上升沿来了以后,经过2个时钟周期,b为高电平: sequence s1 @(posedge clk) a; endsequence sequence s2;

@(posedge clk) ##2 b; endsequence

),2009年12月11日对

断言语言被纳入SystemVerilog,成为标准