针对JTAG调试的RTL验证环境设计原理.doc_第1页
针对JTAG调试的RTL验证环境设计原理.doc_第2页
针对JTAG调试的RTL验证环境设计原理.doc_第3页
针对JTAG调试的RTL验证环境设计原理.doc_第4页
针对JTAG调试的RTL验证环境设计原理.doc_第5页
免费预览已结束,剩余10页可下载查看

下载本文档

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

文档简介

针对JTAG调试的RTL验证环境设计原理哪电子测量技术EIECTRONICMEASUREMENTTECHNOIJr)GY第31卷第1期2008年1月针对JTAG调试的RTL验证环境设计原理韩可邓中亮施乐宁吕良(1.北京邮电大学电子工程学院北京100876;2.北京航空航天大学电子信息工程学院北京100083)摘要:以ARM7TDMI为例提出了一种在RTL仿真时即可进行JTAG调试的方法.利用该方法在RTL仿真时即可进行ARM的JTAG调试.首先详细分析了JTAG的边界扫描标准及工作原理,而后以ARM7TDMI为例分析了ARM的扫描链的设计原理及控制方法,从中给出了如何利用JTAG控制ARM7TDMI扫描链来完成ARM的行为控制.该方法还可以通过ARM的控制进而完成对SOC中其他模块的验证.通过该原理建立JTAG接口软仿真验证平台,可以在RTL仿真时验证ARM的JTAG调试功能以及SOC的初步测试.关键词:JTAGARM7TDMI;系统芯片;RTL验证中图分类号:TN74文献标识码:ADesignofRTLverificationenvironmentforJTAGdebuggerHanKe1DengZhongliangxShlLeningzLvliang(1.SchoolofElectronicEngineering,BeijingUniversityofPostsandTelecommunications,Beijing100876:2.SchoolofElectronicandInformationEngineering,BeihangUniversity,Beijing100083)Abstract:AmethodforputinguptheRTLverificationenvironmentoftheJTAGdebuggerisproposedbytheexampleofARM7TDMI.ThedebugofARMthroughJTAGinterfacecanbedoneintheRTLsimulation.TheJTAGstandardandtheARM7TDMIscanchainsarealsoanalyzedinthispaper.ItgivesthemethodtocontroltheARM7TDMIbehaviorbyJTAGandthescanchains.AnARM7)MIbasedverificationplatiSdesignedanditcanverificationthetJTAGdebuggerfunctionwhenthedesignisintheRTLphase.Keywords:JTAG;ARM7TDMI;SoC;RTIverification0引言基于ARM的SoC(systemonachip)设计日益复杂化,不仅芯片面积增大,其仿真测试也日趋困难_1.基于ARM的S0C调试方法在RTL仿真时,一般通过执行初始化在R0M里面的测试程序来完成的.虽然ARM处理器采用的基于JTAG(jointtestactiongroup)的内核调试通道,具有EmdeddedICE(嵌入式在线仿真器)模块,但是其测试方法通常是在FPGA里,通过jTAG端口与主计算机相连,利用ADS等软件来完成测试.此时利用JTAG端口进行的调试,需要借助逻辑分析仪等的帮助,对仿真波形进行采样分析.也就是说,这些工作只有在综合之后通过FPGA才能进行测试_2,而在RTL仿真时,由于没有相应的测试平台,无法完成ARM处理器的JTAG调试接口的仿真工作.本文以ARM7TDMI为例,提出了一种利用ARM的JTAG调试接口进行RTL仿真验证的方法,运用该原理在RTL代码测试阶段,通过EDA软件(例如Synopsys公司VCS等仿真软件)即可完成ARM7TDMI的JTAG功能仿?72?真测试,同时还可以通过JTAG来控制ARMTTDMI进行外部存储设备以及其它IP(intellectualproperty)的测试.1JTAG工作原理JTAG的边界扫描标准,也就是IEEE1149.1边界扫描标准口,是在1990年由IEEE组织和JTAG(jointtestactiongroup)组织共同制定的.该标准定义了一种标准的边界扫描结构及其测试接口,其基本思想就是在芯片的外部i/o口和内部逻辑电路之间插入一个移位寄存器单元l4.这些移位寄存器单元分布在芯片的边界上,故而被称为边界扫描寄存器(boundary-scanregistercel1).这些边界扫描寄存器可以相互连结起来,在芯片周围形成一个边界扫描链(boundary-scanchain).一般芯片会提供多个独立的扫描链,通过外部JTAG接口设置访问边界扫描寄存器,进而可以观察和控制芯片的I/0端,完成芯片级,板级以及系统级的测试.在IEEE1149.1里,寄存器分为数据寄存器(DR-dataregister)和指令寄存器(IR-instructionregister).边界扫描链属于数据寄存器中的一种_5,可以实现对芯片的输入韩可等:针对JTAG调试的RTI堡堡笙塑输出观察控制.而指令寄存器则用来实现对数据寄存器的控制.对这些寄存器的控制主要是通过TAP(testaccessport)控制器来完成的.IEEE1149.4定义了TAP控制器的状态机,如图1所示.所有的内部控制信号均由状态译码来实现.TAP控制器包括5个端口,用来控制整个测试过程.它有4个输入和1个输出,分别是测试数据输入端TDI,用于串行输入控制数据或指令;测试数据输出端TIN),可以串行读出上一状态的数据或指令;测试状态选择输入端TMS,用于TAP控制器的状态转换,控制TAP的状态;测试时的时钟输入TCK,上升沿采样输入;测试复位输入端nTRST,用于复位TAP控制器.图1TAP控制器状态转换图TAP控制器在上电时自动初始化到测试逻辑复位状态(testlogicreset),通过nTRST或者TMS保持五个时钟以上为高电平时,也进入测试逻辑复位状态.在TDI和TDO之间可以在两组寄存器链进行切换,一组进行数据寄存器扫描(DR-scan),用于串行输入测试数据,可以完成对数据寄存器(包括ARM7TDMI的扫描链)的控制,另一组进行指令寄存器扫描(IR-scan),完成指令寄存器访问.对指令寄存器访问可以输入各种有关边界扫描测试的指令,如外部测试指令EXTEST(0000),扫描链转换指令SCANN(0010),系统退出调试模式指令REsTART(0100),旁路指令BYPASS(11l1),内部测试指令INTEST(1100),ARM标示寄存器访问指令IIX;()DE(1110)等.在ARM7TDMI中提供了10个指令.2ARM7TDMI的扫描链介绍如图2所示,ARM7TDMI处理器主要由ARM核,EmbeddedlCE逻辑控制电路以及由TAP控制器和扫描链组成的JTAG控制电路组成.其中EmbeddedlCE逻辑电路包括各种控制寄存器和比较器,可以用来产生调试需要的异常中断,如产生断点等.JTAG控制电路则通过TAP控制器和各扫描链,完成对ARM7TDMI的控制.?73?第31卷电子测量技术图2ARM7TDMI的扫描链结构ARM7TDMI中有3个基本的扫描链s:ScanChain0,ScanChain1,ScanChain2.如前所述,这3个扫描链均属于数据寄存器.每一条扫描链都是由若干个JTAG扫描单元串联而成.每一个扫描单元都可以配置成获得外部信号的输入单元或对外的输出单元.依靠移位寄存器,通过JTAG的TDI信号线可以使数据输出到每一个JTAG扫描单元上,也可以从TIX)信号线读出每一个扫描单元的数据.通过TAP控制器即可以控制ARM7TDMI的3条不同的扫描链的切换,从而完成不同的测试工作.ScanChain0有115个扫描单元,该扫描链寄存器包括数据总线D,从0到31位;控制信号,包括BREAKPT等,共有41位;地址总线A,从31到0位.该扫描链包括ARM7TDMI核的所有的I/0,地址数据总线和输入输出控制信号,所以可以通过该扫描链得到ARM7TDMI内核所有的信息.ScanChain1有33个扫描单元,即数据总线D,从0到31位,以及1位控制信号BREAKPT.可见,扫描链1其实是扫描链.的一部分,它包括数据总线和1位断点控制信号BREAKPT.通过控制这条扫描链,可以控制ARM7TDMI执行指定的指令,从而实现ARM7TDMI的内部寄存器,协处理器以及外部存储器的读写操作.ScanChain2有38个扫描单元,主要用来控制访问EmbeddedlCE逻辑电路的寄存器.顺序依次是:EmbeddedlCE的控制信号R/W,用于控制寄存器的读写.地址线4到o,是访问EmdeddedICE内部寄存器的地址.?74?数据线31到0,通过该扫描链可以控制EmbeddedlCE逻辑单元,从而实现对ARM7TDMI指定断点,观察点等的高级调试,并可以控制ARM7TDMI进入调试状态.扫描链0的控制过于复杂,在执行ARM7TDMI的DFT(designfortest)1试时,可以通过扫描链0的控制访问完成.而在利用JTAG进行RTI测试SoC时,可以通过扫描链2和扫描链1共同作用即可实现.3利用JTAG控制ARM7TDMI通过JTAG控制ARM7TDMI的具体步骤如图4所示,第1步要读取ARM7TDMI的标识寄存器,验证ARM7TDMI信息;首先通过TAP状态机转换,进入IR-Scan,通过TDI输入1110,执行IDCODE指令.然后进入DRScan,经过32个TCK周期读取需要调试ARM7TDMI的ID信息.第2步要控制ARM7TDMI进入Debug状态.首先要选择ScanChain2,来控制访问EmbeddedlCE的寄存器,通过EmdeddedlCE设置ARM7TDMI进入Debug模式.第3步,读回ARM7TDMI的控制状态,等待ARM进入调试模式,并确认ARM7TDMI是否工作在ARM指令状态.第4步要在ARM7TDMI的Debug模式下,通过扫描链1输入ARM的控制信息,完成对ARM7TDMI带执行指令的输入工作.第5步通过扫描链1的第33位控制ARM7TDMI回到系统模式,执行待测指令,完成各种测试请求.下面就如何利用扫描链2控制ARM7TDMI进入调试模式,以及通过扫描链1送入ARM7TDMI可以执行的韩可等:针对JTAG调试的RTL验环墟计堡箜塑机器码做详细的描述.测试开始识别ARM7TDMI的IDN信息是否正确/Y对ARM7TDM唆出进.Debug模式的请求判.DebTug否>进模式/_一Y送入ARM7TDMI控制信号改鼍ARM7TDM进入System模式N_</所有指令执行完毕Y测试结束图4ARM7TDMI的JTAG调试流程图3.1利用扫描链2控制ARM7TDMI进入调试模式如果想通过JTAG澳4试端口控制ARM7TDMI进行SoC测试,在查询ARM7TDMI的ID信息之后,首先要使ARM7TDMI进入调试模式(debugmode),这可以通过扫描链2访问EmbeddedlCE逻辑电路的调试控制寄存器(debugcontrolregister)和调试状态寄存器(debugstatusregister)来完成.ARM7TDMI的调试控制寄存器共有3位:该寄存器名字为icedbgctl.其中icedbgctlEo用来控制DBGACK,是ARM的调试模式的标志位.icedbgctlEli是调试请求信号,用来向ARM发出调试请求,使ARM暂停当前指令,进入调试状态.icedbgctl23INTDIS是中断控制位.通过改写icedbgctl1发出测试请求,便可以使ARM进入调试状态.执行完上述操作以后,可以通过读调试状态寄存器来查询ARM7TDMI当前的状态.该寄存器名字为icedbgstatus,共有5位:其中DBGACK信号用来标识当前系统是否出于调试状态.当ARM7TDMI进入调试状态后,该位为1.DBGRQ信号可以确认当前是否已经发出进入调试状态请求.IFEN则是用来标识当前系统中中断控制状态.cgenI是内存访问标识.TBIT则用于判断ARM7TDMI进入调试状态前是ARM指令集状态还是THUMB指令集状态,以便发出相应的指令代码.3.2通过扫描链1完成ARM7TDMI指令执行当ARM7TDMI进入调试模式后,即可通过扫描链1来输入指令的机器码,并通过扫描链1的第33位来完成ARM7TDMI从调试模式转换到系统模式(SystemMode),以便完成对SoC中其它部分的测试.ARM7TDMI使用的时钟主要有2个:一是在系统主时钟MCLK,另一个就是由TCK在内部自己产生的时钟DCLK.在系统模式下,ARM7TDMI由MCIK驱动,内部逻辑控制DCLK为低.而在调试模式,ARM7TDMI的时钟则是由JTAG状态机产生的DCIK信号.当ARM7TDMI进入调试模式,其工作时钟必须从MCIK同步到I)CIK.这一工作由ARM7TDMI自动完成.在进入测试模式时,ARM7TDMI会在MCIK为高的时候将DBGACK拉高,然后时钟切换会在MCIK的下一个下降沿产生,如图3所示.此时,ARM7TDMI的时钟便工作在DCIK的驱动下(ARM7TDMI工作在何种时钟可以通过ECLK反映出来).IIIIIIIIID图3ARM7TDMI在系统/调试模式下时钟切换要访问外设的最后一条调试指令在DCIK的驱动下放到扫描链上,要用来访问外设,ARM7TDMI必须返回系统模式.这是由扫描链1的第33位完成的.扫描链1的第33位为0时,表示ARM7TDMI执行下一条指令时,是在调试模式下.当该位为1时,则表示这一指令将在系统模式下执行.此时,ARM7TDMI时钟将会开始自动同步到MCLK,同时,通过TAP状态转换使其进入RESTART状态,可以完成ECIK和MCIK同步,从而使ARM7TDMI工作在MCIK时钟下,同时可以保证ARM7TDMI在执行完该指令后进入调试状态.当状态机进入RUNTESr|IDLE状态时,时钟完成向MCIK的切换,ARM7TDMI将在系统模式执行最后的指令.4实验结果根据上述原理,利用PIJ(pmgramminglanguageinterface)?75?第31卷电子测量技术接口编程,可以方便实现通过JTAG对ARM7TDMI的控制软件编制.PLI在Verilog硬件描述语言和C高级语言之间建立了一个接口,它可以使c对硬件内部对象进行交换数据.用C语言编制测试激励通过PLI接口便可加载到RTI仿真模型上去.整个软件平台由VmualC+开发,其软件平台主要包括ARM指令解码及基本ARM机器码指令库,16进制数据转换函数等.整个RTL仿真模型和C语言相互交换数据的示意图如图4所示.ICommandlIIARMT.M-nstmctionDec.aerff+IPLIInterraceuI!ARIVgT吣DMIlSocI图4PLI接口示意图通过运行该测试环境,便可以通过施加激励仿真验证ARM的JTAG功能,同时通过JTAG控制ARM的行为还可完成SoC中其它IP的RTL测试.例如,对SRAM的控制器的测试,设SRAM的地址空间为0x400000000x4000FFFF,通过输入待访问SRAM地址,即可完成相应操作.内部具体的处理方法是送入相应的ARM指令机器码,一组基本指令机器码如下所示:0E89000FF/LDMIAR0,JR1R7待写起始地址放入R0,待写数据放入R1R70EIA00000/MOVR0,R0指令译码0EIA00000/MOVR0,R0指令开始执行040000004/指令继续执行,将地址数据0x40000004送入R00111111111/将待写数据送入R1022222222/将待写数据送入R2一077777777/将待写数据送入R70EIA00000/插入两个空指令0E1A000001EIA00000/下一指令将会在系统时钟执行0E8A000FE/STMIA(R0)!,I-R1R7-将存放在R1R7的数据(32bits)写入SRAM此时通过TAP状态转换使其进入RESTART状态,使ARM7TDMI工作在MCLK时钟下,同时可以保证ARM7TDMI在执行完该指令后进入调试状态.执行结果如图5所示,可以看到在MCLK的驱动下,存放在?76.ARM7TDMI寄存器中的值写入SRAM.图5将数据写入SRAM除了通过简单的指令实现ARM对SoC中其他模块的控制之外,该软件还可以直接读入由ADS开发应用程序等ARM调试环境中生成的axf格式的工程文件,结合ADS的开发环境实现更为复杂的ARM调试.5结论利用JTAG在RTI仿真时可以通过ARM7TDMI执行相应的机器码,从而完成对SoC的测试,这不仅在RTL上实现了ARM的JTAG功能验证,还可以实现对SOC的测试,从而可以更为直观的观察ARM7TDMI的功能,这可以为下一步的FPGA验证提供了前期功能验证保证,使其更能顺年Ii进行.根据该原理,开发了基于JTAG接口的ARM调试平台,除了可以发出简单的验证命令之外,还可以结合ADlS开发环境开发出更为复杂的ARM调试指令,在工作站上RTL仿真时便可以进行ARM的JTAG调试,这使ARM的JTAG调试从以往的FPGA验证提前到RTI仿真验证时便可以进行,为ARM设计验证无疑提供了更为直观和先期的调试方法,避免了后端设计中发现缺陷而带来的复杂的修改,可有效缩短集成ARM等处理器的SoC设计周期.参考文献RAJSUMANRSoC设计与测试M.北京:北京航空航天大学,2003:9599.陈超,吴金,常昌远,等.基于功能结构的数字系统可测试性设计口.电子器件,2002,25(2):170173.IEEEStandardsBoards.IEEEstandardtestaccessportandboundary-scanartitecturez.1994.鲁巍,杨修涛,李晓维.基于JTAG标准的边界扫描在通用CPU中的设计J.计算机工程,2004,30(19):30-31.胡瑜,韩银和,李晓维.SoC可测试性设计与技术J.计算机研究与发展,20O5,42(1):153-162.ARMLtd.AMBAspecificationRev.2.0z.http:/,nvw.arLcorn,1999.ARMLtd.ARM7TDMItechnicalreerencemanualRev.r4pl-z.http:/www.amcom,2004.王让定,叶富乐,杜呈透.基于边界扫描技术的TAP接口研究J.计算机工程,2003,3:139141.(下转第87页)口孙岩等:基于并行预测的前导零预测电路设计第1期TransactionsonComputers,1999,48(10):298305.4SCHM()()KLERMs,N()wKAKJ.LeadingZeroAnticipationandDetectionAComparisonofMethodsJ.Proc.ofthe15thIEEESymposiumonComputerArithmetic,2001.5SE:I【)ELPM,E,GDelay-OptimizedImplmlentationofIEEEFloating-PointAdditionJ.IETrarksaetionsonComputers,2O04,53(2).r6BEAUMONTSA,BURGESSN,LEFRERES,eta1.ReducedLatencyFloatingPointStandardAdderArchitecturesJ.IEEEComputerArithmetic,1999:3542.7suNHP,GAOMLUnifiedBitPatternforLeadingZeroAnticipatoryLogicforHighspeedFloating-pointAdditionJ.SignalProcessingandInformationTechnology,Proceedingsofthe3rdIEEEInternationalSymposiumon1417Dec.2003:786789,8ZHANGG,QIZC,HUww.ANovelDesignofIeadingZeroAnticipationCircuitWithParallelErr

温馨提示

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

评论

0/150

提交评论