中文 英语
系统与设计
的意见

可编程电路中的有限状态机合成

为什么pld对低功耗设备如此重要,以及如何优化它们。

受欢迎程度

嗯,夏天来了又走了;对我们大多数人来说,这是一个放松和反思我们工作实践的时间。我们能做些什么来取得更好的结果?我们能做些什么来打破做这么多修订的常规呢?

对我来说,暑假期间我的一个思考就是回想我在西里西亚科技大学(Silesian University of Technology)与同事一起工作时学到的一个技巧。

CMOS技术在数字电路的所有应用中占据主导地位。CMOS数字电路所消耗的功率是静态功率和动态功率两部分的总和。静态功率是所使用技术过程的一个特征,与稳态下的泄漏电流有关。CMOS门所消耗的动态功率与门输出的平均开关活动成正比,这描述了门输出状态变化的频率。因此,在适当的逻辑综合过程中,动态功率分量可以被考虑并最小化。

以能源效率为导向的逻辑综合的本质要求找到一种使状态转变数量最小化的电路结构。

开关全球时钟网络是由CMOS VLSI电路耗散的总功率的重要部分。这就是为什么许多工程师试图阻止时钟信号来实现同步电路中的功耗降低。

可编程逻辑器件(pld),特别是现场可编程门阵列(fpga),构成了一个相对较新的和快速发展的数字电子学分支。不断增长的逻辑容量和适中的价格使pld成为一个有吸引力的平台,不仅是原型,而且是短批量和中批量生产。

然而,在考虑能源效率的设计时,如何在给定的PLD架构中最好地映射逻辑结构(资源)并不总是显而易见的。特别是,实现时钟门控是困难的,因为PLD电路包含专用的时钟网络,不包含任何门控元素。在PLD结构中“禁用”时钟信号可以通过两种方式来实现:首先,通过利用内存元件的“启用时钟”输入,其次,通过使用本地时钟线或通用路由资源(允许插入逻辑门)分配时钟信号。

节能fsm的逻辑综合

图1:示例FSM的D函数

让我们考虑一个简单的四状态机(图1),它被编码为“one-hot”(图2)来可视化这个想法。我们将使用Keep It Simple, Steel (KISS)格式将其从HDL级别抽象出来。每个FSM都可以实现为一个HDL模型。

状态转换函数需要分解为两个部分:一个描述触发器状态的预期变化,进一步称为“D函数”,另一个检测变化发生的时间(这将称为“EC函数”)。


图2:图1中FSM的单热状态分配


图3:图1所示的EC函数。

通过对编码的FSM进行简单的分析,可以很容易地得到EC函数。每次触发触发器状态的变化时,都需要激活相关的EC函数。但是,如果触发器状态没有变化,则EC函数是不确定的。在已知EC函数之后(图3),确定D函数也很简单。如何提取EC函数?一件容易的事。如果我们使用Riviera-PRO,我们可以简单地切换FSM覆盖技术(图4)。存储在ASDB中的结果可以很容易地导出到SAIF或VCD文件,以使用硅供应商工具估计功耗。高FSM或切换覆盖结果对于基于模拟的功率估计非常重要。最可信的结果可以获得100%的开关覆盖后拟合门级结构(图5)。


图4:Riviera-PRO中的有限状态机。


图5:FSM在Riviera-PRO中的覆盖范围

结论
每个项目都可以使用现代EDA工具来实现,它们通常会提供非常好的结果。当然,一个真正的fpga忍者可以实现更多!当我们闭上眼睛思考这些人的时候,我们想象的是极客们坐在白板前,或者是用命令行操作的电脑前。这不是真的!EDA供应商提供的工具不仅对新手有用。它们将枯燥乏味的过程自动化,这样你的想象力就成为唯一的限制。

在一份白皮书中概述了一种简单的节能fsm合成方法,可在此找到在这里.我鼓励你熟悉一下这篇论文。这个想法包括使用本地时钟门控来选择性地阻塞时钟信号,如果不需要内存元素的状态转换。本研究主要针对以可编程逻辑器件为实现平台的逻辑电路,但结论可应用于任何同步电路。从实验中获得的结果对于时钟门控方法是最引人注目的。这是现代EDA工具如何帮助我们不仅在自动化层面,而且在设计和方法论阶段提供更好的解决方案的另一个例子。



留下回复


(注:此名称将公开显示)

Baidu