《基于FPGA的现代数字系统设计》课件第8章_第1页
《基于FPGA的现代数字系统设计》课件第8章_第2页
《基于FPGA的现代数字系统设计》课件第8章_第3页
《基于FPGA的现代数字系统设计》课件第8章_第4页
《基于FPGA的现代数字系统设计》课件第8章_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

第8章在线逻辑分析技术8.1JTAG边界扫描测试8.2在线逻辑分析仪ChipScopePro概述8.3在线逻辑分析仪ChipScopePro的使用小结实验项目 8.1JTAG边界扫描测试

当今电子制造商正面临着越来越大地要求降低成本、提高质量及缩短面市时间的压力,他们采用的电路板越来越密、器件越来越复杂、电路性能要求也越来越苛刻,这一切直接导致了电子器件的生产商和电子产品的制造商都在倾向于采用最新的器件技术,如GA、CSP、TCP等更小的封装,以采用更小的体积而提供更强的功能,同时降低了成本。但是随之而来的接入问题却日益成为测试的巨大障碍。为了解决此类问题,IEEE1149.1——边界扫描测试BST(BoundaryScanTest)技术应运而生。当今电子制造商正面临着越来越大地要求降低成本、提高质量及缩短面市时间的压力,他们采用的电路板越来越密、器件越来越复杂、电路性能要求也越来越苛刻,这一切直接导致了电子器件的生产商和电子产品的制造商都在倾向于采用最新的器件技术,如GA、CSP、TCP等更小的封装,以采用更小的体积而提供更强的功能,同时降低了成本。但是随之而来的接入问题却日益成为测试的巨大障碍。为了解决此类问题,IEEE1149.1——边界扫描测试BST(BoundaryScanTest)技术应运而生。

在20世纪80年代,联合测试行动小组JTAG(JointTestActionGroup)开发了IEEE1149.1(JTAG)边界扫描测试技术规范,该规范提供了有效的测试引线间隔致密的电路板上的集成电路芯片的能力,主要用于芯片测试和配置等功能。大多数的FPGA厂家遵守IEEE规范,并为输入引脚、输出引脚和专用配置引脚提供边界扫描测试能力。

JTAG最初用于芯片功能的测试,其工作原理是在器件内部定义一个测试访问端口(TestAccessPort,TAP),通过专用的JTAG测试工具对内部节点进行测试和调试。TAP是一个通用的端口,外部控制器通过TAP可以访问芯片提供的所有数据寄存器和指令寄存器。现在JTAG接口还常用于芯片的在线配置,对PLD、Flash等器件进行配置。为了完成系统的调试,任何原型系统都支持JTAG配置方式,因而JTAG配置也就成为最广泛支持的配置方式。不同厂商和不同型号的绝大部分FPGA芯片都支持JTAG配置方式。

JTAG边界扫描测试是一种可测试结构技术,它采用集成电路的内部外围所谓的“电子引脚”(边界)模拟传统的在线测试的物理引脚,对器件内部进行扫描测试,JTAG接口由四个必需的信号以及一个可选信号构成。它是在芯片的I/O端上增加移位寄存器,把这些寄存器连接起来,加上时钟复位、测试方式选择以及扫描输入和输出端口形成边界扫描通道。边界扫描结构如图8.1所示。图8.1边界扫描结构该方法提供了一个串行扫描路径,它能捕获器件核心逻辑的内容,或者遵守IEEE规范的器件之间的引脚连接。IEEE1149.1标准规定了一个四线串行接口(TDI、TDO、TMS和TCK)及可选的第五条线TRST,该接口称作测试访问端口(TAP),用于访问复杂的集成电路(IC),例如微处理器、DSP、ASIC和CPLD等。边界扫描IO引脚功能如表8.1所示。将芯片中的数据存储通过TDI引脚输入到指令寄存器中或一个数据寄存器中,串行数据从TDO(测试数据输出)引线上输出。边界扫描逻辑由TCK(测试时钟)上的信号计时,而且TMS(测试模式选择)信号驱动TAP控制器的状态。TRST(测试重置)是可选项,可作为硬件重置信号,一般不用。设计人员使用BST规范测试引脚连接时再也不需要物理探针了,甚至能够在器件正常工作时捕获功能数据。器件的边界扫描单元能够从逻辑电路中跟踪引脚信号,或是从引脚或器件核心逻辑信号中捕获数据。测试数据串行地移入边界扫描单元,捕获的数据串行移出芯片的外部,同预期的结果相比较。

