术语和定义
参考文献
https://www.dialog-seminile.com/configurable-mixed-signal..
- GreenPAK设计软件,《软件下载及用户指南》,Dialog Semiconductoryabo国际娱乐
- GreenPAK开发工具那GreenPAK开发工具网页,对话半导体yabo国际娱乐
- GreenPAK应用笔记那GreenPAK应用笔记网页,对话框半导体yabo国际娱乐
- AN-CM-237 SLG46880 / 1 F(1)块,应用说明,Dialog半导体yabo国际娱乐
- 动态内存块,应用笔记,Dialog Semiconductoryabo国际娱乐
作者:亚历山大·理查森
介绍
yabo国际娱乐Dialog半导体公司发布了SLG46880和SLG46881GreenPAK™ICs。本应用程序说明以广泛的方式关注异步状态机(ASM),其中的离散部分专门介绍与以前相比添加的或显著更改的ASM块GreenPAK设备。
一些区别于该SLG46880和SLG46881集成电路的最显着的特点以前发布GreenPAKic在ASM内。首先,SLG46880和SLG46881包含12个州;比以前的GreenPAKs拥有更多的州。此外,ASM现在包含几个新的状态依赖块;动态存储器,一个F(1)计算宏单元,和一个额外的,重新设计的ASM输出块。这些额外的状态和额外的块使用户能够创建更多的模块化设计,从而降低复杂性和功耗。
异步状态机
SLG46880和SLG46881都包含12个异步状态,并且比以前更灵活地将状态绑定在一起GreenPAK设备。作为ASM的一个例子,使用SLG46880的太阳能电池板状态机显示在图1.
上面显示的太阳能电池板状态机使用了所有12种可用状态,这让用户最大限度地选择节能、过渡之间的延迟和不同的操作模式。图1还展示了“Move&TestX”和“Move&TestY”块中的新功能;一个状态是能够自我转变的!测试和检查操作,以及其他迭代操作,很容易完成,并且需要更少的块。
配置美国
状态的配置方式与以前的兼容asm相同GreenPAK设备。首先,使用顶部工具面板中的ASM编辑器按钮打开ASM窗口(图2).如果还没有定义状态,ASM编辑器将显示两种未连接状态。要连接两种状态,选择一种状态的外圈,然后单击第二种状态的圆环。 |
|
当的状态下连接到另一个,所选择的第一状态将总是初始状态,并且所述第二已转换状态。状态可以通过对第一和第二点击既选择所述状态的外部环被环到自身。没有限制到其上状态可以转移状态的数目;状态可以转换到所有12个州,也可能过渡到无。
要重命名一个状态,只需双击状态圈的内部,或选择该状态,从左侧的属性工具栏访问“状态名称”设置。从默认状态重命名状态是确保正确进行状态转换的好做法;当12个状态被命名为“State1”到“stat12”时,一个12个状态的过程可能会变得令人困惑。
状态转换
ASM状态变化通过在ASM子系统块高信号,在组件列表中找到触发。在此之前选择此选项,确保您的ASM状态都被正确连接在ASM编辑器。一旦ASM子系统组件已签标注在组件列表中,一个框会出现在你的GreenPAK设计工作台国家相关项目部分。这个新的模块将显示,其目前的状态可以转移其他可用的状态。图4示出了从“夜”状态的ASM子系统块图1例子;“夜间”状态唯一可用的过渡是“低功耗”,这将发生在DM0_0 (NightTimer) DM块中实现的6小时计时器的上升沿。下一节将概述动态内存块的使用。
ASM的过渡时间
在考虑状态机的异步行为时,需要记住几个关键因素:
- 没有时钟源是必要的,它只是反应以输入信号。
- 输入信号必须大于最小有源高脉冲宽度。最小时间是12到28纳秒,取决于VDD。
- 输入信号不必彼此同步,宏单元将对状态转换的最早有效信号作出反应。
- 如果信号恰好在同一时间出现,将无法确定哪个状态接管。然而,从原始状态改变是绝对会发生的。
- 宏单元只在状态转换时消耗能量。
- 如果一个状态过渡到另一个状态,并且过渡的条件已经满足,在过渡到第三状态之前,第二状态的总时间将是Tst_sequential_delay,名义上额定为0.2到0.5微秒。
- 这可能会创建一个闭环,在这个闭环中,两个或多个状态快速而连续地相互循环。就像编码时一样,这种行为可能是不受欢迎的,应该在决定状态转换的条件时加以考虑。
关于异步计时行为的更多信息可以在SLG46870/71/80/81数据表的16.7部分查看,可以在线获取。
新块概述
一些新的块已经在SLG46880和SLG46881被引入。关于状态机的操作,几个动态内存[DM]组件,一个F(1)宏小区计算块,以及两个输出ASM块已被添加。这些功能块的状态的操作,它具有节能组件,电源,和复杂的利益有较大的差异。
若要更深入地了解DM或F(1)块,请查看相关的应用程序说明。以下概述部分是来自这些应用程序注释的信息的浓缩视图。
DM块
AN-CM-236 SLG46880/1 Dynamic Memory Block介绍了SLG46880/1的DM (Dynamic Memory Block)模块及其使用方法。
DM块的主要优点是,它们可以重新配置,以在SLG46880/1的12态ASM的不同状态下执行不同的功能。这使它们成为一个非常灵活的组件,因为它们可以在状态0中以一种方式使用,在状态1中以另一种方式使用。
例如,在太阳能电池板用例图1,“夜”状态和“清除”状态中的DM CNT / DLY块可能会有所不同。这两个国家最终过渡到“低功耗”,这与以“导通检查”的周期性过渡阳光检查,但“雨”不妨几分钟或几秒钟内切换,而“夜”的状态可能要闲置切换到“低功率”状态之前小时。
在Dialog GreenPAK SLG46880/1中有4个DM块。未配置的DM块显示在图5.SLG46880/1中的所有DM块都具有以下资源:
- 2个查找表:一个3位查找表和一个2位查找表
- 2多路复用器
- 1问/海底
- 输出1块
图6显示带有彩色连接器的相同DM块。(这些颜色不出现GreenPAK设计内,但是它们仅仅是用于说明目的。)绿色连接器被输入到从基质中DM块。橙色连接是DM块内的专用连接,无法更改或移动。蓝色连接器是计数器块的时钟连接。紫色连接器可以被用来触发的状态转换,而不是一般的矩阵连接。黄色连接器是DM块的矩阵输出。
每个DM块可以有多达6种不同的配置。任何DM块配置都可以用于ASM的12个状态中的任何一个,但每个状态每个DM块只允许一个配置。
F(1)计算宏单元
AN-CM-237 SLG46880/1 F(1)模块描述了如何使用SLG46880/1中的F(1)计算宏单元。
计算宏单元格(图7)是一个新组件,用于在状态转换期间执行预定的操作序列。这个宏单元提供多达4个不同的F(1)计算,每一个都能执行多达12个命令,并在其寄存器中保存16位。可用命令列表显示在表1.指定LOAD或OUT的命令对应于F(1)块的可配置输出,如图7.
的F(1)块具有4个从可多工成用于F(1)块的专用模拟比较器的正输入各个引脚来模拟输入。
命令 |
指令名字 |
命令的描述 |
---|---|---|
0000. |
LOAD1 |
将一个1位的值加载到内存堆栈的顶部(位置0)。在执行此命令期间,所有其他的值都向下移动1个位置,位置15的值将丢失。通过负载1命令加载的数据被在负载1寄存器,它定义了值是从这样加载的销中,F(1)比较器等定义 |
0001. |
LOAD2 |
将一个1位的值加载到内存堆栈的顶部(位置0)。在执行此命令期间,所有其他的值都向下移动1个位置,位置15的值将丢失。Load 2命令加载的数据是在Load 2寄存器中定义的,该寄存器定义了从哪里加载值,比如一个引脚、f(1)比较器等。 |
0010 |
LOAD3 |
将一个1位的值加载到内存堆栈的顶部(位置0)。在执行此命令期间,所有其他的值都向下移动1个位置,位置15的值将丢失。Load 3命令加载的数据是在Load 3寄存器中定义的,它定义了从哪里加载值,比如一个引脚,f(1)比较器,等等。 |
0011 |
LOAD4 |
将一个1位的值加载到内存堆栈的顶部(位置0)。在执行此命令期间,所有其他的值都向下移动1个位置,位置15的值将丢失。Load 4命令加载的数据在Load 4寄存器中定义,该寄存器定义从哪里加载值,比如一个引脚,f(1)比较器,等等 |
0100 |
和 |
执行一个合乎逻辑的和内存堆栈的顶部两个地点(位置0和位置1)。在执行这个命令,这两个值在前两个堆栈位置删除,和逻辑上的结果是推动堆栈(位置0)。在这个过程中,所有其他栈中的值1转移了位置,0载入位置15。 |
0101 |
或 |
执行逻辑或内存堆栈的顶部两个地点(位置0和位置1)。在执行这个命令,这两个值在前两个堆栈位置删除,和逻辑或结果被推在堆栈(位置0)。在这个过程中,所有其他栈中的值上移1位置,0载入位置15。 |
0110 |
XOR. |
执行逻辑XOR在存储器堆顶部的两个位置(位置0和位置1)。在该命令的执行,在顶部的两个栈位置的两个值被删除,并且逻辑XOR结果被压入堆栈(位置0)的顶部。在此过程中,堆栈中的所有其它值被上移1个位置,并且0被在位置15加载。 |
0111 |
发票 |
执行一个INV (logical Invert)到内存栈的顶层位置(location 0),执行此命令时,删除栈顶位置的值,并将逻辑INV结果推到栈顶。对堆栈中的所有其他值没有影响。 |
1000 |
PUSH0 |
推动一个0到存储器堆栈(位置0)的顶部位置。该命令的执行期间,所有其它值被向下移位1个位置,并且在位置15的值被丢失。 |
1001 |
pop |
在该命令的执行,在堆栈中的值被上移1个位置,并且0被在位置15加载。 |
1010 |
延迟 |
f(1)计算微单元的命令执行被延迟一段时间,延迟时间由延迟函数的配置所定义。一旦这个时间周期完成,将执行下一个f(1)指令。 |
1011 |
循环与延迟 |
如果内存栈的顶部位置(位置0)等于0,则f(1) Macrocell中的命令执行被延迟一段时间,延迟时间由延迟函数配置中定义,然后在指定的跳转位置执行f(1)序列。如果内存栈的顶部位置(位置0)等于1,则f(1)宏单元继续按顺序执行下一个命令。 |
1100 |
着干活 |
输出上矩阵输入OUT1在存储器堆的顶部位置(位置0) |
1101. |
OUT2 |
输出上矩阵输入OUT2在存储器堆的顶部位置(位置0) |
1110. |
OUT3 |
输出上矩阵输入OUT3在存储器堆的顶部位置(位置0) |
1111. |
结束 |
f(1) Macrocell立即结束命令的执行,并将控制返回给ASM
宏单元 |
F(1)块的堆栈可以作为F(1)块中运行的命令的数据源或数据目的地。LOADx命令将把数据向下推入堆栈。OUTx命令将从堆栈中检索数据,并将内容发送到连接矩阵的三个输出之一。这个内存的内容在状态转换期间不会改变,只有F(1)计算宏单元本身内部运行的命令才会改变。
INTERRUPT信号用于停止所有宏单元操作并将控制返回给ASM。INTERRUPT还可以用来重置宏单元的内存。
要创建一个新的F(1)配置,可以通过单击Components List中的F(1)复选框在工作区中显示它。然后双击F(1)块,打开它的属性面板。
通过点击在属性面板右上方绿色的“+”按钮,创建一个新的F(1)配置。您可以重命名配置,以任何你想要的,但对于本应用笔记,我会留在原地的默认配置的名称。
对于每个F(1)配置,您可以选择是否需要一个中断来重置堆栈的内存。您还可以为每个F(1)块的3个输出选择初始状态。OUTx初始状态的选项有:keep、0、1和none。
ASM输出模块
SLG46880和SLG46881 ASM outpu0和ASM OUTPUT1块可用于创建特定状态的信号,这些信号被发送到IC设计的其余部分。ASM OUTPUT0 (图8)包含4个输出信号,ASM OUTPUT1包含8个输出信号。这些信号是理想的改变逻辑外DM块,或调节功率到更大的设备,如比较器。
ASM OUTPUT0块,显示在图8,有4个输出,可用于将依赖状态的输出连接到矩阵的其余部分。然而,ASM OUTPUT1只能直接发送状态依赖的信息到IC的GPO。
图形用户界面的更改
由于状态相关项的增加,图形用户界面(GUI)已更改以方便使用。中概述了几个新的GUI特性图9下图:
- 状态窗口选择(黄色)
- ASM资源管理器(蓝色)
- 状态从属项(红色)
状态窗口选择
高亮显示状态的按钮,如“已关闭”图9,表示在GreenPAK设计工作台所示的电流状态。从标签中选择另一个状态将GreenPAK设计工作台切换到选定状态。
ASM资源管理器
ASM资源管理器显示与状态相关的项的当前可用配置数量,例如DM块和F(1)宏单元。状态依赖块的可用组件数量如下:
- DM块:每个DM块包含6种配置
- F(1)宏单元:4配置
- 矩阵接口单元:4个MIx配置寄存器,每个都有3个独特的配置,允许12种可能的组合
尽管总资源配置是有限的,但任何数量的状态都可以使用相同的资源,这意味着F(1)宏单元可以在几个状态中使用一个函数,或者在两个或更多类似状态中使用一个DM延迟块。
状态依赖项
状态依赖项包括所有可能因为状态变化而改变的项,如DM和F(1)块。ASM资源管理器中显示的任何ASM块都将出现,并保持在状态依赖项窗口中。
状态依赖项可以通过选择可见块来配置,然后导航到块的属性窗口。“配置”选项,用红色圈出来图10,显示F(1)块在选定状态下的当前配置。要创建一个新的配置,只需按下绿色的加号按钮,然后从下拉菜单中选择一个不同的配置(或选择没有配置)。选择红色减号按钮将完全删除配置,这可能会影响其他状态,但也将释放ASM资源。
结论
SLG46880和SLG46881具有广泛可配置的异步状态机,允许用户在使用较少组件的情况下开发更复杂的设计。以前greenpak的许多变化使得新的SLG46880和SLG46881如此吸引人,这些变化可以归功于异步状态机的新实现,与以前相比,现在可以容纳更多的状态和更多的状态配置GreenPAK设备。动态内存、F(1)计算宏单元和其他新功能为用户的工具包添加了关键元素,以帮助节省功耗和复杂性。