安捷伦对数百支设计团队进行了市场研究,结合自己的下一代产品测试,在这一领域实现了重大创新。调试FPGA的工程团队面临的核心问题,是如何在固定数量的针脚上提高查看能力。安捷伦的两代内核辅助调试技术可以追溯到2002年,一直是为片上(On-Chip)测量提供测量手段的先驱。2004年,安捷伦为逻辑分析仪和混合信号示波器发布了业内第一个FPGA动态探头。2005年,安捷伦和Xilinx增加了自动设置功能。2006年,安捷伦新增了对Xilinx最新的Virtex 5系列的支持。本文对各种内核辅助调试方法进行了比较,并讨论一个采用安捷伦FPGA动态探头调试存储器子系统的实例。
内核辅助调试
仿真对ASIC设计团队意义重大,而采用FPGA的设计团队可以更加方便地在仿真和原型之间转换。由于这一技术的特点是可编程,并能适应不同的规范变化,所以FPGA成为设计中最后一个关键硬件模块。因此,完成设计并在系统中进行测试的挑战很大。为保证测量的置信度,几秒钟的在线运行操作可能需要几天甚至几周的仿真时间。遗憾的是,尽管FPGA中能够实现的电路数量正呈指数增加,但提供的针脚数量却没有以相同的比例增加。
用于调试的针脚通常非常少(一般是0到32个)。这个查看端口成为路由输出内部信号以进行测量的重要通道。专用于调试的每个针脚可以访问单个信号。增加需要测量的新信号,将要求改变设计、重新合成、重新安排引脚位置及重新布线,这不仅会消耗大量时间,还可能改变电路时序。
图1:安捷伦的ATC2是第二代片上调试内核,它通过Xilinx ChipScope Pro 的内核插入器被增加到FPGA中。内核插入器把选择的输入信号名称保存在一个文件中,逻辑分析仪能够读取这个文件,从而自动导入信号名称。ATC2在不到3秒内可将内部被测信号切换到针脚上进行测量。每个ATC2最少可以定义一个信号组,最多可以定义64个信号组。 |
内核辅助调试通过为FPGA内置用于测量的电路,能更好、更迅速地实现测量。已有大量设计团队在采用这种方法,他们在片内增加自己设计的多路复用器,以便通过固定数量的针脚访问更多信号。尽管这种方法在固定数量的针脚上提高了信号访问能力,但它在协助设置外部仪器方面(如示波器或逻辑分析仪)没有任何改善。此外,每个团队必须设计一种方法来控制多路复用器。这种额外的设计工作在设计中并没有增加价值,相反还消耗了资源,而这些资源本可以更好地被用来设计FPGA,而不是设计调试电路。现在,许多厂商提供了用于片上调试的商用内核,可大大降低在FPGA内生成这些内核的工作量(图1)。这些内核可以在开发流程后期添加进去。
商用片上调试内核分成两种(见表),并采用JTAG作为主要通信工具。第一种提供内部信号测量,但没有增加任何针脚。它测量信号并存储在FPGA内部。例如,可以采用内部资源构建逻辑分析仪和数据存储器。这是所有主要FPGA厂商都提供的一种最常用的调试内核。第二种调试内核利用少量针脚和更少的FPGA资源提供内部信号测量。内部信号被路由到外部测量设备上以捕获信号。这两种调试内核都对特定的问题和测量有效。
文章评论(0条评论)
登录后参与讨论