原创 采用安捷伦FPGA动态探头调试存储器子系统

2008-7-4 01:16 2766 4 4 分类: 测试测量
FPGA已经成为世界各地成千上万个设计团队硬件设计的内核。如今,FPGA的密度在不断提高,并同时提供广泛的其它功能,如可变IO标准、存储器、处理器和高速串行接口等。先进的功能和高集成度使FPGA成为实现复杂的系统或子系统极具吸引力的解决方案。关键硬件和软件的交互工作发生在FPGA内部,因此查看FPGA内部信号的需求在不断提高,但提供这种查看能力的、可以采用的针脚数量却仍十分有限。由于为内部查看能力提供的针脚数量非常少,所以调试变得非常困难。若没有正确的指导而仅凭直觉进行测量,通常会导致混乱,并延迟项目上市时间。内核辅助调试(Core-assisted Debug)为实现迅速而深入的测试提供了一种极具吸引力的方法。

安捷伦对数百支设计团队进行了市场研究,结合自己的下一代产品测试,在这一领域实现了重大创新。调试FPGA的工程团队面临的核心问题,是如何在固定数量的针脚上提高查看能力。安捷伦的两代内核辅助调试技术可以追溯到2002年,一直是为片上(On-Chip)测量提供测量手段的先驱。2004年,安捷伦为逻辑分析仪和混合信号示波器发布了业内第一个FPGA动态探头。2005年,安捷伦和Xilinx增加了自动设置功能。2006年,安捷伦新增了对Xilinx最新的Virtex 5系列的支持。本文对各种内核辅助调试方法进行了比较,并讨论一个采用安捷伦FPGA动态探头调试存储器子系统的实例。



内核辅助调试

仿真对ASIC设计团队意义重大,而采用FPGA的设计团队可以更加方便地在仿真和原型之间转换。由于这一技术的特点是可编程,并能适应不同的规范变化,所以FPGA成为设计中最后一个关键硬件模块。因此,完成设计并在系统中进行测试的挑战很大。为保证测量的置信度,几秒钟的在线运行操作可能需要几天甚至几周的仿真时间。遗憾的是,尽管FPGA中能够实现的电路数量正呈指数增加,但提供的针脚数量却没有以相同的比例增加。

用于调试的针脚通常非常少(一般是0到32个)。这个查看端口成为路由输出内部信号以进行测量的重要通道。专用于调试的每个针脚可以访问单个信号。增加需要测量的新信号,将要求改变设计、重新合成、重新安排引脚位置及重新布线,这不仅会消耗大量时间,还可能改变电路时序。


安捷伦的ATC2是第二代片上调试内核
图1:安捷伦的ATC2是第二代片上调试内核,它通过Xilinx ChipScope Pro 的内核插入器被增加到FPGA中。内核插入器把选择的输入信号名称保存在一个文件中,逻辑分析仪能够读取这个文件,从而自动导入信号名称。ATC2在不到3秒内可将内部被测信号切换到针脚上进行测量。每个ATC2最少可以定义一个信号组,最多可以定义64个信号组。

内核辅助调试通过为FPGA内置用于测量的电路,能更好、更迅速地实现测量。已有大量设计团队在采用这种方法,他们在片内增加自己设计的多路复用器,以便通过固定数量的针脚访问更多信号。尽管这种方法在固定数量的针脚上提高了信号访问能力,但它在协助设置外部仪器方面(如示波器或逻辑分析仪)没有任何改善。此外,每个团队必须设计一种方法来控制多路复用器。这种额外的设计工作在设计中并没有增加价值,相反还消耗了资源,而这些资源本可以更好地被用来设计FPGA,而不是设计调试电路。现在,许多厂商提供了用于片上调试的商用内核,可大大降低在FPGA内生成这些内核的工作量(图1)。这些内核可以在开发流程后期添加进去。

商用片上调试内核分成两种(见表),并采用JTAG作为主要通信工具。第一种提供内部信号测量,但没有增加任何针脚。它测量信号并存储在FPGA内部。例如,可以采用内部资源构建逻辑分析仪和数据存储器。这是所有主要FPGA厂商都提供的一种最常用的调试内核。第二种调试内核利用少量针脚和更少的FPGA资源提供内部信号测量。内部信号被路由到外部测量设备上以捕获信号。这两种调试内核都对特定的问题和测量有效。

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
4
关闭 站长推荐上一条 /3 下一条