CN116776785A - 一种集成芯片的被动模式验证方法及系统 - Google Patents
一种集成芯片的被动模式验证方法及系统 Download PDFInfo
- Publication number
- CN116776785A CN116776785A CN202310757356.9A CN202310757356A CN116776785A CN 116776785 A CN116776785 A CN 116776785A CN 202310757356 A CN202310757356 A CN 202310757356A CN 116776785 A CN116776785 A CN 116776785A
- Authority
- CN
- China
- Prior art keywords
- transaction
- state
- verification
- domain
- verification platform
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012795 verification Methods 0.000 title claims abstract description 145
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000001514 detection method Methods 0.000 claims abstract description 68
- 238000013461 design Methods 0.000 claims abstract description 39
- 238000012360 testing method Methods 0.000 claims abstract description 29
- 230000008054 signal transmission Effects 0.000 claims abstract description 20
- 230000007704 transition Effects 0.000 claims abstract description 19
- 230000005284 excitation Effects 0.000 claims abstract description 17
- 238000012545 processing Methods 0.000 claims abstract description 6
- 238000005070 sampling Methods 0.000 claims description 14
- 230000008569 process Effects 0.000 claims description 12
- 238000007639 printing Methods 0.000 claims description 11
- 238000006243 chemical reaction Methods 0.000 claims description 7
- 238000004806 packaging method and process Methods 0.000 claims description 7
- 230000000630 rising effect Effects 0.000 claims description 6
- 101000741965 Homo sapiens Inactive tyrosine-protein kinase PRAG1 Proteins 0.000 claims description 4
- 102100038659 Inactive tyrosine-protein kinase PRAG1 Human genes 0.000 claims description 4
- 238000004458 analytical method Methods 0.000 claims description 4
- 230000000737 periodic effect Effects 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 claims description 3
- 230000003993 interaction Effects 0.000 claims description 3
- 230000001788 irregular Effects 0.000 claims description 3
- 238000004891 communication Methods 0.000 abstract description 10
- 239000000306 component Substances 0.000 description 23
- 238000010586 diagram Methods 0.000 description 8
- 238000011161 development Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- RZVAJINKPMORJF-UHFFFAOYSA-N Acetaminophen Chemical compound CC(=O)NC1=CC=C(O)C=C1 RZVAJINKPMORJF-UHFFFAOYSA-N 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000036962 time dependent Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2115/00—Details relating to the type of the circuit
- G06F2115/08—Intellectual property [IP] blocks or IP cores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0016—Inter-integrated circuit (I2C)
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Maintenance And Management Of Digital Transmission (AREA)
Abstract
本发明公开了一种集成芯片的被动模式验证方法及系统,涉及芯片验证技术领域,包括搭建基于UVM的SV域验证平台、基于Mealy状态机的CPP域验证平台以及信号传输通道;SV域验证平台将第三方VIP提供的测试序列作为待测设计激励,接收待测设计的输出信号并周期采样,将采样后的信号封装成第一事务;第一事务在CPP域验证平台进行检测;将检测结果通过信号传输通道传输给SV域验证平台进行报错或警告处理并在验证结束时输出验证报告。本发明基于被动模式全面且客观地监测不同测试案例下待测设计输出信号与通信协议要求的匹配度,对主端和从端之间收发情况进行规范约束,并且对信号中出现的时间或状态转换问题进行警告或报错处理。
Description
技术领域
本发明涉及芯片验证技术领域,更具体的说是涉及一种集成芯片的被动模式验证方法及系统。
背景技术
目前,随着半导体行业和片上系统技术的发展,集成电路设计规模不断扩大,其对结构复杂度和功能集成度提出更高要求。为了保证芯片设计的正确性以及代码逻辑的严谨性,芯片验证这一流程应运而生。芯片验证的初期,业界采用Verilog展开验证工作,但是随即面临功能模块化、随机化验证不足的问题。2002年提出的SystemVerilog(SV)不仅具有面向对象语言的特性,即封装、继承和多态,还为验证提供了约束和功能覆盖率的独有特性。SV一经推出便受到热烈欢迎,并在2005年成为IEEE标准,逐步发展为主流的验证语言。基于SV的语法,随之诞生三种验证方法学:VMM(Verification Methodology Manual)、OVM(OpenVerification Methodology)和UVM(Universal Verification Methodology)。其中UVM继承了VMM和OVM的优秀部分,解决了VMM中寄存器相关问题,且因重用性好、可约束随机性强、架构清晰等特点成为主流验证法。
由于系统级芯片(SOC,System on Chip)设计中大量复用已有的IP核,其验证过程需要对IP核进行模块级验证,并在完成模块级验证的基础上进行整体系统验证。为了提高验证效率和减轻工作人员负担,EDA厂商推出验证知识产权核(VIP,VerificationIntellectual Property),VIP包括验证平台和相关测试用例,能够自动化产生激励、数据比对和覆盖率统计。目前国内的芯片设计公司偏向于使用第三方购买的VIP搭建验证环境。该安排虽然能减少芯片制造过程中花费的时间,但是相关产品将在参数和特性上趋于普遍性,不具备公司特有优势。因此,研发具备自主知识产权的VIP将成为芯片公司领先于其他公司的重要突破点。
现有的芯片验证方法的缺点是:缺乏自主知识产权,缺乏产业优势;可重用性不强,修改框架或完善平台需要较高开发成本;对I2C模块的验证较为粗糙,没有进一步细化验证方向。
因此,如何针对现有芯片的缺点提供一种集成芯片的被动模式验证方法提高验证平台开发效率是本领域技术人员亟需解决的问题。
发明内容
有鉴于此,本发明提供了一种集成芯片的被动模式验证方法,基于被动模式全面且客观地监测不同测试案例下待测设计输出信号与通信协议要求的匹配度,对主端和从端之间收发情况进行规范约束,并且对信号中出现的时间或状态转换问题进行警告或报错处理;在I2C模块的被动模式验证平台中融入UVM、VIP和Mealy状态机等要素,提高验证平台开发效率。
为了实现上述目的,本发明采用如下技术方案:一种集成芯片的被动模式验证方法,包括:
搭建基于UVM的SV域验证平台、基于Mealy状态机的CPP域验证平台以及信号传输通道;所述SV域验证平台通过信号传输通道与所述CPP域验证平台进行交互;
所述SV域验证平台将第三方VIP提供的测试序列作为待测设计激励,接收待测设计的输出信号并周期采样,将采样后的信号封装成第一事务;
所述第一事务在所述CPP域验证平台进行检测;
将检测结果通过信号传输通道传输给所述SV域验证平台进行报错或警告处理;
所述SV域验证平台根据检测结果判断是否终止验证过程,并在验证结束后输出验证报告。
优选的,CPP域验证平台进行检测的具体步骤如下:
根据第一事务进行时钟检测和速度检测,并存储时间参数和速度参数到第二事务中;
根据第一事务进行状态机检测,并存储状态参数到所述第二事务中;
根据第二事务进行错误检测,对检测到的错误信息进行错误打印,并将错误类型和错误严重性封装到第三事务中。
优选的,所述SV域验证平台包括TOP层;所述TOP层包括待测设计模块和测试用例层,通过测试用例层创建不同系统环境和不同测试激励;
所述测试用例层包括环境组件;
所述环境组件包括主动模式单元组件群和被动模式单元组件群;
所述主动模式单元组件群用于产生随机化激励输入到待测设计模块中,生成SDA和SCL信号;
被动模式单元组件群中通过驱动器和序列器搭配生成CLK时钟信号并进行周期采样;通过监测器接收SDA和SCL信号。
优选的,搭建所述信号传输通道具体包括:实例化SV域的第一核心模块,同时通过第一核心模块创建CPP域和CPP域的第二核心模块;通过所述第一核心模块与所述第二核心模块完成交互。
优选的,根据第一事务进行时钟检测和速度检测,包括:
计算当前系统执行时间,并将时间参数存储在第二事务中;
计算SCL的周期和频率值,根据频率值判定速度模式,将速度参数存储在第二事务中。
优选的,所述当前系统执行时间的具体计算过程如下式:
其中,Time表示当前系统执行时间,cycle表示传递的第一事务的时钟周期数;clk表示采样周期。
优选的,根据第一事务进行状态机检测的具体步骤为:将第一事务中的SCL、SDA和状态state输入到状态机中;
根据SCL和SDA的信号线变换情况,在预设状态模式下的状态转换逻辑进行状态跳转,更新状态state;
状态机的状态模式包括空闲IDLE、开始START、地址ADDR、读取READ、写入WRITE、响应ACK、不响应NACK、数据DATA和停止STOP;
其中,开始START和停止STOP状态模式是在SCL高电平时根据SDA的跳变来判定和转换,而其余状态模式是在SCL上升沿时根据SDA稳定值来判定和转换;当首次进入地址ADDR状态模式时,循环A次获得Abit目标地址,根据目标地址和后一位READ/WRITE位设置总线状态bus_status;
完成状态跳转后,记录当前SCL和SDA作为下一次触发状态机检测模块的前信号参数PRE_SCL和PRE_SDA;
将变量值存储在第二事务中。
优选的,所述错误检测包括:根据速度参数和时间参数进行时间错误检测,根据状态参数进行状态转换错误检测。
优选的,所述时间错误检测包括:根据第二事务中的速度参数和时间参数,选择速度模式;
在满足开始检测条件时记录当前系统执行时间为Tstart,在满足停止检测条件时记录时间为Tstop,判断Tstart到Tstop之间的时间是否在要求的时间范围内;
如果超出要求的时间范围则进行错误打印,并将错误类型和错误严重性存储在第三事务中;
所述状态转换错误检测包括:根据第二事务中的状态参数进行逻辑分析,检测到第二事务中存在不规范收发数据的现象时,则进行错误打印并将错误类型和错误严重性存储在第三事务中。
优选的,一种集成芯片的被动模式验证系统,其特征在于,包括
SV域验证平台,用于将第三方VIP提供的测试序列作为待测设计激励,接收待测设计的输出信号并周期采样,将采样后的信号封装成第一事务;
CPP域验证平台,用于对第一事务进行检测;
信号传输通道,用于将所述第一事务传输到所述CPP域验证平台,并将CPP域验证平台的检测结果传输到所述SV域验证平台。
经由上述的技术方案可知,与现有技术相比,本发明公开提供了一种集成芯片的被动模式验证方法,包括:搭建基于UVM的SV域验证平台、基于Mealy状态机的CPP域验证平台以及信号传输通道;SV域验证平台将第三方VIP提供的测试序列作为待测设计激励,接收待测设计的输出信号并周期采样,将采样后的信号封装成第一事务;第一事务在CPP域验证平台进行检测;将检测结果通过信号传输通道传输给SV域验证平台进行报错或警告处理并在验证结束时输出验证报告。
本发明具有以下有益效果:
(1)本发明结合UVM和Mealy状态机构建“SV域+CPP域”验证平台,其建模格式规范且层次较高,具有良好的可重用性,便于后续验证人员修改框架或重用部分组件搭建不同的验证平台,节省后期开发人力成本。
(2)本发明基于Mealy状态机,能够更直观展现信号中的逻辑状态转换过程,并且可通过简单修改状态机程序完善验证平台;利用Mealy型状态机设计和验证数字集成电路,不仅可以得到综合的RTL级代码,又能使这些代码保证较高的稳定性和可靠性,且当发现验证过程中逻辑存在问题或计划优化完善验证平台时,修改状态机中逻辑关系更为简单和灵活。
(3)对IP验证设计进一步细化,提出被动模式下的VIP,能够实时监测到主从端两方信号在时间和状态转换上的所有错误,并及时报错或警告。
(4)本发明具有自主知识产权,所有代码自主可控,便于后期修改与升级。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明提供的一种集成芯片的被动模式验证方法流程图。
图2为本发明实施例提供的SV域验证平台的框架图。
图3为本发明实施例提供的CPP域验证平台的框架图。
图4为本发明实施例提供的被动模式下的I2C模块状态机状态转换逻辑示意图。
图5(a)为本发明实施例提供的时间系列错误情况图。
图5(b)为本发明实施例提供的状态转化系列错误情况图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种集成芯片的被动模式验证方法,如图1所示,包括:
搭建基于UVM的SV域验证平台、基于Mealy状态机的CPP域验证平台以及信号传输通道;所述SV域验证平台通过信号传输通道与所述CPP域验证平台进行交互;
所述SV域验证平台将第三方VIP提供的测试序列作为待测设计激励,接收待测设计的输出信号并周期采样,将采样后的信号封装成第一事务;
所述第一事务在所述CPP域验证平台进行检测;
将检测结果通过信号传输通道传输给所述SV域验证平台进行报错或警告处理;
所述SV域验证平台根据检测结果判断是否终止验证过程,并在验证结束后输出验证报告。
具体的,CPP域验证平台进行检测的具体步骤如下:
根据第一事务进行时钟检测和速度检测,并存储时间参数和速度参数到第二事务中;
根据第一事务进行状态机检测,并存储状态参数到所述第二事务中;
根据第二事务进行错误检测,对检测到的错误信息进行错误打印,并将错误类型和错误严重性封装到第三事务中。
将第三事务作为检测结果通过信号传输通道传输到所述SV域验证平台。
具体的,所述SV域验证平台包括TOP层;所述TOP层包括待测设计模块和测试用例层,通过测试用例层创建不同系统环境和不同测试激励;
所述测试用例层包括环境组件;
所述环境组件包括主动模式单元组件群和被动模式单元组件群;
所述主动模式单元组件群用于产生随机化激励输入到待测设计模块中,生成SDA和SCL信号;
被动模式单元组件群中通过驱动器和序列器搭配生成CLK时钟信号并进行周期采样;通过监测器接收SDA和SCL信号。
具体的,搭建所述信号传输通道具体包括:实例化SV域的第一核心模块,同时通过第一核心模块创建CPP域和CPP域的第二核心模块;通过所述第一核心模块与所述第二核心模块完成交互。
具体的,根据第一事务进行时钟检测和速度检测,包括:
计算当前系统执行时间,并将时间参数存储在第二事务中;
计算SCL的周期和频率值,根据频率值判定速度模式,将速度参数存储在第二事务中。
具体的,所述当前系统执行时间的具体计算过程如下式:
其中,Time表示当前系统执行时间,cycle表示传递的第一事务的时钟周期数;clk表示采样周期。
具体的,根据第一事务进行状态机检测的具体步骤为:将第一事务中的SCL、SDA和状态state输入到状态机中;
根据SCL和SDA的信号线变换情况,在预设状态模式下的状态转换逻辑进行状态跳转,更新状态state;
状态机的状态模式包括空闲IDLE、开始START、地址ADDR、读取READ、写入WRITE、响应ACK、不响应NACK、数据DATA和停止STOP;
其中,开始START和停止STOP状态模式是在SCL高电平时根据SDA的跳变来判定和转换,而其余状态模式是在SCL上升沿时根据SDA稳定值来判定和转换;当首次进入地址ADDR状态模式时,循环A次获得Abit目标地址,根据目标地址和后一位READ/WRITE位设置总线状态bus_status;
完成状态跳转后,记录当前SCL和SDA作为下一次触发状态机检测模块的前信号参数PRE_SCL和PRE_SDA;
将变量值存储在第二事务中。
具体的,所述错误检测包括:根据速度参数和时间参数进行时间错误检测,根据状态参数进行状态转换错误检测。
具体的,所述时间错误检测包括:根据第二事务中的速度参数和时间参数,选择速度模式;
在满足开始检测条件时记录当前系统执行时间为Tstart,在满足停止检测条件时记录时间为Tstop,判断Tstart到Tstop之间的时间是否在要求的时间范围内;
如果超出要求的时间范围则进行错误打印,并将错误类型和错误严重性存储在第三事务中;
所述状态转换错误检测包括:根据第二事务中的状态参数进行逻辑分析,检测到第二事务中存在不规范收发数据的现象时,则进行错误打印并将错误类型和错误严重性存储在第三事务中。
一种集成芯片的被动模式验证系统,其特征在于,包括
SV域验证平台,用于将第三方VIP提供的测试序列作为待测设计激励,接收待测设计的输出信号并周期采样,将采样后的信号封装成第一事务;
CPP域验证平台,用于对第一事务进行检测;
信号传输通道,用于将所述第一事务传输到所述CPP域验证平台,并将CPP域验证平台的检测结果传输到所述SV域验证平台。
在本发明的一个具体实施例中,一种基于UVM和Mealy状态机的被动模式I2C模块级验证方法,具体步骤如下:
S1:搭建基于UVM的SV域验证平台,实例化单元组件和环境,使用第三方VIP中的I2C模块的主从端测试序列作为待测设计激励,待测设计输出信号被监测器接收并周期采样后封装成事务i2c_if_trans;
S2:构造SV域与CPP域间的信号通道,传递I2C相关事务到CPP域中;
S3:搭建CPP域的I2C模型,进行模块端口连接;
S4:根据事务i2c_if_trans进行时钟和速度检测,存储相关参数到事务clk_i2c_trans中;
S5:根据事务i2c_if_trans进行状态机检测,存储地址和状态相关参数到事务clk_i2c_trans中;
S6:根据事务clk_i2c_trans进行错误检测,分别进行时间系列错误检测和状态转换系列错误检测,对相关错误进行报错或警告,并且存储错误参数到事务i2c_err_trans中,传输事务反馈到SV域中;
S7:验证结束后输出验证报告。
为了进一步优化上述技术方案,如图2所示的基于UVM的SV域验证平台的框架图,S1可细化为如下步骤:
S1.1:执行本发明实施例提供的集成芯片验证平台时,SV域的验证平台将自上而下实例化各个组件,其中最顶层的TOP层主要由以下部分构成:面向I2C模块的待测设计DUT、验证平台与DUT通信的接口组件I3cActiveInterface和I2cPassiveInterface以及测试用例层I2c_test;测试用例层I2c_test包括系统环境I2c_env;系统环境I2c_env中又包括第三方VIP的主动模式单元组件群、自主研发的VIP被动模式单元组件群和系统配置项;所有的单元组件群的组成成分都为驱动器、监测器、序列器和相关配置项。
进一步,主动模式单元组件群又可细分为主端单元组件和从端单元组件,分别模拟标准I2C总线的主端和从端,产生随机化激励输入待测设计中,生成SDA和SCL信号;其中,驱动器和序列器搭配用于产生待测设计的时序激励,监测器从待测设计中接收数据转化为事务,相关配置信息可用于配置不同的监测器和序列。
被动模式单元组件群中驱动器和序列器搭配生成CLK时钟信号进行周期采样,通过配置CLK时钟信号周期和占空比可改变采样频率;监测器在CLK信号上升沿时接收SDA和SCL信号并将其打包成新事务,I2C_CORE组件用于创建镜像CPP域和域间信息通信。
S1.2:根据第三方说明文档,配置主动模式单元组件群的相关参数,用来模拟I2C模块的实际收发状况;自主配置被动模式单元组件群的相关参数,包括CLK信号的周期、占空比等,用来生成监测器的采样周期信号CLK。
S1.3:待测设计输出信号经接口I2cPassiveInterface传入被动模式单元组件群的监测器中,监测器仅在CLK时钟信号上升沿时接收SDA和SCL信号,并将其与状态state和时钟周期数cycle打包为事务i2c_if_trans。
为了进一步优化上述技术方案,如图3所示的CPP域验证平台的框架图,S2构建了SV域和CPP域间的I2C_CORE通信通道,具体过程包括:平台在实例化SV域的I2C_CORE模块时,创建了邻域CPP域和镜像模块I2C_CORE;CPP域的I2C_CORE实例化连接模块I2C_IF_CONNECT和I2C_ERROR_CONNECT,并通过DPI进行域-域间事务通信,将SV域的事务传递到CPP域的连接模块中;CPP域的连接模块通过PORT-EMP端口连接方式将事务传入I2C模型中;传递的事务包括双向通信的i2c_if_trans和CPP域传向SV域的i2c_err_trans,其中后者封装的信息为错误类型E_ERROR和错误严重性ERR_INFO;I2C_IF_CONNECT模块用于传输i2c_if_trans事务,I2C_ERROR_CONNECT模块用于传输i2c_err_trans事务。
为了进一步优化上述技术方案,如图3所示,S3细化为以下步骤:
S3.1:搭建CPP域的I2C模型需要先实例化内部各个功能模块,按执行先后顺序可分为时钟和速度检测模块、被动模式的Mealy状态机检测模块和错误检测模块。
S3.2:搭建I2C模型完成后进行模块间的端口连接,一般情况下按照执行顺序将自身模块的PORT端口连入下一个功能模块的IMP端口,从而构建事务有向传输通道;然而Mealy状态机检测模块具有两个PORT端口,它的一个PORT端口连接I2C_MODEL的EMP端口,目的是将i2c_if_trans事务先后通过I2C模型-连接模块的通道和域间通道传回SV域中,另一个PORT端口连接错误检测模块,目的是通过状态机状态判断后进行错误检测。
进一步说明,当CPP域验证平台完全搭建完成后,后续只要SV域的监测器更新i2c_if_trans事务,将不再执行S2和S3,直接进行S4~S6。
为了进一步优化上述技术方案,S4细化为以下步骤:
S4.1:进行时钟检测,计算当前系统执行时间Time满足公式:
其中,cycle为i2c_if_trans中传递的时钟周期数,clk为监测器的采样周期,默认为100纳秒;计算获得的系统执行时间将与SCL、SDA、cycle等参数存储在新事务clk_i2c_trans中。
S4.2:计算SCL的周期和频率,即求取两个上升沿的时间间隔作为周期,取周期倒数作为频率。根据SCL频率值判断速度模式,速度模式分为Standard、Fast、FastPlus或HighSpeed模式四种,最后将速度模式也存入事务clk_i2c_trans中。
为了进一步优化上述技术方案,如图4所示,S5细化为以下步骤:
S5.1:输入i2c_if_trans事务中的SCL、SDA和状态state到符合I2C协议规则的Mealy状态机中,根据状态state值确定状态模式。
进一步说明,状态模式总共9种,即空闲IDLE、开始START、地址ADDR、读取READ、写入WRITE、响应ACK、不响应NACK、数据DATA和停止STOP。
S5.2:根据两条信号线SCL和SDA变换情况,在已定状态模式下按照图4所示的状态转换逻辑示意图进行状态跳转,更新状态state。
表1
目标地址 | R/W位 | 描述 |
0000000 | 0 | 通用呼叫地址 |
0000000 | 1 | 开始比特 |
0000001 | X | CBUS地址 |
0000010 | X | 保留用于不同总线形式 |
0000011 | X | 保留用于未来用处 |
00001XX | X | Hs模式 |
11111XX | 1 | 设备ID |
11110XX | X | 10位寻址 |
进一步说明,START和STOP状态模式是在SCL高电平时根据SDA的跳变来判定和转换,而其余状态模式是在SCL上升沿时根据SDA稳定值来判定和转换;当首次进入地址ADDR状态模式时,循环7次获得7比特目标地址,根据目标地址和后一位READ/WRITE位设置总线状态bus_status,如表1所示。
S5.3:完成状态跳转后,记录当前SCL和SDA作为下一次触发状态机检测模块的前信号参数PRE_SCL和PRE_SDA。
S5.4:将上一状态、最新状态、总线状态、保留地址等一系列变量值存储在clk_i2c_trans中。
为了进一步优化上述技术方案,如图5(a)和图5(b)所示,S6具体包括以下步骤:
S6.1:进行时间相关错误检测。首先进行速度模式的选择;接着在满足开始检测条件时记录当前系统执行时间为Tstart,在满足停止检测条件时记录时间为Tstop;计算Tstop-Tstart是否在I2C要求时间范围中,如果超出范围就打印错误信息,并将错误类型和错误严重性存储在i2c_err_trans事务中。
S6.2:进行状态转换相关错误检测。根据事务clk_i2c_trans中状态和地址相关参数进行逻辑分析,检测到主端和从端间收发数据的不规范现象时,进行错误打印并将错误类型和错误严重性存储在i2c_err_trans事务中。
S6.3:i2c_err_trans事务通过I2C_CORE通信通道返回SV域中,监测器反馈错误信息进行报错。
进一步,在S7中,SV域验证平台根据反馈的错误事务中的错误严重性判断是否终止验证过程。当验证完全结束时,平台汇总相关参数、配置和错误信息,打印验证报告。
本发明实施例提供了一种集成芯片验证方法,它的验证对象为I2C模块,验证模式是被动模式,验证目的是全面且客观地监测不同测试案例下待测设计输出信号与I2C协议要求的匹配度,能够对于主端(MASTER)和从端(SLAVE)之间收发情况进行规范约束,并且对于信号中出现的时间或状态转换问题进行警告或报错处理。
本发明实施例具有以下有益效果:
(1)本发明实施例结合UVM和Mealy状态机构建“SV域+CPP域”验证平台,其建模格式规范且层次较高,具有良好的可重用性,便利后续验证人员修改框架或重用部分组件搭建不同的验证平台,节省后期开发人力成本。
(2)本发明实施例与Mealy状态机相结合,能够更直观展现I2C信号中逻辑状态转换过程,并且可通过简单修改状态机程序完善验证平台。
(3)对I2C模块的IP验证设计进一步细化,提出被动模式下的VIP,能够实时监测到I2C主从端两方信号在时间和状态转换上的所有错误,并及时报错或警告。
(4)本发明实施例具有自主知识产权,所有代码自主可控,便于后期修改与升级。
以上所述的实施例仅仅是为了说明本发明所做的举例,该方法可适用于验证任何被动模式下的通讯协议,因此无论哪种通讯协议套用本发明实施例的框架构思均应落入本发明保护范围之中。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种集成芯片的被动模式验证方法,其特征在于,包括:
搭建基于UVM的SV域验证平台、基于Mealy状态机的CPP域验证平台以及信号传输通道;所述SV域验证平台通过信号传输通道与所述CPP域验证平台进行交互;
所述SV域验证平台将第三方VIP提供的测试序列作为待测设计激励,接收待测设计的输出信号并周期采样,将采样后的信号封装成第一事务;
所述第一事务在所述CPP域验证平台进行检测;
将检测结果通过信号传输通道传输给所述SV域验证平台进行报错或警告处理;
所述SV域验证平台根据检测结果判断是否终止验证过程,并在验证结束后输出验证报告。
2.根据权利要求1所述的一种集成芯片的被动模式验证方法,其特征在于,CPP域验证平台进行检测的具体步骤如下:
根据第一事务进行时钟检测和速度检测,并存储时间参数和速度参数到第二事务中;
根据第一事务进行状态机检测,并存储状态参数到所述第二事务中;
根据第二事务进行错误检测,对检测到的错误信息进行错误打印,并将错误类型和错误严重性封装到第三事务中。
3.根据权利要求1所述的一种集成芯片的被动模式验证方法,其特征在于,所述SV域验证平台包括TOP层;所述TOP层包括待测设计模块和测试用例层,通过测试用例层创建不同系统环境和不同测试激励;
所述测试用例层包括环境组件;
所述环境组件包括主动模式单元组件群和被动模式单元组件群;
所述主动模式单元组件群用于产生随机化激励输入到待测设计模块中,生成SDA和SCL信号;
被动模式单元组件群中通过驱动器和序列器搭配生成CLK时钟信号并进行周期采样;通过监测器接收SDA和SCL信号。
4.根据权利要求1所述的一种集成芯片的被动模式验证方法,其特征在于,搭建所述信号传输通道具体包括:实例化SV域的第一核心模块,同时通过第一核心模块创建CPP域和CPP域的第二核心模块;通过所述第一核心模块与所述第二核心模块完成交互。
5.根据权利要求2所述的一种集成芯片的被动模式验证方法,其特征在于,根据第一事务进行时钟检测和速度检测,包括:
计算当前系统执行时间,并将时间参数存储在第二事务中;
计算SCL的周期和频率值,根据频率值判定速度模式,将速度参数存储在第二事务中。
6.根据权利要求5所述的一种集成芯片的被动模式验证方法,其特征在于,所述当前系统执行时间的具体计算过程如下式:
其中,Time表示当前系统执行时间,cycle表示传递的第一事务的时钟周期数;clk表示采样周期。
7.根据权利要求2所述的一种集成芯片的被动模式验证方法,其特征在于,根据第一事务进行状态机检测的具体步骤为:将第一事务中的SCL、SDA和状态state输入到状态机中;
根据SCL和SDA的信号线变换情况,在预设状态模式下的状态转换逻辑进行状态跳转,更新状态state;
状态机的状态模式包括空闲IDLE、开始START、地址ADDR、读取READ、写入WRITE、响应ACK、不响应NACK、数据DATA和停止STOP;
其中,开始START和停止STOP状态模式是在SCL高电平时根据SDA的跳变来判定和转换,而其余状态模式是在SCL上升沿时根据SDA稳定值来判定和转换;当首次进入地址ADDR状态模式时,循环A次获得Abit目标地址,根据目标地址和后一位READ/WRITE位设置总线状态bus_status;
完成状态跳转后,记录当前SCL和SDA作为下一次触发状态机检测模块的前信号参数PRE_SCL和PRE_SDA;
将变量值存储在第二事务中。
8.根据权利要求2所述的一种集成芯片的被动模式验证方法,其特征在于,所述错误检测包括:根据速度参数和时间参数进行时间错误检测,根据状态参数进行状态转换错误检测。
9.根据权利要求8所述的一种集成芯片的被动模式验证方法,其特征在于,所述时间错误检测包括:根据第二事务中的速度参数和时间参数,选择速度模式;
在满足开始检测条件时记录当前系统执行时间为Tstart,在满足停止检测条件时记录时间为Tstop,判断Tstart到Tstop之间的时间是否在要求的时间范围内;
如果超出要求的时间范围则进行错误打印,并将错误类型和错误严重性存储在第三事务中;
所述状态转换错误检测包括:根据第二事务中的状态参数进行逻辑分析,检测到第二事务中存在不规范收发数据的现象时,则进行错误打印并将错误类型和错误严重性存储在第三事务中。
10.一种集成芯片的被动模式验证系统,采用如权利要求1-9任一项所述的一种集成芯片的被动模式验证方法,其特征在于,包括
SV域验证平台,用于将第三方VIP提供的测试序列作为待测设计激励,接收待测设计的输出信号并周期采样,将采样后的信号封装成第一事务;
CPP域验证平台,用于对第一事务进行检测;
信号传输通道,用于将所述第一事务传输到所述CPP域验证平台,并将CPP域验证平台的检测结果传输到所述SV域验证平台。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310757356.9A CN116776785A (zh) | 2023-06-26 | 2023-06-26 | 一种集成芯片的被动模式验证方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310757356.9A CN116776785A (zh) | 2023-06-26 | 2023-06-26 | 一种集成芯片的被动模式验证方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116776785A true CN116776785A (zh) | 2023-09-19 |
Family
ID=87985640
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310757356.9A Pending CN116776785A (zh) | 2023-06-26 | 2023-06-26 | 一种集成芯片的被动模式验证方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116776785A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117057286A (zh) * | 2023-10-11 | 2023-11-14 | 成都电科星拓科技有限公司 | 一种基于UVM和VIP的SMBus模块级验证系统 |
-
2023
- 2023-06-26 CN CN202310757356.9A patent/CN116776785A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117057286A (zh) * | 2023-10-11 | 2023-11-14 | 成都电科星拓科技有限公司 | 一种基于UVM和VIP的SMBus模块级验证系统 |
CN117057286B (zh) * | 2023-10-11 | 2024-01-30 | 成都电科星拓科技有限公司 | 一种基于UVM和VIP的SMBus模块级验证系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5953519A (en) | Method and system for generating electronic hardware simulation models | |
CN106156424B (zh) | 一种仿真系统 | |
CN113342583B (zh) | 芯片验证系统、方法、装置、设备和存储介质 | |
CN104657245B (zh) | 基于amba总线的模块级uvm验证平台的自动生成装置 | |
US20080306722A1 (en) | Logic verification system | |
CN103530211B (zh) | 一种基于uvm平台的pcie回环自检测的方法 | |
CN116776785A (zh) | 一种集成芯片的被动模式验证方法及系统 | |
US7437701B1 (en) | Simulation of a programming language specification of a circuit design | |
CN113569509B (zh) | 面向amba总线架构芯片的性能验证系统及应用 | |
TW563043B (en) | Method and apparatus for design validation of complex IC without using logic simulation | |
CN117709046B (zh) | 一种基于uvm的APB_bridge子系统级的验证平台的搭建方法 | |
CN106844271A (zh) | 一种系统验证平台及方法 | |
CN102831272A (zh) | 用于双边沿触发器的可测试性设计方法 | |
JP2002368104A (ja) | 論理集積回路及び論理集積回路設計方法及び論理集積回路のハードウェア動作記述を生成するハードウェア記述生成方法 | |
CN114417768A (zh) | 一种以太网芯片的数模混合仿真方法及系统 | |
CN114706768A (zh) | I3c总线验证方法及验证系统 | |
CN112559264B (zh) | 基于uvm的验证平台实现fpga通用串口的仿真测试方法 | |
CN117057286B (zh) | 一种基于UVM和VIP的SMBus模块级验证系统 | |
CN114239477A (zh) | 硬件连线检查方法、装置、存储介质及电子设备 | |
CN113113074A (zh) | 伪静态随机存储器psram验证装置及其方法 | |
CN111708661A (zh) | 一种适用于中央网关的压力测试系统及方法 | |
Mahale et al. | Architecture Analysis and Verification of I3C Protocol | |
Guo et al. | A SPI interface module verification method based on UVM | |
CN111460759A (zh) | 一种基于Python语言的EDA验证平台及其使用方法 | |
CN109557459A (zh) | 一种基于JTAG测试的SiP系统及其内部芯片的JTAG测试方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |