芯片验证的策略篇(作者良心大作,验证必看)

合集下载

存储类芯片校验机制

存储类芯片校验机制

存储类芯片校验机制
存储类芯片在现代电子设备中占据着重要的地位,用于存储大量数据
和程序。

然而,由于其容易被篡改和窃取,安全性问题一直是制约其
应用的瓶颈之一。

为了维护存储类芯片的安全性,现有的解决方案之
一是采用校验机制。

校验机制主要包括硬件校验和软件校验两种方式。

硬件校验是通过将
校验位存储在芯片中的特定位置,通过读取该位置内的数据和进行运
算来确认芯片的合法性。

而软件校验则是通过在芯片外部运行特定的
程序,与芯片内部存储的校验值进行比对,以验证芯片的合法性。

在实际应用中,存储类芯片通常会采用组合校验的方式,即同时使用
硬件校验和软件校验。

这种方式既能保证数据的安全性,也能保证系
统的稳定性和易于维护。

同时,我们还可以通过在校验机制中加入多
种验证手段,如比对芯片序列号、记录芯片使用历史等方法,增加芯
片的安全性。

除此之外,对于特定的应用场景,我们还可以采用自定义的校验机制。

比如,在需要对芯片进行频繁验证的场景下,可以采用基于时间戳和
动态密码的校验方法,通过生成一个不断变化的动态密码,来实现对
芯片的频繁验证。

总之,校验机制是保障存储类芯片安全性的重要手段,不仅可以有效防止数据篡改和窃取,还能提升设备的安全性和稳定性。

在未来,人们将会不断探索和发展新的校验机制,以适应不同的应用场景和保证芯片的安全性。

芯片测试策略分析确保产品质量与一致性的关键

芯片测试策略分析确保产品质量与一致性的关键

芯片测试策略分析确保产品质量与一致性的关键芯片测试是确保产品质量和一致性的关键环节。

在芯片设计和生产过程中,采用科学有效的测试策略可以提高测试效率,降低测试成本,并确保芯片产品的质量和一致性。

本文将分析一些关键的芯片测试策略,以帮助读者了解如何确保芯片产品的质量和一致性。

一、功能测试功能测试是芯片测试中最基本、最重要的测试策略之一。

通过对芯片进行功能测试,可以验证芯片是否按照设计要求正常工作。

在功能测试中,可以通过输入各种测试用例,检查芯片是否能够正确响应,并产生预期的输出。

功能测试可以涵盖芯片的各个功能模块,以确保芯片整体的功能正常。

二、性能测试性能测试是另一个重要的测试策略。

通过对芯片进行性能测试,可以评估芯片在不同操作条件下的性能表现。

性能测试可以包括芯片的速度、吞吐量、稳定性等方面的测试。

通过性能测试,可以确保芯片在各种负载情况下的性能满足设计要求,并且能够稳定工作。

三、可靠性测试芯片的可靠性是指在一定时间内,在特定环境条件下,芯片能够维持其功能和性能的能力。

可靠性测试可以通过模拟芯片在各种极端条件下的工作情况来评估芯片的可靠性。

可靠性测试可以包括温度、湿度、振动、电压等方面的测试。

通过可靠性测试,可以发现芯片在极端条件下的故障点,并采取相应的措施来提高芯片的可靠性。

四、一致性测试芯片的一致性是指同一批次芯片在不同条件下,其功能和性能具有相同的稳定性和表现。

一致性测试可以通过对同批次芯片进行大规模的测试来评估芯片之间的一致性。

一致性测试需要考虑芯片之间的参数变化、工艺波动等因素,并采取相应的设计和测试方法来确保芯片之间的一致性。

五、测试自动化测试自动化是提高测试效率、降低测试成本的关键策略之一。

通过使用自动化测试工具,可以快速、准确地执行各种测试用例,并生成相应的测试报告。

测试自动化可以减少人工测试的工作量,提高测试的可重复性和一致性,同时也可以提高测试的覆盖率和效率。

六、持续集成测试持续集成测试是一种持续不断地进行测试的策略。

芯片验证资料

