所有的是时序逻辑电路都可以拆成组合逻辑电路+存储
(关于组合逻辑电路的理解可以参考我数电的博客https://blog.csdn.net/y_u_yu_yu_/article/details/127592466)
可以分成两个部分,组合逻辑电路和存储电路。组合逻辑电路的输入一个是x信号一个是当前的状态,这两个信号决定了组合电路的输出结果
组合电路的输出有两个,一个是对外输出信号,还有一个是对下一个状态的激励
三大方程:输出方程,驱动方程和状态转移方程
时序电路的设计过程:在对时序逻辑电路描述的时候,我们说把这三个方程描述清楚,电路就出来了
时序电路设计的方式:
时序逻辑电路的设计多样性和方法多样性举例
例:用VerilogHDL 设计一个“111”序列检测器,当输入三个或三个以上的“1”时,电路输出为1,否则为 0。
第一种:状态转移图描述方式
(1)首先确定电路的输入变量和输出变量。该电路仅有一个输入端和一个输出端,设输入变量为 X,代表输入序列;输出变量为 Z,表示检测结果
(2)因此需要定义四种电路状态
s0一初始状态,表示电路还未收到一个有效的 1
s1一表示电路收到了一个 1
s2一表示电路收到了连续的两个 1
s3一表示电路收到了连续的二个 1
(3)根据状态转移图,编写代码
综合的电路:
第二种:基于状态化简的结构性描述方式
(1)对图 4.3-3 所的状态转移图进行化简,仅剩三个状态,需要用两位二进制数表示,即需要两个D触发器储存状态。设Q1表示高位寄存器的输出,Qo表示低位寄存器的输出。将状态的跳转以及输出Z 用卡诺图的形式示出,
(2)由卡诺图得出带你路有的输出方程和状态方程
(3)根据简化方程编写代码
综合的电路:
第三种:Verilog HDL抽象描述方式
在 Verilog HDL中还可以对电路进行抽象描述。实现序列“111”的检测,可以使用1个三位的移位寄存器,将输入X作为移位寄存器的输入,当寄存器中为111时,输出Z为1。
代码
综合的电路
(1)方法1:用移位寄存器构成
下一篇:Zookeeper系列——概述