在了解了这么多时序逻辑的抽象概念之后,我们来研究怎么把它们变成实际可操作的逻辑设计方法论。
一般来说,如果已经给出需求,时序逻辑设计有如下几步:
- 把自然语言描述的逻辑抽象化,确定电路状态数,画出状态转换图;
- 确定使用的触发器,列出三个方程:输出方程、驱动方程、状态方程;
- 设计具体电路。
直接从具体案例分析。现在的需求是:
设计一个自动售饮料机的逻辑电路。它的投币口每次只能投入一枚五角或一元的硬币。累计投入一元五角硬币后机器自动给一杯饮料;投入二元硬币后,在给饮料的同时退回一枚五角的硬币。 [1]
一、定义变量与状态
逻辑设计的过程和组合逻辑大致相同,首先要定义各个变量。此处有两个输入:投入五角硬币
-
:无投币;
-
:共投入了五角,等待继续投币;
-
:共投入了一元,等待继续投币;
可能在一开始,会觉得投入了一元五角和两元也是状态,但实际上它们并不是可维持的状态。比如当电路处于