芯片验证资料
验收阶段验证
• 全面测试验证 • 质量评审验证 • 生产验收验证
芯片验证的里程碑与交付物
芯片验证的里程碑
• 规格制定完成 • 设计阶段验证完成 • 工艺阶段验证完成 • 测试阶段验证完成 • 验收阶段验证完成
芯片验证的交付物
• 验证计划书 • 验证报告 • 验证测试数据 • 验证缺陷报告
பைடு நூலகம்3
芯片功能验证
芯片验证的各阶段详解
• 逻辑仿真验证 • 电路仿真验证 • 形式化验证
设计阶段验证
• 功能测试验证 • 性能测试验证 • 安全测试验证
测试阶段验证
01 02 03 04 05
规格制定阶段
• 明确芯片的功能要求 • 明确芯片的性能指标 • 明确芯片的安全性要求
工艺阶段验证
• 光刻工艺验证 • 薄膜工艺验证 • 刻蚀工艺验证
芯片验证产业发展的机遇与挑战
芯片验证产业发展的机遇
• 芯片产业的发展带动芯片验证产业的发展 • 芯片验证技术的创新为产业发展提供新的机遇 • 芯片验证市场的扩大为产业发展提供新的空间
芯片验证产业发展的挑战
• 芯片验证技术的竞争加剧 • 芯片验证资源的需求增大 • 芯片验证周期的要求提高
芯片验证的未来趋势与展望
芯片性能验证的测试方法与技术
芯片性能验证的测试方法
• 压力测试 • 负载测试 • 稳定性测试
芯片性能验证的技术
• 使用性能测试仪器进行测试 • 使用仿真软件进行性能仿真 • 使用硬件加速技术进行性能验证
芯片性能验证的优化与调整策略
芯片性能验证的优化策略
• 优化芯片架构设计 • 优化芯片制程工艺 • 优化芯片工作频率
硬件加速技术
• 使用FPGA进行硬件加速 • 使用GPU进行硬件加速 • 使用ASIC进行硬件加速

芯片验证工程方案

芯片验证工程方案

芯片验证工程方案简介芯片验证工程是在芯片设计与制造过程中不可或缺的一环。

通过验证工程,可以确保设计的芯片能够按照预期工作,并满足性能、功耗、可靠性等设计要求。

本文将介绍一个常见的芯片验证工程方案。

方案概述芯片验证工程主要包括以下几个步骤:1.验证需求分析:根据芯片的设计规格书和需求文档,确定验证的功能、性能和接口需求等。

2.验证计划制定:根据验证需求和预算等因素,制定验证计划,包括验证方法、测试环境、测试方案和进度安排等。

3.验证模型开发:根据验证需求,开发芯片验证模型,包括验证测试程序、仿真模型和验证环境等。

4.验证测试案例设计:根据验证需求和设计规格书,设计验证测试案例,覆盖各种功能和性能场景。

5.验证测试执行:根据验证计划和测试案例,进行验证测试执行,包括功能测试、性能测试和稳定性测试等。

6.验证结果分析:对验证测试结果进行统计和分析,评估验证的有效性和芯片的质量。

7.验证报告编写:根据验证结果,编写验证报告,总结验证过程和结果,提出改进和优化建议。

验证需求分析在验证需求分析阶段,需要深入理解芯片设计规格书和需求文档。

根据芯片的功能和性能要求,确定验证的范围和目标。

一般来说,验证需求分析主要包括以下几个方面:•功能需求:确定芯片的功能需求,包括各种基本功能和特殊功能的验证要求。

•性能需求:确定芯片的性能需求,包括时钟频率、处理速度、功耗和资源占用等要求。

•接口需求:确定芯片与外部接口的需求,包括通信接口、存储接口和输入输出接口等。

•可靠性需求:确定芯片的可靠性需求,包括电压容忍、工作温度范围和抗干扰能力等。

•兼容性需求:确定芯片的兼容性需求,包括与其他硬件和软件的兼容性要求。

验证计划制定在验证计划制定阶段,需要综合考虑验证的范围、资源和时间等因素,制定验证计划。

验证计划主要包括以下几个方面:•验证方法:确定采用的验证方法,包括仿真验证、实际硬件验证和混合验证等。

