由于芯片每秒需要处理的计算越来越多,其设计变得越来越复杂,与此同时,确保芯片中大量数据的及时传输也面临着重大挑战。Sondrel 解释说,设计者通常会忽略至关重要的数据流方面,因为负责这一任务的片上网络 (NoC) 设计十分复杂,并且由于存在许多极端情况,所以难以验证性能需求是否在所有情况下都得以满足。这就导致片上网络只能传输次优数据,且片上系统 (SoC) 难以实现。
Sondrel 工程总监 Ben Fletcher 解释说:“片上网络的性能必须与片上系统的计算部分匹配。片上网络的作用是以足够快的速度提供输入数据,保持芯片上的计算 IP 以最大容量运行,并存储输出数据,从而防止系统阻塞。我们使用 Arteris® FlexNoC® IP 作为片上系统的片上网络通信骨干技术,它使我们能够在更短的时间内设计出更复杂的芯片。”
为什么选择 FlexNoc?
他发现使用 FlexNoC 互连技术带来诸多优势。第一个优势便是面积和芯线数的减少。这一优势通过利用传输层的封包和序列化能力实现,片上网络设计师因此能够在不缩减性能的前提下精确控制片上网络中可以减少芯线数和面积的部分。第二个优势是降低功耗。通过配置跨时钟域和门控时钟支持等电源管理功能可以将功耗控制在指定预算范围内。第三个优势是物理意识设计的实现。由于片上网络设计方法从设计初便将片上系统的平面布局和任何物理设计限制考虑在内,因此设计团队能够向后端团队交付一个保证满足时序要求的网表。第四个优势是 FlexNoc 先进的配置工具和优秀的 UI。FlexNoc 所提供的用于生成性能良好、时序清晰互连的工具套件简单易学,对片上网络设计者而言非常容易上手,从而能够提高生产率。
片上网络有什么作用?
片上网络会与片上系统中几乎所有部分互连,与芯片的平面布局、架构、功能需求、启动、安全、安防等方面有着内在联系。Ben Fletcher 提醒道:“这意味着在项目整个生命周期,平面布局很可能会出现变化,因此需要对片上网络作出更改。相应更改又会影响平面布局,形成反馈回路,从而造成延迟和成本超支。”“凭借多年设计大型复杂片上系统的经验,我们开发了许多使我们能够在项目初期进行性能探索和验证的技术。通过尽早明确需求并快速验证片上网络的变更是否满足相应需求,我们能够明确平面布局和片上网络设计,减少不必要的设计更改,从而降低风险和额外成本。”
平面布局中左侧蓝色区域和右侧蓝色区域的片上网络示例
图例右侧功能框图上的片上网络看似简单——只是有着很多连接部分,然而,左侧的平面布局显示,为实现高时钟速度和在芯片中传输大量数据,它占据了相当大的区域,且布局复杂,同时与 IP 功能区块分散的物理位置相连接,这也是使时序收敛变得困难的地方。
平面布局优先还是片上网络优先?
通常情况下,设计者首先会从平面布局或片上网络开始芯片设计过程,这便会导致前面提到的反馈回路。Sondrel 的方法通过在设计阶段一开始进行性能探索来避免这种情况发生,通过明确性能需求来确定和测试架构,减少更改概率,并相应明确平面布局和片上网络的设计。性能探索解决了只单独验证 IP 功能区块的典型问题。这种验证方式未能将 IP 功能区块间的交互作用考虑在内。芯片上的 IP 功能区块越多,就越难以理解它们之间的所有依赖关系,而这些依赖关系可能对芯片性能有着关键影响。例如,主/从接口可能不匹配、共享内存冲突、时钟偏移等。更多详情请参见 Sondrel 的白皮书“复杂片上系统建模和设计的 10 大切实有效的步骤”(网址:www.sondrel.com/solutions/white-paper)
完成性能探索并确定性能需求后,便有了配置片上网络的充足信息。我们需要一种方法来根据这些需求测试生成的 RTL,以确定需求满足程度,然后实施快速迭代以达到所需的性能水平。为此,Sondrel 开发了一个名为“性能验证环境”的专有测试平台。该平台使用可合成的 RTL 而非近似模型,且处理器和子系统替换为 Python 代码中定义的处理器。这就使得内存映射的总线通信量在 Python 中生成并通过片上网络驱动,从而能够快速掌握当前的设计进展情况以及所作更改对数据通信量的优化情况。更多详细信息,请参见 Sondrel 的白皮书“性能验证环境与 RTL 比较”(网址:http://www.sondrel.com/solutions/white-papers)
这些快速迭代使我们能够快速探索片上网络配置,找到合适的解决方案,并应用到平面布局设计过程中,以便随后协同优化片上网络和平面布局。这样能够更快地实现稳定状态,从而降低项目风险。
芯片规格可能会随市场需求变化,而这一建模过程可以整体进行更新,无需从头开始,因此能够通过循证数据了解修改后的芯片设计是否满足新的需求。