设计新系统级芯片(SoC)产品的公司都面临成本和效率压力,以及实现更高投资回报的持续市场压力,从而导致了工程团队缩编、设计工具预算降低以及新产品上市时间规划缩短。这使得设计复杂SoC的公司愈发倾向于为其设计中的大多数模块购买IP核授权,而不是构建自己的内部定制版本。选择合适的IP核是这种开发范式的基本挑战;同时,评估和展示这些内核的方法对购买者和开发人员同样重要。
事实上,市面上的IP核都具有多样化的功能和可选产品。并且,即便用户已经查阅了有关潜在供应商和产品的目录,但在IP质量上也仍然有很大的差别。将真正可靠且胜任的IP与有缺陷、未经过充分测试且缺乏真实性能的IP区分开来的诀窍,是参照活跃的成功用户经验。
嵌入式视觉是一个使用案例仍在开发的、且许多团队在设计项目还未得到充分推进之前都不知道其真实需求的领域。当开始进行视觉处理时,CogniVue公司关注的不仅是有最高质量的IP可提供,而且还包括是否能够确保满足当前和未来对最广泛应用的需求。这些应用包括能够对周边世界进行观察并做出反应的小型智能摄像头、能够观测并避免发生事故的汽车、装在电视上能够进行脸部和手势识别的摄像头,以及能够对周围世界进行观察并给出增强视野的智能手机。要使这种嵌入式视觉技术的新天地成为可能,就需要有一种选择和集成IP的新方法。
图1:采用一个CogniVue APEX2-642内核的、支持视觉的SoC架构实例。
为了有效地实现嵌入式图像的流水线处理和视觉处理算法,CogniVue设计了如图1所示APEX图像识别处理内核。图像识别处理器(ICP)已经在量产之中,并且能够用于包括汽车摄像头(例如Zorg Industries公司为AudioVox公司提供的摄像头)以及一些新型可穿戴式消费类产品(例如NeoLAB Convergence公司的Neo. 1智能签字笔,如图2所示)在内的许多应用。使用专为图像处理所设计的处理器所带来的优势,是推动这些IP不断地集成到这些消费类应用中的动力。例如,一个APEC这样的内核与传统的处理器架构相比,能够在单位面积、单位功耗内为视觉处理提供好100倍的性能。对于NEO.1产品,它能够在维持非常低功耗的同时,提供120FPs速率的处理能力,使得这款电池供电的设备能够在一次充电后持续工作数天。
图2:CogniVue APEC内核为NeoLABCovergence公司的NEO.1智能签字笔提供了强大的处理能力。
要实现这种性能,需要了解有关图像处理需求的基本知识,并采用一种面向客户产业领域需求的详尽的测试和演示方法。任何内核在交付之前,都需要进行广泛的认证,尤其是在诸如汽车等需要符合行业安全标准(如ISO 26262 "Road vehicles – Functional safety")的市场中。
评估IP
虽然这些需求要求进行测试,但对于IP公司还有附加的动力来提供验证和评估平台——这些平台不仅能够显示出功能性和符合性,还能够在不同的等级上执行,以能够凸显其对潜在客户的真实价值。
作为这种动力的一个案例,如果为目前已知的有限且特定的应用创建能够很好执行的视觉IP并不那么困难,这是事实。而我们是要从头开始构建视觉有效性和灵活性的技术,重点是怎样才能确保IP能在多种应用中都以最高的水平执行。并且我们知道多说无用,如果没有真实世界“可观测(eyes-on)”的演示来证明IP的质量和性能,IP的质量及应用适应性可能并不那么显而易见。
对于那些希望对其合作伙伴或客户实现授权的无晶圆厂IP供应商,其挑战是演示在真实世界中运行的真实的IP应用。庆幸的是,FPGA平台与技术世界的其它部分携手实现了不断的飞跃发展,为这种演示活动提供了一种工具。换言之,FPGA能够提供必要的容量和性能来演示:如果IP在下一代定制ASIC中被选用,将会实现何种可能。尽管如此,我们似乎总是处在最前沿,推动着FPGA的容量和性能极限不断前进,并且总是期望达到更多。
FPGA供应商正变得非常擅长软件工具开发,但这些工具将IP的使用和个别FPGA公司紧密联系在一起。现今基于某家FPGA供应商平台上的演示,应该要准备好能够迁移到日后完全不同的FPGA供应商平台上,并能很好地工作。这能够通过内部团队或终端客户推动,并且可能是因为收到包括偏好/熟悉度、传统的基础设施(硬软件组件),以及有时能够提供更快、更少成本、更佳尺寸的新平台等各种因素的组合的推动。此外,公共的RTL代码库必须同时工作在最终的ASIC设计流程和FPGA “IP演示”设计流程中,如图3所示。
图3:IP需要在来自多家供应商的多种ASIC和FPGA原型演示平台上实现。
该工作模型的一个绝佳实例是,CogniVue为实现复杂的IP开发与演示,充分利用Synopsys Synplify工具以及相伴的Synopsys DesignWare IP。Synplify为我们用于交付IP的硅器件提供了卓越的映射能力和逻辑性能。对于初入行的FPGA开发人员来说,这有些违反直觉:确实,供应商应当知道如何最好地将逻辑功能映射到其产品之中。供应商工具正变得非常擅长于为基本开发人员提供他们可能需要的任何东西。在许多案例中,他们如果能够提供最优结果,并不会让我们感到吃惊;但实际上,在一片FPGA中实现一款RTL设计的最初阶段是包括时序和面积优化的逻辑综合。在我们的案例中,我们已经找到Synopsys来帮助解决硬件实现的基本综合问题,它独立于最终的技术映射(无论是FPGA还是ASIC芯片)。
结果证明
对我们来说,与他们在克服这个挑战中所采用方法的价值相关的证明可以在一个事实中找到,即我们常规地致力于代码库,它们总是在推展着可以提供的FPGA器件的极限,而这在仅使用FPGA供应商的工具时并不适合。在这些案例中,在综合之后甚至无需进行布局布线尝试。利用Synplify,通常凭借在目标FPGA器件中减少所需的综合后占位面积和相应的空间,使这些处在边界线的设计得以实现。表1揭示了在一项近期设计中获得的资源利用率数据,它将使用供应商提供的综合和布局布线工具进行的设计,与在相同设计上使用Synplify进行综合、并接着采用供应商工具进行布局布线所获得的资源利用率结果进行了对比。
表1:仅用供应商工具与同时利用Synplify和供应商工具的结果对比。
表1中的一个关键指标是,基于供应商工具综合的设计的利用率为116.91%,不适合该平台上可提供的FPGA器件。这是我们的IP和我们需要持续将设计映射到FPGA上的一个真实案例。从系统和软件开发的角度来看,我们能够重新利用这些FPGA平台是至关重要。
我们也可以为设计创建一个FPGA变体来减少功能并实现契合,但这将与理想情况相距甚远,因为在FPGA中所验证的RTL设计与为集成到ASIC SoC项目中而交付的RTL设计两者之间存在差异。
许多老练的FPGA用户可能会评论说,即便在使用Synplify综合后,在利用率为94.92%的情况下也非常危险,因为在FPGA设计中即便是有较小改动(例如增加几个逻辑门),也可能对总体面积和可实现的时钟速率产生很大影响。然而,我们的经验显示出这个结果已经能够很可靠地予以实现了,并且实现的时钟速率处在我们期望值范围的上端。这当然是提升供应商实现工具质量的一项有力证明。
然后将它们放在一起,该工作模型的结果将为自己来代言。从Synplify到供应商布局布线的流程也工作良好,它不仅提供了更好的结果,还以更少的总运行时间实现了这些结果。由于FPGA供应商的工具在综合阶段有时比Synplify实现相同阶段要快,所以这个优势并不总是立竿见影。然而我们不断看到,在仅采用供应商工具进行综合之后的实现阶段,比用经Synplify优化的网表来完成实现所花的时间要长得多。
由于在仅有供应商工具的环境中上述案例不可能实现,因而该案例不具有代表性。相反,让我们来看另一个常见(大得多的)的案例,CogniVue用这个案例来演示其IP的能力和可扩展性,这个CogniVue IP相当于约2.6M个NAND2 ASIC门。采用Synplify流程来构建该配置及其相关的系统组件(处理器、存储器和互连等),花费了大约4小时20分钟;而仅用供应商工具来实现相同的架构,据我们观察需要大约5个小时45分钟。在时间上长了33%,而得到的结果优化较差。
重定时序和流水线处理
Synplify综合的时间开销会更多的部分原因是,为提升性能,它在后台能提供强大的QOR能力。我们通常用Synplify的两个功能来是显示我们的FPGA平台获得最佳的性能,这两个功能是re-timing和pipelining.
Retiming是对时序元件(例如FLOPS)进行重分配,以更好地平衡逻辑电平和/或它们之间布线距离的过程。在这种方法中,它能够通过缩短可能会降低可实现性能的长路径、并延长会有未使用额外裕量的较短路径,从而改善总体时序。所有这些都没有任何RTL改变,并且从设计的主要输入输出来观测,设计的行为没有任何改变;时序原件的延迟总数维持在相同水平,并且功能操作没有改变。
本文关键字:暂无联系方式DSP/FPGA技术,单片机-工控设备 - DSP/FPGA技术