•测试环境:确定验证的测试环境,包括验证硬件平台、仿真工具和测试设备等。

存储类芯片校验机制

存储类芯片校验机制

存储类芯片校验机制1. 引言存储类芯片是现代电子设备中不可或缺的重要组件,用于存储和读取数据。

为了保证存储类芯片的质量和可靠性,校验机制起着至关重要的作用。

在本文中,我们将深入探讨存储类芯片校验机制的原理和实施方法。

2. 存储类芯片校验机制的目的存储类芯片校验机制的目的是在生产和使用过程中,保证存储类芯片的数据完整性、一致性和可靠性。

通过校验机制,可以检测并纠正存储类芯片中的错误和损坏,从而提高数据的可靠性和安全性。

3. 存储类芯片校验机制的类型存储类芯片校验机制可以分为硬件校验和软件校验两种类型。

3.1 硬件校验硬件校验是通过在存储类芯片中引入冗余信息,并利用硬件电路实现校验功能。

常见的硬件校验机制包括奇偶校验、循环冗余校验(CRC)和哈希校验等。

•奇偶校验(Parity Check)是最简单的硬件校验机制。

它通过在存储类芯片中的每个字节或每个字添加一个奇偶校验位,来检测数据的错误。

•循环冗余校验(CRC)是一种通过多项式除法实现的校验机制。

它在存储类芯片中添加一个冗余位,通过计算余数来检测错误。

•哈希校验(Hash Check)是通过计算数据的哈希值来实现校验机制。

它可以检测出任何数据的改变,但无法纠正错误。

3.2 软件校验软件校验是利用在存储类芯片中存储的纠错码(Error Correction Code,ECC)来实现校验功能。

纠错码是一种通过添加冗余信息,以便在出现错误时可以纠正的编码方式。

常见的软件校验机制包括海明码(Hamming Code)、RS码(Reed-Solomon Code)和卷积码(Convolutional Code)等。

•海明码是一种最早被广泛应用的纠错码。

它通过在存储数据中添加冗余的校验位,可以检测并纠正单比特错误。

•RS码是一种强纠错码,常用于存储介质的容错措施。

它可以在存储类芯片中检测并纠正多比特错误。

•卷积码是一种编码方式,可以在存储类芯片中进行高效的纠错。

芯片eda验证流程

芯片eda验证流程

芯片eda验证流程1.引言1.1 概述概述芯片是现代电子产品的核心组成部分,它们承担着诸多关键功能的实现。

然而,芯片的设计与制造是一项复杂而严谨的过程,需要多个环节的验证与测试来确保其性能和可靠性的有效发挥。

EDA(Electronic Design Automation)验证流程是芯片设计中非常重要的一环。

它是指利用计算机辅助工具和相应的软件来分析和验证芯片设计的过程。

通过EDA验证流程,设计工程师可以发现和解决设计中的问题,确保芯片设计在满足要求的情况下能够正常工作。

一般而言,EDA验证流程包括了设计规范的制定、电路仿真、逻辑综合、布局布线等多个步骤。

在设计规范制定阶段,工程师需要明确芯片的功能需求、性能指标、功耗要求等,并制定相应的设计规范和约束。

接下来,通过电路仿真和逻辑综合,设计工程师可以验证芯片的电气特性、逻辑正确性等。

最后,通过布局布线,工程师可以优化芯片的物理结构,提高电路性能和布局的可靠性。

EDA验证流程的核心在于验证与测试。

在验证过程中,设计工程师需要使用各种工具和技术,如SPICE模拟器、逻辑验证、功耗分析等,来检测芯片设计中的问题并进行修正。

同时,在测试阶段,工程师会使用特定的测试工具和技术,如加载板、测试软件等,来验证芯片的功能是否满足要求。

通过EDA验证流程,设计工程师能够全面、系统地验证芯片设计的各个环节,确保其性能和可靠性的有效发挥。

同时,EDA验证流程也为芯片设计提供了一套规范化的标准,使得设计工作更加可控和可追溯。

总而言之,EDA验证流程在芯片设计中具有重要的意义和作用,它为芯片设计的成功实施提供了有力支持。

