【线性序列机-01】- 简介
1.线性序列机的概念
线性序列机(Linear Sequential Machine,简称LSM)本质上也是一种特殊的有限状态机(Finite Statue Machine,简称FSM),二者有一定的联系,但也存在明显的区别。线性序列机的核心原理在于,将时间分割成一个个时钟周期,计数器不断累加这些周期的数量。通过对计数器值的判断和预设的条件,能够明确在特定的计数值时触发相应的操作,改变电平状态、输出数据或者执行其他特定的动作。
线性序列机的状态通常较为简单和线性,按照固定的顺序依次转换。而状态机的状态可能更加复杂,存在多个不同的状态,并且状态之间的转换可能不是简单的线性关系。线性序列机的状态转换相对较为固定和受限,适用于那些状态转换较为简单、有明确顺序的场景。线性序列机和状态机都是用于实现数字逻辑系统中的时序控制和状态转换,都属于控制机的一种,用于产生特定时序信号的方法。
在实际应用中,线性序列机常用于各种数字电路设计,如控制信号的生成、时序接口的设计等。通过巧妙地设置计数器的计数范围和条件判断,可以实现复杂而精确的时序控制,满足不同系统的需求。线性序列机以其基于计数器的简单而有效的时间和操作控制方式,为数字系统的设计提供了一种可靠且灵活的手段。
下图是一个简单的线性序列机,通过对输入的计数,控制输出的电平及时序。
2. 线性序列机的类型
本章节先对线性序列机的类型做初步的分类,后续章节会详细介绍每种线性序列机的特点以及它们之间不同类型的互相组合。
2.1 根据计数优先级划分
根据计数器的计数优先级划分可分为以下3种:
- 加载优先的线性序列机
- 计数优先的线性序列机
- 带请求保持计数优先的线性序列机
2.2 根据计数方向划分
根据计数器的计数方向划分可分为以下3种:
- 向上计数的线性序列机
- 向下计数的线性序列机
- 双向计数的线性序列机
2.3 根据计数长度划分
根据计数器的计数长度划分可分为以下4种:
- 固定长度的线性序列机
- 可变长度的线性序列机
- 长度为2^N的线性序列机
- 长度不为2^N的线性序列机
2.4 根据计数条件划分
根据计数器的计数条件划分可分为以下2种:
- 有条件的线性序列机
- 无条件的线性序列机
2.5 根据请求数量划分
根据计数器的请求数量划分可分为以下2种:
- 单请求的线性序列机
- 多请求的线性序列机
2.6 根据计数器数量划分
根据计数器的数量划分可分为以下2种:
- 单计数器的线性序列机
- 多计数器的线性序列机
2.7 根据触发条件划分
根据计数器的触发条件可分为以下2种:
- 脉冲触发的线性序列机
- 电平触发的线性序列机
3. 线性序列机的输出
线性序列机的输出信号的产生,可以使用当前计数器数值作为输出条件,也可以使用下一拍的计数器数值作为输出条件。使用当前计数器的数值作为输出条件,由于是寄存器输出,在时序上会更好,推荐优先采用当前计数器数值作为输出条件。但如果在请求之后的第一拍就需要输出,则应该采用计数器下一拍的值更稳妥。在特定情况下也可直接使用Request作为输出条件,但这种做法并不是一个很好的方式,具体原因,在后续文章中会给出详细的解释。
上图中,Output A需要在第一拍就有动作,使用Next的值是一个较好的实现方式,Output B可以使用Next,但从时序上分析,使用Current会是一个时序会更好,而Output C只能使用Current作为输出条件。在计数器的值为0时,出于低功耗的考虑,最好不要作为输出条件。
4. 线性序列机的总结
线性序列机适用于各种需要按照特定时间顺序进行操作和信号变化的场景,通过计数器和状态切换来精确控制时序逻辑。但对于复杂的状态转换和灵活的控制需求,可能有限状态机(FSM)会更加合适。
在实际设计中,需要根据具体情况选择合适的方法来实现所需的功能。当处理具有明显时间顺序和规律的任务,如简单的定时控制、固定周期的操作时,线性序列机更为适用。同时,在处理带有明显线性且存在非线性的情况是时,通过线性序列机的组合、嵌套、调用等合理设计也是可以达到预期的。
本文作为【线性序列机】专题的开篇,仅简单介绍了基本概念及相关分类,在后续文章中会详细阐述每种类型的线性序列机的实现方式、应用场景以及各自优缺点,并举例加以说明。