传感器、硅、软件和系统的人们正在努力寻找实现传感器并将其集成到广泛设备中的最佳方法,这是一场混战。你有:
- 制造传感器的人
- 制造可以运行传感器相关软件的微控制器的人
- 将传感器和微控制器集成在一起
- 人们将多个传感器集成在一个包中,可能还有一个微控制器
- 系统人员通过SoC中的AP控制传感器
- 系统的人,包括传感器中枢某种SoC
变化似乎无穷无尽。部分原因是新市场的自然冲击,每个人都试图利用自己的核心优势,以自己的方式扭曲市场。但另一个原因是,没有一种解决方案适合智能手机、平板电脑、健身设备、工业应用和其他广泛的应用传感器群和物联网.
这里的大多数参与者都是传感器生态系统的成员。但随着实现开始影响SoC设计,传感器支持基础设施的部分变成了IP,需要集成到更大的硅设计中,这必然会引起EDA人员的兴趣,他们可能迄今为止还没有明显的存在。
因此,虽然听到Synopsys发布与传感器相关的公告令人惊讶,但回过头来看,这并不应该。他们显然是数字逻辑实现和计时领域的一个大名字,他们是最大的硅IP提供商之一。所以我相信他们的耳朵在过去几年里已经振作起来了,因为他们看到了正在发生的事情。
而这个警告的产品在几周前公布了:一个传感器子系统框架。虽然这并不是关于将实际的传感器集成到SoC上——考虑到即使将传感器与CMOS调节芯片集成也不典型,这将需要一些重大的勇气——但这是关于尽可能多地集成到SoC中。
这意味着你需要:
- 一种连接传感器的方法。
- 一个执行融合软件的地方。
- 到主机处理器的连接。
- 内存和互连允许有效的数据管理。
- 访问浮点引擎或硬件卸载等计算加速器。
问题是每个包含这样一个子系统的系统都是不同的。所以这不是一个固定的构型;而是要提供一个脚手架,必要的部件可以挂在上面。这很容易做到。
部分问题在于传感器已经不仅仅是传感器专家感兴趣了。每个人都想要一个,但没有人想要成为传感器魔法细微差别的专家来利用它们的好处。因此,抽象和封装对于这种策略很重要,同时为高级用户留下空间,让他们可以加入自己的特殊调味料。
以下是Synopsys收集的内容。他们子系统的中心枢纽来自他们的ARC收购。它作为一个专用的低功耗传感器管理单元。它通过各种可能的接口(甚至是JTAG)与主机CPU进行通信。(我假设这只是为了调试和诊断的目的……)
礼貌Synopsys对此
与传感器本身的通信可以通过典型的底层协议或I/ o;无论使用哪一种,都将由传感器本身的需求驱动。现在许多传感器都是数字化的,甚至可能通过一些低级融合提供更高层次的结果,比如定位。但有些是模拟的,这意味着需要ADC接口。
注意,ADC本身不是框架的一部分。这是因为这个子系统是进程不可知的和可合成的,而adc是进程特定的硬IP。ADC可以驻留在SoC上,但它将作为传感器子系统范围之外的独立IP,然后通过ADC接口连接到子系统。
还有一种选择是使用硬件加速器。这一点很有趣,因为这是一个设计师可能会陷入他们并不想要或没有预料到的细节的糟糕深渊的领域。
抽象像传感器融合这样的东西意味着隐藏低层的细节,比如用于计算方向的特定数学。如果你正在设计一个智能手机SoC,你可能不想被卷入细节卡尔曼滤波.传感器融合IP可以消除知道这些细节的需要,如果你不想知道的话。
但如果软件运行太慢怎么办?如果你想用加速器呢?好吧,现在你需要知道瓶颈在哪里,要加速什么,这可能会迅速让你了解更多关于融合算法的知识。软件和硬件中广泛的函数库在一定程度上缓解了陷得太深的问题,但即使这样也可能会把您拖入困境。
Synopsys展示了一个平方根函数的简单示例,可以从他们的库中获得。从概念上讲,事情很简单:一个全软件实现需要353个周期来执行,并且除了运行它的处理器之外不需要任何硬件区域(处理器可以用于很多事情)。一个满载的硬件加速器可以在6个周期内完成这项工作,但它需要近5500个门来完成这项工作。混合方法仍然可以在24个周期内完成操作,只增加1075个门。你可能认为这是一个最优点。
Synopsys允许您调整您想要的硬件加速程度,但这似乎将负担放在了设计师身上,他们需要知道函数(例如,平方根)是如何实现的,各种算法选项,以及它们如何在软件或硬件中布局。这是行不通的。另一方面,很难想象一个通用的“向导”可以让您在任何给定的IP上拨出硬件和软件之间的无限等级。
Synopsys所做的是采用类似平方根函数的东西,并创建各种实现——从所有软件到所有硬件,以及介于两者之间的一个或多个点。然后,他们记录了性能和区域影响。因此,虽然你没有无限设置的表盘,但你最终会得到一个选项列表:你可以选择你想要的,而不必详细了解每个选项是如何优化或实现的。
所有这些部分都可以使用拖放界面进行组装,您可以告诉工具您想要什么并指定任何选项。
上面是一层软件,包括各种各样的驱动程序和DSP功能。这使得软件编写人员可以专注于他们的实际应用程序,而不是让他们的应用程序与传感器子系统对话所需的管道。
他们声称,把所有这些放在一起的好处是减少40-60%的面积-低至0.01毫米2在28nm工艺;更低的延迟;功率更低-在28 nm范围内可小于4 μ W/MHz。设计速度更快,因为部件已经存在;验证速度更快,因为所有东西都经过了预验证。软件可以更快地实现,因为驱动程序等已经存在。
因此,Synopsys显然是试图通过做很多系统设计师不想做的工作来把自己插入到这里的画面中。它给软件留下了很大的灵活性——代码并没有关闭——但如果需要的话,你也可以选择加速。我的猜测是,在一般情况下,可能需要手把手的帮助,但如果一切都能像承诺的那样结合在一起,这仍然比从头开始要容易得多。
更多信息:
你觉得Sysnopsys的传感器子系统怎么样?
听起来就像IBM在60年代用360/370系列大型机所做的:可伸缩架构。