FPGA实战演练逻辑篇69:基于FPGA的在线系统调试概述
基于FPGA的在线系统调试概述
本文节选自特权同学的图书《FPGA设计实战演练(逻辑篇)》(特权同学版权所有)
配套例程下载链接:http://pan.baidu.com/s/1pJ5bCtt
FPGA的板级调试方法有很多,借助于常规的示波器和逻辑分析仪的调试方法是最典型的手段。如图10.1所示,基于传统的台式示波器或逻辑分析仪进行板级调试有着诸多的不便,相对于设计电路深藏在芯片内部的FPGA设计来说有着很大的局限性,简单的列举如下。(特权同学,版权所有)
l 台式机器价格昂贵,设备成本高。(特权同学,版权所有)
l 只能访问到FPGA的I/O引脚信号,对内部信号只能通过引出到I/O引脚的方式进行观察,并且此方式只有个别信号可行,大量内部信号就无能为力了。(特权同学,版权所有)
l PCB的layout设计必须预留足够的空间用于外部探针对被测试信号的连接,浪费板级空间且降低了电路可靠性,同时也会潜在的增加成本。(特权同学,版权所有)
l 测试信号较多,调试过程极其繁琐并容易犯错。(特权同学,版权所有)
l 灵活性差,只能观察设计之初就预留了探针接口的一些信号。(特权同学,版权所有)
图10.1 基于传统逻辑分析仪的板级调试
当然了,这些局限性在大多数产品的板级调试中都存在,尤其是在芯片集成度越来越高的当下。而FPGA器件由于其灵活的可编程特性,也使得它具有了更大独特的调试手段。在FPGA器件支持并且剩余逻辑资源足够的情况下,设计者往往习惯于使用开发软件提供的在线逻辑分析仪进行调试,如ISE的Chipscole和QuartusII的SignalTappII,它们的功能都很强大,并且非常的简单实用。它们相较于传统的外置仪器,不仅大大降低了调试门槛和成本,而且由于其内嵌于被调试FPGA器件内部的特性,使得其可调试性和灵活性上也更胜一筹,如它可以访问到FPGA内部的一些中间过程信号。除此以外,还有一些其它的手段在不同的应用背景下都有助于加速板级调试。(特权同学,版权所有)
下面列举Quartus II工具所支持的五种非常实用的在线调试方法。(特权同学,版权所有)
l SignalProbe,即信号探针,这种在线调试方式不影响原有的设计功能和布局布线,只是通过增加额外布线将需要观察调试的信号连接到预先保留或者暂时不使用的I/O接口上。该方式相应得到的信号电平会随布线有一定的延时,不适合于高速、大容量信号的观察调试,也不适合做板级的时序分析。它的优势在于不影响原有设计,额外资源消耗几乎为零,调试中也不需要保持连接JTAG等其他线缆,能够最小化编译或重编译的时间。(特权同学,版权所有)
l SignalTap II Embedded Logic Analyzer,即SignalTap II在线逻辑分析仪,它在很大程度上可以替代昂贵的传统台式逻辑分析仪,为开发节约成本;同时也为调试者省去了原本繁琐的连线工作,而有些板级连接的外部设备很难观察到的信号都能够被在线逻辑分析仪轻松的捕获到。如果对设计进行模块的区域约束,也能够最小化使用在线逻辑分析仪对设计带来的影响。在线逻辑分析仪的采样存储深度和宽度都在一定程度上受制于FPGA器件资源的大小。使用该方式必须通过JTAG接口,它的采样频率可以达到200MHz(若器件支持)以上,而不用像外部调试设备一样担心信号完整性问题。(特权同学,版权所有)
l Logic Analyzer Interface,即逻辑分析仪接口。这里的逻辑分析仪接口是针对于外部逻辑分析仪的。调试者可以设置FPGA器件内部多个信号映射到一个预先保留或者暂时不使用的I/O接口上,从而通过较少的I/O接口就能够观察到FPGA内部的多组信号。(特权同学,版权所有)
l In-System Memory Content Editor,即在线存储内容编辑,它是针对设计中例化的内嵌存储器内容或常量的调试。可以通过这种方式在线重写或者读出工程中的内嵌存储器内容或常量。对于某些应用可以通过在线更改存储器内容后观察响应来验证设计,也可以在不同激励下在线读取当前存储内容来验证设计。总之,这种方式对存储器的验证是很有帮助的。(特权同学,版权所有)
l In-System Sources and Probes Editor,这种方式是通过例化一个定制的寄存器链到FPGA器件内部。这些寄存器链通过JTAG接口与Quartus II软件通信,它又能够驱动FPGA器件内部的某些输入节点信号,采样某些输出节点信号。这就使得调试者不用借助外部设备就能够给FPGA添加激励并观察响应。(特权同学,版权所有)
以上所提的这些在线调试方式大都是通过FPGA器件引出的J
- 基于FPGA的片上系统的无线保密通信终端(02-16)
- 基于Virtex-5 FPGA设计Gbps无线通信基站(05-12)
- 基于FPGA的DVI/HDMI接口实现(05-13)
- 基于ARM的嵌入式系统中从串配置FPGA的实现(06-09)
- 采用EEPROM对大容量FPGA芯片数据实现串行加载(03-18)
- 赛灵思:可编程逻辑不仅已是大势所趋,而且势不可挡(07-24)