台湾工业技术研究院提出一种能够显著提升客制化FPGA原型板验证效率的创新方法,自动化现有的电路仿真(in-circuit emulation)侦错功能,并提供更高的FPGA能见度。这个以FPGA为基础的SoC验证平台对工研院而言是前景看好的崭新领域。
案例研究:高效能的多媒体SoC平台
这款SoC设计是高效能的Android兼容多媒体SoC平台。配置了AXI、AHB与APB总线,供通讯使用;由工研院(PACDSPs、EMDMA 与 DDR2控制器)设计的高效能客制化IP组件连结至AXI 总线,加速H.264视讯编译码器(video CODEC)等多媒体应用软件的执行。包括ARM、SDRAM、DMA、SRAM、Ethernet与LCD在内的标准IP组件连结至AHB总线,适合于一般应用。最后,UART、Timer、I2S、I2C与Watchdog等低频率的IP区块(bLOCk)则连结至APB总线。
下列案例研究说明了工研院与思源科技工程师如何合作,使用思源科技ProtoLink Probe Visualizer,克服工研院SoC设计中出现的验证挑战。这个与音效功能相关的问题是:在 FPGA原型板未激活OS的状况下,功能正常运作 (可录音与播放);但如果在原型板上启用Linux,功能就无法正常运作。在FPGA原型环境中,要使用传统的侦错方法排除这类问题是相当困难的。FPGA的能见度仅局限在少数的讯号与时脉周期内,无法提供足够的信息找出错误所在。而因为激活OS(例如 Linux)耗费的时间相当长,想透过缓存器转换阶层(RTL) 仿真来解决问题也行不通。由于问题的成因可能在于软件、硬件或驱动程序,因此要确实找出问题的根本原因是一项考验。
与众不同的作法
要简化侦错作业,就需要更高效率的验证方法。ProtoLink Probe Visualizer是新的原型验证环境,采用以软件为基础的方法,可以从RTL设计阶段开始到最终的设计实现阶段,都提供高水平的设计能见度,可全面加速侦错作业的进行。
工研院起初担心其客制化原型板可能无法符合思源科技ProtoLink Probe Visualizer的接口需求,而思源科技工程师在进行几项快速测试之后,证明工研院客制化原型板上的标准 J连接器可顺利地与执行Probe Visualizer软件的工作站连结。只需在原型板上新增锁相回路(PLL),提供所需的取样时脉(sampling clock)即可。FPGA的设置流程相当简单,可轻松整合至现有的程序(script) 中,自动选取大约100个探测讯号(probed signal),就能见度来说,已比过去的方法提升6倍之多。此外,所有的探测资料都可储存在外接的2GB探测讯号内存中而不占用FPGA资源,真正额外需要的探测逻辑(probe logIC)也仅占用FPGA的2%,可说相当的少。外接内存的资料容量可储存充足长度的时脉周期,让工程师能够确实掌握软件、硬件与驱动程序间的关系。
工研院团队透过思源科技Verdi自动侦错系统的进阶观察、追踪与分析功能,来使用储存的探测资料进行侦错作业。在经过多次重复侦错之后,发现了两个问题:1) USB中断 (USB interrupt)长时间锁住ARM,因此I2S内的FIFO是空的,因而造成问题; 2)定时中断(Timer interrupt)的优先级高于DMA中断,因此再一次造成I2S内的FIFO是空的。工研院工程师使用思源科技软件的侦错功能,进一步分析设计行为,仅管表现出来是共通的错误征兆,工程师还是能够迅速发现这些错误的根本成因是源于两种不同的情况。
此外,观察额外的关键讯号是侦错时必需的,但这些讯号多半不在原始探测清单中。工研院工程师透过Probe Visualizer迅速的探测ECO流程,在10分钟内就可新增10个新讯号,而且不用重新编译整个设计。相对传统的侦错方法需要在RTL拖曳新讯号,并且针对这个特定的设计重新执行合成(synthesis )以及布局与绕线作业,约需花上2至3个小时,因此这方面的革新省下了大量的时间。
工程师能够轻松地将所需额外的RTL探测讯号由Verdi侦错环境拖曳至ProbeVisualizer。这套系统会自动建立RTL至逻辑闸层(RTL-to-gate level)的讯号对应关系,所以可直接在 FPGA 布局与绕线档案上迅速执行部份绕线作业来看到新增的探测讯号,大幅缩短侦错作业时间,所以能在短时间内处理多重侦错工作阶段 (debug session)。而对设计中使用的“黑盒子”IP区块,也只需EDIF名称,就可以进行探测ECO流程。