FPGA已经成为当今数字化系统硬件设计的核心,全球90%以上的嵌入式系统设计工程师正在使用FPGA进行着各种各样的设计。FPGA的快速发展,为测试厂商带来了新的机遇和挑战,针对FPGA的各种创新测试技术和解决方案不断问世。
基于内核FPGA调试方案应运而生
安捷伦公司数字测试资深技术/市场工程师 冀卫东
为满足日益复杂的数字化系统的设计要求,FPGA的密度及复杂性也在急速增长,越来越多的系统或子系统功能在FPGA内部实现,其先进的功能和高集成度使FPGA成为极具吸引力的解决方案,进而也使得基于内核的FPGA测试方案浮出水面。
仿真不能发现所有问题
虽然FPGA的功能在不断增加,但芯片的面积却是有限的,提供的针脚数量却没有以相同比例提高。由于关键的硬件和软件的交互工作通常发生在FPGA的内部,使得查看FPGA内部信号的需求不断提高,而专门为提供这种查看能力可以使用的针脚数量却十分有限,这就使得调试很成问题。
FPGA厂商都提供了仿真工具,仿真对于ASIC设计团队至关重要。但随着设计的复杂程度不断加深,系统的复杂性使得系统验证和调试的时间在增长,针对SoC类型的FPGA设计,这个步骤占整个设计周期的50%,为了保证测量的置信度,在线几秒钟的运行操作,可能会需要设计者几天甚至几周的仿真。
仿真能发现和排除较为明显的错误,但不能发现所有的问题,尤其是:难以预料的边缘的情况;难以仿真FPGA与系统中的其他部分的相互配合情况;难以仿真布线所造成的对信号完整性的影响所导致的错误;不能仿真异步的事件;难以达到100%的代码覆盖等等,使得FPGA的设计者在仿真和系统原型之间徘徊不前,导致研发进度的推迟。
基于内核的FPGA调试方案
传统的FPGA测试方法是将内部被测节点连到外部管脚,再通过逻辑分析探头连接到外部的逻辑分析仪的对应通道,根据被测信号的管脚位置和名称对逻辑分析通道进行命名。这种方法可充分利用逻辑分析仪的强大功能。但也存在着局限性,如1对1的连接和测量:每个FPGA调试管脚对应一个内部信号节点;固定的内部信号节点,要改变新的测量节点,必须重新设计,不但费时费力而且会由此改变信号的原有时序;每次改变被测信号都要停下来重新连接仪器,重新定义信号的管脚位置和名称,这是非常繁琐的工作。
FPGA的管脚是宝贵的资源,专用于调试的管脚通常非常少,一般是几个到32个左右,这个端口成为路由输出内部信号进行测量的重要管道。专用于调试的每个管脚,只对应内部单一的被测信号。若要增加或改变被测的信号,需要改变设计,重新合成,重新安排管脚的位置,重新布线,不仅会消耗大量的时间,还可能会改变电路的原有时序。内核辅助调试为实现迅速而且深入的测试提供了一种极具吸引力的方法。
内核辅助调试通过为FPGA内置用于测量的电路,以便更好、更迅速地实现测量。已经有大量的工程师使用了这种方法,他们在片内增加自己设计的多路复用器,以便通过固定数量的管脚访问更多的FPGA内部信号。相当多的设计团队目前仍在继续使用这种方法。尽管这种方法在固定数量的管脚上提高了信号的访问能力,但它在协助设置外部仪器方面(如示波器或逻辑分析仪)没有任何措施。此外,每个团队必须设计一种方法来控制这个多路复用器,这种额外的设计工作不但增加了工作量,而且占用了很多内部资源,而这些资源本来可以更好地用来设计FPGA,而不是用于调试电路的设计。
现在,许多FPGA厂商都提供了商用版的用于芯片上调试的内核,从而大大降低了在FPGA内生成这些内核的工作量,这些内核甚至可以在开发流程的后期再增加进去。FPGA厂商提供的芯片上调试内核采用JTAG作为通信接口,这种内核使用FPGA的内部资源,构建成内置的逻辑分析仪(ILA),它进行FPGA内部信号的测量,并把数据存储在FPGA的内部存储器里,通过JTAG通信接口将数据送出到调试软件如ChipScopePro或Quartus II等进行分析,而不占用任何芯片管脚。
使用这种调试内核,在设计环境中选择要测量的信号,一般通过netlist来实现。它是在没有剩余管脚进行调试的唯一查看方法,测量数据被存储在宝贵的芯片内的存储器里,且容量受限,为调试提供的存储容量限制着测量的深度。这种内核仅提供状态分析,不能提供定时分析。由于设计本身在很大程度上占用了芯片内部资源和内部的存储器,会影响FPGA的原有设计,若调试之后去掉这个内核,同样会改变内部电路的时序,所以尽管占用内部资源,很多工程师完成调试后,宁愿将其留在FPGA内部。
软件仿真和测试并行不悖
NI中国市场经理 朱君
基于FPGA测试工具的必要性来自于整个行业的趋势:产品自定义的要求越来越高、上市时间要越来越短,同时还需要不断在产品中增加新的功能。为了达到这些要求,工程师身上的压力也越来越大,他们需要更快地开发产品、增加新功能,并要确保产品质量。因此我们看到,以软件为中心的产品正在成为市场主流,比如最新的iPhone。以软件为中心的产品让工程师们可以在不需要重新设计硬件的情况下增加新的功能,并且提高自定义的可能性。
基于FPGA的产品就非常顺应这一大趋势,工程师们不需要重新设计硬件,仅在软件层面上重新编程并再次发布到目标硬件,即可改变硬件特性。为了实现这样的目标,NI采用的途径是提供全系列的工具和平台来降低用户学习和使用的复杂性,也就是说用户只要在NI的平台上操作即可充分采用这些商业技术,并享受它们带来的优势。现在NI的产品应用于从系统设计、原型到发布的研发全过程。
基于FPGA的CompactRIO平台是一种为高性能和高可靠性应用所专门设计的、可重配置的控制和采集系统,该平台集成了一个嵌入式实时处理器、高性能的FPGA,并具有多种可热插拔的工业I/O模块及内置的信号调理功能。每一个I/O模块都直接连接到FPGA,提供对于定时和I/O信号处理的底层自定义功能。
这一平台最大的挑战在于用户在使用之前需要掌握专业的FPGA编程知识。NI相信随着FPGA平台日益成为行业的必需,关键问题在于要为工程师简化学习和使用的复杂性。NI一直在这方面进行大量的工作,用户通过NI的软硬件平台,无须直接掌握FPGA专业编程技能便可充分利用到FPGA的优势。
EDA工具的软件仿真和测试两者之间并无冲突。通常在开发周期的前期阶段,设计和仿真是产品设计过程中的重要环节。然后这个周期进入原型阶段,工程师们需要从设计转到I/O。通常工程师们面对的挑战不同,他们在不同阶段采用的工具也不同。NI的目标一直是通过提供同一个平台来弥补以上提到的不同工具间的鸿沟。图形化编程平台LabVIEW本身包括FPGA模块,可发布到CompactRIO等原型平台上;同时也可以连接到NI Mulitsim等EDA软件。
独立逻辑分析仪
方案应是首选
泰克亚太区D&M市场开发经理 孙志强
当前FPGA的调试手段主要有:软件仿真、板级在线调试。其中后者又分嵌入式逻辑分析仪方案和外部标准逻辑分析仪方案。
仿真能够缩短调试时间,发现和排除显而易见的错误,但是仿真并不能发现所有的问题。
嵌入式逻辑分析仪方案又受到以下资源的限制:内核尺寸限制;不得不使用片内存储单元存储采集的数据;存储深度极度受限;仅仅支持状态分析方式(同步),只能同步采样:采样率取决于FPGA的特定时钟,不能使用更高的定时采样频率,最终得到的时序精度不高。
因此,在以下情况,我们推荐使用独立的逻辑分析仪方案:1.大量的定时问题,内部节点信号和外部板级信号关联,更强大的触发能力。2.需要高分辨率的定时信息。3.需要捕获较深的信息储存。4.引脚考虑。
针对以高速高性能FPGA应用为代表的现代高速串行系统、现代高速数字系统,泰克公司拥有十分完整的测试测量方案,从测试考虑角度不同,Tektronix的FPGA测试测量方案可分三类:
第一类,基于逻辑分析仪的实时板级在线调试方案。相比较嵌入式的调试方案,该方案不受FPGA调试内核尺寸、内存资源限制;同时支持同步和异步两种分析方式;可同时关联FPGA内外信号,加快分析调试速度。
第二类,基于高性能示波器的实时信号完整性测试方案。
实时示波器方案:高达20GHz带宽、4通道同时50GS/s采样率和高达<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />200M存储深度的实时示波器。
取样示波器方案:拥有业界最低噪声、高达70GHz以上带宽电取样模块和50GHzTDR模块。
第三类,基于混合示波器的混合信号环境测试调试方案。
文章评论(0条评论)
登录后参与讨论