8.2在线逻辑分析仪ChipScopePro概述

ChipScopePro是Xilinx公司开发的在线片内逻辑分析工具,它支持XilinxVirtex™、Virtex-EVirtex-Ⅱ、Virtex-ⅡPro、Virtex-4、Virtex-5、Spartan™-Ⅱ、Spartan-ⅡE、Spartan-3、Spartan-3E和Spartan-3A系列FPGA。ChipScopePro的主要功能是通过JTAG电缆,实时地读出FPGA的内部信号。它的基本原理是利用FPGA中未使用的块RAM,根据用户设定的触发条件将信号实时地保存到这些块RAM中,然后通过JTAG电缆传送到计算机,最后在计算机屏幕上显示出时序波形。使用ChipScopePro观察FPGA内部信号具有以下优点:

(1)成本低廉。只要用这套软件加上一根JTAG电缆就可以进行信号分析。

(2)灵活性大。观察信号的数量和存储深度由器件剩余的块RAM数量决定,剩余块RAM越多,可观察信号的数量和存储深度就越大,而且ChipScopePro可以十分方便地观测FPGA内部的所有信号,对FPGA内部逻辑调试非常方便。

(3)使用方便。ChipScopePro可以自动读取项目设计网表文件,将其测试所需的IPCore的网表插入到原设计的网表中。可以方便地选择待观测信号,也可以设置复杂的触发条件。ChipScopePro的IPCore只使用少量的查找表资源和寄存器资源,对原设计的影响很小。

ChipScopePro系统框图如图8.2所示,其中ILA、ICON是为了使用ChipScopePro观察信号而插入的核。一般来说,ChipScopePro工作时,在用户设计中必须实例化两种核:一是集成逻辑分析仪核ILAPro(IntegratedLogicAnalyzerProcore),提供触发和跟踪捕获的功能;二是集成控制器核ICONPro(IntegratedControllerProcore),负责ILA核和JTAG口的通信。一个ICON可以连接多达15个ILA核。ChipScopePro工作时,ILA核根据用户设置的触发条件捕获数据,然后在ICON核的控制下,通过JTAG口上传到计算机,最后用ChipScopePro中的分析工具ChipScopeProAnalyzer显示信号波形。还有一些核,如IBA/OPB核适用于处理器外设总线的集成总线分析,IBA/PLB核适用于处理器本地总线的集成总线分析,VIO核是虚拟I/O核,ATC2核是安捷伦跟踪核等可以根据需要生成。图8.2ChipScopePro系统框图

ChipScopePro的设计流程如图8.3所示,这里可以采用手工或者自动两种方式完成核的插入。采用手工方式时,在ISE10.1设计工具中通过ChipScopePro的内核生成器根据用户设定条件生成在线逻辑分析仪的IPCore,包括ICON、ILA、IBA/OPB、IBA/PLB、VIO和ATC2核等内核。设计人员在原HDL代码中实例化这些核,然后将需要观察的内部信号与这些核相连,最后进行综合、布局布线、下载配置文件,就可以利用分析工具ChipScopeProAnalyzer来设定触发条件、观察信号波形;采用自动方式时不修改源文件,首先综合设计,然后利用ChipScopePro的内核插入器ChipScopeProCoreInserter自动完成在设计网表(.NGC或EDIF)中插入所生成的ICON、ILA和IBA等内核的工作,不用手工在HDL代码中实例化。然后对这个新的网表文件进行综合、布局布线、下载配置文件,利用ChipScopeProAnalyzer工具观察信号波形。在第一种方式中,每修改一次ChipScopePro的内容需要重新例化内核,重新对设计进行综合处理,相对来说,操作比较复杂和费时;第二种方式不需修改源文件和对设计进行综合处理,仅进行设计实现,因此操作简单和方便,通常都采用这种处理方式。当然,如果利用上面介绍的FPGA底层编辑器可以直接编辑插入在设计中的ChipScopePro观察探点,采用这种方法可以不用重新进行实现处理,而直接生成位流文件,操作更快捷,但这种方式不能修改分析仪所设置的条件,只能移动探点。图8.3ChipScopePro的设计流程

8.3在线逻辑分析仪ChipScopePro的使用

