从理论到实践:JTAG与IJTAG测试架构的自动设计与实现_第1页
从理论到实践:JTAG与IJTAG测试架构的自动设计与实现_第2页
从理论到实践:JTAG与IJTAG测试架构的自动设计与实现_第3页
从理论到实践:JTAG与IJTAG测试架构的自动设计与实现_第4页
从理论到实践:JTAG与IJTAG测试架构的自动设计与实现_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

从理论到实践:JTAG与IJTAG测试架构的自动设计与实现一、引言1.1研究背景与意义随着半导体技术的飞速发展,芯片的集成度不断提高,功能日益复杂。从早期简单的小规模集成电路,到如今高度集成的片上系统(SoC),芯片内部集成了数以亿计的晶体管和多种复杂的功能模块,如中央处理器(CPU)、图形处理器(GPU)、内存控制器等。这种技术演进在提升芯片性能和功能的同时,也给芯片测试带来了前所未有的挑战。传统的芯片测试方法,如基于探针的测试技术,在面对新型芯片封装和复杂电路结构时,逐渐显得力不从心。以球栅阵列(BGA)封装为例,其引脚隐藏在芯片底部,使得探针难以接触,无法进行有效的电气连接和信号检测。多层电路板中间层走线的检测也成为难题,由于物理空间的限制和信号传输的干扰,传统测试手段难以触及这些内部线路。此外,随着互连速率攀升到5Gb/s以上,在高速I/O(HSIO)总线上放置测试焊盘变得近乎不可能,电容耦合效应会对HSIO信号传输造成灾难性破坏,导致测试焊盘在许多新型设计中被禁止使用。这些问题使得侵入式测试技术的覆盖范围不断缩小,无法满足现代芯片测试的需求。在这样的背景下,联合测试行动组(JTAG)和内部JTAG(IJTAG)测试架构应运而生。JTAG作为一种标准化的边界扫描测试技术,最初的开发目标是提供一种更有效的电路板测试方法,以验证电路板上芯片之间的连通性。通过在芯片的输入输出引脚与内核电路之间插入边界扫描单元(BSC),JTAG能够实现对器件及其外围电路的测试,大大提高了芯片的可控性和可观察性,有效地解决了传统测试方法在新型芯片封装和复杂电路结构下的难题,使得电路板测试的成本和时间大幅降低。IJTAG则是在JTAG基础上发展起来的新一代测试技术。随着芯片内嵌入式仪器的数量和类型急剧增加,芯片设计人员发现,内嵌控制器是测试、验证和调试集成电路的最具成本效益和效率的手段之一。IJTAG标准通过在芯片级定义一种标准化的仪器接口和高效的架构,实现了对嵌入式仪器的访问和管理,有助于将测试和测量仪器嵌入到芯片中,实现从基于用探针实际测量芯片或电路的外部侵入式测试设备向内部的、非侵入式软件驱动方法的过渡,为解决电路板和系统级验证、测试和调试中的困难提供了新的途径。对JTAG和IJTAG测试架构进行自动设计与实现的研究具有重要意义。从技术层面来看,这有助于进一步提高芯片测试的效率和准确性,满足日益增长的芯片测试需求。自动设计与实现能够减少人工干预,降低设计错误的风险,提高测试架构的设计质量和一致性。同时,通过优化测试架构,能够更快速地检测出芯片中的故障,提高芯片的良品率,降低生产成本。从产业发展角度来看,JTAG和IJTAG测试架构的自动设计与实现是推动半导体产业发展的关键技术之一。随着芯片技术的不断进步,半导体产业对测试技术的要求也越来越高。高效、准确的测试技术能够加速芯片的研发和生产周期,提高产业的竞争力。此外,这一研究成果还有助于促进测试设备和工具的创新,带动相关产业链的发展,为整个半导体产业的发展提供有力支撑。在学术研究领域,对JTAG和IJTAG测试架构的深入研究也具有重要价值。这一领域涉及到电子设计自动化(EDA)、数字电路设计、测试理论等多个学科的交叉,通过对其自动设计与实现的研究,能够丰富和拓展相关学科的理论和方法,为后续的学术研究提供新的思路和方向。随着芯片技术的不断发展,JTAG和IJTAG测试架构的自动设计与实现已成为芯片测试领域的重要研究课题,对于推动芯片技术进步、促进半导体产业发展以及丰富学术研究成果都具有不可忽视的重要意义。1.2国内外研究现状在JTAG测试架构的研究方面,国外起步较早,取得了丰富的成果。自1990年IEEE1149.1标准确立以来,众多国际知名企业和研究机构积极投入到JTAG技术的研究与应用中。如德州仪器(TI)、英特尔(Intel)等公司,在其芯片产品中广泛应用JTAG技术,实现了芯片的高效测试与调试。相关研究围绕JTAG的架构优化、测试算法改进以及与其他测试技术的融合展开。例如,通过改进边界扫描单元的结构,提高测试数据的传输效率;利用遗传算法等智能算法,优化测试向量的生成,以减少测试时间和成本。国内对JTAG技术的研究也在不断深入。许多高校和科研机构,如清华大学、北京大学、中国科学院微电子研究所等,在JTAG技术的理论研究和工程应用方面取得了一系列成果。研究内容涉及JTAG控制器的设计、测试链路的优化以及测试软件的开发等。一些国内企业也开始将JTAG技术应用于芯片设计和生产中,逐步提高自身的芯片测试能力。IJTAG测试架构作为一种新兴的测试技术,近年来受到了国内外学术界和产业界的广泛关注。国外的研究主要集中在IJTAG标准的完善和应用拓展上。如IEEE1687标准工作组不断对IJTAG标准进行修订和完善,以适应不断变化的芯片技术发展需求。一些研究机构致力于开发基于IJTAG的测试工具和平台,提高芯片测试的自动化水平和测试效率。例如,通过开发智能化的测试软件,实现对IJTAG测试架构的自动配置和测试流程的自动执行。国内在IJTAG测试架构的研究方面相对起步较晚,但发展迅速。部分高校和科研机构开始开展相关研究,探索IJTAG技术在国内芯片产业中的应用前景。研究工作主要包括IJTAG架构的设计与实现、测试策略的制定以及与国内芯片设计流程的融合等。一些企业也开始关注IJTAG技术,并尝试将其应用于实际的芯片测试中,以提高芯片的测试质量和竞争力。尽管国内外在JTAG和IJTAG测试架构的研究方面取得了一定的进展,但仍存在一些不足与空白。在JTAG测试架构方面,随着芯片技术的不断发展,如三维集成电路(3D-IC)和片上网络(NoC)等新型芯片结构的出现,传统JTAG测试架构在测试覆盖率、测试效率和可扩展性等方面面临挑战。目前针对这些新型芯片结构的JTAG测试架构优化研究还相对较少,如何设计出适应新型芯片结构的JTAG测试架构,以提高测试的有效性和全面性,是亟待解决的问题。在IJTAG测试架构方面,虽然IJTAG标准已经制定,但在实际应用中仍存在一些问题。例如,IJTAG仪器的兼容性和互操作性有待提高,不同厂家生产的IJTAG仪器之间难以实现无缝对接和协同工作。此外,IJTAG测试架构的自动设计工具还不够成熟,设计过程中需要大量的人工干预,导致设计效率低下。如何开发出高效、通用的IJTAG测试架构自动设计工具,提高设计的自动化水平和质量,也是当前研究的重点和难点。1.3研究目标与内容本研究旨在深入探索JTAG和IJTAG测试架构,实现其自动设计与高效实现,以满足现代芯片测试日益增长的复杂需求。通过对相关理论和技术的深入研究,结合先进的算法和工具,构建自动化设计流程,提高测试架构设计的效率和质量,推动芯片测试技术的进一步发展。在研究内容方面,首先会深入剖析JTAG和IJTAG测试架构的工作原理。详细研究JTAG的边界扫描原理,包括边界扫描单元的结构和工作机制,以及JTAG测试链路的建立和数据传输过程。对于IJTAG,将重点研究其仪器接口和架构设计,了解IJTAG如何实现对嵌入式仪器的访问和管理,以及IJTAG与JTAG在架构和功能上的差异。这一基础研究将为后续的自动设计与实现提供坚实的理论支持。在JTAG测试架构自动设计方面,将研究适应新型芯片结构的JTAG测试架构优化方法。针对3D-IC和NoC等新型芯片结构,分析传统JTAG测试架构存在的问题,提出改进方案。例如,通过设计新的边界扫描单元结构,提高测试覆盖率;优化测试链路布局,减少测试时间和成本。同时,开发JTAG测试架构自动设计工具,实现测试架构的自动化生成。利用电子设计自动化(EDA)技术,结合算法优化,使工具能够根据芯片的功能和结构需求,自动生成最优的JTAG测试架构。对于IJTAG测试架构自动设计,将致力于解决IJTAG仪器的兼容性和互操作性问题。研究制定统一的标准和规范,确保不同厂家生产的IJTAG仪器能够实现无缝对接和协同工作。开发IJTAG测试架构自动设计工具,提高设计的自动化水平。该工具将能够根据芯片的嵌入式仪器配置和测试需求,自动生成高效的IJTAG测试架构,并对设计结果进行优化和验证。在JTAG和IJTAG测试架构实现方面,将进行硬件实现的研究。采用合适的硬件平台,如现场可编程门阵列(FPGA)或专用集成电路(ASIC),实现JTAG和IJTAG测试架构。在实现过程中,优化硬件电路设计,提高测试架构的性能和稳定性。还会进行软件实现的研究,开发相应的测试软件,实现对JTAG和IJTAG测试架构的控制和管理。测试软件将具备测试向量生成、测试数据采集和分析等功能,能够有效地支持芯片测试工作。最后,对设计实现的JTAG和IJTAG测试架构进行全面的性能评估。通过实验测试,分析测试架构的测试覆盖率、测试时间、测试成本等指标,评估其性能优劣。根据评估结果,对测试架构进行优化和改进,进一步提高其性能和可靠性。1.4研究方法与技术路线本研究综合运用多种研究方法,以确保对JTAG和IJTAG测试架构的自动设计与实现进行全面、深入的探索。在研究过程中,采用文献研究法对国内外关于JTAG和IJTAG测试架构的相关文献进行广泛搜集和深入分析。通过梳理学术期刊论文、会议论文、专利文献以及技术报告等资料,全面了解该领域的研究现状、发展趋势和关键技术,为研究提供坚实的理论基础和技术参考。例如,对IEEE1149.1和IEEE1687标准的相关文献进行详细研读,深入理解JTAG和IJTAG的技术原理、架构特点以及应用案例。案例分析法也是本研究的重要方法之一。通过分析实际的芯片设计和测试案例,深入研究JTAG和IJTAG测试架构在不同场景下的应用情况。如对某公司采用JTAG技术进行芯片测试的案例进行分析,了解其在测试覆盖率、测试时间和成本等方面的实际表现,总结成功经验和存在的问题,为后续的研究和设计提供实践依据。实验验证法是本研究不可或缺的环节。搭建实验平台,对设计实现的JTAG和IJTAG测试架构进行实验验证。通过实验,获取测试数据,评估测试架构的性能指标,如测试覆盖率、测试时间、测试成本等。根据实验结果,对测试架构进行优化和改进,确保其满足实际应用需求。例如,利用FPGA开发板搭建实验平台,对JTAG测试架构的自动设计工具生成的测试架构进行实验验证,分析测试结果,不断优化工具的算法和参数。本研究的技术路线遵循从理论分析到实践验证的逻辑顺序。在理论分析阶段,深入研究JTAG和IJTAG测试架构的工作原理、标准规范以及相关技术。详细剖析JTAG的边界扫描原理,包括边界扫描单元的结构和工作机制,以及JTAG测试链路的建立和数据传输过程。对于IJTAG,重点研究其仪器接口和架构设计,了解IJTAG如何实现对嵌入式仪器的访问和管理,以及IJTAG与JTAG在架构和功能上的差异。同时,分析当前JTAG和IJTAG测试架构在面对新型芯片结构时存在的问题和挑战,为后续的设计优化提供方向。在设计阶段,针对JTAG测试架构,研究适应新型芯片结构的优化方法。根据3D-IC和NoC等新型芯片结构的特点,设计新的边界扫描单元结构,提高测试覆盖率;优化测试链路布局,减少测试时间和成本。开发JTAG测试架构自动设计工具,利用EDA技术和算法优化,实现测试架构的自动化生成。对于IJTAG测试架构,致力于解决IJTAG仪器的兼容性和互操作性问题。研究制定统一的标准和规范,确保不同厂家生产的IJTAG仪器能够实现无缝对接和协同工作。开发IJTAG测试架构自动设计工具,根据芯片的嵌入式仪器配置和测试需求,自动生成高效的IJTAG测试架构,并对设计结果进行优化和验证。在实现阶段,进行JTAG和IJTAG测试架构的硬件实现和软件实现。采用合适的硬件平台,如FPGA或ASIC,实现测试架构的硬件电路设计,优化硬件电路设计,提高测试架构的性能和稳定性。开发相应的测试软件,实现对测试架构的控制和管理,测试软件具备测试向量生成、测试数据采集和分析等功能,能够有效地支持芯片测试工作。最后,在验证与优化阶段,对设计实现的JTAG和IJTAG测试架构进行全面的性能评估。通过实验测试,分析测试架构的各项性能指标,评估其性能优劣。根据评估结果,对测试架构进行优化和改进,进一步提高其性能和可靠性,确保研究成果能够满足实际应用的需求。二、JTAG和IJTAG测试架构基础理论2.1JTAG测试架构2.1.1JTAG的起源与发展历程JTAG技术的起源可以追溯到20世纪80年代。当时,随着集成电路技术的飞速发展,芯片的引脚数量不断增加,传统的针床测试方法在面对新型芯片封装时逐渐显得力不从心。例如,表面贴装技术(SMT)的出现使得芯片引脚变得更小且更密集,难以使用传统的探针进行测试。多层印刷电路板的广泛应用也增加了测试的难度,内部线路难以直接接触和检测。为了解决这些问题,1985年,欧洲的一些制造机构成立了欧洲联合测试行动组织(JETAG,JointEuropeanTestActionGroup),旨在研究集成电路的测试方法。后来,该组织与北美公司合作,于1986年更名为联合测试行动组(JTAG,JointTestActionGroup),并着手制定相关的测试标准。1990年,JTAG正式由IEEE的1149.1-1990号文档标准化,该标准定义了测试访问端口(TAP,TestAccessPort)和边界扫描结构,规定了进行边界扫描所需要的硬件和软件,为芯片测试提供了一种全新的方法。通过在芯片内部定义TAP,利用边界扫描技术,能够在不直接接触芯片引脚的情况下,对芯片内部的电路进行测试和调试,大大提高了测试的效率和准确性。自1990年批准后,IEEE分别于1993年和1995年对该标准作了补充,形成了现在使用的IEEE1149.1a-1993和IEEE1149.1b-1994,进一步完善了JTAG标准,使其能够更好地适应不断发展的芯片技术。随着时间的推移,JTAG技术得到了广泛的应用和发展。从最初主要用于芯片的边界扫描测试,逐渐扩展到系统级调试、在系统编程(ISP,In-SystemProgrammable)等领域。在现代硬件设计中,JTAG被用于调试CPU内核、加载固件、测试和调试嵌入式系统以及进行高速串行总线测试等。例如,在嵌入式系统开发中,开发人员可以利用JTAG接口对芯片进行编程和调试,快速定位和解决系统中的问题,提高开发效率。许多FPGA和ASIC芯片都支持JTAG接口,方便用户进行芯片的配置和测试。如今,JTAG技术已经成为半导体测试领域不可或缺的一部分,随着芯片技术的不断进步,JTAG技术也在不断演进,以满足日益增长的芯片测试需求。2.1.2JTAG的工作原理JTAG的核心工作原理基于边界扫描技术,通过在芯片内部定义测试访问端口(TAP),实现对芯片内部节点的测试和调试。其工作机制涉及多个关键组件的协同工作,包括TAP控制器、边界扫描寄存器等。TAP控制器是JTAG的核心组件之一,它本质上是一个状态机,负责管理测试逻辑的状态转换。TAP控制器通过接收测试模式选择信号(TMS)和测试时钟信号(TCK)来控制状态的转换。TMS信号是一个单比特信号,用于设置JTAG口处于特定的测试模式,在TCK的上升沿被采样,从而驱动TAP控制器状态机的运转。TCK则为TAP的操作提供独立的时钟信号,确保测试逻辑的时序准确。TAP控制器共有16个状态,这些状态构成了一个复杂的状态转换图。在系统上电后,TAP控制器首先进入Test-Logic-Reset状态,这是一个初始状态,确保测试逻辑处于已知的复位状态。然后,它可以根据TMS信号的变化依次进入Run-Test/Idle、Select-DR-Scan、Select-IR-Scan、Capture-IR、Shift-IR、Exit1-IR、Update-IR等状态。在这些状态中,TAP控制器完成不同的操作,如加载指令、传输数据等。例如,在Capture-IR状态下,一个特定的逻辑序列被加载到指令寄存器中;在Shift-IR状态下,可以将一条特定的指令送到指令寄存器中;在Update-IR状态下,刚才输入到指令寄存器中的指令将用来更新指令寄存器,使其生效。边界扫描寄存器是JTAG实现测试功能的另一个关键组件。它由一系列边界扫描单元(BSC,Boundary-ScanCell)组成,这些单元分布在芯片的输入输出引脚附近。当芯片处于调试状态时,边界扫描寄存器可以将芯片和外围的输入输出隔离开来,实现对芯片输入输出信号的观察和控制。对于芯片的输入引脚,可以通过与之相连的边界扫描寄存器单元把信号(数据)加载到该引脚中去;对于芯片的输出引脚,也可以通过与之相连的边界扫描寄存器“捕获”该引脚上的输出信号。在正常运行状态下,边界扫描寄存器对芯片来说是透明的,不影响芯片的正常功能。而在测试状态下,边界扫描寄存器可以相互连接起来,在芯片的周围形成一个边界扫描链(Boundary-ScanChain)。这个扫描链可以串行地输入和输出数据,通过TCK和TMS等控制信号,就可以方便地对处在调试状态下的芯片进行测试和调试。例如,通过向边界扫描链中输入测试向量,然后读取扫描链输出的数据,就可以检测芯片引脚之间的连接是否正确,以及芯片内部逻辑是否存在故障。除了TAP控制器和边界扫描寄存器,JTAG还包括测试数据输入信号(TDI,TestDataIn)和测试数据输出信号(TDO,TestDataOut)。TDI用于将串行测试数据和指令移入芯片,数据在TCK的上升沿被寄存到器件内部的移位寄存器中,按照设定好的路径依次通过一系列寄存器。TDO则用于将数据从器件的内部寄存器链中移出,在特定的指令下,将寄存器链的最终数据输出到测试设备,以便进行分析和判断。JTAG通过TAP控制器、边界扫描寄存器以及相关信号的协同工作,实现了对芯片的高效测试和调试,为现代芯片测试提供了一种可靠的解决方案。2.1.3JTAG的架构组成JTAG架构主要由JTAG标准端口、JTAG状态机控制器、JTAG寄存器以及JTAG指令解码器等部分组成,各部分之间相互协作,共同实现JTAG的测试和调试功能。JTAG标准端口是JTAG架构与外部测试设备进行通信的接口,通常包括以下几个重要信号:测试时钟(TCK,TestClock),为TAP控制器提供时钟信号,控制测试逻辑的时序,它是一个独立的时钟,不依赖于芯片的主时钟,频率范围可根据设计需求在几十千赫兹到几十兆赫兹之间变化;测试模式选择(TMS,TestModeSelect),这是一个单比特信号,用于设置JTAG口处于特定的测试模式,在TCK的上升沿被采样,通过TMS信号的不同取值组合,可以控制TAP控制器在16个状态之间进行转换;测试数据输入(TDI,TestDataIn),用于将串行测试数据和指令移入芯片,数据按照时钟信号的节拍依次进入芯片内部的寄存器;测试数据输出(TDO,TestDataOut),将芯片内部寄存器链中的数据移出,输出给外部测试设备进行分析;测试复位(TRST,TestLogicReset),这是一个可选信号,低电平有效,用于复位TAP控制器和测试逻辑,确保测试环境在不干扰设备正常工作模式下,被置于一个已知的状态。在一些对测试可靠性和重复性要求较高的设计中,通常会实现TRST引脚。JTAG状态机控制器是JTAG架构的核心控制单元,它通过TMS和TCK信号来管理测试逻辑的状态转换。如前文所述,TAP控制器具有16个状态,这些状态构成了一个复杂的状态机。在不同的状态下,TAP控制器执行不同的操作,如加载指令、传输数据、控制边界扫描寄存器等。通过状态机的有序运转,JTAG能够实现各种测试和调试功能。JTAG寄存器是JTAG架构中存储数据和指令的部分,包括指令寄存器和多个数据寄存器。指令寄存器用于存储JTAG指令,这些指令指导测试流程的执行,IEEE规范规定该寄存器至少为2bit,以实现对4种强制性指令的编码。指令寄存器由移位寄存器和锁存器组成,长度等于指令的长度,指令从TDI串行输入,同时锁存在锁存器中。数据寄存器则包括边界扫描寄存器、旁路寄存器、芯片标识寄存器等。边界扫描寄存器由芯片引脚上的所有边界扫描单元组成,这些单元串联起来形成边界扫描链,用于捕获和移位测试数据,实现对芯片输入输出信号的观察和控制。旁路寄存器是一个1位寄存器,用于旁路不需要测试的芯片,当选择旁路寄存器时,TDI仅经过一级触发器即可输出至TDO,从而缩短测试时间。芯片标识寄存器存储芯片的标识信息,如版本号、型号、制造厂商等,当需要对该器件进行替换时可查询该寄存器。JTAG指令解码器负责解析指令寄存器中的指令,根据不同的指令类型,控制JTAG架构中其他组件的工作。例如,当解析到EXTEST指令时,指令解码器会控制边界扫描寄存器将测试向量串行移位至被测的连线或者逻辑电路,同时捕获响应数据,并将测试结果串行移位输出;当解析到BYPASS指令时,指令解码器会选择旁路寄存器,决定该芯片是否被测试。JTAG架构中的各个组成部分紧密配合,通过标准端口接收外部测试设备的控制信号和数据,利用状态机控制器管理测试逻辑的状态转换,通过寄存器存储和传输数据与指令,最终实现对芯片的全面测试和调试。2.1.4JTAG的指令集及应用JTAG标准定义了一系列指令,这些指令在芯片测试过程中发挥着关键作用,不同的指令用于实现不同的测试目的。以下是一些常用的JTAG指令及其应用。EXTEST指令是JTAG指令集中的一个重要指令,主要用于测试板级芯片间的互连线。在实际应用中,当需要检测电路板上不同芯片之间的连接是否正确时,就可以使用EXTEST指令。其测试过程如下:首先通过TMS信号运转状态机,依次进入Select-IR、Shift-IR和Run-Test/idle等状态,将EXTEST指令加载到指令寄存器中。然后,通过TDI输入数据到芯片一的边界扫描寄存器中,更新芯片一的输出管脚信号。芯片二捕获输入管脚数据,并将捕获到的数据通过TDO输出。通过分析输出的数据,就可以判断芯片间的互连线是否存在开路、短路等故障。例如,在一块包含多个芯片的电路板上,使用EXTEST指令可以快速检测出芯片之间的连接是否正常,确保电路板的电气连接可靠性。BYPASS指令用于旁路不需要测试的芯片,以缩短测试时间。当电路板上存在一些已知功能正常的芯片,或者某些芯片在当前测试阶段不需要进行测试时,就可以使用BYPASS指令。在执行BYPASS指令时,TDI和TDO之间只有一个bit的旁路寄存器,数据直接通过旁路寄存器从TDI传输到TDO,跳过了芯片内部复杂的测试逻辑。这样可以大大减少测试数据的传输量和测试时间,提高测试效率。例如,在一个包含多个相同功能芯片的系统中,已经对其中一部分芯片进行了全面测试,确认其功能正常,在后续的测试中就可以使用BYPASS指令跳过这些芯片,集中精力测试其他可能存在问题的芯片。SAMPLE指令用于获取芯片输入输出管脚上的即时数据。在芯片正常运行过程中,通过执行SAMPLE指令,可以对芯片输入输出管脚的数据进行采样,从而了解芯片的实时工作状态。这对于调试芯片和系统非常有用,可以帮助工程师快速定位芯片在运行过程中出现的问题。例如,在一个微处理器芯片中,使用SAMPLE指令可以实时获取其数据总线和地址总线上的数据,分析芯片的工作是否正常,是否存在数据传输错误等问题。PRELOAD指令用于控制芯片输入输出管脚。通过该指令,可以将已知的数据加载到边界扫描寄存器中,从而控制芯片的输入输出管脚状态。这在一些特定的测试场景中非常有用,例如在对芯片进行功能测试时,可以通过PRELOAD指令设置芯片的输入管脚状态,然后观察输出管脚的响应,以验证芯片的功能是否正确。IDCODE指令用于获取芯片的ID信息,该信息由32位组成,由JEDEC组织分配给每一个厂家。通过读取芯片的IDCODE,可以确定芯片的型号、制造厂商等信息,这对于芯片的识别、替换以及系统的维护都非常重要。例如,在进行芯片维修时,通过读取IDCODE可以快速确定需要更换的芯片型号,提高维修效率。INTEST指令用于芯片内部测试。通过边界扫描技术,该指令可以控制芯片内部逻辑的输入输出,进行内部的测试操作。例如,在对芯片内部的逻辑电路进行测试时,使用INTEST指令可以将测试向量输入到芯片内部的逻辑单元中,然后检测其输出结果,判断芯片内部逻辑是否存在故障。在实际的芯片测试案例中,以一款包含多个功能模块的复杂芯片为例,在测试过程中,首先使用IDCODE指令获取芯片的身份信息,确认芯片的型号和制造商是否正确。然后,利用EXTEST指令对芯片与外部电路的连接进行测试,确保引脚连接的正确性。接着,使用INTEST指令对芯片内部的各个功能模块进行测试,检查模块的功能是否正常。在测试过程中,如果发现某些模块不需要进行测试,可以使用BYPASS指令将其旁路,提高测试效率。通过SAMPLE和PRELOAD指令,可以对芯片的输入输出管脚进行实时监测和控制,进一步验证芯片的功能。通过综合运用JTAG的指令集,能够全面、高效地对芯片进行测试和调试,确保芯片的质量和性能。2.2IJTAG测试架构2.2.1IJTAG的产生背景与发展IJTAG的产生源于现代芯片技术发展带来的一系列挑战。随着集成电路技术的飞速进步,片上系统(SoC)中集成的IP核数量急剧增加,一个典型的SoC内可能包含超过100个IP核。同时,芯片内嵌入式仪器的数量和类型也在不断增多,传统的测试技术难以满足对这些复杂芯片的测试、验证和调试需求。在JTAG技术的发展过程中,虽然它在电路板测试和芯片边界扫描测试方面取得了显著成效,但随着芯片内部结构的日益复杂,JTAG逐渐暴露出一些局限性。例如,片上IP数量的增加导致JTAG指令集不断膨胀,指令解码器变得极为复杂,难以管理和维护。此外,JTAG采用的广播架构在面对大量嵌入式仪器时,效率低下,无法实现对各个仪器的灵活访问。为了解决这些问题,2005年,IEEE开始着手开发内嵌控制器(IJTAG)标准,即IEEE1687标准。其核心目标是提供一种标准化的仪器接口和高效的架构,实现对嵌入式仪器的便捷访问和管理。通过将测试和测量仪器嵌入到芯片中,IJTAG有助于实现从基于外部侵入式测试设备向内部的、非侵入式软件驱动测试方法的转变。在IJTAG的发展历程中,关键的技术突破之一是定义了元件连接语言(ICL,InstrumentConnectivityLanguage)和过程描述语言(PDL,ProceduralDescriptionLanguage)。ICL用于描述元件之间的连接关系,使得不同的嵌入式仪器能够在统一的框架下进行连接和管理。PDL则用于描述对元件的操作,为测试流程的自动化执行提供了有力支持。另一个重要的技术突破是引入了扫描互连块(SIB,ScanInterconnectBlock)和边界访问点(BAP,BoundaryAccessPoint)等关键组件。SIB负责管理和连接不同的嵌入式仪器,形成高效的测试链路;BAP则提供了与外部测试设备的接口,实现了测试数据的输入输出。这些组件的引入,极大地提高了IJTAG测试架构的灵活性和可扩展性。随着时间的推移,IJTAG标准不断完善和发展。IEEE1687标准工作组持续对标准进行修订和更新,以适应不断变化的芯片技术发展需求。IJTAG技术在学术界和产业界得到了广泛的研究和应用,许多芯片设计公司开始在其产品中采用IJTAG技术,提高芯片的测试和调试效率。2.2.2IJTAG的工作原理与创新点IJTAG在继承JTAG边界扫描技术的基础上,进行了一系列创新,以实现对嵌入式仪器的高效访问和管理。其工作原理主要围绕着扫描互连块(SIB)和边界访问点(BAP)等关键组件展开。SIB是IJTAG架构中的核心组件之一,它类似于一个智能的连接枢纽,负责管理和连接不同的嵌入式仪器。SIB通过内部的扫描链,将各个嵌入式仪器连接起来,形成一个有机的整体。在测试过程中,SIB能够根据测试需求,灵活地选择和切换不同的嵌入式仪器,实现对它们的单独测试或联合测试。例如,当需要测试芯片内部的一个特定IP核时,SIB可以将该IP核的测试链路与其他仪器隔离,确保测试的准确性和独立性。BAP则是IJTAG与外部测试设备进行通信的接口。它接收来自外部测试设备的测试命令和数据,并将其传递给SIB和相关的嵌入式仪器。BAP还负责将测试结果从嵌入式仪器传输回外部测试设备,以便进行分析和判断。BAP的设计充分考虑了与JTAG接口的兼容性,使得IJTAG能够与现有的JTAG测试设备无缝对接,降低了测试成本。IJTAG的创新点之一在于其高效的仪器访问机制。与JTAG的广播架构不同,IJTAG采用了一种基于层次化的结构,使得测试设备能够直接访问到每个嵌入式仪器,大大提高了测试效率。通过ICL语言对仪器连接关系的描述,IJTAG能够快速定位和访问到所需的仪器,减少了测试时间和数据传输量。IJTAG还引入了虚拟仪器的概念。通过软件定义的方式,IJTAG可以将多个物理仪器组合成一个虚拟仪器,实现更复杂的测试功能。这种虚拟仪器的灵活性和可重构性,使得IJTAG能够适应不同的测试需求,提高了测试的覆盖率和准确性。IJTAG在测试过程的自动化方面也有显著创新。利用PDL语言,IJTAG可以描述复杂的测试过程和操作序列,实现测试流程的自动化执行。测试人员只需编写相应的PDL脚本,就可以自动完成一系列的测试操作,减少了人工干预,提高了测试的可靠性和一致性。IJTAG通过对关键组件的创新设计和引入新的概念和技术,实现了对嵌入式仪器的高效访问和管理,为现代芯片测试提供了一种更先进、更灵活的解决方案。2.2.3IJTAG的架构组成与特点IJTAG架构主要由扫描互连块(SIB)、边界访问点(BAP)、嵌入式仪器以及元件连接语言(ICL)和过程描述语言(PDL)等部分组成,各部分相互协作,共同实现IJTAG的测试功能。SIB是IJTAG架构的核心组件,它在整个测试架构中起到了连接和管理嵌入式仪器的关键作用。SIB通常由多个扫描单元组成,这些扫描单元通过内部的扫描链相互连接。每个扫描单元可以连接一个或多个嵌入式仪器,通过控制扫描链的移位操作,SIB能够实现对不同嵌入式仪器的选择和访问。SIB还具备数据缓存和转发的功能,能够在测试过程中临时存储和转发测试数据,提高测试效率。例如,在对多个嵌入式仪器进行联合测试时,SIB可以将来自不同仪器的测试数据进行缓存和整理,然后一次性发送给外部测试设备,减少了数据传输的次数和时间。BAP作为IJTAG与外部测试设备的接口,负责实现测试命令和数据的传输。BAP通常包括多个信号引脚,如测试时钟(TCK)、测试模式选择(TMS)、测试数据输入(TDI)和测试数据输出(TDO)等,这些信号引脚与JTAG接口的信号引脚类似,保证了IJTAG与现有JTAG测试设备的兼容性。BAP接收来自外部测试设备的测试命令和数据,并将其转换为适合IJTAG内部传输的格式,然后传递给SIB。BAP将SIB返回的测试结果转换为外部测试设备能够识别的格式,输出给外部测试设备。BAP还具备一定的信号处理和错误检测功能,能够确保测试数据的准确传输。嵌入式仪器是IJTAG架构中用于实际测试和测量的组件,它们可以是各种类型的测试电路、传感器或监测模块。这些嵌入式仪器被集成在芯片内部,通过SIB与其他组件相连。嵌入式仪器的种类和功能根据芯片的设计需求而定,例如,在一些高性能处理器芯片中,可能会集成功耗监测仪器、温度传感器、逻辑分析仪等嵌入式仪器,用于实时监测芯片的运行状态和性能指标。嵌入式仪器的存在使得IJTAG能够实现对芯片内部各种参数和功能的全面测试和验证。ICL和PDL在IJTAG架构中也起着不可或缺的作用。ICL用于描述IJTAG架构中各个组件之间的连接关系和配置信息。通过ICL,设计人员可以清晰地定义嵌入式仪器与SIB、BAP之间的连接方式,以及各个仪器的属性和功能。ICL文件通常采用文本格式,易于编写和修改,为IJTAG架构的设计和调试提供了便利。PDL则用于描述测试过程和操作序列。测试人员可以使用PDL编写详细的测试脚本,定义测试步骤、数据传输方式、仪器控制指令等。PDL脚本可以被IJTAG测试系统自动执行,实现测试流程的自动化。与JTAG架构相比,IJTAG架构具有以下独特特点。IJTAG架构具有更高的灵活性。通过SIB的灵活连接和ICL对连接关系的描述,IJTAG能够适应不同类型和数量的嵌入式仪器,方便地进行测试架构的扩展和重构。而JTAG架构在面对大量嵌入式仪器时,由于其广播架构的限制,灵活性较差。IJTAG架构的测试效率更高。IJTAG采用的层次化结构和高效的仪器访问机制,使得测试设备能够直接访问到每个嵌入式仪器,减少了测试时间和数据传输量。相比之下,JTAG架构在测试多个仪器时,需要通过广播方式发送测试命令和数据,效率较低。IJTAG架构还具有更好的可维护性和可扩展性。通过ICL和PDL对架构和测试过程的描述,IJTAG的设计和测试过程更加清晰和规范,便于维护和管理。同时,IJTAG架构的开放性使得新的嵌入式仪器和测试功能能够方便地添加到现有架构中,具有良好的可扩展性。2.2.4IJTAG的语言体系(ICL和PDL)IJTAG的语言体系包括元件连接语言(ICL)和过程描述语言(PDL),这两种语言在IJTAG测试架构中发挥着重要作用,分别从不同层面支持测试架构的设计、配置和测试过程的执行。ICL主要用于描述IJTAG架构中各个组件之间的连接关系和配置信息。它以一种结构化的方式定义了嵌入式仪器、扫描互连块(SIB)和边界访问点(BAP)等组件之间的连接方式,以及每个组件的属性和功能。ICL文件通常采用文本格式,遵循一定的语法规则,便于编写和阅读。例如,在一个包含多个嵌入式仪器的芯片中,ICL文件可以详细描述每个仪器与SIB的连接端口、仪器的类型和参数等信息。通过ICL,设计人员能够清晰地表达测试架构的设计意图,为后续的测试工作提供准确的配置依据。在实际应用中,ICL语言的使用使得IJTAG测试架构的设计更加灵活和可扩展。当需要添加或更换嵌入式仪器时,只需修改ICL文件中的相关内容,而无需对硬件电路进行大规模的改动。这大大降低了测试架构的设计和维护成本,提高了设计的效率和可靠性。ICL还能够方便地与其他设计工具和测试平台进行集成,促进了IJTAG技术在不同项目中的应用。PDL则专注于描述测试过程和操作序列。它为测试人员提供了一种编写测试脚本的语言,通过PDL脚本,测试人员可以详细定义测试步骤、数据传输方式、仪器控制指令等。PDL脚本可以被IJTAG测试系统自动执行,实现测试流程的自动化。例如,一个典型的PDL脚本可能包含以下操作:初始化测试环境,设置测试参数,选择要测试的嵌入式仪器,发送测试向量,接收并分析测试结果等。PDL语言具有丰富的指令集和控制结构,能够满足各种复杂测试场景的需求。PDL语言的优势在于它能够将测试过程进行标准化和规范化。通过编写PDL脚本,测试人员可以将测试步骤和操作固化下来,避免了人为因素对测试结果的影响,提高了测试的可靠性和一致性。PDL脚本还可以方便地进行复用和修改,对于不同的测试项目和需求,只需对脚本进行适当的调整,就可以快速生成新的测试方案。在IJTAG测试中,ICL和PDL相互配合,共同实现了测试架构的自动设计与高效测试。ICL定义了测试架构的硬件连接和配置信息,为PDL提供了操作的对象和环境;PDL则根据ICL定义的架构,执行具体的测试操作,实现对嵌入式仪器的测试和验证。例如,在对一个芯片进行测试时,首先根据芯片的设计需求,使用ICL语言编写ICL文件,定义好嵌入式仪器与SIB、BAP之间的连接关系。然后,根据测试目的和要求,使用PDL语言编写PDL脚本,详细描述测试过程和操作步骤。在测试执行阶段,IJTAG测试系统读取ICL文件和PDL脚本,自动配置测试环境,执行测试操作,并将测试结果反馈给测试人员。2.3JTAG与IJTAG测试架构对比分析2.3.1标准之间的差异性JTAG基于IEEE1149.1标准,该标准于1990年被正式确立,最初的开发目标是提供一种更有效的电路板测试方法,以验证电路板上芯片之间的连通性。随着时间的推移,IEEE分别于1993年和1995年对该标准作了补充,形成了现在使用的IEEE1149.1a-1993和IEEE1149.1b-1994。IEEE1149.1标准定义了测试访问端口(TAP)和边界扫描结构,规定了进行边界扫描所需要的硬件和软件,为电路板测试提供了一种标准化的解决方案。IJTAG则基于IEEE1687标准,该标准于2005年开始开发,当时芯片内嵌入式仪器的数量和类型急剧增加,传统的测试技术难以满足需求。IEEE1687标准的核心目标是提供一种标准化的仪器接口和高效的架构,实现对嵌入式仪器的便捷访问和管理。该标准定义了元件连接语言(ICL)和过程描述语言(PDL),用于描述元件之间的连接关系和对元件的操作。从应用范围来看,JTAG主要应用于电路板测试和芯片边界扫描测试。在电路板测试中,JTAG能够检测芯片之间的互连是否正确,以及芯片的输入输出引脚是否正常工作。在芯片边界扫描测试中,通过边界扫描寄存器,JTAG可以对芯片内部的逻辑电路进行测试和调试。IJTAG则更侧重于芯片内部嵌入式仪器的测试和管理。随着芯片集成度的不断提高,芯片内部包含了越来越多的嵌入式仪器,如温度传感器、逻辑分析仪等。IJTAG通过其独特的架构和语言体系,能够实现对这些嵌入式仪器的灵活访问和控制,提高芯片内部测试的效率和准确性。在一个包含多个嵌入式仪器的芯片中,IJTAG可以通过SIB将这些仪器连接起来,形成一个有机的整体。通过ICL描述仪器之间的连接关系,利用PDL编写测试脚本,实现对各个仪器的单独测试或联合测试。而JTAG在面对这种复杂的嵌入式仪器环境时,由于其广播架构的限制,难以实现对每个仪器的高效访问和管理。2.3.2硬件架构差异JTAG的硬件架构主要由JTAG标准端口、JTAG状态机控制器、JTAG寄存器以及JTAG指令解码器等部分组成。JTAG标准端口通常包括测试时钟(TCK)、测试模式选择(TMS)、测试数据输入(TDI)、测试数据输出(TDO)和测试复位(TRST,可选)等信号引脚。这些引脚为JTAG架构与外部测试设备提供了通信接口。JTAG状态机控制器是一个具有16个状态的状态机,通过TMS和TCK信号来管理测试逻辑的状态转换。在不同的状态下,TAP控制器执行不同的操作,如加载指令、传输数据、控制边界扫描寄存器等。JTAG寄存器包括指令寄存器和多个数据寄存器,指令寄存器用于存储JTAG指令,数据寄存器则包括边界扫描寄存器、旁路寄存器、芯片标识寄存器等,用于存储和传输测试数据。JTAG指令解码器负责解析指令寄存器中的指令,根据不同的指令类型,控制JTAG架构中其他组件的工作。IJTAG的硬件架构主要由扫描互连块(SIB)、边界访问点(BAP)、嵌入式仪器等部分组成。SIB是IJTAG架构的核心组件,它由多个扫描单元组成,通过内部的扫描链将各个嵌入式仪器连接起来。SIB能够根据测试需求,灵活地选择和切换不同的嵌入式仪器,实现对它们的单独测试或联合测试。例如,在测试一个包含多个IP核的芯片时,SIB可以将不同的IP核的测试链路进行隔离和选择,确保测试的准确性和独立性。BAP是IJTAG与外部测试设备进行通信的接口,它接收来自外部测试设备的测试命令和数据,并将其传递给SIB和相关的嵌入式仪器。BAP还负责将测试结果从嵌入式仪器传输回外部测试设备,以便进行分析和判断。BAP的信号引脚与JTAG接口的信号引脚类似,保证了IJTAG与现有JTAG测试设备的兼容性。嵌入式仪器是IJTAG架构中用于实际测试和测量的组件,它们被集成在芯片内部,通过SIB与其他组件相连。在连接方式上,JTAG采用的是链式连接,多个芯片通过JTAG接口串联在一起,形成一个JTAG链。在JTAG链中,数据从TDI输入,依次通过各个芯片的边界扫描寄存器,最后从TDO输出。这种连接方式在测试多个芯片时,数据传输需要依次经过每个芯片,效率较低。IJTAG则采用了一种层次化的连接方式,通过SIB将不同的嵌入式仪器连接起来,形成一个层次分明的测试架构。在这种架构下,测试设备可以直接访问到每个嵌入式仪器,减少了数据传输的路径和时间,提高了测试效率。在信号传输方面,JTAG主要通过TDI和TDO进行串行数据传输,数据传输的速度受到时钟频率和链路长度的限制。IJTAG在继承JTAG信号传输方式的基础上,通过SIB的优化设计,提高了数据传输的效率和灵活性。SIB可以对数据进行缓存和转发,减少了数据传输的延迟。2.3.3应用场景差异在芯片测试方面,JTAG适用于对芯片边界扫描测试和基本功能测试。通过边界扫描寄存器,JTAG可以对芯片的输入输出引脚进行测试,检测引脚之间的连接是否正确,以及引脚的电气特性是否正常。在对一个微控制器芯片进行测试时,JTAG可以通过边界扫描寄存器,将测试向量输入到芯片的输入引脚,然后读取输出引脚的响应,判断芯片的功能是否正常。IJTAG则更适合对芯片内部嵌入式仪器的测试。随着芯片集成度的不断提高,芯片内部包含了大量的嵌入式仪器,如温度传感器、功耗监测器等。IJTAG通过其独特的架构和语言体系,能够实现对这些嵌入式仪器的灵活访问和控制,准确地获取仪器的测试数据,评估芯片的内部性能。在对一个高性能处理器芯片进行测试时,IJTAG可以通过SIB连接各个嵌入式仪器,利用ICL和PDL实现对仪器的配置和测试,获取芯片的温度、功耗等参数,判断芯片的工作状态是否正常。在电路板测试场景中,JTAG是一种常用的测试技术,主要用于检测电路板上芯片之间的互连是否正确。通过EXTEST指令,JTAG可以将测试向量输入到电路板上的芯片中,然后读取其他芯片的响应,判断芯片之间的连线是否存在开路、短路等故障。在一块包含多个芯片的电路板上,使用JTAG可以快速检测出芯片之间的连接是否正常,确保电路板的电气连接可靠性。IJTAG在电路板测试中也有应用,但相对较少。由于IJTAG主要关注芯片内部的测试,对于电路板级的互连测试,其优势不如JTAG明显。在一些特殊情况下,如电路板上的芯片内部包含了大量的嵌入式仪器,需要同时对芯片内部仪器和电路板互连进行测试时,IJTAG可以发挥其优势,通过与JTAG的结合,实现对电路板的全面测试。在系统调试方面,JTAG常用于对嵌入式系统的调试。开发人员可以利用JTAG接口,对芯片进行编程和调试,快速定位和解决系统中的问题。在嵌入式系统开发过程中,开发人员可以通过JTAG接口将调试工具连接到芯片上,实时监测芯片的运行状态,单步执行程序,查看寄存器和内存中的数据,从而快速定位和解决系统中的问题,提高开发效率。IJTAG在系统调试中则更侧重于对复杂系统中多个芯片和嵌入式仪器的协同调试。在一个包含多个芯片和大量嵌入式仪器的复杂系统中,IJTAG可以通过其层次化的架构和灵活的仪器访问机制,实现对各个芯片和仪器的统一管理和调试。通过ICL和PDL,开发人员可以编写复杂的测试脚本,对系统进行全面的测试和调试,确保系统的稳定性和可靠性。在一个大型的片上系统(SoC)中,IJTAG可以将各个芯片和嵌入式仪器连接起来,形成一个统一的测试和调试环境,开发人员可以通过IJTAG接口,对整个系统进行全面的调试和优化。三、JTAG和IJTAG测试架构自动设计方法3.1自动设计的需求分析与目标设定3.1.1自动设计的需求分析在现代芯片设计流程中,芯片测试是确保芯片质量和性能的关键环节,而JTAG和IJTAG测试架构作为重要的测试手段,其设计的效率和准确性直接影响着芯片的研发周期和生产成本。从效率需求来看,随着芯片集成度的不断提高,设计规模呈指数级增长。例如,一款先进的片上系统(SoC)可能包含数十亿个晶体管和数百个功能模块,传统的手动设计JTAG和IJTAG测试架构的方式需要耗费大量的时间和人力。在手动设计JTAG测试架构时,工程师需要逐个确定边界扫描单元的位置和连接方式,对于大规模芯片,这一过程可能需要数周甚至数月的时间。而自动设计能够通过算法和工具快速生成测试架构,大大缩短设计周期。根据相关研究和实际案例,采用自动设计工具后,JTAG和IJTAG测试架构的设计时间能够缩短50%以上,显著提高了芯片测试的准备效率,使芯片能够更快地进入测试和验证阶段。准确性也是自动设计的重要需求。手动设计过程中,由于人为因素的影响,容易出现错误,如边界扫描单元连接错误、测试链路布局不合理等。这些错误可能导致测试覆盖率降低,无法准确检测出芯片中的故障。自动设计工具通过严格的算法和规则检查,能够避免人为错误,确保测试架构的准确性。以IJTAG测试架构的自动设计为例,工具可以根据ICL和PDL语言的规范,自动生成正确的仪器连接关系和测试流程,保证测试过程的准确性和可靠性。随着芯片技术的不断发展,新型芯片结构不断涌现,如三维集成电路(3D-IC)和片上网络(NoC)等。这些新型芯片结构对JTAG和IJTAG测试架构的设计提出了新的挑战,需要自动设计工具能够适应不同的芯片结构和测试需求。在3D-IC中,由于芯片堆叠层数增加,信号传输路径复杂,自动设计工具需要能够优化测试链路的布局,确保信号的稳定传输和高效测试。芯片设计过程中通常需要遵循一系列标准和规范,如IEEE1149.1和IEEE1687标准等。自动设计工具应能够确保生成的JTAG和IJTAG测试架构符合这些标准和规范,避免因设计不符合标准而导致的兼容性问题和测试失败。在实际的芯片设计项目中,不同的芯片设计团队可能有不同的设计习惯和流程。自动设计工具需要具备良好的可定制性,能够根据团队的需求进行灵活配置,适应不同的设计环境。3.1.2自动设计的目标设定缩短设计周期是自动设计的首要目标之一。通过自动化的设计流程,利用高效的算法和工具,减少人工干预,能够显著缩短JTAG和IJTAG测试架构的设计时间。以一款包含多个IP核的复杂芯片为例,传统手动设计可能需要数周时间,而采用自动设计工具后,设计周期可缩短至数天甚至更短。这使得芯片能够更快地进入测试阶段,加快芯片的研发进程,满足市场对芯片快速上市的需求。提高测试覆盖率是自动设计的另一个重要目标。自动设计工具能够通过优化测试架构,确保测试向量能够覆盖芯片的各个功能模块和信号路径,从而提高测试的全面性和准确性。在JTAG测试架构中,自动设计工具可以根据芯片的结构和功能特点,智能地选择边界扫描单元的位置和连接方式,提高对芯片内部逻辑的测试覆盖率。对于IJTAG测试架构,自动设计工具可以根据嵌入式仪器的分布和测试需求,优化扫描互连块的连接,实现对各个仪器的有效测试,提高芯片内部测试的覆盖率。降低设计成本也是自动设计的关键目标之一。自动设计减少了人工设计所需的人力和时间成本,同时通过提高测试覆盖率,能够更早地发现芯片中的故障,减少因芯片故障导致的生产损失。在大规模芯片生产中,一个芯片故障可能导致整个批次的产品报废,而通过自动设计提高测试覆盖率,能够有效降低这种风险,降低生产成本。提高测试架构的可维护性和可扩展性是自动设计的长期目标。随着芯片技术的不断发展和芯片功能的不断升级,测试架构需要具备良好的可维护性和可扩展性,以便能够适应未来的变化。自动设计工具通过采用标准化的设计流程和模块化的设计方法,使得测试架构易于维护和扩展。当芯片需要增加新的功能模块或嵌入式仪器时,自动设计工具能够快速调整测试架构,满足新的测试需求。三、JTAG和IJTAG测试架构自动设计方法3.2基于算法的自动设计策略3.2.1遗传算法在JTAG和IJTAG测试架构设计中的应用遗传算法是一种模拟自然界生物进化过程的优化算法,其核心思想源于达尔文的进化论,通过模拟遗传、变异、选择等生物进化过程,在解空间中搜索最优解。该算法的基本流程如下:首先,初始化一个包含多个个体的种群,每个个体代表问题的一个潜在解,在JTAG和IJTAG测试架构设计中,个体可以表示为不同的测试架构方案。接着,计算每个个体的适应度值,适应度函数用于评估个体在解决问题时的优劣程度。在JTAG测试架构设计中,适应度函数可以根据测试覆盖率、测试时间、硬件资源消耗等指标来定义。例如,测试覆盖率越高、测试时间越短、硬件资源消耗越少,个体的适应度值就越高。在一个包含多个芯片的JTAG测试架构设计中,适应度函数可以综合考虑每个芯片的测试覆盖率以及整个测试链路的传输延迟,以评估不同测试架构方案的优劣。然后,基于适应度值进行选择操作,选择适应度较高的个体作为父代,以增加优良基因在种群中的传播。常见的选择方法包括轮盘赌选择、锦标赛选择等。轮盘赌选择方法根据个体的适应度值占总适应度值的比例来确定每个个体被选中的概率,适应度值越高的个体被选中的概率越大。对选中的父代个体进行交叉和变异操作,产生新的子代个体。交叉操作模拟生物的交配过程,将两个父代个体的部分基因进行交换,生成新的个体。变异操作则是对个体的基因进行随机改变,以增加种群的多样性,避免算法陷入局部最优解。在JTAG测试架构设计中,交叉操作可以将不同测试架构方案中的边界扫描链布局进行交换,变异操作可以随机调整边界扫描单元的连接方式。重复上述计算适应度、选择、交叉和变异的过程,直到满足终止条件,如达到预定的迭代次数或适应度值不再变化等。此时,种群中适应度最高的个体即为问题的近似最优解。在JTAG测试架构设计中,遗传算法可用于优化扫描链布局。传统的JTAG扫描链布局往往采用简单的顺序连接方式,这种方式在面对大规模芯片时,可能导致测试时间过长、测试覆盖率不足等问题。利用遗传算法,可以根据芯片的结构和功能特点,自动搜索最优的扫描链布局方案。通过将扫描链布局表示为染色体,以测试覆盖率和测试时间为适应度函数,遗传算法能够在众多可能的布局方案中,找到使测试覆盖率最大化且测试时间最小化的布局。在IJTAG测试架构设计中,遗传算法可用于指令集生成。IJTAG的指令集设计需要考虑多种因素,如嵌入式仪器的类型、数量、测试需求等。遗传算法可以通过对不同指令组合的模拟和评估,生成最适合IJTAG测试架构的指令集。将指令集表示为染色体,以指令集的执行效率、对嵌入式仪器的支持程度等为适应度函数,遗传算法能够不断优化指令集,提高IJTAG测试架构的测试效率和准确性。3.2.2模拟退火算法在测试架构设计中的应用模拟退火算法是一种基于蒙特卡洛思想设计的近似求解最优化问题的方法,其灵感来源于物理退火过程。在物理退火中,将固体加温至充分高,再让其徐徐冷却,加温时,固体内部粒子随温升变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达到平衡态,最后在常温时达到基态,内能减为最小。模拟退火算法模拟了这一过程,在解空间中进行搜索,以寻找最优解。该算法的基本原理如下:首先,初始化一个初始解和一个较高的初始温度。初始解可以是一个随机生成的测试架构方案,初始温度则决定了算法在搜索过程中接受较差解的概率。在每一个温度下,算法从当前解出发,通过一定的邻域搜索策略生成一个新解。计算新解与当前解的目标函数值之差。如果新解的目标函数值优于当前解(即差值小于0),则接受新解作为当前解;如果新解的目标函数值比当前解差(即差值大于0),则以一定的概率接受新解,这个概率与温度和差值有关,通常使用Metropolis准则来计算接受概率,即接受概率为,其中为当前温度,为目标函数值之差。随着搜索的进行,逐渐降低温度,降低的方式通常采用一定的降温策略,如指数降温、线性降温等。在低温下,算法更倾向于接受较好的解,从而使搜索逐渐收敛到最优解。当温度降低到一定程度,或者满足其他终止条件时,算法停止,此时得到的当前解即为近似最优解。在JTAG和IJTAG测试架构设计中,模拟退火算法可用于解决复杂问题,如测试链路的优化。在JTAG测试架构中,测试链路的布局会影响测试效率和测试覆盖率。传统的测试链路布局方法可能无法充分考虑芯片的复杂结构和信号传输特性。模拟退火算法可以通过不断调整测试链路的连接方式,寻找最优的布局方案。在一个包含多个功能模块的芯片中,模拟退火算法可以从初始的测试链路布局开始,随机改变链路的连接方式,计算每次改变后的测试覆盖率和测试时间等指标,根据Metropolis准则决定是否接受新的布局。随着温度的降低,算法逐渐收敛到一个较优的测试链路布局,提高测试效率和测试覆盖率。在IJTAG测试架构中,模拟退火算法可用于优化扫描互连块(SIB)的连接。SIB的连接方式直接影响到嵌入式仪器的访问效率和测试性能。模拟退火算法可以通过对SIB连接的不断调整,寻找最优的连接方案。将SIB的连接方式表示为解空间中的一个点,以嵌入式仪器的访问效率和测试时间为目标函数,模拟退火算法在解空间中进行搜索。在高温时,算法可以接受较差的连接方案,以扩大搜索范围;随着温度降低,算法逐渐接受更优的连接方案,最终得到一个优化的SIB连接方式,提高IJTAG测试架构的性能。3.3基于工具的自动设计流程3.3.1常用的JTAG和IJTAG测试架构设计工具介绍在JTAG和IJTAG测试架构的自动设计领域,有多种专业工具可供使用,这些工具各自具备独特的功能、特点和适用场景。Tessent是西门子EDA公司推出的一款功能强大的测试解决方案工具,在JTAG和IJTAG测试架构设计中应用广泛。Tessent基于IEEE1149.1标准(即JTAG标准)和IEEE1687标准(即IJTAG标准)开发,为工程师提供了全面的测试功能。在JTAG测试架构设计方面,Tessent支持边界扫描测试,能够自动生成边界扫描链,优化测试链路布局,提高测试覆盖率。通过其强大的算法,Tessent可以根据芯片的结构和功能特点,智能地选择边界扫描单元的位置和连接方式,确保测试向量能够覆盖芯片的各个关键节点。在一个包含多个功能模块的芯片中,Tessent可以分析模块之间的信号连接关系,自动生成最优的边界扫描链,减少测试时间和成本。在IJTAG测试架构设计方面,Tessent支持基于IJTAG的嵌入式仪器测试。它能够根据芯片中嵌入式仪器的配置和测试需求,自动生成高效的IJTAG测试架构。Tessent提供了丰富的元件连接语言(ICL)和过程描述语言(PDL)支持,工程师可以通过编写ICL文件定义仪器之间的连接关系,利用PDL编写测试脚本,实现对嵌入式仪器的灵活访问和控制。Tessent还具备强大的测试数据分析功能,能够对测试结果进行深入分析,帮助工程师快速定位和解决测试中出现的问题。XJTAG是由剑桥大学毕业生设计开发的一套系统,包括JTAG调试器硬件和上位机软件。其上位机软件功能强大,在JTAG测试架构设计中具有独特的优势。XJTAG支持最多4个TAP接口,TCK最高可达166MHz,能够满足高速测试的需求。JTAG信号电压可在1.1-3.3v之间以0.1v步进进行配置,适应不同芯片的电压要求。所有IO管脚都内置了电压测量和频率测量功能,方便工程师对测试信号进行实时监测和分析。XJTAG还提供了开放的DLLAPI接口,便于用户进行二次开发和定制化应用。在实际应用中,对于一些对测试灵活性和扩展性要求较高的项目,开发人员可以利用XJTAG的API接口,将其与其他测试工具或自动化测试系统进行集成,实现更复杂的测试功能。例如,在一个大型的芯片测试项目中,开发人员可以通过XJTAG的API接口,将其与自动化测试设备(ATE)进行集成,实现对多个芯片的并行测试,提高测试效率。TopJTAG是一款小巧简洁的边界扫描测试软件,适用于简单的JTAG测试场景。它可以基于常用的仿真器,如J-Link、USB-Blaster等,配合TopJTAGProbe软件来实现边界扫描测试。TopJTAG界面简洁,使用简单,对于初学者或只需要进行简单边界扫描测试的用户来说,是一个不错的选择。在实际使用中,用户可以通过TopJTAG轻松实现IO的读取、控制、波形的显示、脉冲的计数等基本功能。例如,在对一个小型芯片进行简单的引脚连接测试时,用户可以使用TopJTAG快速搭建测试环境,读取芯片引脚的状态,判断引脚连接是否正确。TopJTAG还提供了对芯片外置的CFIFlash进行编程和读取的功能,方便用户对芯片的存储进行测试和操作。3.3.2工具辅助下的自动设计流程详解以Tessent工具为例,其自动设计JTAG和IJTAG测试架构的流程涵盖多个关键步骤,从测试需求的输入到最终测试架构的生成,每个环节都紧密相连,确保设计的高效性和准确性。在测试需求输入阶段,工程师首先要明确芯片的功能和结构信息。对于JTAG测试架构设计,需要了解芯片的引脚数量、功能以及芯片内部逻辑电路的布局等信息。在设计一个微控制器芯片的JTAG测试架构时,工程师要确定芯片的输入输出引脚、控制引脚等,以及芯片内部各个功能模块的连接关系。对于IJTAG测试架构设计,除了芯片的基本信息外,还需要详细了解芯片内嵌入式仪器的类型、数量、位置以及它们之间的连接关系。在一个包含多个嵌入式仪器的芯片中,要明确每个仪器的功能、接口类型以及与其他仪器的通信方式。工程师还需根据芯片的测试要求,确定测试目标和约束条件。测试目标可能包括测试覆盖率、测试时间、测试成本等。约束条件则可能涉及硬件资源限制,如芯片的引脚数量、内部寄存器资源等。在某些芯片设计中,由于引脚资源有限,JTAG测试架构设计时要考虑如何在有限的引脚资源下实现高效的测试。在Tessent工具中,这些测试需求和信息通过特定的文件格式或用户界面输入到工具中。Tessent支持多种输入方式,如通过读取设计文件(如Verilog、VHDL文件)获取芯片的结构信息,通过用户自定义的配置文件输入测试目标和约束条件。测试架构生成阶段,Tessent会根据输入的测试需求和信息,运用其内置的算法和规则,自动生成初步的测试架构。在JTAG测试架构生成过程中,Tessent首先会根据芯片的引脚和逻辑电路信息,确定边界扫描单元的位置和连接方式。它会考虑如何优化边界扫描链的布局,以减少测试时间和提高测试覆盖率。Tessent可能会采用贪心算法等策略,将紧密相关的引脚和逻辑电路分配到同一扫描链中,减少扫描链的长度和信号传输延迟。对于IJTAG测试架构,Tessent会根据嵌入式仪器的信息,生成扫描互连块(SIB)和边界访问点(BAP)的连接方案。它会利用ICL语言自动生成描述仪器连接关系的文件,确定每个仪器与SIB的连接端口和通信协议。Tessent还会根据测试需求,生成相应的PDL脚本,定义测试过程和操作序列。在生成初步测试架构后,Tessent会对其进行优化。对于JTAG测试架构,优化过程可能包括扫描链的合并、分割和排序等操作,以进一步提高测试效率和覆盖率。在一个包含多个扫描链的JTAG测试架构中,Tessent会分析扫描链之间的信号相关性,将一些可以合并的扫描链进行合并,减少扫描链的数量,从而减少测试时间。对于IJTAG测试架构,优化过程可能包括SIB连接的调整、测试脚本的优化等。Tessent会根据测试数据的传输量和测试时间要求,优化SIB的连接方式,确保测试数据能够快速、准确地传输。它还会对PDL脚本进行优化,减少不必要的操作步骤,提高测试效率。在测试架构生成和优化完成后,Tessent会对生成的测试架构进行验证。验证过程包括检查测试架构是否符合相关标准和规范,如IEEE1149.1和IEEE1687标准。Tessent会检查JTAG测试架构中边界扫描单元的设计是否符合标准要求,IJTAG测试架构中ICL文件和PDL脚本的语法是否正确。Tessent还会进行功能验证,模拟实际测试过程,检查测试架构是否能够正确地实现测试功能。在JTAG测试架构验证中,Tessent会输入测试向量,检查测试结果是否与预期一致。对于IJTAG测试架构,Tessent会运行生成的PDL脚本,检查嵌入式仪器的测试数据是否能够准确获取和分析。如果验证过程中发现问题,Tessent会给出相应的提示和建议,工程师可以根据这些信息对测试架构进行调整和优化,直到测试架构通过验证。3.4自动设计中的关键技术问题及解决方案3.4.1测试资源分配问题在JTAG和IJTAG测试架构的自动设计中,测试资源分配是一个关键且复杂的问题。随着芯片集成度的不断提高,芯片内部包含的功能模块和嵌入式仪器数量日益增多,这使得测试资源的分配变得愈发困难。从资源种类来看,测试资源包括硬件资源和软件资源。硬件资源如测试引脚、边界扫描单元、扫描互连块等,软件资源如测试指令、测试向量、测试脚本等。在JTAG测试架构中,边界扫描单元的数量是有限的,如何将这些有限的边界扫描单元合理分配到各个芯片引脚和功能模块,以实现全面的测试覆盖,是一个需要解决的问题。在IJTAG测试架构中,扫描互连块的连接资源也是有限的,如何在众多嵌入式仪器中合理分配这些连接资源,确保每个仪器都能被有效访问和测试,同样是一个挑战。测试资源分配还受到芯片结构和功能的影响。不同的芯片结构和功能需求,对测试资源的分配方式也不同。在一个包含多个IP核的片上系统(SoC)中,每

温馨提示

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

评论

0/150

提交评论