文章结构部分的内容应该包括该长文的章节和子章节的组织方式,以及每个章节的主要内容概述。

根据给定的目录:2. 正文2.1 EDA验证流程概述2.2 EDA验证流程要点文章结构部分的内容可以如下所示:文章结构如下:1. 引言1.1 概述1.2 文章结构1.3 目的2. 正文2.1 EDA验证流程概述在这一节中,我们将介绍芯片EDA验证流程的概念和基本流程。

soc验证方法

soc验证方法

soc验证方法1. 什么是SoC验证方法SoC验证方法指的是系统级芯片(System-on-Chip,简称SoC)的验证过程中所采用的方法和技术。

SoC是由多个IP核组成的复杂集成电路系统,包括处理器核心、内存、外设接口等。

SoC验证方法的目标是确保设计在实际硬件上的正确性和可靠性。

SoC验证方法可以帮助开发者识别硬件设计中的错误,验证系统在各种情况下的功能和性能,并确保各个IP核的协同工作。

它是SoC设计流程中非常重要的一环,因为SoC设计周期长、成本高,一旦出现问题,则需要付出更大的代价来修复。

2. SoC验证方法的重要性SoC验证方法的主要目标是确保系统在不同工作场景下的正确性和稳定性。

由于SoC系统的复杂性,不同IP核之间的交互可能会引发各种潜在问题,例如时序问题、通信信道冲突等。

SoC验证方法的重要性体现在以下几个方面:SoC验证方法可以帮助开发者找出设计中的错误和缺陷。

通过模拟、仿真和验证测试等手段,可以快速发现设计中存在的问题,并及时进行修复,以提高整体的设计质量。

SoC验证方法可以确保系统在各种使用场景下的正确性。

通过在各种环境和工作负载下的验证,可以验证系统的稳定性和性能,确保系统在实际使用中能够正常工作。

SoC验证方法还可以提高开发效率。

通过自动化验证流程,可以减少手动验证的工作量,提高验证的效率和准确性,并且能够在验证过程中捕捉更多的错误。

总结而言,SoC验证方法的重要性在于它可以确保整个SoC系统的正确性和稳定性,提高开发效率,减少调试和修复的工作量。

3. SoC验证方法的分类SoC验证方法可以分为传统的验证方法和基于硬件加速器的验证方法两大类。

传统的SoC验证方法主要包括模拟器验证、仿真验证和验证测试等。

其中,模拟器验证是利用硬件描述语言(HDL)和仿真软件对SoC系统进行功能验证,包括验证各个IP核的工作正常性以及整个系统的交互性。

仿真验证是通过模拟软件来验证系统的时序和性能,以确保各个时钟域和信号传输路径的正确性和同步性。

芯片验证策略六部曲

芯片验证策略六部曲

芯片验证策略六部曲验证的策略篇之一:设计的流程通过芯片产品开发的流程图,而在描述中我们将开发流程分为了两条主线:芯片功能的细分不同人员的任务分配即是说不同人员需要在硅前的不同阶段实现和测试芯片的模块功能。

如果我们从另外一个角度看,芯片的开发即是将抽象级别逐次降低的过程,从一开始的抽象自然语言描述到硬件的HDL语言描述再到最后的门级网表。

而在我们已经介绍过RTL设计和门级网表以后,这里需要引入一个目前更高抽象级的描述TLM(事务级模型,transaction level models)。

TLM一般会在早期用于构建硬件的行为,侧重于它的功能描述,不需要在意时序。

同时各个TLM模型也会被集成为一个系统,用来评估系统的整体性能和模块之间的交互。

同时TLM模型在早期的设计和验证中,如果足够准确的话,甚至可以替代验证人员的参考模型,一方面为硬件设计提供了可以参考的设计(来源于系统描述侧),一方面也加速了验证(无需再构建参考模型,而且TLM 模型足够准确反映硬件描述)。

TLM模型的需求和ESL开发早期的芯片开发模式是遵循先从系统结构设计、到芯片设计制造、再到上层软件开发的。

