系统与设计
的意见

平衡仿真和基于fpga的软件开发原型

一个客户关于减少他们的第一个软件发布的启动时间的故事。

受欢迎程度

今年的设计自动化会议(DAC)刚刚结束,并证实了我在上一篇博客中讨论的一些趋势。”在DAC 2016上,五大核查趋势值得关注,特别是当涉及到一组连接引擎时,或吉姆·霍根(Jim Hogan)称之为“COVE”。DAC的Cadence Theater总是一个倾听实际客户体验的好机会,这次我个人最喜欢的一个是Amlogic,他们展示了他们如何使用仿真和基于fpga的原型设计,将第一个软件发布的时间从75天缩短到15天,缩短了5倍。

Amlogic是一家领先的智能电视、OTT (Over the Top)和智能家居应用SoC供应商,他们的平台软件总监Jerry Cao在“Protium/Palladium Pre-Silicon软件开发”上发表了讲话。完整的演示最终将在网站上发布Cadence的DAC微位点.Jerry强调了软件作为SoC批量出货推动者的重要性,如果延迟,则会反过来影响收入。通常,它的交付和开发依赖于硬件可用性。考虑到多核、多任务实时系统、从固件到内核驱动程序的多层软件、复杂的软件框架以及数百万行代码的趋势,软件复杂性的增加是惊人的这个图表在Linux内核3.0版本中,Linux内核的代码行数超过了11M。

Jerry谈到了一些具体的软件开发挑战,以及为什么软件用例场景可以很快变得非常复杂。例如,他们花了几天时间解决一个问题,即USB主机无法枚举真实芯片中的设备,尽管通过调试USB控制器进行了VLSI模拟。事实证明,根本原因是内存控制器的访问策略设置错误。

因此,Amlogic开始寻找一个允许软件启动开发的系统,一个完整的硅前原型系统,它的行为像真正的芯片,能够支持从固件到内核驱动程序和应用程序的所有软件开发,并且在硅设计早期可用,允许并行硬件/软件开发。其中一个关键要求是易用性——他们需要能够编译软件、下载图像、在平台上运行,并允许多个用户远程连接。速度是至关重要的,因为他们希望在几分钟内启动简单的Linux内核,而在几小时内启动完整的Android。在软件方面,调试对于支持UART和JTAG、内存转储和探测内部信号的需求很重要。他们还想运行性能分析来测量系统性能和功耗。

当研究传统的基于fpga的原型时,他们发现很难实现时序闭合、内存建模和划分设计以映射到多个fpga。总的来说,设计是很耗时的,因为他们需要修改设计以使其适合,而且他们面临着有限的USB和视频显示卡的外设可用性。

Amlogic-Setup

使用为Palladium和Protium平台统一前端流程的多结构编译器技术——我已经在几个博客中描述过它,例如“验证引擎连续体中的前15个集成点在amlogic构建上图所示的环境之前。他们达到了主要要求:

  • 设计启动很快——不需要RTL修改,因为Palladium和Protium平台共享相同的编译流程,并且在RTL准备就绪时就可以作为完整的pre-silicon平台使用
  • 该设置是可扩展和灵活的,以适应未来的设计,并允许同时运行多个小的设计
  • 该设置还实现了良好的速度——在完全自动模式下,在Palladium XP平台上实现了1mhz,在Protium平台上实现了5MHz,无需手动引导和优化,这可以显著提高速度,正如我们在其他客户项目中看到的那样

在平衡引擎方面,Amlogic证实他们使用Palladium XP平台进行早期软件驱动程序调试和验证,运行最少的软件来验证驱动程序功能,并使用内存节省和恢复来加速软件启动。他们还划分了Palladium平台,以运行模块化的芯片设计,允许他们并行验证不同的软件驱动程序。

为了完整的系统验证,他们迁移到Protium平台,用Android启动整个软件堆栈以显示,验证完整的系统功能,如视频解码和显示,并运行性能基准测试,如lmbench和Antutu。

最后,Amlogic总结说,“Palladium和Protium(平台)对软件开发是无价的”,提供了一个“turnkey”解决方案,可以快速生成原型,允许在硅回来之前进行持续的软件开发,并提供独特的调试功能来执行根本原因分析。Amlogic还指出了一些局限性,例如模拟的验证和数字到模拟接口的差异,但由于这种流程,当硅返回时,软件已经准备好了。他们在硅技术出现后的30分钟内就完成了基本的Android运行,并在3天内展示了完整的Android功能演示,而在没有硅技术出现前的硬件辅助开发中,这一过程需要15天。

生活是美好的——当客户证实了我们产品经理所认为的价值时,这是一件很棒的事情!在DAC还有其他案例,我很快会在博客上提到……



留下回复


(注:此名称将公开显示)

Baidu