将片外调试的优点融入FPGA片上调试之中
时间:06-06
来源:互联网
点击:
FPGA片上调试已出现了很多年,成为传统复杂FPGA设计调试方法的一种常用替代方式,将虚拟测试夹具放于FPGA设计任何地方而不是采用昂贵的通用I/O引脚是可编程逻辑器件才有的性能。但片上调试也有一些不足之处,本文将讨论片上调试的局限,并介绍如何把片上调试与片外深采样存储特性结合起来。
随着FPGA密度不断增加,工程师们需要经常使用新方法对FPGA实现的设计进行测试和验证。设计人员传统上使用逻辑分析仪、示波器和总线分析仪通过测试夹具来探查信号,这些测试夹具和连接器与FPGA上用户定义的I/O引脚相连,部分引脚(最常见的是64个)被分配给调试和验证,因此对于引脚分配,设计人员不得不在全面调试与设计实现之间进行协调。工程师经常还要安排时间给引脚加上片上逻辑以便选择信号或信号组,驱动I/O和后面的连接部分以供调试。尽管该方案可减少分配给调试的I/O引脚数量,但这项工作单调乏味,而且通常不能提供正确调试设计所需的可见性,此外测试夹具和连接器占用了宝贵的电路板空间,并会引入信号完整性和时钟问题(特别是在高速电路板设计上),同时成本也很高。
测试复杂FPGA设计的另一个方法是把部分FPGA逻辑资源专用于“逻辑分析”内核,这些内核的功能类似于传统的逻辑分析仪,包括触发、数据采集和采样存储,但却位于FPGA中,可直接接触到设计的信号和节点。逻辑分析内核的数据存储在FPGA本地存储器中,经由JTAG端口可以读出,这样就不必占用宝贵的通用I/O引脚。由于逻辑分析内核位于FPGA内部,可利用高速互连总线、快速存储器和系统时钟,而无须把这些信号引出芯片,因此可提供传统调试和验证方法中没有的可见度和精确性。
领先的FPGA供应商能提供方便的工具,把逻辑分析和总线分析内核直接插入到FPGA设计中,并带有先进的接口,支持测试和测量供应商主流逻辑分析仪的多种特性和功能。
片上调试的局限
这种片上调试的主要局限在于逻辑内核本身使用了FPGA资源,更重要的是还用到了采样存储器。实现逻辑或总线分析内核所需的逻辑非常少(一般少于FPGA逻辑单元的3%),因为这些内核很小,所以它们可以放在被测逻辑附近不用的逻辑里。但与之相反,片上采样存储会占用大量片上存储资源。片上逻辑与总线分析内核使用FPGA内部RAM,根据用户定义的触发条件存储采集到的样品数据,仅仅32K采样数据就需要用到FPGA的全部RAM单元。
除此以外,时间也是调试多个系统问题的关键因素之一,长时间采样需要更多片上存储器。解决这个问题的一个常用方法是一旦完成调试和验证就把逻辑分析内核去除,尽管这释放了FPGA设计的逻辑和存储器资源,但也意味着逻辑分析内核不能用在以后的设计中。
采样存储器的数量由FPGA里的RAM数量决定,在某些情况下,它限制了对发生在较长时间里的复杂事件进行调试。片上调试解决方案希望通过提供先进的支持,允许用户定义复杂触发情况来克服这个局限,基于多事件的触发条件让用户只能捕捉与特定事件相关的数据,从而节约片上存储器资源。虽然该方法可以更好地利用有限的片上存储器,但它需要知道错误发生在逻辑中的什么地方,而这常常是一个不断演进的迭代过程,要仔细研究引起错误的具体设计问题。因此尽管该方法可以用于调试,但它太费时,且需要大量思考和对设计的深入认识,从而大大影响了验证能力,而且通常无法把设计“分解”成多个小部分塞入受限片上资源进行验证。
传统测试和测量设备制造商围绕这个问题,提供了带有很深采样存储和复杂触发能力的测试设备。当设计出现问题时,用户要尽量多采集数据,经常要好几秒,然后利用提供的工具查看数据,发现设计中的问题,这样能确保工程师抓到事件,但在查看数据发现问题时需要有耐心。
将两者优点结合起来
理想的解决方案是把传统片外调试设备的扩展采样存储器与片上调试的优点结合在一起。这种方法能使用户把虚拟测试夹具放在FPGA设计任意位置,接触内部信号和节点,并使用传统逻辑和总线分析仪设备的片外深采样存储器。它没有使用片上存储资源,相反,存储器都在片外。
该解决方案带来了很多好处。用户可以调试现在很多FPGA设计中常见的复杂数据交换事件,调试复杂的控制逻辑、存储器和I/O接口、处理器系统以及详细的状态机等,这些都要求在较长时间内捕捉样品数据。复杂数据交换事件需要用户捕捉所有活动以全面分析事件,当采样存储限制取消后,还可以再加上时间标记。
这种新方法最有用的地方在于实现了片上验证。完全调试一个FPGA设计既费时又需要大量的计算,新的组合式方案可让用户利用现实世界几乎无穷的测试向量在片上调试FPGA。在软件仿真环境里即使仿真10秒的功能也要用多达100天的时间,而在现实条件下仿真设计功能还能揭示软件仿真环境下无法看到的异步和信号完整性等异样情况。
片上逻辑和总线分析内核通常把采样数据写入片上存储单元,也可对这些内核进行修改而把数据写到片外,但需要一个新接口。现在多数片上调试工具利用JTAG接口与安置在FPGA里的逻辑和总线分析内核进行通信,这是一个相对较慢的串行连接(10MHz),但对确定逻辑和总线分析内核参数如触发条件来说正好,甚至对存储在片上存储器里的空载采样也足够,但是它不能支持结合片内、片外解决方案所需要的快速片外数据传输率,需要一个专用高速端口,就是说要为调试分配I/O引脚,这样就抵消了片上调试方法的一个重要优点。有一个方法是利用诸如时分复用技术把数据压缩到少量I/O引脚中,然后在片外将数据传给外部采样存储器。分析表明,这样只要分配20个I/O引脚就可以捕捉高达79个数据信道,并以与片上方法相当的速率在片外传输。
本文结论
片上调试作为调试复杂FPGA设计的一个可行方法而出现,目前正在开发的新技术以及现在已出现的技术则通过融合片外逻辑分析设备存储单元对该方案进行改进。这样不仅发挥了片上调试的作用,如片上实时验证,而且提供了一种经济的方法可以取代目前昂贵的逻辑和数据分析设备。
随着FPGA密度不断增加,工程师们需要经常使用新方法对FPGA实现的设计进行测试和验证。设计人员传统上使用逻辑分析仪、示波器和总线分析仪通过测试夹具来探查信号,这些测试夹具和连接器与FPGA上用户定义的I/O引脚相连,部分引脚(最常见的是64个)被分配给调试和验证,因此对于引脚分配,设计人员不得不在全面调试与设计实现之间进行协调。工程师经常还要安排时间给引脚加上片上逻辑以便选择信号或信号组,驱动I/O和后面的连接部分以供调试。尽管该方案可减少分配给调试的I/O引脚数量,但这项工作单调乏味,而且通常不能提供正确调试设计所需的可见性,此外测试夹具和连接器占用了宝贵的电路板空间,并会引入信号完整性和时钟问题(特别是在高速电路板设计上),同时成本也很高。
测试复杂FPGA设计的另一个方法是把部分FPGA逻辑资源专用于“逻辑分析”内核,这些内核的功能类似于传统的逻辑分析仪,包括触发、数据采集和采样存储,但却位于FPGA中,可直接接触到设计的信号和节点。逻辑分析内核的数据存储在FPGA本地存储器中,经由JTAG端口可以读出,这样就不必占用宝贵的通用I/O引脚。由于逻辑分析内核位于FPGA内部,可利用高速互连总线、快速存储器和系统时钟,而无须把这些信号引出芯片,因此可提供传统调试和验证方法中没有的可见度和精确性。
领先的FPGA供应商能提供方便的工具,把逻辑分析和总线分析内核直接插入到FPGA设计中,并带有先进的接口,支持测试和测量供应商主流逻辑分析仪的多种特性和功能。
片上调试的局限
这种片上调试的主要局限在于逻辑内核本身使用了FPGA资源,更重要的是还用到了采样存储器。实现逻辑或总线分析内核所需的逻辑非常少(一般少于FPGA逻辑单元的3%),因为这些内核很小,所以它们可以放在被测逻辑附近不用的逻辑里。但与之相反,片上采样存储会占用大量片上存储资源。片上逻辑与总线分析内核使用FPGA内部RAM,根据用户定义的触发条件存储采集到的样品数据,仅仅32K采样数据就需要用到FPGA的全部RAM单元。
除此以外,时间也是调试多个系统问题的关键因素之一,长时间采样需要更多片上存储器。解决这个问题的一个常用方法是一旦完成调试和验证就把逻辑分析内核去除,尽管这释放了FPGA设计的逻辑和存储器资源,但也意味着逻辑分析内核不能用在以后的设计中。
采样存储器的数量由FPGA里的RAM数量决定,在某些情况下,它限制了对发生在较长时间里的复杂事件进行调试。片上调试解决方案希望通过提供先进的支持,允许用户定义复杂触发情况来克服这个局限,基于多事件的触发条件让用户只能捕捉与特定事件相关的数据,从而节约片上存储器资源。虽然该方法可以更好地利用有限的片上存储器,但它需要知道错误发生在逻辑中的什么地方,而这常常是一个不断演进的迭代过程,要仔细研究引起错误的具体设计问题。因此尽管该方法可以用于调试,但它太费时,且需要大量思考和对设计的深入认识,从而大大影响了验证能力,而且通常无法把设计“分解”成多个小部分塞入受限片上资源进行验证。
传统测试和测量设备制造商围绕这个问题,提供了带有很深采样存储和复杂触发能力的测试设备。当设计出现问题时,用户要尽量多采集数据,经常要好几秒,然后利用提供的工具查看数据,发现设计中的问题,这样能确保工程师抓到事件,但在查看数据发现问题时需要有耐心。
将两者优点结合起来
理想的解决方案是把传统片外调试设备的扩展采样存储器与片上调试的优点结合在一起。这种方法能使用户把虚拟测试夹具放在FPGA设计任意位置,接触内部信号和节点,并使用传统逻辑和总线分析仪设备的片外深采样存储器。它没有使用片上存储资源,相反,存储器都在片外。
该解决方案带来了很多好处。用户可以调试现在很多FPGA设计中常见的复杂数据交换事件,调试复杂的控制逻辑、存储器和I/O接口、处理器系统以及详细的状态机等,这些都要求在较长时间内捕捉样品数据。复杂数据交换事件需要用户捕捉所有活动以全面分析事件,当采样存储限制取消后,还可以再加上时间标记。
这种新方法最有用的地方在于实现了片上验证。完全调试一个FPGA设计既费时又需要大量的计算,新的组合式方案可让用户利用现实世界几乎无穷的测试向量在片上调试FPGA。在软件仿真环境里即使仿真10秒的功能也要用多达100天的时间,而在现实条件下仿真设计功能还能揭示软件仿真环境下无法看到的异步和信号完整性等异样情况。
片上逻辑和总线分析内核通常把采样数据写入片上存储单元,也可对这些内核进行修改而把数据写到片外,但需要一个新接口。现在多数片上调试工具利用JTAG接口与安置在FPGA里的逻辑和总线分析内核进行通信,这是一个相对较慢的串行连接(10MHz),但对确定逻辑和总线分析内核参数如触发条件来说正好,甚至对存储在片上存储器里的空载采样也足够,但是它不能支持结合片内、片外解决方案所需要的快速片外数据传输率,需要一个专用高速端口,就是说要为调试分配I/O引脚,这样就抵消了片上调试方法的一个重要优点。有一个方法是利用诸如时分复用技术把数据压缩到少量I/O引脚中,然后在片外将数据传给外部采样存储器。分析表明,这样只要分配20个I/O引脚就可以捕捉高达79个数据信道,并以与片上方法相当的速率在片外传输。
本文结论
片上调试作为调试复杂FPGA设计的一个可行方法而出现,目前正在开发的新技术以及现在已出现的技术则通过融合片外逻辑分析设备存储单元对该方案进行改进。这样不仅发挥了片上调试的作用,如片上实时验证,而且提供了一种经济的方法可以取代目前昂贵的逻辑和数据分析设备。
FPGA 相关文章:
- 在采用FPGA设计DSP系统中仿真的重要性 (06-21)
- 基于 DSP Builder的FIR滤波器的设计与实现(06-21)
- 基于FPGA的快速并行FFT及其在空间太阳望远镜图像锁定系统中的应用(06-21)
- 3DES算法的FPGA高速实现(06-21)
- 用FPGA实现FFT算法(06-21)
- FPGA的DSP性能揭秘(06-16)