但随着产品开发的压力,一方面我们需要让系统人员、硬件人员和软件人员都保持着充沛的工作量,同时对于一个芯片项目而言,我们也希望硬件人员和软件人员可以尽可能的同时进行开发。

这听起来怎么可能?毕竟芯片还没有制造出来,没有开发板怎么去构建软件呢?在这里我们系统结构人员会在早期构建一个高抽象级的系统,同时该系统必须具备该有的基本功能和各模块的接口保持信息交互,通过将功能描述变成可运行的系统,让硬件人员和软件人员可以在早期就利用该系统进行硬件参照和软件开发。

这种可以为复杂系统建立模型,让多个流程分支并行开发的方式被称作ESL(电子系统级,electronic system-level)开发。

传统的系统设计流程传统的系统设流程是瀑布形式(waterfall)开发的,这种顺序开发的方式存在明显的边界:时间边界:不同的开发子过程之间是保持顺序执行的,几乎没有可以交叠的空间来缩短整体的项目交付时间。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

芯片验证的策略篇(作者良心大作,验证必看)本文分六个部分:验证的策略篇之一:设计的流程验证的策略篇之二:验证的层次验证的策略篇之三:验证的透明度验证的策略篇之四:激励的原则验证的策略篇之五:检查的方法验证的策略篇之六:集成的环境验证的策略篇之一:设计的流程我们在上一章芯片芯片验证全视中给出过芯片产品开发的流程图,而在描述中我们将开发流程分为了两条主线:芯片功能的细分不同人员的任务分配即是说不同人员需要在硅前的不同阶段实现和测试芯片的模块功能。

如果我们从另外一个角度看,芯片的开发即是将抽象级别逐次降低的过程,从一开始的抽象自然语言描述到硬件的HDL 语言描述再到最后的门级网表。

而在我们已经介绍过RTL设计和门级网表以后,这里需要引入一个目前更高抽象级的描述TLM(事务级模型,transaction level models)。

TLM一般会在早期用于构建硬件的行为,侧重于它的功能描述,不需要在意时序。

同时各个TLM模型也会被集成为一个系统,用来评估系统的整体性能和模块之间的交互。

同时TLM模型在早期的设计和验证中,如果足够准确的话,甚至可以替代验证人员的参考模型,一方面为硬件设计提供了可以参考的设计(来源于系统描述侧),一方面也加速了验证(无需再构建参考模型,而且TLM模型足够准确反映硬件描述)。

TLM模型的需求和ESL开发早期的芯片开发模式是遵循先从系统结构设计、到芯片设计制造、再到上层软件开发的。

但随着产品开发的压力,一方面我们需要让系统人员、硬件人员和软件人员都保持着充沛的工作量,同时对于一个芯片项目而言,我们也希望硬件人员和软件人员可以尽可能的同时进行开发。

这听起来怎么可能?毕竟芯片还没有制造出来,没有开发板怎么去构建软件呢?在这里我们系统结构人员会在早期构建一个高抽象级的系统,同时该系统必须具备该有的基本功能和各模块的接口保持信息交互,通过将功能描述变成可运行的系统,让硬件人员和软件人员可以在早期就利用该系统进行硬件参照和软件开发。

这种可以为复杂系统建立模型,让多个流程分支并行开发的方式被称作ESL(电子系统级,electronic system-level)开发。

传统的系统设计流程传统的系统设流程是瀑布形式(waterfall)开发的,这种顺序开发的方式存在明显的边界:时间边界:不同的开发子过程之间是保持顺序执行的,几乎没有可以交叠的空间来缩短整体的项目交付时间。

组织边界:不同的开发小组之间的交流是计划是发生在前一个过程结束,后一个过程开始的,这也引入了额外的沟通成本。

ESL系统设计流程为了模糊或者融合这种边界,ESL开发流程通过建立虚拟原型(virtual prototype),又或者称之为TLM 模型来使得整个参与到系统开发的小组做并行开发。

之所以可以有这种魔力,是因为TLM模型不再是一种无法被硬件开发和软件开发利用的抽象描述,而是一种更早期开发的软件模型。

所以在ESL开发的协助下,更多的自开发流程可以更早跟随系统设计一块进行开发,那么从整体上来看这种方式有助于缩短芯片开发的时间。

