状态机类型
存在两种类型的状态机,分别为mealy型状态机和moore型状态机,在实验中,二者的大体实现如下:
其中从输入到输出的连线只有mealy状态机才有,而moore型则无此线。
区分两种类型的状态机的方法
- mealy的输出由输入和当前状态决定;moore的输出只由当前状态决定
具体体现在时序中时,我们知道在一个时钟周期内状态机的输出状态不会改变,因此moore的最终输出也不会改变;但当周期内的输入变化时,mealy的输出却可以改变。因此,当题目要求输出保持一个周期时,选择moore无疑。
- mealy的输出是比moore更快的。举一个例子:状态机由state3->state4时,如果我们希望state4输出高电平,那么moore会在寄存器的输出端输出为state4时变为高电平,但mealy只需要在当前状态为3(无论时钟)且输入为使state3转变为state4时即可变为高电平。
时序逻辑的辨析
如图,是两种寄存器的初始化方式。观察可以发现,他们都是采用counter(max_value = 0x1,stay at value),从而在第一次时钟上升沿前完成舒适化,但不同的是二者的mux摆放位置,这带来的影响是:
- 当初始化mux放在寄存器前面时,实现了第一时钟上升沿寄存器的输出为初始化的值。
- 当初始化mux放在寄存器后面时,实现了第一次时钟上升沿寄存器的输出便为初始化状态更新后的新状态。
因此mux置放于register后总会比放于register前输出块一个周期,二者的选择取决于具体题目,例如:当我们将状态采用独热码编号时,我们的初始状态可能为state0 = 00001,而我们又希望从第一次时钟上升沿开始就从state0进行转移,就应该采用mux放于register后的方法。
同步复位与异步复位
上面为同步复位,下面为异步复位。
不常用的元器件简介
- pull resistor(拉电阻),
长得像弹簧一样的玩应
作用:和输入端相连,使浮空值变为高电平或低电平或error
- transistor(晶体管) 用于模拟开关,使用方式和controlled buffer有点像。
- decoder(解码器) 相当于一个没有输入的dmx(多位分配器),只是输出的为1。
- bit selector(比特选择器)将选择的比特位上的数值输出(比特位0下标)。
- bit adder 输出一个数字共有多少位是1。
- bit finder 找到0和1在最高位或者最低位出现的位置并输出。
- ram和rom 都是存储器,不同的是rom只能存储,不能写入。