软件调试变得棘手

在多核调试软件设计时,传统的仿真需要一些调整。

受欢迎程度

由安Steffora Mutschler
随着设计规模的持续扩大和复杂性,这种复杂性导致了越来越多的处理核心。额外的核心,反过来,允许额外的软件运行在这些核心,和调试软件变得非常关键。

传统上,扮演了一个重要的角色在验证软件模拟对RTL代码,并将继续这样做。但随着多核体系结构的出现,情况演变。

“几乎一切都是多核,”吉姆·肯尼说,营销主管在导师图形仿真。“胳膊把他们的大。小建筑,这是至少有两个核心,在某些情况下它是八。几乎所有我们看到的是多核。模拟器处理得很好,因为处理器被建模为RTL模拟器。如果你有他们的倍数,倍数模拟器。连接起来,就像他们做的设计。所有的时钟和同步工作就像真正的设计,所以在执行方面有任何困难的模拟器能够运行一个多核设计。”

高级营销主管模拟Lauro Rizzatti Synopsys对此认为,如果一个模拟器有足够的能力适应大的设计,它将多核设计没有任何问题。“随着多核,有很多软件处理的核心,因此,软件将驻留在内存,通常是在模拟器。实际上,这将是一个理想的场景,因为基本上整个设计和软件运行在盒子里面可以达到的最大速度与外界没有依赖性。但话又说回来,可能会有一个testbench除了嵌入式软件。”

在多核调试软件很棘手,肯尼断言。“标准方法在仿真器是一个JTAG调试软件探测器,所以这些核心都有一个JTAG调试端口。你连接硬件调查就像如果处理器板。钩子软件调试器,您可以调试软件的执行在RTL版本的处理器核心的建模仿真器。”

问题是JTAG使处理器做大量的工作,他说。“假设比如你想读一个寄存器。”我想知道R0的价值在我的处理器。“你让请求处理器通过JTAG和处理器运行150000时钟想出答案。一步指令:1000000时钟。JTAG当你运行一个核心在真实硬件不是那么糟糕。在仿真速度,但是当你运行兆赫,它可以真正的疲软使它离开并运行数以百万计的指示。你图片通过代码单步进,每次单击步骤按钮超过第二个动作之前。它会驱动软件的家伙疯了,”肯尼说。

另一个大问题是多核同步。想象一个多核ASIC,这些核心同步运行,来回传递消息,做他们所做的事情保持同步。如果其中一个是要求做一步指令,运行百万同步的时钟,它都窗外,他解释说。

“如果你想捕捉事件或试图调试事件,你看到在模拟器中想出了一个错误的答案,只是要求处理器做一个步骤中,你钟的ASIC盖茨和事件是一百万倍。你可能走在它一百万年之前的时钟和来回传递消息的其他处理器只是坐在那里当你推进其他一千一百万时钟,很烦人。JTAG调试非常侵入,当涉及到多核,它打破了所有的同步。过去只有一个核心,JTAG是好的——有点缓慢但ok。但现在多核,它并没有真正的工作很好,”肯尼指出。

第三方面的问题在多核调试软件设计的成本是一个模拟器软件模拟器调试席位。“有两个原因人们构建FPGA原型。一个是他们可以更快地运行的软件。另一个是他们可以构建软件席位比买便宜模拟器。有很多比硬件软件人在这些团队的家伙,他们都表示,他们都需要访问模拟器,模拟器上的人说,没有办法我们有那么多你的能力,”他补充说。

“FPGA原型软件调试很受欢迎,因为他们跑得快,他们很便宜,只要符合数量的FPGA设计,“Rizzatti提醒。商业FPGA原型板的数量是有限的FPGA在内部开发的FPGA原型板的FPGA,如高通的情况。

由于这些软件调试问题在多核设计,使用交易人的做法是日益活跃。从本质上讲,一个办理人是一种验证IP (VIP)与一些复杂的软件和硬件。这允许仿真执行被记录为以后调试虽然不是在模拟器和更快的比模拟器调试环境。

这也说明模拟的扩大作用一般来说,和使用技术的能力与其他原型和仿真技术在更综合的方式。

节奏的迈克Stellfox认为仿真不可或缺的一部分转向的背景下逐步求精流系统级建模和分析。“人们正在做的粗粒度的,有两个层次的抽象建模SystemC和虚拟平台,还有我们现在开始看到这种类型的分析起飞与配置ip并做分析。这是一个很好的机会,这两个世界走到一起,你应该能够快速构建环境模型的芯片组合之间的抽象系统C / TLM和RTL为了方便更自动化、逐步求精流。一直有这个梦想的英语,我认为到目前为止还没有意识到,因为有脱节的ESL工具和RTL流。”

他指出,一些逐步求精流已经被开发出来,但它是一个拥有正确的抽象的技巧的分析,而不是试图认为一切应该TLM或一切应该RTL。然后,基于用例的部分系统,需要精炼,为此分析更多的这些用例细化。

“关键是能够建立良好的流动,这就需要大量的自动化,因为所有不同类型的模型,允许你在抽象和抽象组合之间进行切换。系统太复杂你需要精度,和我们解决的方法之一是硬件加速和能够结合平台有一些地区在TLM建模,建模在RTL也许可能运行在一个模拟机器像Palladium-that是一种我们今天解决,我看到越来越多的会变得更主流的流动,你就没有选择这么做,”Stellfox说。

它曾经是仿真的主要用途是将软件早一点,tapeout前有一个完整的在线目标环境,验证某种程度的软件和硬件在一个真正的目标系统。”,仍然是一个非常重要的事情和人仍然这样做,但是仿真/加速度无疑更成为主流设计和验证流程,因为性能的必要性。它能够成为关键规模验证活动或者只是使软件开发对真正的RTL和实际运行遥遥领先的硅,”他总结说。



留下一个回复


(注意:这个名字会显示公开)

Baidu