除此之外,在前期产品定义的阶段有相对可量化的模型,更有助于早期验证产品的功能、性能是否满足客户要求,也能减轻一些低配置性能的风险和降低过多设计的成本。

这是为什么呢?有以下几点:在早期定义产品的时候,市场部会将客户对于产品特性收集回来,而交由系统框架师来定义芯片结构。

这中间会存在一些问题,例如系统框架师无法深入到局部功能更无从列举出所有的用例来判断功能是否满足,而对于性能测试方面也只能通过一些表格化数据做出静态估计。

这时候,TLM模型可以帮助在系统级别完成模型搭建和虚拟系统集成,甚至帮助测算系统的性能,这对于系统框架师而言会有更多的信心来给出合理的结构配置。

正由于可以在早期做出性能评估(而且快速、发生在芯片结构的定义阶段),框架师可以及时地做出资源调整来满足用户的需求。

否则,尽管芯片可能是低缺陷率的,但如果它的执行速度不够快、功耗又过高,那么也仍然无法满足客户的要求。

过度设计的结构就跟给一只袜子缀上水钻一样不差但也没有必要。

客户给的报价摆在那里,你的设计越过度,不但意味着成本的增长,也意外着更高的复杂度和风险。

ESL和TLM 对系统模型的要求使得需要有一门语言可以:纵深多个抽象级别来进行模型描述标准开放的语言高效的仿真性能和调试接口被主流仿真工具支持本身包含TLM事务级传输的接口这样的一本语言即是我们接下来介绍的SystemC。

SystemC介绍SystemC是可以满足TLM模型开发的一种语言。

严格来讲,它本身不是一种语言,而是建立在C++之上的一种类库(class library)。

SystemC语言可以用来描述系统级别的硬件行为,而这一点恰是其它语言无法满足的。

SystemC从2006年被IEEE收入IEEE 1666标准,它本身也易于学习,对于有C++/Java基础和硬件设计概念的人使用起来都不需要太多的学习成本。

SystemC语言介绍不在本章的重点,所以我们略去它的更多的语言特性介绍。

语言的抽象级比较而不同的硬件领域使用到的建模语言都有它们各自适合的抽象级,下图就指出了各个语言擅长的抽象级领域。

从左至右,VHDL和Verilog主要用作RTL仿真和数字电路的综合,它们也用来在早期搭建一些验证平台。

对于SystemVerilog/Vera/e是用来做功能验证语言的,这其中也包括了它们的随机约束重要特性。

同时我们也可以发现SystemVerilog本身可以用来描述硬件做RTL仿真和门级综合。

在此之上,SystemC关注的地方要更偏向于系统层,它在结构层面上可以做更高抽象级的描述,而本身也无法去描述电路的综合网表,但它能够以自己为平台为上层的软件开发做准备。

而Matlab和其它语言被用在了数字信号处理上面用来描述和验证算法。

传统的系统集成视角我们前面已经提到,传统的瀑布开发模型无法让硬件人员和软件人员在系统结构定义早期就进入。

对于硬件的设计人员和验证人员而言他们都需要等待系统定义完成之后将功能描述文档分别做出自己的翻译来建立可综合模型和参考模型。

软件人员只有在硬件流片以后才会真正开始进行软件开发,尽管目前的FPGA有着比硬件更快的仿真优势,但无论从时间段(硬件设计的后期)还是从速度(相比软件模型)而言,仍然不是理想的软件开发平台。

我们可以认为FPGA等硬件加速工具对于硅后系统测试有积极意义,但是对于更上层的软件层开发的帮助则并没有那么明显。

ESL系统集成视角新型的ESL系统开发方式会在系统定义阶段就建立TLM模型,这一模型的建立会对系统人员、硬件设计人员、验证人员和软件开发人员都有显著帮助:系统人员在TLM模型集成系统上会更容易评估系统性能硬件设计人员会同时利用功能描述文档和TLM模型更准确地翻译为可综合的RTL设计验证人员甚至可以直接将TLM模型作为参考模型集成到验证环境中,省去了额外开发参考模型的时间软件开发人员也可以在TLM集成后的虚拟系统上面开发软件,而当芯片真正出片以后,只需要做一些基于实际硬件的软件移植,这将大大提前软件开发的起点TLM建模有这么多的优点,然而在真正考虑施行ESL系统集成流程上面,我们也需要考虑到一些实际的问题:TLM建模对于系统人员而言有更高的技能要求。