1.系统要求

1)软件工具

ChipScopePro软件与相配套的XilinxISE开发软件,如本例使用ChipScopePro10.1i和XilinxISE10.1i。

2)下载电缆

支持JTAG边界扫描的如下电缆之一:

● PlatformCableUSB

● ParallelCableIV

● ParallelCableIII

● MultiPRO

3) FPGA下载板

FPGA下载板有Xilinx公司Virtex、Virtex-E、Virtex-Ⅱ、Virtex-ⅡPro、Virtex-4、Virtex-5、Spartan-Ⅱ、Spartan-ⅡE、Spartan-3、Spartan-3E和Spartan-3A系列FPGA,并且具有TDI、TMS、TCK和TDO等四个JTAG边界扫描引脚信号。

2.ChipScopePro软件的安装

按如下步骤完成ChipScopePro软件的安装:

(1)下载ChipScopePro软件。

(2)以administrator权限登陆Window系统。

(3)单击ChipScope_Pro_10_1i_pc.exe按照向导完成安装。

3.ChipScopeProCoreInserter工具的使用

ChipScopeProCoreInserter工具可以很方便地分析综合后的设计,而不需要任何HDL的实例化。下面以计数器设计为例,介绍该工具的使用。

(1)加入ChipScope定义和连接CDC(ChipScopeDefinitionandConnection)文件。

选择菜单【Project】→【NewSource】命令来创建文件,弹出【SelectSourceType】对话框,选择【ChipScopeDefinitionandConnectionFile】选项,在【Filename】文本框中输入文件名,如cdc_cnt60,如图8.4所示。单击按钮,进入下一个窗口,选择与创建的CDC文件相关联的设计文件。最后单击按钮,完成CDC文件的创建。若CDC文件已经存在,可以选择菜单【Project】→【AddCopyofSource】,找到该文件直接添加。加入CDC文件后,在ISE的【Sources】窗口中显示cdc_cnt60.cdc文件,如图8.5所示。图8.4创建新的CDC文件图8.5Sources窗口

(2)创建ChipScope核来完成信号的连接,具体步骤如下:

①双击ISE软件的【Sources】窗口中的cdc_cnt60.cdc文件,打开【ChipScopeProCoreInserter】对话框,如图8.6所示,单击按钮。图8.6【ChipScopeProCoreInserter】对话框②弹出的ICON核选项界面如图8.7所示。在该界面中可以通过单击  和按钮选择添加新的ILA与ATC2核。若选中界面中的【DisableJTAGClockBUFGInsertion】复选框,则在布局布线时将采用普通布线资源,而不是全局时钟布线资源。选择该项功能在设计中全局时钟不够用的情况下比较有用,单击按钮。图8.7ICON选项界面③弹出的触发参数设置界面如图8.8所示。【NumberofInputTriggerPorts】选项为触发端口个数,用户根据自己的设计需要进行选择。本例中选择一个端口。【TriggerWidth】选项为触发信号的位宽,根据设计中触发信号的位宽设置,本例选择一位位宽。【MatchType】选项为触发方式,可选择Basic、Basicw/edges、Extended、Extendedw/edges、Range与Rangew/edges几种触发方式,本例选择“Basicw/edges”触发方式,该方式可以指定上升沿(R)与下降沿(F)触发,其它选项采用默认设置,单击按钮。图8.8触发参数设置界面④弹出的捕获参数设置界面如图8.9所示。默认选中【DataSameAsTrigger】选项,表示数据与触发信号相同,否则数据和触发信号完全独立。【DataWidth】选项为所有观察信号的总位宽,本例中选择“7”。【DataDepth】选项为数据显示深度,深度越深可显示数据长度越长,但是使用的块RAM(BRAM)资源就越多,本例中选择“512”,其它采用默认设置。完成捕获信号的设置后,可以在选项卡的左下方看到占用BRAM的数量。单击按钮。图8.9捕获参数设置界面⑤弹出的网络连接界面如图8.10所示。单击该界面中的按钮,进行下一步操作。图8.10网络连接界面⑥选择网络【SelectNet】界面如图8.11所示。在左下方【NetName】栏找到“en_IBUF”信号,或者在【Pattern】栏输入“*en*”可以快速查找到该信号。在【NetSelsctions】栏选择【TriggerSignals】标签,单击按钮,将“en_IBUF”信号连接为触发信号。

