林 慧,蒋 武,熊 熙,李元祝,黄志荣
(1.海思半导体技术有限公司,广东 深圳 518129;2.楷登企业管理有限公司深圳分公司,广东 深圳518129;3.中软国际科技服务有限公司深圳分公司,广东 深圳 518129)
Verifier提高验证完备性
林慧1,蒋武1,熊熙1,李元祝2,黄志荣3
(1.海思半导体技术有限公司,广东 深圳 518129;2.楷登企业管理有限公司深圳分公司,广东 深圳518129;3.中软国际科技服务有限公司深圳分公司,广东 深圳 518129)
随着集成电路设计技术的不断发展,电路设计中经常出现一些问题。因此,设计验证技术成为了电路设计中不可或缺的部分。如何提高验证完备性,是验证技术的难题之一。本文介绍了 Cadence最新发布的适用于模拟设计的ADE Verifier的工具使用流程,以及根据海思业务需求定制的使用方法。该工具整合了验证工具ADE Explorer和ADE Assembler的特性,完善了模拟电路设计验证流程,解决了模拟设计验证完备性中的问题。
电路设计;验证完备性;ADE verifier
ADEExplorer、ADEAssembler是 CadenceVirtuoso ADE一系列产品的重要模拟设计验证工具,将验证技术可视化,能够很好地支持工程师子模块的模拟设计验证,大大提高了验证效率。现有的验证直接根据仿真结果来决定验证设计的好坏与否。这种验证流程简单有效,但是也有其弊端——规格无标准可循、难以覆盖更高层的设计,导致难以及时发现并规避设计更深层的问题。在整合了ADE Explorer、ADE Assembler强大的简单有效的验证功能的基础上,ADE Verifier在验证流程上做了进一步的优化,能够有效弥补现有模拟设计验证存在的不足,很大程度上提高了模拟设计验证的可靠性和完备性。ADE Verifier特性如图1所示。
图1 ADE Verifier特性
Verifier支持自顶向下、自下向上、混合的设计方法。本文描述Verifier自顶向下的设计方法。根据客户需求、业务场景和条件等原始需求,项目管理者(PM/PL)整合原始需求,转换成设计语言,细化、分解设计需求。然后将整个需求分配给不同的工程师。根据分配得到的需求,工程师深入理解设计需求,量化相应的设计规格,并设计仿真用例和测试用例,完成仿真。然后将需求设计和规格设计进行最后,工程师提交验证数据,项目管理者就可以及时观测验证结果,跟踪项目验证进度。ADEVerifier验证流程如图2所示。
图2 ADE Verifier验证流程
2.1项目管理者建立Requirement
需求的建立有两种方式,一是项目管理者在 verifier里面创建的,二是直接导入指定格式的需求表格,包括csv文件和excel文件。
需求的内容包括项目名称,模块名称,指标的最大值与最小值、指标的单位、责任人、类型以及详细的描述等。指标的最大值与最小值、指标的单位都是作为后续规格设计的约束。内容可以由中文、英文、日语、德语、北印度语5种语言组成。
需求的类型包括以下几种:Note,Spec Pass,Ran OK,Manual。Note类型的需求是不需要仿真验证;Spec Pass类型和 Ran OK类型的需求是可以进行仿真验证的,二者差别就是 Spec Pass类型的需求要考虑需求设计的指标值来决定需求的状态,Ran OK类型的需求只会根据仿真结果来决定需求的状态;Manual类型的需求是指是要人为判断设计的成功与否,而不是直接简单地根据仿真结果来决定。
需求是Hierarchy结构的。从顶层模块开始进行需求设计,细化到每个子模块的需求设计,直到完成整个项目的需求设计。每个需求设计都会指定一个责任人,后续每个责任人都只需要对各自被分配到的需求负责人。
在现有的整个项目需求设计基础上,可以新增需求、删除现有需求、编辑现有需求。
2.2项目管理者分配Requirement
根据需求责任人,可以将 master verification分成几个不同的 owner verification。每个责任人只需要着眼于own verification,根据被分配到的需求进行规格设计。如图3所示,Fred、Harry是 master verification的责任人,分配需求时,会生成相应的 verification_Fred和 verification_Harry。之后,Fred和 Harry只需要分别修改、完善verification_Fred和 verification_Harry即可。
图3 分配Requirement
2.3工程师添加Implementation
根据需求设计,工程师进行相应的 Implementation,支持adel、adexl、maestro类型的文件。如图4所示。
图4 工程师添加Implementation
2.4工程师建立Mapping
工程师根据自己分配到的任务,建立 testbench,和Requirement建立映射。Requiremment与 SPEC之间可以是n:1或者1:n的关系。
需求的 mapping有 6种状态:Pass,Fail,No Results,Mapped,Unmapped,Spec check failed。
Pass是指在 requirement的specification与implementation的 specification保持一致的前提下,requirement的specification和仿真结果保持一致。
Fail是指在 requirement的 specification与 implementation的 specification保持一致的前提下,requirement的specification和仿真结果不同。
No Results是指在 requirement的 specification与 implementation的specification保持一致的前提下,implementation没有仿真结果。
Mapped是指 requirement的 specification与 implementation的specification保持一致。
Unmapped是指requirement还没有建立mapping。
Spec Check Failed是指如果 requirement的 specification与implementation的specification不能保持一致。
2.5工程师加载、提交个人Result
Verifier提供了两种加载结果的方式:直接跑仿真和加载仿真结果。
Verifier呈现的结果包括整个项目的结果百分比,以及每个模块、需求的结果。需求的结果状态分为两种:RequirementStatus和SpecificationStatus。Specification Status是根据 spec的结果而定;Requirement Status是根据spec结果以及map结果而定。加载个人Results如图5所示。
图5 加载个人Results
2.6项目管理者查看项目Result
等到工程师提交了个人结果之后,项目管理者就可以查看整个项目的验证进展和验证结果。如图6所示。
图6 查看项目Results
3.1定制化特性
根据海思的业务需求,在原有 ADE Verifier平台上,添加了定制化特性,有以下两点:
(1)导入的 requirement表格形式:通过新增列数,直观地呈现需求之间的Hierachy结构;
(2)结果的保存与呈现:通过收集工程师提交的结果,保存到数据库。保存结果能够让现有项目传承历史项目的优良基因;展示结果从项目和 owner的维度展示数据,能够让项目管理者直观看到整个项目的验证进展,让工程师清晰认识到自己模块的进度。Hisilicon Verifier Results如图7所示。
图7 Hisilicon Verifier Results
3.2定制化流程
在工程师提交verification时候,结果数据就会被收集。为了适配定制化特性——收集结果数据,整理了使用verifier的三种流程,这三种流程都能够保证收集到数据。为了能够清晰描述三种流程的特点,假设背景如下:工程P,项目经理是M,工程师E1,E2,E3。M新建一个verification,设置 result路径为 Current cellview,这样结果文件就在相应的 verification路径下。分配任务,生成verification_E1,verification_E2,verification_E3。项目经理M check in verification,verification_E1,verification_E2,verification_E3。如图8~图11所示。
图8 项目背景
图9 流程1
图10 流程2
(1)流程1(如图8)
Step1:
E1新建maestre_E1,搭建testbench,跑仿真;
Step2:
E1 Check out verification_E1,和 maestre_E1建 立Map,加载结果,check in verification_E1,这样才能收集到数据;
图11 流程3
Step3:
E1 Check in maestre_E1,这样 M,E2,E3才能看到E1的结果;
(2)流程2(如图9)
Step1:
E1新建maestre_E1,搭建testbench,跑仿真;
Step2:
E1 Check out verification_E1,和 maestre_E1建 立Map,加载结果,check in verification_E1,这样才能收集数据;
Step3:
E1 Check out verification,load E1的结果,check in verification,这样M,E2,E3才能看到E1的结果;
(3)流程3(如图10)
Step1:
E1新建maestre_E1,搭建testbench,跑仿真;
Step2:
E1 Check out verification_E1,和 maestre_E1建 立Map,加载结果,check in verification_E1;
这三个流程都能够达到收集数据以及呈现最新结果的目的,但是流程1和流程2都有其弊端。
流程1中,要想工程师的结果被其他人看到,必须提交 maestre。首先,maestre很大,提交很费时。其次,maestre保存的是过程配置信息,不适合提交。
流程2中,整个项目组都需要操作一份文件—verification,很容易产生写冲突,不适合大项目、异地项目的合作。另外,工程师需要操作owner verification和master verification,职责不够分明。
流程3,只需要选择HISILICON_VERIFIER为yes,这样加载结果来源是结果的快照文件。提交 owner verification,即可收集数据,也可以保证其他人都能看到结果。职责分明,操作简单。
所以,Hisilicon Verifier采用流程3。
4.1完备性问题
以Hisilicon的验证流程进行分析,从制定原始需求开始,到编写测试用例,验证完备性的突出问题如下。
(1)OR:遗漏、客户自己不清楚;
(2)DR:功能/隐形需求遗漏;
(3)DS:内部规格未细化、规格条件不合理、非典电路规格不全。
4.2Verifier方案
基于Verifier的验证流程,验证完备性问题能够在很大程度上得到解决。
(1)需求设计、规格设计、仿真等整个验证流程都是需求驱动的,保证了需求的可溯性。
(2)从上至下的验证流程,既保证了各个模块之间相互独立,互不干扰,也保证了各个子模块之间无缝契合。
(3)记录仿真结果,自动复现仿真结果,将仿真过程变得更加可溯和自动化。
(4)当工程师改变了某个设计模块,verifier具有联想功能,能够提示相关testbench需要重新进行仿真,进一步确保验证完备性。
通过使用ADE Verifier工具,我们将在电路设计中解决由于验证不完备性的各种问题。这种问题在很大程度上是可以通过完善的验证流程去规避的。在海思的验证设计实践中,Virtuoso ADE验证工具技术与Virtuoso ADE组装工具技术具备设计规划能力,让设计团队更加高效,提升了模拟IP验证效率将近30%,验证发现的问题数量减少了一半。所以,ADE Verifier是验证设计中不可或缺的工具之一。
Verifier-Improve the simulation verification completeness
Lin Hui1,Jiang Wu1,Xiong Xi1,Li Yuanzhu2,Huang Zhirong3
(1.HiSilicon Technologies,Shenzhen 518129,China;2.Cadence Design System,Shenzhen 518129,China;3.Soft International Science and Technology,Shenzhen 518129,China)
With the technology of the integrated circuit design developing,some problems in the circuit design also arise.The verification technology plays an important role in the circuit design.At present,it is urgent for us find solutions of improving the verification completeness.This paper describes a tool newly published by Cadence,that is,ADE Verifier.In this paper,you will get to know the usage of ADE Verifier and acquire its customized application in HiSilicon.By integrating the identities of both ADE Explorer and ADE Assemble,meanwhile,and by improving the process in a simulation verification,ADE Verifier has been fairly helpful to solve the completeness problem effectively.
circuit design;verification completeness;ADE verifier
TN402
A
10.16157/j.issn.0258-7998.2016.08.007
2016-06-16)
林慧(1992-),女,本科,软件工程师。
蒋武(1983-),男,研究生,软件工程师。
熊熙(1987-),男,研究生,软件工程师。
中文引用格式:林慧,蒋武,熊熙,等.Verifier提高验证完备性[J].电子技术应用,2016,42(8):37-40,43.
英文引用格式:Lin Hui,Jiang Wu,Xiong Xi,et al.Verifier-Improve the simulation verification completeness[J].Application of Electronic Technique,2016,42(8):37-40,43.