这不但需要他们掌握SystemC开发,同时也需要他们有硬件描述的基础。

在此之上,他们的工作量将会同时包括功能描述文档和TLM模型,并且TLM需要准确翻译功能描述文档,确保一致性。

对于从传统流程迈向ESL流程而言,我们可能需要做一些妥协,引入专门的虚拟建模(virtual prototyping)团队来协助系统人员翻译功能描述文档,而他们的共同产出也将最终作为一致的参考标准。

尽管已经有了可以被综合的SystemC的子集和代码规范,目前这种方式仍然没有得到业界的青睐。

不过,在某一个硬件模块没有就位,或者想加快仿真速度的时候,我们甚至可以临时将原先的硬件设计用TLM模型替换。

这一点的前提是,系统的仿真行为保持不变,而且TLM 模型接口上的时序可以满足HDL仿真的要求。

当TLM模型被验证环境复用时,就需要TLM与验证环境之间保持标准接口(TLM interface),这样方便TLM模型的插拔。

当TLM 用于软件开发时,这就要求TLM被尽早集成到一起作为整体系统为软件开发所用。

因为软件开发环节中针对某一个功能模块的软件开发仍然是建立在整个芯片系统(至少是子系统之上)的。

所以TLM模型之间也需要有标准接口可以更快速地实现系统集成。

目前我们常见的设计流程仍然是瀑布开发时,或者类ESL开发。

这里类ESL开发指的是开发流程并没有完全遵循上述流程,而是在一些地方引入了TLM建模。

例如下面这张图,由于系统人员的技能限制,项目开发需要额外引入虚拟建模团队。

此外,由于地域上的限制,虚拟建模团队主要服务的对象是软件开发一侧,而他们与硬件设计、验证团队的沟通较少。

这种类ESL的开发可能有多种组合,但我们需要警惕的是,在方便软件开发早期进入项目时,TLM模型是否会同系统定义保持绝对的一致性,从而为硬件和软件方提供文本和代码参考。

从图上来看,这种类ESL的方式是存在风险的,因为虚拟建模团队从系统定义到TLM模型的过程就存在二次翻译,如果翻译不准确,存在疏漏,那么可以想象基于TLM模型的软件开发不会那么容易被移植到真正的硬件系统上面,因为硬件本身也是二次翻译。

所以,理想的合作边界应该如下图一样。

虚拟建模首先需要和系统定义保持原义的一致性,而硬件和软件则可以将TLM模型视为功能描述的一致性翻译,然后各自在TLM模型上进行开发。

下篇文章我们将会探讨《验证的层次》,以及在各个层次上面的验证方法。

验证的策略篇之二:验证的层次从系统定义阶段开始,我们就会将芯片系统划分为子系统,进而又为每个子系统划分为不同的功能模块,直到划分为复杂度合适的模块。

而到了设计阶段,我们又会按照自底向上的方式开始做硬件设计和集成。

从定义阶段到设计阶段再到后端部分,我们整个硅前的流程都是将芯片按照层次划分的,一般我们称之为芯片系统级(chip level/system level)、子系统级(sub-system level)和模块级(module level/unit level),这种层次划分的方式对于芯片的好处有哪些呢?便于拆解功能模块,实现人员的并行工作协同,这一点是从项目执行效率出发的。

对于系统定义而言,这是从主要的功能、性能要求量化为系统不同模块定义的方法。

从设计和验证角度出发,合适的复杂度模块也有助于估计合适的工作量和人员分配。

设计最终是通过模块化来集成的,而验证的环境在模块化以后,也可以方便在更高级的验证环境中复用。

对于后端,在进行了合理的区域划分后,模块和SoC可以并行进行后续的物理设计流程,在每个设计阶段再合成进行相关电源设计、时序分析等设计项检查。

相关文档
最新文档