随着晶体管体积的逐渐缩小,漏电流浪费的电力也在呈指数级增长,再也不能忽视了。设计采用各种低功率设计技术减少动态和漏耗功率。至今,设计对这些低功率技术几乎没进行任何验证,而是依靠后端工作或网表仿真发现问题。然而,这些方法只在设计流程后期使用,导致了很多工程变更单(ECO)。而且,功能性缺陷也随这些技术一起被引入。虽然检测这些缺陷已不成问题,但尽早发现设计循环中的这些缺陷将节省大量时间和资金(无ECO)。通用功率格式(CPF)提供了一个执行低功率验证的界面。
1、低功率设计技术
随着设计向越来越小的技术(90nm、65nm、32nm等)发展,漏电流已成为整体功耗的一个重要因素。设计正采用新方法和新设计技术来降低漏电流,包括功率门限、逻辑隔离、状态保留以及时钟门控。这些技术的目的就是降低设计中的功率或时钟,而这些功率或时钟无需在特殊的低功率模式发挥作用,从而节省功率。这些技术的负面影响是,它们可能改变设计的功能性并带来一些致命的缺陷。因此,这些缺陷的检测不仅很重要,而且要尽早地在设计过程中检测它们,以节省成本和时间。
设计或SoC的功率意图在设计过程后期才进入人们的视线。只有当后端流开始时,才进行有关功率的检查。系统架构师设定功率意图,然而等到它达到后端流时可能已失真。RTL及其验证容易忘记有关功率的功能性,且从来不检查。可以说,只有功率意识检查是为时钟门控进行的。由于RTL不包括隔离、电池、电平位移器、功率管脚等,因此这些不在仿真中验证。通常情况下,设计的功率意图由共形低功率(CLP)捕获并验证,而CLP需要一个网表,甚至是一个更好的电源连接网表。在这一阶段发现的任何缺陷都可导致ECO,而纠正ECO需要大量的时间、精力和芯片。
门级逻辑仿真(GLS)也在设计过程后期进行,因此可能导致大量的ECO。这正是CPF得以施展身手的地方。有了CPF,我们可以验证RTL级中的上电时序和隔离的动态特征,这里发现的缺陷也可轻松纠正。然而在介绍基于CPF的设计流程前,我们要看一些低功率设计的基本要素。
2、低功率设计要素
任何低功率设计必须验证下列功能,确保它们正确发挥功能且不影响任何其它功能。
(1)隔离
隔离是指把从OFF域到ON域的信号值保持为已知的非活动值,这样任何未知的值不会中断ON域的运行。可使用三种类型的隔离:
(1)高隔离,其中信号被隔离为值1。
(2)低隔离,其中信号被隔离为值0。
(3)保持隔离,其中保持信号在进入低功率模式前的值。
验证工程师应确保隔离电池不会由可换向电源供电,否则它们将不会实现目标。
(2)保留
当系统需要其状态在激活后与关闭前保持一致时,需要保留功能。这种电池有助于从低功率模式中更快速恢复。如果需要,移除VDD可让这些电池完全断电。
尽管在设计中采用这些电池可在断电期间减少漏耗功率,但它也在需要时维护了寄存器的值。对验证工程师来说,它增加了一些额外工作,因为他或她必须确保在断电前启用保留(即在推上电源开关前驱动保留信号。
(3)电平位移器
电平位移器用于从一个功率域过渡到另一功率域的信号。虽然CPF指定了应拥有电平位移器的信号,但是电流仿真器不会仿真电平位移器;因此我们不会确认电平位移器是正确的还是电平位移器丢失。这最好采用CLP执行,不在本文的讨论范围之内。
(4)上电时序(或功率周期)
任何带有可转换功率域的设计都有一个功率周期。功率门控是降低耗散功率最有效的方法之一。当从SoC中的一个块断开电源时,其输出开始浮动并需要被隔离,防止它们中断always ON逻辑。当恢复电源时,隔离被移除。任何低功率设计中的功率周期都有以下四个阶段:断电顺序、电源OFF状态、上电顺序、电源ON状态。
(5)断电顺序
这是一个每当SoC的正常操作电压被移除时都会出现的顺序。在这种条件下,设计应确保在电压被完全移除前,来自OFF域的信号被隔离,关键触发器/存储器被保留。在这里,验证工程师的任务是检查所有所需的信号是否正被隔离或保留,且遵守断电顺序。如果电源可以在应用隔离前移除,未知值就能进入always ON域中。这将增加漏电流,因此确保SoC不会被错误地断电很重要。
(6)电源OFF状态
在电源顺序的这一阶段,大部分SoC都是关闭的。只有那些旨在OFF状态下运行的构造块在消耗功率(如从电池中)。这些电源接通的构造块对来自OFF域的信号非常敏感。验证工程师需要检查是否正确应用了所有的隔离值,以及任何信号都没有丢失隔离。例如,如果信号被隔离为活动状态,它可能导致always ON逻辑,从而做出错误行为甚至挂起。
(7)上电顺序
这是一个当SoC电源接通时(即电源开关为开)出现的顺序。在该阶段,设计需要确保在移除隔离和保留前电源是稳定的,同时确保主输入/输出的电源接通先于SoC内核的电源接通。在这里,验证工程师必须检查应用电源的排序、隔离/保留的移除以及上电逻辑输出是否被正确驱动。上电顺序可能需要重启系统,因此验证工程师应检查逻辑是否被正确生成及逻辑是否未丢失(不重启)。
(8)电源ON状态
这是SoC的正常运行状态。SoC应能够以它在进入低功率模式前的相同方式工作。验证工程师应确保正常操作可以在电源接通且隔离保留被完全移除后重新开始。验证工程师还应检查CPU能否再次激活,并在开始正常操作前,检查它是否已服务于低功率模式期间发生的任何中断。任何在低功率模式期间保持状态的存储器都应通过重新读取,检查内容有效性。
3、基于CPF的设计流程
(1)什么是CPF?
CPF是一种文件格式,在该格式中,设计的整个功率意图被捕捉。它是一个在设计、验证和后端流程的各个阶段使用的文件。它是一个基于Tcl且易于编辑的文件。大部分工具都可以读取CPF,因此确保了设计中一致的功率意图。该文件包括低功率架构描述,如哪些域可以关闭,哪些可隔离、哪些寄存器可保留等。除了这一信息外,CPF文件中还包含了功率控制信号,它控制着保持、隔离和转换功率的时间。
(2)基于CPF的设计流程
当CPF进入人们的视线时,设计流程需要轻微改动。该设计的功率意图由系统架构师和系统集成商指定。CPF文件在架构定义阶段创建,并采纳了RTL集成商的建议。该CPF文件是设计周期中所有功能的信息来源。功能性验证使用该文件作为检查设计是否具有正确的上电时序、隔离和保留的参考。当用CPF文件运行仿真时,同一RTL(没有任何与功率有关的实施)将被仿真,就像整个功率意图都出现了一样。
在实际实施阶段,CPF由后端工具使用,在设计中插入功率门控逻辑、实际隔离和保留电池。这个与电源连接的网表被再次采用CLP进行验证,CLP通过读取CPF文件生成限制。这样,CLP就可以用于验证实际实施以及CPF文件本身。采用CPF文件的门级逻辑仿真将验证与电源连接的网表的动态行为。