ASM 图表面上与通常的软件流程图非常相似。但ASM 图表示事件的精确时间间隔序列,而一般软件流程图只表事件序列,没有时间概念,这是两者的根本差别。为了用ASM图描述数字系统的工作过程,首先研究ASM 图示符号。
ASM图有三种基本符号:状态框,判断框和条件输出框。
1、状态框
数字系统控制序列中的状态用一个矩形框表示,称为状态框。框内标出在此状态下实现的寄存器传输操作和输出,状态的名称置于状态框左上角,分配给状态的二进制代码位于状态框的右上角,图1(b)为状态框实例。状态框的名称是S1,其代码是010,框内规定的寄存器的操作是B←A,输出信号是Z。图1中的箭头表示系统状态的流向,在时钟脉冲触发沿的触发下,系统进入状态S1,在下一个时钟脉冲触发沿的触发下,系统离开状态 S1,因此一个状态框占用一个时钟脉冲周期。由此看出,ASM 图内蕴涵着事件序列特性。
控制器的控制命令由控制算法决定,为表示这些输出命令,将其放入相应状态框内,在该状态框内的动作都应在相应该状态时钟结束时或结束以前完成。在该状态期间可以根据需要定义其它输出信号。
2、判断框
当控制算法存在分支时,次态不仅决定于现态,还与现态时的外输入有关,因此需要有表示分支的方法。表示分支的符号以菱形或矩形加 菱形边框表示。判断框表示状态变量对控制器工作的影响,如图2 所示。它有一个入口和多个出口,框内填判断条件,如果条件是真,选 择一个出口,若条件是假,选择另一个出口。判断框不占用时间。
图1 状态框
图2 判断框
3、条件输出框
控制器某些状态只有在一定条件下才能输出。为与一般的状态输出相区别,用椭圆框表示条件输出。条件输出框如图3(a) 所示,条件框的入口必定与判断框的输出相连。列在条件框内的寄存器操作或输出是在给定的状态下,满足判断条件才发生的。在图3(b)的例子中,当系统处于状态S1时,若条件X=1,则寄存器R被清零,否则R保持不变;不论X为何值,系统的下一个状态都是S2。
图3 条件输出框