近期,来自 Kioxia 公司的 Ravi Tangirala 做了一个主题为存储控制器系统级硬件仿真与原型验证性能的演讲。他是 Kioxia America 公司(前东芝存储,之后作为独立公司被拆分)的验证总监。
存储控制器作为一种很“常见”的 SoC,是所有 NAND 闪存的接口。尽管近些年出现了 3D NAND,但从存储控制器的角度而言其实没带来什么实质变化。
验证过程的核心是综合利用 Cadence Palladium Z1 企业级仿真平台和 Cadence Protium X1 企业级原型验证平台来实现硬件仿真和原型验证。
上方图表展示了该团队的工作过程。图中红色线条逐渐上升及下降,反映的是 Palladium 在项目周期中的使用量变化。开始时 Palladium 的使用并不多,因为 RTL 尚未完成。随着设计的逐步完成,Palladium 使用量也随之上升。
蓝色阴影区代表了固件开发,开始时会使用 Palladium,当设计足够稳定后就会转用 Protium。Protium 的优势是具有比 Palladium 更快的软件运行速度;不足则是由于 FPGA 布局布线耗时较多,需要相对多些时间来准备版本。
所以在 RTL 稳定前,Protium 并非固件团队的软件开发人员的最佳选择;可一旦 RTL 趋于稳定,软件人员就会更倾向于用 Protium 做软件测试。
样片回片后,软件开发逐渐结束,Palladium 还会被用来分析样片测试出的遗留问题。
Palladium 仿真
上图展示了以 Palladium 为核心的完整验证环境案例,SoC 运行在位于中心的仿真器内,左侧为实际主机(访问闪存)和调试主机(访问调试端口)。右侧连接 DIMMS 上的实际闪存,其容量巨大,同时对仿真速度有要求,因而不适合直接放在仿真器里实现。
Host PC 机通过 SpeedBridge 硬件接口与 Palladium 连接,另一台调试 PC 机与调试端口相连,而 DIMMS 上的 NAND 会直接与 Palladium 相连。
实际上,这个过程用到了 Palladium 的两个操作模式:
TBA(Test Bench Acceleration)模式:应用各种虚拟接口,比较适用于 RTL 早期验证过程。
ICE(In Circuit Emulation)模式:利用上图中的真实物理接口,能够达到最快的仿真速度,但不适用于对接口的直接验证。
Kioxia 总共部署了 6 台服务器集群用于 Palladium 编译。单次编译可以在 3 小时内完成,利用相关选项,12 小时内可以完成 30 次迭代。当然,这种方法在 RTL 稳定后才可真正发挥作用。
如上方图示,经过时钟优化,核心功能时钟可达到 373% 的性能提升。需要注意的是,这是仿真性能提升,而非指 SoC 自身时钟频率。
以 Palladium 为核心搭建起来的硬件仿真环境,可以实现端到端测试(在 PC 主机上运行的应用软件可以访问到实际的 NAND 存储器)。
有了这样的仿真平台,我们可以运行测量 I/O 吞吐率的硬盘应用,以及测试硬盘在最差情况的运行等等。因为测试时间需要足够长才能生成精确的度量数据,所以仿真平台的整体性能就变得非常关键。上述以 Palladium 为核心的仿真平台可以将 I/O 访问速率提升 9 倍,并将启动时间和 NAND 擦除时间缩短 5.5 倍。
Protium 原型验证
固件开发可以实现从 Palladium 至 Protium 的无缝切换,因为两者在前端使用同样的编译器。上图可以看出,Protium 和 Palladium 两个平台几乎完全一样,都使用同样的 Speedbridge 和 I/O 卡。
动态配对组合
利用 Palladium 和 Protium 联合使用流程,RTL 可以按照上图所示同时编译给两大平台,使得客户可以用 Palladium 实现高性能的硬件仿真,同时用 Protium 实现更高性能的固件开发。由于 Protium 的编译和布局布线需要 15-24 小时,在设计足够稳定后,软件开发者利用双平台的流程会更加高效。比如完成操作系统启动,保证软件开发人员能够调试各自的代码。
小结
Palladium 应用在项目初期,在性能加快 373% 同时,充分利用其强大的调试能力。
Protium 主要针对固件开发,仿真性能可以达到Palladium 的 4.6 倍。
可以利用 QTDB 实现 Palladium 与 Protium 的快速无缝迁移。
原文标题:【成功案例】如何利用 Palladium 和 Protium 进行早期固件开发
文章出处:【微信公众号:Cadence楷登】欢迎添加关注!文章转载请注明出处。
责任编辑:haq
全部0条评论
快来发表一下你的评论吧 !