● 找到“clk_BUFGP”信号,在【NetSelsctions】选择【ClockSignals】页,单击按钮,将“clk_BUFGP”信号连接为时钟信号。

● 找到“q_tmp<0>~q_tmp<5>”与“en_IBUF”信号,在【NetSelsctions】选择【DataSignals】页,将上述信号连接为观察信号。图8.11选择网络界面⑦单击按钮,完成选择网络设置。回到图8.10所示的网络连接界面,此时【NetConnections】下的信号端口变黑,单击“”按钮保存。至此信号的连接完成,ChipScopeProCoreInserter工具自动地将核插入到设计中。

(3)在ISE中布局布线,产生下载文件。将位流下载到FPGA开发板。

(4)启动ChipScopeProAnalyzer工具观察信号。

4.ChipScopeProAnalyzer工具的使用

ChipScopeProAnalyzer的主要功能是观察信号,下面介绍该工具的使用。

(1)在ISE软件的【Processes】窗口(如图8.12所示)中单击【AnalyzeDesignUsingChipscope】选项,启动ChipScopeProAnalyzer工具。图8.12ISE进程窗口

(2)在ChipScopeProAnalyzer界面左上方单击“”按钮,打开下载电缆,弹出如图8.13所示对话框,选择所需要观察的FPGA,单击按钮,进入下一步操作。图8.13选择FPGA芯片

(3)这时出现波形观察界面,如图8.14所示,在【TriggerSetup】栏设置触发信号,本例中由于触发信号为“en”,所以触发值选择高电平“1”。【Waveform】栏为波形显示窗口。总线信号“Bus/Signal”默认名称为“DataPort[x]”,x表示端口号,为了方便观察波形,可以修改这些信号的名称,也可以将信号组合为总线的形式进行观察。

(4)在本例中,由于观察信号为计数器输出“q”和使能信号“en”,所以将DataPort[0]~DataPort[5]设置为总线形式。具体方法为选中DataPort[0]~DataPort[5]信号,单击鼠标右键,如图8.15所示,选择菜单【AddtoBus】→【NewBus】命令,然后将总线名修改为“q”。选中DataPort[6],单击鼠标右键,选者菜单【Rename】选项,修改为“en”。图8.14波形观察界面图8.15添加总线

(5)在【ChipScopeProAnalyzer】界面左上方单击“”按钮,采集信号,若“en”信号为“0”,ChipScopeProAnalyzer等待触发信号;若“en”信号为“1”,则可以采集当前计数器的输出值,如图8.16所示。输出信号可以采用二进制、十进制、十六进制等形式显示。可以采集当前计数器的输出值,判断FPGA芯片工作状态是否达到了计数器的功能要求。图8.16波形显示

小结

本章详细介绍了在FPGA调试阶段,使用JTAG边界扫描进行测试的原理,以及ISE集成套件中在线逻辑分析仪ChipScopePro工具软件的信号测试分析手段和方法。

实验项目

实验一移位相加八位硬件乘法器电路设计

实验目的:

(1)学习应用移位相加原理设计八位乘法器。

(2)比较用组合逻辑、时序逻辑实现相同电路功能在FPGA芯片资源利用和实现结果上的差异。

(3)熟悉在线逻辑分析仪ChipScopePro调试工具。实验原理:

乘法器的乘法原理:乘法通过逐项移位相加原理来实现,从被乘数的最低位开始,若为1,则乘数左移后与上一次的和相加;若为0,左移后以全零相加,直至被乘数的最

高位。实验要求:

(1)用移位相加进行本乘法运算,不得使用“*”算术运算符。

(2)应用“自顶向下”的设计思路,合理分解子模块,降低模块实现复杂度。

(3)将本乘法器设计成时序逻辑电路,要求完成以下功能:

● 应用reset信号实现模块的同步复位。

● 在八个时钟clk后,模块输出乘积。

● 设置data_valid信号,同步表示有效乘积数据的输出。

(4)以另一种组合逻辑电路的方式设计本乘法器。

(5)用VerilogHDL完成设计、综合和仿真,分析比较两者资源占用、运行速度等的差异。

(6)设计数码管显示的程序,在目标板的数码管上显示乘积值。

(7)对一种设计方式进行下载。

温馨提示

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

评论

0/150

提交评论