




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电子知识基于模式的静态代码分析、运行时内存监测、单元测试以及数据流分析等软件验证技术是查找嵌入式C语言程序/软件缺陷行之有效的方法。上述技术中的每一种都能查找出某一类特定的错误。即便如此,如果用户仅采用上述技术中的一种或者几种来进行验证,这样的验证方法很有可能会漏过对程序中的一些缺陷的检查。解决此类问题的一种安全和有效的策略就是同时使用上述软件验证中的所有互补技术。这样就能建立起一个牢固的框架来帮助用户检查出可能会避开某种特定技术的缺陷。与此同时,用户也自然地建立起一个能检测出关键并且难以查找的功能性错误的环境。本文将详尽阐述基于模式的静态代码分析、运行时内存错误检测、单元测试以及数据流分析等自动化技术共同使用时是如何查找出嵌入式C语言程序/软件中的缺陷的。本文中将以Parasoft C+test为例来演示上述各项技术。C+test是一个经广泛的最佳实践证明能提升软件开发团队开发效率以及软件质量的自动化集成解决方案。当读者在阅读本文以及任何时候思考查找到的缺陷时,关注文中的截图是很重要的。自动化检测例如内存崩溃和死锁的缺陷,毫无疑问对任何开发团队都是一项必不可少的任务。尽管如此,最致命的缺陷却是功能性错误,这往往是难以自动发现的。在本文的结论部分我们将简要地讨论一下查找这些缺陷的技术。情景简介为了给出一个具体的示例,我们将就一个我们最近遇到的案例来介绍以及演示我们所推荐的缺陷查找策略:一个运行在ARM 板上的简单传感器应用程序。假设我们已经创建了该应用系统,但是当我们将程序上载到系统目标板上并试图运行该程序时,我们没有在LCD屏上看到所预期的输出。我们尚不明确系统不能正常工作的原因,因此我们设法对系统进行调试,但是在目标板上进行调试是一件耗时而且烦人的事。因为我们不得不手动分析调试器的结果并试图人工判断出问题的真正原因。或者我们使用一些被证实能自动定位出错误的工具或技术来帮助我们减轻负担。从这一点而言,我们要么期待使用调试器来调试程序能够带来好运,要么我们尝试使用一种自动化的测试策略来查找代码中所存在的错误。如果自动化技术仍然没有帮助我们查找到错误,那么我们不得不回到使用调试器作为最后的办法。基于模式的静态代码分析这里,我们假设仅在绝对必要的情况下才使用调试器进行调试,因此我们从运行基于模式的静态代码分析开始。它将查找到如下图所示的问题:这是违反了 MISRA 的一个规则,此违规说明该处的赋值运算符存在一些可疑情况。的确,编程者此处的本意是使用比较运算符而不是赋值运算符。因此我们将此处检测到的冲突修改掉,并重新运行程序。我们发现有了一些改善:一些输出被显示在了LCD屏上了。但是,由于一次访问违规,程序崩溃掉了。因此我们需要再次地做出选择。我们是应该使用调试器还是继续使用自动化的错误检测技术。由于经验告诉我们自动化错误检测技术能非常高效地检查出我们当前程序所遇到的内存崩溃这类问题,因此我们决定使用运行时内存监测来查找问题。整个程序的运行时内存监测为了进行运行时内存监测,我们使用 C+test 来插装应用程序。这样的插装是轻量级的,所以经过插装后的程序适合在目标板上运行。当我们把程序上载到目标板上并运行经过插装的程序后,我们将结果下载到PC上,如下的错误将被报告出来:该结果指出在第48行代码处产生了一次读取数组越界的错误。显然,msgIndex变量的值肯定超过了数组的范围。如果我们随着堆栈追踪上一级的原因,我们将发现此处的打印信息所指示的值的确超出了数组的范围(因为在调用printMessage()函数前我们给出了一个错误的条件)。我们可以删除掉这个不必要的条件(value = 0 & value 10) & (value =0)以修改这个潜在的错误。void handleSensorValue(int value)initialize();int index=-1;if (value = 10) index=VALUE_LOW; else index=VALUE_HIGH;printMessage(index, value);相同地,我们也对最后一个报告的错误进行相应的处理。现在我们再次运行数据流分析,将不会再有错误被报告出来。为了确保程序运行一切正常,我们重新运行整个分析过程。首先,我们开启运行时内存监测并运行应用程序,一切表现正常。然后我们开启内存监测并运行单元测试,一个任务被报告出来:我们的单元测试检测到reportSensorFailure()函数的行为已经发生了改变。这是由于我们已经对finalize()函数进行了修改为了纠正之前报告的一个问题所做的修改。此处报告的任务是为了让我们注意此修改,并提示我们应该对测试用例进行相应的审查,并且确定是否应该对代码或者测试用例进行相应的修改,以表示这种新的行为实际上是我们所预期的行为。在检查完代码之后,我们发现后者(修改)是正确的并且应该更新断言的正确条件。void sensor_tests_test_reportSensorFailure()messages=0 ;reportSensorFailure();CPPTEST_ASSERT(0 = ( messages );作为最终的确认,我们需要独立地运行整个程序在IDE中关闭掉运行时内存监测来对程序进行构建。结果显示一切如我们所预期一样运行。总结作为全文的结尾,让我们一起对上述各个步骤进行一个鸟瞰式的总结。首先,我们开发的程序并未如我么所预期那样运行,我们不得不在两种解决方法中选择一种来查找程序中的错误:通过运行调试器或者使用自动错误检测技术。如果我们使用调试器运行代码来查找错误,我们将会看到一些很奇怪的现象:程序中的一些变量总是被赋予了相同的值。基于这种现象我们不得不通过排除法来查找问题的原因即在应该使用比较运算符的地方我们错误地使用了赋值运算符。而静态代码分析则能为我们自动地检查出该逻辑错误。运行时内存分析是不可能检查出这种错误的,因为这种错误与内存无关。数据流分析也很有可能找不到这类错误因为数据流分析仅仅是通过这些路径而不会验证这些条件的正确性。当我们解决了这个问题后,程序可以运行了,但是仍然还有内存相关的问题。内存相关的问题是很难被调试器发现的;当用户使用调试器调试程序时,用户并不知道内存的实际大小。但是自动错误检查工具能够做到这点。因此,为了查找这些内存问题,我们将整个程序进行插装,并使用运行时内存分析工具来运行程序。这样我们就能知道到底是那一片内存发生了写溢出错误。尽管如此,在审查覆盖率分析结果的时候,我们注意到在目标板上测试的时候,并不是全部代码都被覆盖到了。通过自动化的工具得到这样的覆盖率信息是简单的,因为工具会自动地跟踪覆盖率,但是,如果我们是通过调试器,就不得不判断哪一部分程序经过了验证。而这通常只能依靠我们人工记录的方式来实现。当工具提醒我们一些代码未被覆盖到时,我们决定改变单元测试来额外地增加我们测试执行的覆盖率。这就揭示了程序中另外一些问题。在目标系统的正常测试中,覆盖所有函数也许是不可能完成的任务,因为其中一些函数可能是硬件的失败处理函数或仅在某些小概率的特定情况下才会被调用的函数。而对这些函数的测试对于一些注重安全性的程序而言又是至关重要的。试想在飞机上用来处理速度传感器问题的程序中存在着代码错误:我们会有系统崩溃的危险,而不是导致某个设备为非工作状态。因此,通过创建单元测试用例来覆盖这类型的执行路径往往是对其进行有效测试的唯一方法。接下来,我们修复了工具检查到的所有问题,同时通过验证相应的结果创建了一个回归测试用例(作为报告的任务之一引导我们完成)。然后我们运行数据流分析来覆盖在目标系统上即便使用单元测试也未执行到的路径。在此之前,我们几乎已经达到了100%的代码行覆盖率,但是我们的路径覆盖率却未达到这个水平。BugDetective帮我们发现了这些方面的一些潜在问题。这些问题可能并没有实际发生或者有可能永远不会发生。也许在实际运行时,这些问题仅仅会在当其条件满足的情况下才会出现,并且在现实生活中,这些条件可能永远不可能满足。尽管如此,我们不能保证随着代码的升级,应用程序不会执行到这些路径。安全起见,我们仍然修改了所报告的问题以排除任何可能影响它的实际应用执行的风险。在修改代码的同时,我们同时也引入了回归测试,当我们再次运行单元测试时立即被检测到。在所有的自动化错误检测方法中,回归测试是唯一能够帮助我们检查到代码是否发生了功能性的改变的方法,并且能验证出对代码进行的修改是否引入了功能性的错误以及不可预知的副作用。最后,我们修改了回归测试套件,并重新测试代码,发现一切运行正常。正如读者所见,我们使用的一切测试方法基于模式的静态代码分析、内存分析、单元测试、数据流分析以及回归测试并不是相互竞争的关系,恰好相反,它们是一种互补的关系。将上述工具结合使用,它们就是一套具有强大作用的工具集,并为嵌入式C语言程序/软件提供一个无可比拟的自动化错误检测解决方案。总而言之,通过自动地查找很多关于内存和其它编码的缺陷,我们成功地让程序运行起来了。尽管如此,值得注意的是,最危险的缺陷却是实际的功能性错误:例如程序并未如所指定的要求运行。而不幸的是,这些错误往往是非常难以被发现的。查找这类缺陷的最好的一个方式就是通过同行代码审查来实现。即另指派至少一人来检查代码并且审查代码与需求内容的一致性,这样用户就能对实际程序是否会如预期那样运行有一个很好的评估。另外一个十分有用的策略是围绕代码创建一个回归测试套件,这能帮助用户快捷地验证代码与规范的一致性。在本文所描述的示例情景中,单元测试被用来强制执行应用程序级的运行时内存监测所未覆盖到的代码:它能覆盖到当前程序的功能性,在此之后,我们对代码做了一些修改,它能提醒我们代码出现的相应的功能性问题。事实上,这种单元测试用例应该被更早地创建起来:理想情况下,当用户在实现程序的功能时就应该被创建起来。这样,用户就能得到更高的覆盖率并同时构建起一个更强壮的“安全网”来捕捉关键的功能性改变。Parasoft的C+test能帮助用户完成这两个任务:从自动化到管理同行代码审查流程,以及帮助团队创建,持续地运行并维护一个高效的回归测试套件。关于Parasoft C+testParasoft C+test是一个经广泛的最佳实践证明能提升软件开发团队开发效率以及软件质量的自动化集成解决方案。C+test能进行诸如编码策略增强、静态代码分析、运行时内存监测、自动同行代码审查以及单元和组件测试,从而为软件开发团队提供一种更加实用的方法来确保其C以及C+程序能如所预期那样工作。C+test可以用于在通用开发IDE下的桌面平台中,以及在回归测试时通过命令行以批处理模式的方式运行。同时,C+test还集成了Parasoft的报告系统,该系统能提供具有细分能力的基于Web 的仪表板,这使得开发团队根据C+test的测试结果和其他的一些关键进程指标来更加方便地跟踪项目的状态和趋势。通过在宿主机上进行大量的测试以及在目标系统中进行的平滑的验证,C+test能够帮助软件开发团队减少花在嵌入式系统开发中的时间、精力以及成本。随着代码在宿主机上的构建,C+test的自动化框架使得开发者能在目标硬件系统尚未准备好的情况下就开始测试以提升代码质量。这大大地缩短了花在目标系统上测试的时间。早期在宿主机上构建的测试套件可以被重用来在仿真器或真实的目标板上验证程序的功能性。如需更多关于C+test的信息,请访问Parasoft的C以及C+测试工具中心。IBIS模型是一种基于V/I曲线对I/O BUFFER快速准确建模方法,是反映芯片驱动和接收电气特性一种国际标准,它提供一种标准文件格式来记录如驱动源输出阻抗、上升/下降时间及输入负载等参数,非常适合做振荡和串扰等高频效应计算与仿真。 IBIS本身只是一种文件格式,它说明在一标准IBIS文件中如何记录一个芯片驱动器和接收器不同参数,但并不说明这些被记录参数如何使用,这些参数需要由使用IBIS模型仿真工具来读取。欲使用IBIS进行实际仿真,需要先完成四件工作:获取有关芯片驱动器和接收器原始信息源;获取一种将原始数据转换为IBIS格式方法;提供用于仿真可被计算机识别布局布线信息;提供一种能够读取IBIS和布局布线格式并能够进行分析计算软件工具。 IBIS模型优点可以概括为:在I/O非线性方面能够提供准确模型,同时考虑了封装寄生参数与ESD结构;提供比结构化方法更快仿真速度;可用于系统板级或多板信号完整性分析仿真。可用IBIS模型分析信号完整性问题包括:串扰、反射、振荡、上冲、下冲、不匹配阻抗、传输线分析、拓扑结构分析。IBIS尤其能够对高速振荡和串扰进行准确精细仿真,它可用于检测最坏情况上升时间条件下信号行为及一些用物理测试无法解决情况;模型可以免费从半导体厂商处获取,用户无需对模型付额外开销;兼容工业界广泛仿真平台。 IBIS模型核由一个包含电流、电压和时序方面信息列表组成。IBIS模型仿真速度比SPICE快很多,而精度只是稍有下降。 非会聚是SPICE模型和仿真器一个问题,而在IBIS仿真中消除了这个问题。实际上,所有EDA供应商现在都支持IBIS模型,并且它们都很简便易用。 大多数器件IBIS模型均可从互联网上免费获得。可以在同一个板上仿真几个不同厂商推出器件。 IBIS模型是一种基于V/I曲线对I/O BUFFER快速准确建模方法,是反映芯片驱动和接收电气特性一种国际标准,它提供一种标准文件格式来记录如驱动源输出阻抗、上升/下降时间及输入负载等参数,非常适合做振荡和串扰等高频效应计算与仿真。 IBIS本身只是一种文件格式,它说明在一标准IBIS文件中如何记录一个芯片驱动器和接收器不同参数,但并不说明这些被记录参数如何使用,这些参数需要由使用IBIS模型仿真工具来读取。欲使用IBIS进行实际仿真,需要先完成四件工作:获取有关芯片驱动器和接收器原始信息源;获取一种将原始数据转换为IBIS格式方法;提供用于仿真可被计算机识别布局布线信息;提供一种能够读取IBIS和布局布线格式并能够进行分析计算软件工具。 IBIS模型优点可以概括为:在I/O非线性方面能够提供准确模型,同时考虑了封装寄生参数与ESD结构;提供比结构化方法更快仿真速度;可用于系统板级或多板信号完整性分析仿真。可用IBIS模型分析信号完整性问题包括:串扰、反射、振荡、上冲、下冲、不匹配阻抗、传输线分析、拓扑结构分析。IBIS尤其能够对高速振荡和串扰进行准确精细仿真,它可用于检测最坏情况上升时间条件下信号行为及一些用物理测试无法解决情况;模型可以免费从半导体厂商处获取,用户无需对模型付额外开销;兼容工业界广泛仿真平台。 IBIS模型核由一个包含电流、电压和时序方面信息列表组成。IBIS模型仿真速度比SPICE快很多,而精度只是稍有下降。 非会聚是SPICE模型和仿真器一个问题,而在IBIS仿真中消除了这个问题。实际上,所有EDA供应商现在都支持IBIS模型,并且它们都很简便易用。 大多数器件IBIS模型均可从互联网上免费获得。可以在同一个板上仿真几个不同厂商推出器件。 IBIS模型是一种基于V/I曲线对I/O BUFFER快速准确建模方法,是反映芯片驱动和接收电气特性一种国际标准,它提供一种标准文件格式来记录如驱动源输出阻抗、上升/下降时间及输入负载等参数,非常适合做振荡和串扰等高频效应计算与仿真。 IBIS本身只是一种文件格式,它说明在一标准IBIS文件中如何记录一个芯片驱动器和接收器不同参数,但并不说明这些被记录参数如何使用,这些参数需要由使用IBIS模型仿真工具来读取。欲使用IBIS进行实际仿真,需要先完成四件工作:获取有关芯片驱动器和接收器原始信息源;获取一种将原始数据转换为IBIS格式方法;提供用于仿真可被计算机识别布局布线信息;提供一种能够读取IBIS和布局布线格式并能够进行分析计算软件工具。 IBIS模型优点可以概括为:在I/O非线性方面能够提供准确模型,同时考虑了封装寄生参数与ESD结构;提供比结构化方法更快仿真速度;可用于系统板级或多板信号完整性分析仿真。可用IBIS模型分析信号完整性问题包括:串扰、反射、振荡、上冲、下冲、不匹配阻抗、传输线分析、拓扑结构分析。IBIS尤其能够对高速振荡和串扰进行准确精细仿真,它可用于检测最坏情况上升时间条件下信号行为及一些用物理测试无法解决情况;模型可以免费从半导体厂商处获取,用户无需对模型付额外开销;兼容工业界广泛仿真平台。 IBIS模型核由一个包含电流、电压和时序方面信息列表组成。IBIS模型仿真速度比SPICE快很多,而精度只是稍有下降。 非会聚是SPICE模型和仿真器一个问题,而在IBIS仿真中消除了这个问题。实际上,所有EDA供应商现在都支持IBIS模型,并且它们都很简便易用。 大多数器件IBIS模型均可从互联网上免费获得。可以在同一个板上仿真几个不同厂商推出器件。 IBIS模型是一种基于V/I曲线对I/O BUFFER快速准确建模方法,是反映芯片驱动和接收电气特性一种国际标准,它提供一种标准文件格式来记录如驱动源输出阻抗、上升/下降时间及输入负载等参数,非常适合做振荡和串扰等高频效应计算与仿真。 IBIS本身只是一种文件格式,它说明在一标准IBIS文件中如何记录一个芯片驱动器和接收器不同参数,但并不说明这些被记录参数如何使用,这些参数需要由使用IBIS模型仿真工具来读取。欲使用IBIS进行实际仿真,需要先完成四件工作:获取有关芯片驱动器和接收器原始信息源;获取一种将原始数据转换为IBIS格式方法;提供用于仿真可被计算机识别布局布线信息;提供一种能够读取IBIS和布局布线格式并能够进行分析计算软件工具。 IBIS模型优点可以概括为:在I/O非线性方面能够提供准确模型,同时考虑了封装寄生参数与ESD结构;提供比结构化方法更快仿真速度;可用于系统板级或多板信号完整性分析仿真。可用IBIS模型分析信号完整性问题包括:串扰、反射、振荡、上冲、下冲、不匹配阻抗、传输线分析、拓扑结构分析。IBIS尤其能够对高速振荡和串扰进行准确精细仿真,它可用于检测最坏情况上升时间条件下信号行为及一些用物理测试无法解决情况;模型可以免费从半导体厂商处获取,用户无需对模型付额外开销;兼容工业界广泛仿真平台。 IBIS模型核由一个包含电流、电压和时序方面信息列表组成。IBIS模型仿真速度比SPICE快很多,而精度只是稍有下降。 非会聚是SPICE模型和仿真器一个问题,而在IBIS仿真中消除了这个问题。实际上,所有EDA供应商现在都支持IBIS模型,并且它们都很简便易用。 大多数器件IBIS模型均可从互联网上免费获得。可以在同一个板上仿真几个不同厂商推出器件。 IBIS模型是一种基于V/I曲线对I/O BUFFER快速准确建模方法,是反映芯片驱动和接收电气特性一种国际标准,它提供一种标准文件格式来记录如驱动源输出阻抗、上升/下降时间及输入负载等参数,非常适合做振荡和串扰等高频效应计算与仿真。 IBIS本身只是一种文件格式,它说明在一标准IBIS文件中如何记录一个芯片驱动器和接收器不同参数,但并不说明这些被记录参数如何使用,这些参数需要由使用IBIS模型仿真工具来读取。欲使用IBIS进行实际仿真,需要先完成四件工作:获取有关芯片驱动器和接收器原始信息源;获取一种将原始数据转换为IBIS格式方法;提供用于仿真可被计算机识别布局布线信息;提供一种能够读取IBIS和布局布线格式并能够进行分析计算软件工具。 IBIS模型优点可以概括为:在I/O非线性方面能够提供准确模型,同时考虑了封装寄生参数与ESD结构;提供比结构化方法更快仿真速度;可用于系统板级或多板信号完整性分析仿真。可用IBIS模型分析信号完整性问题包括:串扰、反射、振荡、上冲、下冲、不匹配阻抗、传输线分析、拓扑结构分析。IBIS尤其能够对高速振荡和串扰进行准确精细仿真,它可用于检测最坏情况上升时间条件下信号行为及一些用物理测试无法解决情况;模型可以免费从半导体厂商处获取,用户无需对模型付额外开销;兼容工业界广泛仿真平台。 IBIS模型核由一个包含电流、电压和时序方面信息列表组成。IBIS模型仿真速度比SPICE快很多,而精度只是稍有下降。 非会聚是SPICE模型和仿真器一个问题,而在IBIS仿真中消除了这个问题。实际上,所有EDA供应商现在都支持IBIS模型,并且它们都很简便易用。 大多数器件IBIS模型均可从互联网上免费获得。可以在同一个板上仿真几个不同厂商推出器件。 IBIS模型是一种基于V/I曲线对I/O BUFFER快速准确建模方法,是反映芯片驱动和接收电气特性一种国际标准,它提供一种标准文件格式来记录如驱动源输出阻抗、上升/下降时间及输入负载等参数,非常适合做振荡和串扰等高频效应计算与仿真。 IBIS本身只是一种文件格式,它说明在一标准IBIS文件中如何记录一个芯片驱动器和接收器不同参数,但并不说明这些被记录参数如何使用,这些参数需要由使用IBIS模型仿真工具来读取。欲使用IBIS进行实际仿真,需要先完成四件工作:获取有关芯片驱动器和接收器原始信息源;获取一种将原始数据转换为IBIS格式方法;提供用于仿真可被计算机识别布局布线信息;提供一种能够读取IBIS和布局布线格式并能够进行分析计算软件工具。 IBIS模型优点可以概括为:在I/O非线性方面能够提供准确模型,同时考虑了封装寄生参数与ESD结构;提供比结构化方法更快仿真速度;可用于系统板级或多板信号完整性分析仿真。可用IBIS模型分析信号完整性问题包括:串扰、反射、振荡、上冲、下冲、不匹配阻抗、传输线分析、拓扑结构分析。IBIS尤其能够对高速振荡和串扰进行准确精细仿真,它可用于检测最坏情况上升时间条件下信号行为及一些用物理测试无法解决情况;模型可以免费从半导体厂商处获取,用户无需对模型付额外开销;兼容工业界广泛仿真平台。 IBIS模型核由一个包含电流、电压和时序方面信息列表组成。IBIS模型仿真速度比SPICE快很多,而精度只是稍有下降。 非会聚是SPICE模型和仿真器一个问题,而在IBIS仿真中消除了这个问题。实际上,所有EDA供应商现在都支持IBIS模型,并且它们都很简便易用。 大多数器件IBIS模型均可从互联网上免费获得。可以在同一个板上仿真几个不同厂商推出器件。 IBIS模型是一种基于V/I曲线对I/O BUFFER快速准确建模方法,是反映芯片驱动和接收电气特性一种国际标准,它提供一种标准文件格式来记录如驱动源输出阻抗、上升/下降时间及输入负载等参数,非常适合做振荡和串扰等高频效应计算与仿真。 IBIS本身只是一种文件格式,它说明在一标准IBIS文件中如何记录一个芯片驱动器和接收器不同参数,但并不说明这些被记录参数如何使用,这些参数需要由使用IBIS模型仿真工具来读取。欲使用IBIS进行实际仿真,需要先完成四件工作:获取有关芯片驱动器和接收器原始信息源;获取一种将原始数据转换为IBIS格式方法;提供用于仿真可被计算机识别布局布线信息;提供一种能够读取IBIS和布局布线格式并能够进行分析计算软件工具。 IBIS模型优点可以概括为:在I/O非线性方面能够提供准确模型,同时考虑了封装寄生参数与ESD结构;提供比结构化方法更快仿真速度;可用于系统板级或多板信号完整性分析仿真。可用IBIS模型分析信号完整性问题包括:串扰、反射、振荡、上冲、下冲、不匹配阻抗、传输线分析、拓扑结构分析。IBIS尤其能够对高速振荡和串扰进行准确精细仿真,它可用于检测最坏情况上升时间条件下信号行为及一些用物理测试无法解决情况;模型可以免费从半导体厂商处获取,用户无需对模型付额外开销;兼容工业界广泛仿真平台。 IBIS模型核由一个包含电流、电压和时序方面信息列表组成。IBIS模型仿真速度比SPICE快很多,而精度只是稍有下降。 非会聚是SPICE模型和仿真器一个问题,而在IBIS仿真中消除了这个问题。实际上,所有EDA供应商现在都支持IBIS模型,并且它们都很简便易用。 大多数器件IBIS模型均可从互联网上免费获得。可以在同一个板上仿真几个不同厂商推出器件。 IBIS模型是一种基于V/I曲线对I/O BUFFER快速准确建模方法,是反映芯片驱动和接收电气特性一种国际标准,它提供一种标准文件格式来记录如驱动源输出阻抗、上升/下降时间及输入负载等参数,非常适合做振荡和串扰等高频效应计算与仿真。 IBIS本身只是一种文件格式,它说明在一标准IBIS文件中如何记录一个芯片驱动器和接收器不同参数,但并不说明这些被记录参数如何使用,这些参数需要由使用IBIS模型仿真工具来读取。欲使用IBIS进行实际仿真,需要先完成四件工作:获取有关芯片驱动器和接收器原始信息源;获取一种将原始数据转换为IBIS格式方法;提供用于仿真可被计算机识别布局布线信息;提供一种能够读取IBIS和布局布线格式并能够进行分析计算软件工具。 IBIS模型优点可以概括为:在I/O非线性方面能够提供准确模型,同时考虑了封装寄生参数与ESD结构;提供比结构化方法更快仿真速度;可用于系统板级或多板信号完整性分析仿真。可用IBIS模型分析信号完整性问题包括:串扰、反射、振荡、上冲、下冲、不匹配阻抗、传输线分析、拓扑结构分析。IBIS尤其能够对高速振荡和串扰进行准确精细仿真,它可用于检测最坏情况上升时间条件下信号行为及一些用物理测试无法解决情况;模型可以免费从半导体厂商处获取,用户无需对模型付额外开销;兼容工业界广泛仿真平台。 IBIS模型核由一个包含电流、电压和时序方面信息列表组成。IBIS模型仿真速度比SPICE快很多,而精度只是稍有下降。 非会聚是SPICE模型和仿真器一个问题,而在IBIS仿真中消除了这个问题。实际上,所有EDA供应商现在都支持IBIS模型,并且它们都很简便易用。 大多数器件IBIS模型均可从互联网上免费获得。可以在同一个板上仿真几个不同厂商推出器件。 IBIS模型是一种基于V/I曲线对I/O BUFFER快速准确建模方法,是反映芯片驱动和接收电气特性一种国际标准,它提供一种标准文件格式来记录如驱动源输出阻抗、上升/下降时间及输入负载等参数,非常适合做振荡和串扰等高频效应计算与仿真。 IBIS本身只是一种文件格式,它说明在一标准IBIS文件中如何记录一个芯片驱动器和接收器不同参数,但并不说明这些被记录参数如何使用,这些参数需要由使用IBIS模型仿真工具来读取。欲使用IBIS进行实际仿真,需要先完成四件工作:获取有关芯片驱动器和接收器原始信息源;获取一种将原始数据转换为IBIS格式方法;提供用于仿真可被计算机识别布局布线信息;提供一种能够读取IBIS和布局布线格式并能够进行分析计算软件工具。 IBIS模型优点可以概括为:在I/O非线性方面能够提供准确模型,同时考虑了封装寄生参数与ESD结构;提供比结构化方法更快仿真速度;可用于系统板级或多板信号完整性分析仿真。可用IBIS模型分析信号完整性问题包括:串扰、反射、振荡、上冲、下冲、不匹配阻抗、传输线分析、拓扑结构分析。IBIS尤其能够对高速振荡和串扰进行准确精细仿真,它可用于检测最坏情况上升时间条件下信号行为及一些用物理测试无法解决情况;模型可以免费从半导体厂商处获取,用户无需对模型付额外开销;兼容工业界广泛仿真平台。 IBIS模型核由一个包含电流、电压和时序方面信息列表组成。IBIS模型仿真速度比SPICE快很多,而精度只是稍有下降。 非会聚是SPICE模型和仿真器一个问题,而在IBIS仿真中消除了这个问题。实际上,所有EDA供应商现在都支持IBIS模型,并且它们都很简便易用。 大多数器件IBIS模型均可从互联网上免费获得。可以在同一个板上仿真几个不同厂商推出器件。 IBIS模型是一种基于V/I曲线对I/O BUFFER快速准确建模方法,是反映芯片驱动和接收电气特性一种国际标准,它提供一种标准文件格式来记录如驱动源输出阻抗、上升/下降时间及输入负载等参数,非常适合做振荡和串扰等高频效应计算与仿真。 IBIS本身只是一种文件格式,它说明在一标准IBIS文件中如何记录一个芯片驱动器和接收器不同参数,但并不说明这些被记录参数如何使用,这些参数需要由使用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 文化节展览活动协议
- 2025年广西壮族自治区事业单位招聘考试综合类专业能力测试试卷(建筑类)真题模拟及答案
- 2025年卫生系统事业单位药学专业知识考试真题模拟
- 2025年重庆市事业单位招聘考试综合类专业能力测试试卷(新闻类)真题模拟
- 衡阳市地理考试题及答案
- 河源高一联考试卷及答案
- 2025年中国无涂层软磁粉行业市场分析及投资价值评估前景预测报告
- 供应链韧性评估-第8篇-洞察与解读
- 2025国考巴彦淖尔市税务管理岗位行测预测卷及答案
- 2025国考保定市社会工作岗位申论模拟题及答案
- 2025年成人高考专升本【生态学基础】真题试卷+答案解析
- 关于幸福的课件
- 2025年霸王茶姬文化战略复盘
- 中国软件行业协会:2025中国软件行业基准数据报告 SSM-BK-202509
- 铁道概论PPT完整全套教学课件
- GB 31187-2014体育用品电气部分的通用要求
- 商标法课件新
- 在役隧道结构安全、健康监测与评估
- 医学专题心肺脑复苏新1
- 现代电池技术:第6章 氢-镍电池
- 汽车吊接地比压计算
评论
0/150
提交评论