基于UVM的蓝牙5.0标准PHY验证方法:技术、实践与优化_第1页
基于UVM的蓝牙5.0标准PHY验证方法:技术、实践与优化_第2页
基于UVM的蓝牙5.0标准PHY验证方法:技术、实践与优化_第3页
基于UVM的蓝牙5.0标准PHY验证方法:技术、实践与优化_第4页
基于UVM的蓝牙5.0标准PHY验证方法:技术、实践与优化_第5页
已阅读5页,还剩643页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于UVM的蓝牙5.0标准PHY验证方法:技术、实践与优化一、引言1.1研究背景与意义随着无线通信技术的飞速发展,蓝牙技术作为一种短距离无线通信技术,在消费电子、智能家居、物联网等领域得到了广泛应用。自1994年爱立信公司首次提出蓝牙技术概念以来,蓝牙技术不断演进,版本持续更新,功能日益强大。蓝牙技术联盟(SIG)的成立,推动了蓝牙技术的标准化进程,使其在全球范围内得到了更广泛的认可和应用。蓝牙5.0标准作为蓝牙技术发展的重要里程碑,在通信速度、通信距离、信号可靠性等方面都做出了显著改进。在通信速度上,蓝牙5.0标准引入了LE2MPHY,数据传输速率提升至2Mbps,相较于蓝牙4.x版本的1Mbps速率提升了一倍,这使得数据传输更加高效,能满足更多对数据传输速度要求较高的应用场景。在通信距离方面,蓝牙5.0标准通过提升最大传输功率至100mW,并引入LECoded模式,使通信距离扩展了4倍,增强了信号的穿透能力,在建筑物等复杂环境中的通信表现更为出色。在信号可靠性上,蓝牙5.0标准对广播通道、广播数据等方面进行了更新,如增加广播数据包大小至255字节,更新通道选择算法等,提高了数据传输的稳定性和准确性。这些改进使得蓝牙5.0标准在物联网、智能家居、智能穿戴等领域具有更广阔的应用前景。在集成电路设计流程中,验证工作至关重要,其重要性与设计工作相当,且占据了整个开发周期的大部分时间。随着设计复杂度以指数形式增长,验证工作已成为芯片设计中的关键瓶颈。对于蓝牙5.0标准的物理层(PHY)而言,其验证工作更是确保蓝牙设备性能和功能的核心环节。PHY作为连接数据链路层设备(MAC)与物理媒介的关键部分,其性能直接影响蓝牙设备的通信质量、传输速度、信号稳定性等关键指标。如果PHY存在设计缺陷或功能异常,可能导致蓝牙设备无法正常工作、通信中断、数据传输错误等问题,严重影响用户体验和产品的市场竞争力。因此,对蓝牙5.0标准PHY进行全面、深入的验证,是保障蓝牙设备质量和性能的必要前提。通用验证方法学(UVM)基于SystemVerilog语言,已成为业界主流的通用验证方法学。UVM具有高度的可重用性,验证工程师可以利用其提供的可重用组件,构建具有标准化层次结构和接口的功能验证环境。在蓝牙5.0标准PHY验证中,UVM的应用能够显著提高验证效率和质量。通过UVM搭建的验证平台,可以方便地对PHY的各种功能和性能进行测试,如数据传输功能、信号调制解调功能、抗干扰能力等。同时,UVM的标准化层次结构和接口,使得验证平台的维护和扩展更加容易,能够适应不断变化的设计需求。此外,UVM还支持多种验证技术和方法,如随机测试、覆盖率驱动验证等,能够更全面地验证PHY的功能,提高验证的完整性和可靠性。因此,研究基于UVM的蓝牙5.0标准PHY验证方法,对于推动蓝牙技术的发展和应用,提高蓝牙设备的质量和性能,具有重要的现实意义和应用价值。1.2国内外研究现状在国外,蓝牙技术联盟(SIG)作为蓝牙技术标准的制定者和推广者,在蓝牙技术的发展和研究中发挥了核心作用。其持续推动蓝牙技术的演进,如蓝牙5.0标准的发布,为相关研究提供了明确的方向和规范。许多国际知名的科研机构和企业,如英特尔、高通、德州仪器等,积极投入到蓝牙技术的研究与开发中,在蓝牙芯片设计、通信协议优化、验证方法等方面取得了众多成果。在蓝牙5.0标准PHY验证领域,国外研究侧重于利用先进的验证技术和工具,提高验证的效率和准确性。一些研究通过构建复杂的验证模型,对PHY的各种功能和性能进行全面测试,包括信号调制解调、数据传输可靠性、抗干扰能力等。同时,针对蓝牙5.0标准中引入的新特性,如LE2MPHY、LECoded模式等,开展了深入的验证研究,以确保这些新特性在实际应用中的稳定性和可靠性。在国内,随着物联网、智能家居等产业的快速发展,蓝牙技术的应用需求不断增长,相关研究也日益活跃。众多高校和科研机构,如清华大学、北京大学、中国科学院等,在蓝牙技术研究方面取得了一系列成果,涵盖了蓝牙通信原理、协议栈开发、验证技术等多个领域。在蓝牙5.0标准PHY验证方面,国内研究在借鉴国外先进经验的基础上,结合国内实际应用需求,开展了具有特色的研究工作。一些研究团队致力于开发适合国内应用场景的验证平台和方法,注重验证平台的可扩展性和易用性,以满足不同企业和项目的需求。同时,国内研究也关注蓝牙技术在物联网、工业控制等领域的应用验证,通过实际应用场景的测试,进一步完善验证方法和技术。尽管国内外在基于UVM的蓝牙5.0标准PHY验证方法研究方面取得了一定进展,但仍存在一些不足之处。一方面,部分验证方法对蓝牙5.0标准中复杂的新特性和应用场景覆盖不够全面,如对LECoded模式在复杂环境下的性能验证不够深入,导致在实际应用中可能出现兼容性和稳定性问题。另一方面,现有的验证平台在可重用性和可维护性方面还有待提高,难以快速适应不断变化的设计需求和技术更新。此外,对于验证过程中的功耗、电磁兼容性等非功能特性的验证研究相对较少,而这些特性在实际应用中对蓝牙设备的性能和用户体验有着重要影响。1.3研究目标与内容本研究旨在深入探究基于UVM的蓝牙5.0标准PHY验证方法,构建高效、全面且具有高度可重用性的验证平台,以确保蓝牙5.0标准PHY在功能和性能上的可靠性,为蓝牙设备的研发和优化提供坚实的技术支撑。具体研究内容如下:蓝牙5.0标准PHY功能分析:全面剖析蓝牙5.0标准中PHY层的各项功能特性,包括LE2MPHY、LECoded模式等新特性。深入研究这些功能的工作原理、技术指标以及在不同应用场景下的性能要求。例如,对于LE2MPHY,详细分析其2Mbps数据传输速率的实现机制,以及在数据量较大的传输场景下如何确保数据的准确性和高效性;对于LECoded模式,研究其在复杂电磁环境下如何利用FEC分组编码技术扩展通信距离,同时分析编码和解码过程对数据传输延迟的影响。UVM验证平台搭建:基于UVM搭建适用于蓝牙5.0标准PHY验证的平台。合理设计验证平台的架构,包括各个组件的功能和相互之间的通信机制。具体来说,设计事务(transaction),准确描述PHY层的数据传输单元,定义并行发送数据和并行接收数据的格式和内容;构建驱动器(driver),根据伪随机码公式生成伪随机码流,并将其准确无误地发送至PHY的并行接收数据端口;设计监测器(monitor),实时接收PHY的并行发送数据端口返回的数据,并按照伪随机码公式生成期待值,通过与接收到的数据进行比对,得出准确的验证结果。同时,考虑验证平台的可扩展性,以便能够适应未来蓝牙技术发展带来的设计变化。测试用例设计与实现:依据蓝牙5.0标准PHY的功能和性能要求,设计丰富多样的测试用例。这些测试用例应全面覆盖PHY层的各种功能,包括正常功能测试、边界条件测试和异常情况测试。在正常功能测试中,模拟各种常规的通信场景,如不同数据量的传输、不同连接模式下的通信等,验证PHY在正常工作状态下的功能正确性;在边界条件测试中,设置数据传输速率、信号强度等参数的边界值,测试PHY在极限情况下的性能表现;在异常情况测试中,模拟信号干扰、丢包等异常情况,检验PHY的抗干扰能力和错误恢复能力。通过这些测试用例的执行,全面验证蓝牙5.0标准PHY的功能和性能。验证结果分析与优化:对测试用例的执行结果进行深入分析,准确识别PHY在功能和性能方面存在的问题。运用统计学方法对验证结果进行量化分析,评估验证的充分性和有效性。例如,通过计算代码覆盖率、功能覆盖率等指标,确定验证过程中是否存在未覆盖的功能点或潜在的设计缺陷。根据分析结果,针对性地优化验证平台和测试用例,进一步提高验证的质量和效率。例如,如果发现某个功能点的覆盖率较低,可以增加相应的测试用例,以确保该功能得到充分验证;如果发现验证平台存在性能瓶颈,可以对其架构进行优化,提高验证速度。1.4研究方法与技术路线本研究综合运用多种研究方法,从理论分析、案例实践到实验验证,全面深入地探究基于UVM的蓝牙5.0标准PHY验证方法,具体研究方法与技术路线如下:文献研究法:全面收集国内外关于蓝牙技术、UVM验证方法学以及PHY验证的相关文献资料,包括学术论文、技术报告、行业标准等。通过对这些文献的系统梳理和分析,深入了解蓝牙5.0标准PHY的技术原理、功能特性,以及UVM在验证领域的应用现状和发展趋势。掌握国内外在蓝牙5.0标准PHY验证方面的研究成果和技术方法,为后续研究提供坚实的理论基础和技术参考。例如,通过研究蓝牙技术联盟(SIG)发布的蓝牙5.0标准文档,深入理解其技术细节和规范要求;分析英特尔、高通等企业在蓝牙验证方面的技术报告,借鉴其先进的验证思路和方法。案例分析法:选取具有代表性的蓝牙芯片设计项目和验证案例,深入分析其在蓝牙5.0标准PHY验证过程中所采用的技术、方法和流程。剖析这些案例中的成功经验和存在的问题,总结出适用于本研究的验证策略和优化方向。例如,对某知名企业的蓝牙5.0芯片验证案例进行分析,研究其如何利用UVM搭建验证平台,设计测试用例,以及如何解决验证过程中出现的问题,从中获取有益的启示和借鉴。实验验证法:基于UVM搭建蓝牙5.0标准PHY验证平台,并在该平台上设计和执行丰富多样的测试用例。通过实验,对蓝牙5.0标准PHY的功能和性能进行全面验证,获取真实可靠的实验数据。运用统计学方法对实验数据进行分析,评估验证的充分性和有效性,准确识别PHY在功能和性能方面存在的问题。例如,通过实验测试PHY在不同数据传输速率、信号强度、干扰环境等条件下的性能表现,收集并分析数据,以验证PHY的功能正确性和性能可靠性。在技术路线上,本研究首先进行蓝牙5.0标准PHY功能分析,深入理解其各项功能特性和技术指标,为后续验证工作提供明确的目标和方向。然后,基于UVM搭建验证平台,精心设计平台架构和各个组件,确保平台的高效性、可扩展性和可重用性。接着,根据PHY的功能和性能要求,设计全面、细致的测试用例,涵盖正常功能测试、边界条件测试和异常情况测试等多个方面。在测试用例执行过程中,实时监控和记录实验数据,运用统计学方法对数据进行量化分析,评估验证的充分性和有效性。最后,根据验证结果分析,针对发现的问题,对验证平台和测试用例进行针对性优化,进一步提高验证的质量和效率,形成一个从理论分析到实践验证,再到结果优化的完整研究闭环。二、蓝牙5.0标准PHY与UVM基础2.1蓝牙5.0标准概述2.1.1蓝牙技术发展历程蓝牙技术的发展历程是一部充满创新与变革的科技演进史,其起源可追溯到20世纪90年代。当时,移动电子设备之间的通信面临着互不兼容的困境,用户需要使用不同的接口和电缆来连接各种设备,这给使用带来了极大的不便。1994年,爱立信公司率先开启了短距离无线通信技术的研发之旅,这便是蓝牙技术的雏形。1998年,爱立信联合诺基亚、IBM、东芝和英特尔等公司,共同成立了蓝牙技术联盟(BluetoothSpecialInterestGroup,简称SIG),正式拉开了蓝牙技术标准化进程的序幕。蓝牙这一名称的由来饶有趣味,它与古代北欧国王哈拉尔德(HaraldBlåtand)相关。蓝牙技术旨在将不同行业领域良好协作起来,如同哈拉尔德国王统一北欧各部落的理念。这位国王喜爱一种水果,食用后牙齿会被染成蓝色,故而被称为HaraldBluetooth(哈拉尔德・蓝牙国王)。自1999年起,这种无线连通技术便被命名为“Bluetooth”,并沿用至今,其logo源自哈拉尔德国王首字母“HB”的古代北欧文字合写。1999年,首个蓝牙标准1.0正式发布,标志着蓝牙技术正式踏入商用领域。蓝牙1.0的最大传输速度为721kbps,支持1米到100米的通信距离,主要应用于无线耳机、鼠标等个人设备。尽管初期的蓝牙技术存在一些兼容性问题,但其为后续的发展奠定了坚实基础。2004年,蓝牙2.0版本问世,引入了增强数据速率(EnhancedDataRate,简称EDR)技术,将传输速度大幅提高到3Mbps,同时降低了功耗。这一版本使得蓝牙设备的稳定性和可靠性显著提升,开始广泛应用于手机、电脑和其他消费电子产品中。2009年,蓝牙3.0标准发布,新增了高速传输(High-Speed,简称HS)功能,通过协同使用Wi-Fi技术,数据传输速度飙升至24Mbps。这一版本的蓝牙技术在高清视频和高质量音频传输等需要大量数据传输的应用场景中表现出色。2010年,蓝牙4.0的发布开启了蓝牙技术的全新篇章。该版本引入了低功耗(LowEnergy,简称LE)技术,极大地降低了设备的能耗,显著延长了电池寿命。这使得蓝牙技术在可穿戴设备、智能家居和物联网领域得到了广泛应用,为智能手表、健身追踪器等设备的普及铺平了道路。此外,蓝牙4.0还支持多个设备同时连接,进一步拓展了其应用范围。2016年,蓝牙5.0标准发布,再次在性能和应用范围上实现了重大突破。蓝牙5.0将传输速度提高到2Mbps,传输距离扩展至200米,同时增强了广播功能,使设备间的连接更加稳定可靠。这一版本在智能家居、工业物联网等领域展现出强大的应用潜力,为物联网设备之间的高效通信提供了有力支持。2024年,蓝牙5.4标准正式发布,在广播功能、多设备连接、低延迟音频和安全性方面进行了全面优化,特别为物联网设备设计,支持大规模设备的连接和管理,为未来的智能生活带来了更多可能性。2.1.2蓝牙5.0标准关键特性蓝牙5.0标准在多个关键特性上相较于前代标准实现了显著提升,使其在性能和应用场景上展现出独特优势。在传输速率方面,蓝牙5.0引入了LE2MPHY,将数据传输速率提升至2Mbps,是蓝牙4.x版本1Mbps速率的两倍。这一提升使得蓝牙设备在数据传输时更加高效,能够满足更多对数据传输速度要求较高的应用场景,如高清音频传输、大文件快速传输等。以高清音频传输为例,蓝牙5.0能够更流畅地传输高分辨率音频数据,为用户带来更优质的听觉体验;在大文件传输时,如传输高清图片、视频等,能够大大缩短传输时间,提高工作和生活效率。蓝牙5.0标准在通信距离上有了重大突破。通过提升最大传输功率至100mW,并引入LECoded模式,蓝牙5.0的通信距离扩展了4倍。LECoded模式采用了FEC分组编码技术,增强了信号的抗干扰能力和穿透能力,使得蓝牙设备在建筑物等复杂环境中的通信表现更为出色。在大型建筑物中,蓝牙5.0设备的信号能够覆盖更大的范围,减少信号盲区,实现更稳定的连接;在户外环境中,也能够保持更远距离的有效通信,满足用户在不同场景下的使用需求。在广播数据方面,蓝牙5.0标准也进行了重要更新。它将广播数据包大小从原来的31字节增加至255字节,同时更新了通道选择算法。更大的广播数据包大小使得设备能够携带更多的信息进行广播,如设备的详细配置信息、传感器数据等,为物联网设备之间的信息交互提供了更丰富的内容。更新后的通道选择算法则提高了广播的稳定性和可靠性,减少了信号干扰,确保数据能够准确、及时地传输。在智能家居系统中,蓝牙5.0设备可以通过广播更详细的设备状态信息,让其他设备或控制中心更全面地了解其工作状态,从而实现更智能的控制和管理。蓝牙5.0标准还添加了导航功能,结合wifi可以实现精度小于1米的室内定位。这一功能在室内导航、资产追踪等领域具有重要应用价值。在大型商场、仓库等室内场所,用户可以利用蓝牙5.0的室内定位功能快速找到自己的位置或目标物品,提高了定位的准确性和便捷性;对于企业来说,能够更精准地追踪资产的位置,提高资产管理效率。此外,蓝牙5.0针对物联网进行了很多底层优化,力求以更低的功耗和更高的性能为智能家居服务,为物联网的发展提供了更强大的技术支持。2.1.3蓝牙5.0标准PHY层详解PHY层在蓝牙通信系统中占据着关键地位,它是连接数据链路层设备(MAC)与物理媒介的重要桥梁,其性能直接决定了蓝牙设备的通信质量、传输速度和信号稳定性等关键指标。蓝牙5.0标准的PHY层具有丰富的功能和多样的工作模式,以适应不同的应用场景和需求。在工作频率方面,蓝牙5.0工作于2400-2483.5MHz的免费ISM频段。为了主动避免工作频段受到干扰,蓝牙采用了跳频扩谱技术。该技术通过在不同的频率信道上快速切换传输信号,使得蓝牙通信能够在复杂的电磁环境中保持稳定。在一个存在多个无线设备的环境中,其他设备的信号可能会对蓝牙通信产生干扰,但跳频扩谱技术可以让蓝牙设备不断改变传输频率,避开干扰源,从而保证通信的可靠性。在信道划分上,低功耗蓝牙BLE具有40个信道,信道索引为0-39,信道间隔为2MHz,起始于2402MHz。其中,37、38、39为专用的广播信道,并且在BT5.0之后,除专用广播信道(也可称为主要广播信道)外,其他所有数据信道也可用于广播,称为第二广播信道。这种信道划分方式为蓝牙的广播和数据传输提供了更多的灵活性和资源,能够满足不同应用场景下的通信需求。蓝牙5.0标准的PHY层支持多种传输模式,以满足不同的通信需求。其中,LE2MPHY模式将数据传输速率提升至2Mbps,适用于对数据传输速度要求较高的场景,如高清音频传输、大文件传输等;LECoded模式则通过FEC分组编码技术,在保证信号可靠性的前提下,扩展了通信距离,适用于需要长距离通信的场景,如智能家居设备在大型建筑物内的通信。此外,蓝牙5.0还支持传统的1Mbps传输模式,以保持与前代设备的兼容性。在调制方式上,低功耗蓝牙4.0及之后版本采用了GFSK调制,调制指数提升到0.45-0.55,提高了频谱效率,相比传统蓝牙增强了抗干扰能力和有效连接距离。BLE5.0及其后续版本新增了物理层速率2Mbps,并支持多种通信速率,如125kbps、500kbps、1Mbps、2Mbps,用户可以根据实际需求选择合适的传输速率。在一些对数据传输量要求不高,但需要低功耗运行的物联网设备中,可以选择125kbps或500kbps的低速率模式,以延长设备的电池寿命;而在需要快速传输大量数据的场景中,则可以选择2Mbps的高速率模式。二、蓝牙5.0标准PHY与UVM基础2.2UVM(通用验证方法学)介绍2.2.1UVM的定义与特点通用验证方法学(UniversalVerificationMethodology,简称UVM)是一个以SystemVerilog类库为主体的验证平台开发框架,在集成电路设计验证领域发挥着关键作用。随着大规模SOC和多核设计的出现,专用集成芯片(ASIC)设计的复杂度呈指数级增长,验证工作成为芯片设计中的关键瓶颈。为解决这一难题,商用硬件验证语言不断发展,如OpenVera、SystemC和e语言等。然而,这些语言在加速验证的同时,也导致设计人员与验证人员沟通出现障碍。于是,SystemVerilog语言应运而生,并被采纳为电气电子工程师学会1800-2009标准。尽管SystemVerilog具备面向对象编程特性,但如何用其搭建验证平台仍缺乏统一标准。为实现验证方法学的标准化,2009年12月,Accellera组织决定以开放验证方法学2.1.1版为基础,构建新的功能验证方法学。2011年2月,Accellera通过了通用验证方法学1.0版,并得到Cadence、Synopsys和MentorGraphics三大厂商的共同支持。此后,UVM不断发展,陆续推出多个版本,如今已成为业界广泛应用的验证方法学。UVM具有一系列显著特点,使其在验证领域脱颖而出。它提供了标准化的验证平台模板,这使得不同项目之间的验证工作可以共享和重用。在不同的芯片设计项目中,虽然设计内容可能各异,但验证平台的基本结构和组件可以依据UVM的标准模板进行搭建,大大节省了开发时间和成本。例如,在一个蓝牙芯片验证项目和一个处理器芯片验证项目中,都可以基于UVM的标准模板构建验证平台,其中的一些通用组件,如事务类、驱动器类等,可以直接复用,减少了重复开发的工作量。UVM支持受约束的随机激励生成。在验证过程中,通过设定各种约束条件,可以生成多样化的激励信号,从而更全面地验证设计的功能。以蓝牙5.0标准PHY验证为例,可以对数据传输的速率、数据包的大小、传输的时间间隔等参数设置约束条件,随机生成各种不同的激励,模拟实际应用中的各种复杂场景,检测PHY在不同情况下的功能是否正常。这种方式能够发现一些在固定激励测试中难以察觉的问题,提高验证的覆盖率和有效性。UVM采用覆盖率驱动的验证模式。通过监测验证过程中的覆盖率,如代码覆盖率、功能覆盖率等指标,可以评估验证的完整性和有效性。当发现某个功能点的覆盖率较低时,就可以针对性地增加测试用例,以确保该功能得到充分验证。在蓝牙5.0标准PHY验证中,如果发现LECoded模式下的某个编码和解码功能的覆盖率较低,就可以通过调整测试用例,增加对该功能的测试次数和场景,提高覆盖率,从而更全面地验证PHY的功能。UVM还具有代码可重用和平台可移植的特点。其代码可重用性高,平台可移植,使得验证工作可以在不同的硬件平台上进行。在不同的芯片开发项目中,只要遵循UVM的规范,验证代码就可以方便地移植到不同的硬件平台上进行验证,无需进行大量的修改。这为芯片设计企业在不同项目之间快速切换和验证提供了便利,提高了验证工作的效率和灵活性。2.2.2UVM的架构与组件UVM的架构设计精妙,由多个层次和组件构成,各组件之间相互协作,共同构建起一个高效、全面的验证环境。测试平台(Testbench)是验证环境的顶层,犹如一座大厦的基石,承载着整个验证工作的基础架构。它包含了所有验证组件,是整个验证环境的起点,管理着各个组件之间的交互,就像一个总指挥,协调着各个部门的工作,确保验证工作的顺利进行。在蓝牙5.0标准PHY验证中,Testbench负责搭建整个验证平台的框架,将各个功能组件整合在一起,为后续的验证工作提供基础支撑。环境(Environment)是测试平台的核心部分,它就像一个大型的工作车间,包含了各种验证组件,如驱动器(Driver)、监视器(Monitor)、记分板(Scoreboard)等。这些组件在Environment的管理和协调下,紧密配合,共同完成复杂的验证任务。在蓝牙5.0标准PHY验证环境中,Environment负责管理各个组件的初始化、配置和运行,确保它们能够按照预定的流程协同工作,对PHY进行全面的验证。组件(Component)是UVM中的基本构建块,如同大厦的砖块,每个组件都具有特定的功能,是实现具体验证功能的关键。驱动器(Driver)负责将事务(Transaction)转换为DUT(DeviceUnderTest,即被测试设备)的输入信号,就像一个信号翻译官,将抽象的事务信息转化为DUT能够理解的具体信号,从而驱动DUT的输入信号,模拟实际操作。在蓝牙5.0标准PHY验证中,Driver根据伪随机码公式生成伪随机码流,并将其准确无误地发送至PHY的并行接收数据端口,为PHY提供输入激励。监视器(Monitor)则用于监视DUT的输出信号,就像一个敏锐的观察者,实时捕捉DUT的输出状态,并将其提取为事务(Transaction)传递给其他组件进行分析。在蓝牙5.0标准PHY验证中,Monitor实时接收PHY的并行发送数据端口返回的数据,并按照伪随机码公式生成期待值,通过与接收到的数据进行比对,得出准确的验证结果,及时发现PHY输出信号中可能存在的问题。记分板(Scoreboard)是用于收集和比较事务的组件,它如同一个公正的裁判,将从监视器接收到的事务与参考模型的输出进行比较,以验证事务的正确性,确保DUT的行为符合预期。在蓝牙5.0标准PHY验证中,Scoreboard将Monitor提取的事务与参考模型生成的预期事务进行对比,判断PHY的功能是否正确,对于发现的差异进行记录和分析,为后续的问题排查和优化提供依据。事务(Transaction)是验证过程中传递的数据单元,它是各个组件之间进行数据交互的载体,就像传递信息的信使,在验证组件之间传递数据,模拟实际操作中的数据流动。在蓝牙5.0标准PHY验证中,Transaction准确描述了PHY层的数据传输单元,定义了并行发送数据和并行接收数据的格式和内容,使得各个组件能够基于统一的数据格式进行交互和验证。2.2.3UVM在验证中的优势与应用场景UVM在验证领域展现出诸多显著优势,为集成电路设计的验证工作带来了高效性和可靠性。它能显著提升验证效率,其标准化的验证平台模板和可重用组件,使验证工程师无需在每个项目中都从头开始搭建验证环境,大大节省了开发时间和精力。在不同的芯片设计项目中,无论是简单的芯片还是复杂的SoC,都可以利用UVM已有的组件和框架,快速搭建起验证平台,进行验证工作。同时,UVM的受约束随机激励生成和覆盖率驱动验证模式,能够更全面地验证设计的功能,减少验证漏洞,提高验证的质量和可靠性。通过随机生成各种激励信号,模拟实际应用中的各种复杂场景,可以发现更多潜在的问题;而覆盖率驱动的验证模式,则可以根据覆盖率指标,针对性地调整测试用例,确保所有功能都得到充分验证。在确保验证完整性方面,UVM表现出色。它通过覆盖率驱动验证模式,实时监测验证过程中的覆盖率,包括代码覆盖率、功能覆盖率等指标,从而全面评估验证的完整性和有效性。一旦发现某个功能点或代码段的覆盖率较低,就可以及时调整测试用例,增加对该部分的测试,确保整个设计都得到充分验证。在蓝牙5.0标准PHY验证中,通过覆盖率分析,可以发现LE2MPHY模式下某些数据传输场景的覆盖率不足,进而针对性地增加测试用例,提高该模式下的验证覆盖率,保证PHY的功能完整性。UVM在不同芯片验证中有着广泛的应用场景。在处理器芯片验证中,UVM可以构建复杂的验证环境,模拟各种指令集的执行、数据的读写操作等,全面验证处理器的功能和性能。通过随机生成不同的指令序列和数据,以及设置各种异常情况,如中断、缓存失效等,来检测处理器在各种情况下的行为是否正确。在通信芯片验证中,对于蓝牙芯片、Wi-Fi芯片等,UVM可以根据不同的通信协议和标准,搭建相应的验证平台,验证芯片在数据传输、信号调制解调、连接管理等方面的功能。以蓝牙5.0标准PHY验证为例,利用UVM可以对PHY的各种传输模式、信道选择、抗干扰能力等进行全面验证,确保蓝牙芯片在各种复杂环境下都能稳定、高效地工作。在图像传感器芯片验证中,UVM可以模拟不同的光照条件、图像分辨率、帧率等,验证芯片在图像采集、处理、传输等方面的性能,确保图像传感器能够满足各种应用场景的需求。三、基于UVM的蓝牙5.0标准PHY验证平台搭建3.1验证平台需求分析3.1.1蓝牙5.0标准PHY验证要点蓝牙5.0标准PHY的验证工作是确保蓝牙设备性能和功能的关键环节,需要重点关注多个方面的功能和性能指标。在传输速率方面,蓝牙5.0标准引入了LE2MPHY,数据传输速率提升至2Mbps,相较于前代标准有了显著提高。验证时需确保在各种应用场景下,如高清音频传输、大文件快速传输等,都能稳定达到这一速率,避免出现数据传输卡顿或速率不稳定的情况。在高清音频传输场景中,需要验证蓝牙5.0标准PHY在长时间传输高分辨率音频数据时,是否能够保持2Mbps的速率,以保证音频的流畅播放和高质量还原;在大文件传输场景中,要测试在不同的文件大小和传输环境下,实际传输速率是否接近理论值,以及传输过程中的丢包率是否在可接受范围内。通信距离也是验证的重点之一。蓝牙5.0通过提升最大传输功率至100mW,并引入LECoded模式,使通信距离扩展了4倍。验证过程中,要在不同的环境条件下,如室内复杂环境、户外开阔空间等,测试蓝牙设备的实际通信距离是否符合标准要求。在室内复杂环境中,由于存在墙壁、家具等障碍物,信号会受到阻挡和衰减,需要验证蓝牙5.0标准PHY在这种情况下能否保持稳定的通信连接,以及通信距离是否能够满足实际应用需求;在户外开阔空间中,要测试在最大传输功率下,蓝牙设备的通信距离是否能够达到标准规定的扩展距离,同时还要考虑信号在不同天气条件下的传输性能。信号可靠性是蓝牙5.0标准PHY验证的关键指标。蓝牙5.0标准对广播通道、广播数据等方面进行了更新,如增加广播数据包大小至255字节,更新通道选择算法等。验证时要检查在复杂的电磁环境下,蓝牙设备是否能够准确、及时地传输数据,避免出现数据丢失或错误的情况。要验证广播数据包大小增加后,设备在广播过程中的稳定性和可靠性,以及更新后的通道选择算法是否能够有效提高信号的抗干扰能力,确保在多设备共存的环境中,蓝牙设备能够稳定地进行数据传输和通信。此外,蓝牙5.0标准还添加了导航功能,结合wifi可以实现精度小于1米的室内定位。在验证过程中,需要在不同的室内场景下,如商场、仓库、办公室等,测试室内定位的精度是否能够满足实际应用需求。在商场中,要验证蓝牙5.0标准PHY能否准确地定位用户的位置,帮助用户快速找到商品或服务区域;在仓库中,要测试其能否精确地追踪货物的位置,提高仓储管理效率;在办公室中,要检验其是否能够为员工提供准确的位置信息,方便工作安排和资源分配。同时,还要考虑在不同的信号强度和干扰条件下,室内定位功能的稳定性和可靠性。3.1.2基于UVM搭建平台的目标利用UVM搭建蓝牙5.0标准PHY验证平台,旨在实现多方面的功能和达到特定的验证效果。该平台应具备全面验证蓝牙5.0标准PHY各项功能的能力,包括LE2MPHY、LECoded模式等新特性,以及传统的1Mbps传输模式等基本功能。通过设计合理的测试用例,能够对PHY的信号调制解调、数据传输、信道选择等功能进行详细测试,确保每个功能都能正常运行。在测试LE2MPHY功能时,平台应能够模拟各种数据传输场景,验证其在2Mbps速率下的数据传输准确性和稳定性;对于LECoded模式,要测试其在不同编码和解码条件下的通信距离和信号可靠性。基于UVM搭建的验证平台要实现高效的验证过程。UVM的标准化层次结构和可重用组件,能够大大缩短验证平台的搭建时间,提高验证效率。通过受约束的随机激励生成和覆盖率驱动验证模式,平台能够更全面地覆盖各种可能的输入情况和应用场景,提高验证的完整性和可靠性。利用受约束的随机激励生成功能,平台可以随机生成各种不同的数据传输速率、数据包大小、信号强度等激励,模拟实际应用中的各种复杂情况,检测PHY在不同情况下的功能是否正常;通过覆盖率驱动验证模式,实时监测验证过程中的覆盖率指标,如代码覆盖率、功能覆盖率等,及时发现未覆盖的功能点和潜在的设计缺陷,并针对性地调整测试用例,确保验证的充分性。该平台还应具有良好的可扩展性和可维护性。随着蓝牙技术的不断发展和更新,蓝牙5.0标准PHY可能会增加新的功能或对现有功能进行改进。基于UVM搭建的验证平台应能够方便地进行扩展和升级,以适应未来的设计变化。在平台架构设计时,要充分考虑组件的可替换性和接口的兼容性,使得在添加新功能或修改现有功能时,能够轻松地对平台进行调整和优化。同时,平台的代码结构应清晰、规范,便于维护和管理,降低后续维护成本。三、基于UVM的蓝牙5.0标准PHY验证平台搭建3.2验证平台架构设计3.2.1整体架构规划基于UVM搭建的蓝牙5.0标准PHY验证平台整体架构如图1所示,该架构设计旨在全面、高效地验证蓝牙5.0标准PHY的各项功能和性能。验证平台主要由测试顶层(TestTop)、验证环境(Environment)、被测试设备(PHYDUT)以及配置文件(ConfigurationFile)等部分组成,各部分之间相互协作,共同完成验证任务。graphTD;TestTop-->Environment;Environment-->Agent;Environment-->Scoreboard;Agent-->Sequencer;Agent-->Driver;Agent-->Monitor;Sequencer-->Sequence;Driver-->PHYDUT;Monitor-->PHYDUT;Monitor-->Scoreboard;ConfigurationFile-->TestTop;TestTop-->Environment;Environment-->Agent;Environment-->Scoreboard;Agent-->Sequencer;Agent-->Driver;Agent-->Monitor;Sequencer-->Sequence;Driver-->PHYDUT;Monitor-->PHYDUT;Monitor-->Scoreboard;ConfigurationFile-->TestTop;Environment-->Agent;Environment-->Scoreboard;Agent-->Sequencer;Agent-->Driver;Agent-->Monitor;Sequencer-->Sequence;Driver-->PHYDUT;Monitor-->PHYDUT;Monitor-->Scoreboard;ConfigurationFile-->TestTop;Environment-->Scoreboard;Agent-->Sequencer;Agent-->Driver;Agent-->Monitor;Sequencer-->Sequence;Driver-->PHYDUT;Monitor-->PHYDUT;Monitor-->Scoreboard;ConfigurationFile-->TestTop;Agent-->Sequencer;Agent-->Driver;Agent-->Monitor;Sequencer-->Sequence;Driver-->PHYDUT;Monitor-->PHYDUT;Monitor-->Scoreboard;ConfigurationFile-->TestTop;Agent-->Driver;Agent-->Monitor;Sequencer-->Sequence;Driver-->PHYDUT;Monitor-->PHYDUT;Monitor-->Scoreboard;ConfigurationFile-->TestTop;Agent-->Monitor;Sequencer-->Sequence;Driver-->PHYDUT;Monitor-->PHYDUT;Monitor-->Scoreboard;ConfigurationFile-->TestTop;Sequencer-->Sequence;Driver-->PHYDUT;Monitor-->PHYDUT;Monitor-->Scoreboard;ConfigurationFile-->TestTop;Driver-->PHYDUT;Monitor-->PHYDUT;Monitor-->Scoreboard;ConfigurationFile-->TestTop;Monitor-->PHYDUT;Monitor-->Scoreboard;ConfigurationFile-->TestTop;Monitor-->Scoreboard;ConfigurationFile-->TestTop;ConfigurationFile-->TestTop;图1:基于UVM的蓝牙5.0标准PHY验证平台整体架构图测试顶层(TestTop)作为整个验证平台的入口,负责启动和管理整个验证过程。它通过读取配置文件(ConfigurationFile)获取验证所需的各种参数和设置,然后根据这些参数实例化验证环境(Environment),并启动测试用例的执行。在蓝牙5.0标准PHY验证中,测试顶层会根据配置文件中的参数,如测试用例类型、数据传输模式、信号强度等,来配置验证环境,确保验证过程能够准确地模拟各种实际应用场景。验证环境(Environment)是验证平台的核心部分,它集成了多个关键组件,包括代理(Agent)、记分板(Scoreboard)等。代理(Agent)负责与被测试设备(PHYDUT)进行交互,它包含了序列发生器(Sequencer)、驱动器(Driver)和监测器(Monitor)。序列发生器(Sequencer)负责生成测试序列,这些序列包含了各种事务(Transaction),用于驱动被测试设备的输入。驱动器(Driver)将序列发生器生成的事务转换为具体的信号,发送给被测试设备(PHYDUT),从而驱动PHY的输入信号,模拟实际的通信操作。在蓝牙5.0标准PHY验证中,驱动器会根据伪随机码公式生成伪随机码流,并将其发送至PHY的并行接收数据端口,以验证PHY在不同数据输入情况下的功能。监测器(Monitor)则用于实时监测被测试设备(PHYDUT)的输出信号,并将其转换为事务,传递给记分板(Scoreboard)进行分析和比较。在验证过程中,监测器会接收PHY的并行发送数据端口返回的数据,并按照伪随机码公式生成期待值,通过与接收到的数据进行比对,得出验证结果,及时发现PHY输出信号中可能存在的问题。记分板(Scoreboard)是验证环境中的重要组件,它将监测器(Monitor)接收到的事务与参考模型的输出进行比较,以验证被测试设备(PHYDUT)的行为是否符合预期。在蓝牙5.0标准PHY验证中,记分板会对监测器提取的事务与参考模型生成的预期事务进行详细对比,判断PHY的功能是否正确,对于发现的差异进行记录和分析,为后续的问题排查和优化提供依据。通过这种方式,记分板能够有效地检测出PHY在功能实现上的错误和缺陷,确保其性能和功能的可靠性。3.2.2关键组件设计接口(Interface)在验证平台中扮演着连接验证平台与被测试设备(PHYDUT)的重要角色,它是两者之间信号交互的桥梁。在蓝牙5.0标准PHY验证平台中,接口负责传递并行发送数据和并行接收数据,确保数据在验证平台和PHY之间的准确传输。它定义了数据传输的协议和信号规范,使得验证平台能够与PHY进行有效的通信。通过接口,驱动器可以将生成的伪随机码流准确地发送至PHY的并行接收数据端口,监测器也能够实时接收PHY的并行发送数据端口返回的数据,为后续的验证工作提供数据支持。事务(Transaction)派生自uvm_sequence_item,它是验证过程中传递的数据单元,准确描述了PHY层的数据传输单元。在蓝牙5.0标准PHY验证中,事务定义了并行发送数据和并行接收数据的格式和内容。通过对事务的定义和操作,验证平台能够模拟各种实际的数据传输场景,对PHY的功能进行全面验证。在测试PHY的LE2MPHY模式时,可以通过事务定义不同的数据速率、数据包大小等参数,模拟高速数据传输场景,验证PHY在该模式下的性能。序列(Sequence)派生自uvm_sequence,它在验证过程中起着生成验证激励的关键作用。只需在测试用例中将序列设置为序列发生器的defaultsequence,即可产生验证激励。在蓝牙5.0标准PHY验证中,序列可以根据测试需求生成各种不同的事务序列,这些序列包含了不同的数据传输模式、信号强度、干扰条件等信息,用于驱动被测试设备,模拟实际的通信场景。可以生成一系列包含不同数据速率和数据包大小的事务序列,以测试PHY在不同数据传输条件下的性能;也可以生成包含信号干扰和丢包情况的事务序列,以检验PHY的抗干扰能力和错误恢复能力。代理(Agent)派生自uvm_agent,它负责将序列发生器(Sequencer)、驱动器(Driver)和监测器(Monitor)封装在一起,形成一个相对独立的功能模块。在蓝牙5.0标准PHY验证平台中,代理作为与被测试设备(PHYDUT)交互的接口,协调内部组件的工作,实现对PHY的有效验证。序列发生器产生的事务通过代理传递给驱动器,驱动器将事务转换为信号发送给PHY,监测器则从PHY接收输出信号,并将其转换为事务通过代理传递给记分板进行分析。3.2.3组件间通信机制在基于UVM的蓝牙5.0标准PHY验证平台中,各组件间的通信机制确保了验证过程的高效和准确。序列(Sequence)与序列发生器(Sequencer)之间通过TLM(TransactionLevelModeling)接口进行通信。序列通过向序列发生器发送请求,将生成的事务传递给序列发生器。序列发生器在接收到请求后,检查是否有序列发送请求,如果有则将事务发送给驱动器(Driver)。在测试PHY的LECoded模式时,序列会根据测试需求生成包含特定编码和解码信息的事务,并通过TLM接口发送给序列发生器,序列发生器再将这些事务转发给驱动器。驱动器(Driver)与被测试设备(PHYDUT)之间通过接口(Interface)进行信号传递。驱动器根据接收到的事务,按照伪随机码公式生成伪随机码流,并通过接口将其发送至PHY的并行接收数据端口,从而驱动PHY的输入信号。在这个过程中,接口定义了信号的传输协议和格式,确保了数据的准确传输。驱动器会根据事务中的数据信息,生成相应的伪随机码流,并通过接口的信号线路将其传输给PHY,模拟实际的通信信号输入。监测器(Monitor)与被测试设备(PHYDUT)之间同样通过接口(Interface)进行通信。监测器实时接收PHY的并行发送数据端口返回的数据,并将其转换为事务。监测器会按照伪随机码公式生成期待值,将接收到的数据与期待值进行比对,得出验证结果。在验证过程中,监测器通过接口获取PHY的输出信号,对其进行分析和处理,为后续的验证结果判断提供依据。监测器(Monitor)与记分板(Scoreboard)之间通过事务传递进行通信。监测器将接收到并转换后的事务发送给记分板,记分板将这些事务与参考模型的输出进行比较,以验证事务的正确性。在蓝牙5.0标准PHY验证中,记分板会对监测器发送的事务进行详细分析,判断PHY的功能是否符合预期,对于发现的差异进行记录和分析,为验证结果的评估提供重要参考。通过这些组件间的通信机制,基于UVM的蓝牙5.0标准PHY验证平台能够实现高效、准确的验证工作,全面检测PHY的功能和性能。3.3验证平台实现细节3.3.1基于SystemVerilog的代码实现在基于UVM的蓝牙5.0标准PHY验证平台中,SystemVerilog语言是实现各组件的关键工具,以下是各组件的关键代码实现及详细说明://接口定义interfacephy_interface(inputlogicclk,inputlogicrstn);logic[7:0]parallel_tx_data;logicparallel_tx_valid;logic[7:0]parallel_rx_data;logicparallel_rx_valid;endinterfaceinterfacephy_interface(inputlogicclk,inputlogicrstn);logic[7:0]parallel_tx_data;logicparallel_tx_valid;logic[7:0]parallel_rx_data;logicparallel_rx_valid;endinterfacelogic[7:0]parallel_tx_data;logicparallel_tx_valid;logic[7:0]parallel_rx_data;logicparallel_rx_valid;endinterfacelogicparallel_tx_valid;logic[7:0]parallel_rx_data;logicparallel_rx_valid;endinterfacelogic[7:0]parallel_rx_data;logicparallel_rx_valid;endinterfacelogicparallel_rx_valid;endinterfaceendinterface上述代码定义了phy_interface接口,它是验证平台与蓝牙5.0标准PHY之间信号交互的桥梁。该接口包含了时钟信号clk、复位信号rstn,以及并行发送数据parallel_tx_data、并行发送有效信号parallel_tx_valid、并行接收数据parallel_rx_data和并行接收有效信号parallel_rx_valid。这些信号的定义确保了验证平台与PHY之间能够准确地传输数据和控制信息,为后续的验证工作奠定了基础。//事务定义classphy_transactionextendsuvm_sequence_item;randbit[7:0]parallel_tx_data;bitparallel_tx_valid;bit[7:0]parallel_rx_data;bitparallel_rx_valid;`uvm_object_utils_begin(phy_transaction)`uvm_field_int(parallel_tx_data,UVM_ALL_ON)`uvm_field_int(parallel_tx_valid,UVM_ALL_ON)`uvm_field_int(parallel_rx_data,UVM_ALL_ON)`uvm_field_int(parallel_rx_valid,UVM_ALL_ON)`uvm_object_utils_endfunctionnew(stringname="phy_transaction");super.new(name);endfunctionendclassclassphy_transactionextendsuvm_sequence_item;randbit[7:0]parallel_tx_data;bitparallel_tx_valid;bit[7:0]parallel_rx_data;bitparallel_rx_valid;`uvm_object_utils_begin(phy_transaction)`uvm_field_int(parallel_tx_data,UVM_ALL_ON)`uvm_field_int(parallel_tx_valid,UVM_ALL_ON)`uvm_field_int(parallel_rx_data,UVM_ALL_ON)`uvm_field_int(parallel_rx_valid,UVM_ALL_ON)`uvm_object_utils_endfunctionnew(stringname="phy_transaction");super.new(name);endfunctionendclassrandbit[7:0]parallel_tx_data;bitparallel_tx_valid;bit[7:0]parallel_rx_data;bitparallel_rx_valid;`uvm_object_utils_begin(phy_transaction)`uvm_field_int(parallel_tx_data,UVM_ALL_ON)`uvm_field_int(parallel_tx_valid,UVM_ALL_ON)`uvm_field_int(parallel_rx_data,UVM_ALL_ON)`uvm_field_int(parallel_rx_valid,UVM_ALL_ON)`uvm_object_utils_endfunctionnew(stringname="phy_transaction");super.new(name);endfunctionendclassbitparallel_tx_valid;bit[7:0]parallel_rx_data;bitparallel_rx_valid;`uvm_object_utils_begin(phy_transaction)`uvm_field_int(parallel_tx_data,UVM_ALL_ON)`uvm_field_int(parallel_tx_valid,UVM_ALL_ON)`uvm_field_int(parallel_rx_data,UVM_ALL_ON)`uvm_field_int(parallel_rx_valid,UVM_ALL_ON)`uvm_object_utils_endfunctionnew(stringname="phy_transaction");super.new(name);endfunctionendclassbit[7:0]parallel_rx_data;bitparallel_rx_valid;`uvm_object_utils_begin(phy_transaction)`uvm_field_int(parallel_tx_data,UVM_ALL_ON)`uvm_field_int(parallel_tx_valid,UVM_ALL_ON)`uvm_field_int(parallel_rx_data,UVM_ALL_ON)`uvm_field_int(parallel_rx_valid,UVM_ALL_ON)`uvm_object_utils_endfunctionnew(stringname="phy_transaction");super.new(name);endfunctionendclassbitparallel_rx_valid;`uvm_object_utils_begin(phy_transaction)`uvm_field_int(parallel_tx_data,UVM_ALL_ON)`uvm_field_int(parallel_tx_valid,UVM_ALL_ON)`uvm_field_int(parallel_rx_data,UVM_ALL_ON)`uvm_field_int(parallel_rx_valid,UVM_ALL_ON)`uvm_object_utils_endfunctionnew(stringname="phy_transaction");super.new(name);endfunctionendclass`uvm_object_utils_begin(phy_transaction)`uvm_field_int(parallel_tx_data,UVM_ALL_ON)`uvm_field_int(parallel_tx_valid,UVM_ALL_ON)`uvm_field_int(parallel_rx_data,UVM_ALL_ON)`uvm_field_int(parallel_rx_valid,UVM_ALL_ON)`uvm_object_utils_endfunctionnew(stringname="phy_transaction");super.new(name);endfunctionendclass`uvm_field_int(parallel_tx_data,UVM_ALL_ON)`uvm_field_int(parallel_tx_valid,UVM_ALL_ON)`uvm_field_int(parallel_rx_data,UVM_ALL_ON)`uvm_field_int(parallel_rx_valid,UVM_ALL_ON)`uvm_object_utils_endfunctionnew(stringname="phy_transaction");super.new(name);endfunctionendclass`uvm_field_int(parallel_tx_valid,UVM_ALL_ON)`uvm_field_int(parallel_rx_data,UVM_ALL_ON)`uvm_field_int(parallel_rx_valid,UVM_ALL_ON)`uvm_object_utils_endfunctionnew(stringname="phy_transaction");super.new(name);endfunctionendclass`uvm_field_int(parallel_rx_data,UVM_ALL_ON)`uvm_field_int(parallel_rx_valid,UVM_ALL_ON)`uvm_object_utils_endfunctionnew(stringname="phy_transaction");super.new(name);endfunctionendclass`uvm_field_int(parallel_rx_valid,UVM_ALL_ON)`uvm_object_utils_endfunctionnew(stringname="phy_transaction");super.new(name);endfunctionendclass`uvm_object_utils_endfunctionnew(stringname="phy_transaction");super.new(name);endfunctionendclassfunctionnew(stringname="phy_transaction");super.new(name);endfunctionendclasssuper.new(name);endfunctionendclassendfunctionendclassendclass这段代码定义了phy_transaction事务类,它派生自uvm_sequence_item,是验证过程中传递的数据单元。该类定义了并行发送数据parallel_tx_data、并行发送有效信号parallel_tx_valid、并行接收数据parallel_rx_data和并行接收有效信号parallel_rx_valid,并使用uvm_object_utils_begin和uvm_object_utils_end宏进行了注册和字段自动化处理。通过这些定义,phy_transaction能够准确地描述PHY层的数据传输单元,方便在验证平台的各个组件之间传递数据,模拟实际的数据传输场景。//序列定义classphy_sequenceextendsuvm_sequence#(phy_transaction);`uvm_object_utils(phy_sequence)functionnew(stringname="phy_sequence");super.new(name);endfunctiontaskbody();phy_transactiontr;repeat(10)begintr=phy_transaction::type_id::create("tr");start_item(tr);assert(tr.randomize());finish_item(tr);endendtaskendclassclassphy_sequenceextendsuvm_sequence#(phy_transaction);`uvm_object_utils(phy_sequence)functionnew(stringname="phy_sequence");super.new(name);endfunctiontaskbody();phy_transactiontr;repeat(10)begintr=phy_transaction::type_id::create("tr");start_item(tr);assert(tr.randomize());finish_item(tr);endendtaskendclass`uvm_object_utils(phy_sequence)functionnew(stringname="phy_sequence");super.new(name);endfunctiontaskbody();phy_transactiontr;repeat(10)begintr=phy_transaction::type_id::create("tr");start_item(tr);assert(tr.randomize());finish_item(tr);endendtaskendclassfunctionnew(stringname="phy_sequence");super.new(name);endfunctiontaskbody();phy_transactiontr;repeat(10)begintr=phy_transaction::type_id::create("tr");start_item(tr);assert(tr.randomize());finish_item(tr);endendtaskendclasssuper.new(name);endfunctiontaskbody();phy_transactiontr;repeat(10)begintr=phy_transaction::type_id::create("tr");start_item(tr);assert(tr.randomize());finish_item(tr);endendtaskendclassendfunctiontaskbody();phy_transactiontr;repeat(10)begintr=phy_transaction::type_id::create("tr");start_item(tr);assert(tr.randomize());finish_item(tr);endendtaskendclasstaskbody();phy_transactiontr;repeat(10)begintr=phy_transaction::type_id::create("tr");start_item(tr);assert(tr.randomize());finish_item(tr);endendtaskendclassphy_transactiontr;repeat(10)begintr=phy_transaction::type_id::create("tr");start_item(tr);assert(tr.randomize());finish_item(tr);endendtaskendclassrepeat(10)begintr=phy_transaction::t

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论