Faraday 采用基于模型的设计加快 SIP 开发并将 NAND 闪存控制器 ECC 引擎门数缩减 57%

挑战

加快 SoC 和 ASIC 的开发速度

解决方案

使用 MathWorks 基于模型的设计工具,加快 系统级的仿真,提高系统性能,并缩短产品 面市时间

结果

  • 仿真快了 200 倍
  • 吞吐性能提高了 15%
  • 门数缩减了 57%

“Simulink 环境最适于探索系统级的总体结构。与我们以前的工作流程相比,仿真快了 200 倍,而且, Simulink 模型很容易转换成 C 以及 HDL 代码,实现了高伸缩性和可重用性。”

Ken Chen, Faraday
Faraday 在单片系统上的硅知识产权。

许多集成电路制造商依赖硅知识产权 (SIP) 提供商开展单片系统 (SoC) 和特定应用集成电路 (ASIC) 设计。对于 SIP 设计者来说,存储器控制器代表机会和挑战:因为每个微处理器子系统都需要存储器控制器,所以这是机会;而由于存储器控制器设计复杂,需要不断加强才能支持各种各样的存储设备,这便是挑战。如果 Faraday Technology Corporation 之类的 SIP 提供商减少其设计中的门数,缩短存储器控制器和其他模块的开发周期,并最终为客户降低成本,就会获得竞争优势。

Faraday 采用 MathWorks 基于模型的设计工具,加快了 SIP 开发速度,探索系统级的设计替代方案,并改善工程师之间的交流。

Faraday 的 ESL 方法实施经理 Ken Chen 说:“Simulink 是一个可用于集成、仿真和探索总体设计结构的出色环境。使用 Simulink,我们能够执行基于时钟周期的仿真,比 RTL 仿真最多快 200 倍,从而能快速识别最佳设计配置,让产品更快推向市场。”

用于 Faraday 公司 NAND 闪存控制器的纠错编码(ECC)引擎的 Stateflow 框图 

挑战

在 Faraday 的开发流程中,工程师创建能快速配置和组装到集成式系统级模型中的设计模块。过去,这些模块采用的是 SystemC、C++ 或 Verilog ® 进行手动编程。而当存储器控制器标准改变时,这些模块必须重新编程。不仅手工编程需要时间,而且模块经常必须导入到其他语言,以便在专用仿真平台上进行 RTL 仿真。

当 Faraday 的模块包括离散时间交互时,仿真本身就很慢。例如,控制双倍数据传输率 (DDR) 存储器或闪存数据流的模块必须使用复杂的通信协议,并管理大量的数据。实践证明,对这些模块进行仿真很慢,为了在最后期限之前完成,Faraday 不得不限制设计迭代和测试。用于优化的时间很少,工程师针对最差情形进行设计,因而导致设计欠佳,采用较多的门,成本也比较高。

不同条件下的系统性能图。更快的仿真使 Faraday 执行更多的设计迭代,实现更好的系统优化和性能。

解决方案

Faraday 工程师建立了新的工作流程,他们使用 MATLAB®、Simulink® 和 Stateflow® 对系统级设计进行建模和仿真,并使用 Simulink Coder™ 和HDL Coder™ 从模型中生成代码。

使用 Simulink 和 Stateflow,工程师对多个设计模块进行建模,包括用于 DDR 和闪存控制器的有限状态机 (FSM)。他们在 Simulink 中执行多方面的仿真,确保模块对于各种配置都具有精确的周期。他们使用 MATLAB 在模块上运行统计分析。

在总体结构设计阶段,Faraday 工程师评估模块的各种组合并尝试各种参数值。他们使用他们的仿真结果来优化和改进设计。Chen 说:“借助 Stateflow,工程师们可以轻松地在易于理解的抽象层次上详细交流复杂的控制器设计。”

作为比 RTL 仿真更快的替代方案,Faraday 工程师利用 Simulink Coder 从模型中生成了 C 代码。这种 C 代码提供了程序员的设计视角,可集成到许多虚拟平台解决方案中,以便进行软件开发和系统级的总体结构探索。

在实现阶段,Faraday 工程师不是对他们的设计进行手动编码,而是使用HDL Coder 从集成到 RTL 仿真中的相同 Simulink 模型自动生成 HDL 代码。这种工作流程让 Faraday 在从总体结构设计转移到基于 FPGA 的原型时能够缩短他们的设计流程。

Faraday 已经完成了 DDR 和闪存控制器项目,并如期向客户交付了 SIP 设计。该工程团队立足于重用和改编他们的现有模型,从而加快未来存储器控制器项目的开发速度。

逻辑门数的优化结果。通过在不同条件下对系统性能的探索,Faraday工程师满足性能要求并移除多余的单元来优化门数。

结果

  • 仿真快了 200 倍. 使用 Simulink 和 Stateflow,对系统级模型的仿真比 RTL 仿真快了 200 倍。因此,Faraday 完成了更多的设计迭代,并迅速确定了最佳参数和配置。

  • 吞吐性能提高了 15%. Simulink 仿真发现了传统设计方法的低效率,尤其是仲裁和 FIFO 机制。Faraday 工程师不是重新设计整个系统,而是专注于这些组件,从而使吞吐能力迅速提高了 15%。由于对新 DDR 控制器采用基于模型的设计,Faraday 将系统性能提高 33% 以上。

  • 门数缩减了 57%. 过去,缓慢的仿真和紧张的进度表限制了设计迭代,迫使 Faraday 只针对最差情形进行设计。使用 MATLAB、Simulink 和 Stateflow 之后,他们应用统计误差模型,并在标称情形和最差情形下评估系统性能。然后,他们明智地做出权衡决策,将一个项目的总门数缩减了 57%。