3.2、时序逻辑电路的设计与分析
时序电路可分为同步时序电路和异步时序电路两大类。分析时序逻辑电路就是对于一个给定的时序逻辑电路,研究它在一系列输入信号的作用下的输出信号,进而说明它的逻辑功能。只要能写出时序逻辑电路的三个方程组就能画出它的特性表、状态图,最终通过特性表和状态图总结出时序电路的功能。
同步时序电路:所有存储单元的状态改变时在统一的时钟脉冲控制下同时发生的。又分为同步复位和异步复位两种复位方式。
触发器
异步复位 |
FDCE |
复位后Q输出0 |
FDPE |
复位后Q输出1 |
同步复位 |
FDRE |
复位后Q输出0 |
FDSE |
复位后Q输出1 |
锁存器
异步复位 |
LDCE |
复位后Q输出0 |
LDPE |
复位后Q输出1 |

同步复位的verilog代码如下所示:
module D_tb(
input clk,
input rst,
input set,
input d,
output q
);
reg q;
always @(posedge clk)begin
if(!rst)
q<= 0;
else if(set)
q<=1;
else
q<=d;
end
endmodule
综合后的原理图为:

异步复位的verilog代码为:
module D_yb(
input clk,
input rst,
input set,
input d,
output q
);
reg q;
always @(posedge clk or negedge rst)begin
if(!rst)
q<= 0;
else if(set)
q<=1;
else
q<=d;
end
endmodule

异步时序电路:没有统一的时钟脉冲,电路状态的改变由外部输入的变化直接引起。
verilog代码如下所示:
module D_yb(
input clk,
input rst,
input set,
input d,
output q
);
reg q;
always @(posedge clk or negedge rst or negedge set)begin
if(!rst)
q <= 0;
else if(set)
q <=1;
else
q <=d;
end
endmodule
原理图如图所示:

3.2.1、摩尔型电路的分析方法

摩尔型时序电路的特点是电路的输出和输入数据无关。如下所示电路图,该电路只有输出没有输入,为同步摩尔型时序逻辑电路图:

根据电路图写出三个方程组如图所示:
驱动方程:
、
、
输出方程:
根据D触发器的特性方程(Qn+1 = D)状态方程:
2、
0、
根据三个方程,将D0、D1、D2取000,那么由D触发器的特性方程知Q0、Q1、Q2也为000,带入状态方程得到新状态
,带入输出方程得Z = 0,由D触发器的特性方程反推得D0 = 1,D1 = 0,D2 = 0。下一次状态更新:Q0 = 1,Q1 = 0,Q2 = 0,带入状态方程得到新状态
,以此类推,得到它的特性表,如图所示:

根据特性表画出状态图:

随着CLK脉冲的到来,电路在七个有效状态中循环输出Z也在0010111七个数中不断循环。该电路是一个可自启动电路,可自启动电路就是时序电路中的所有无效状态经过数个CLK脉冲后都能进入有效状态环。
3.2.2、米里型电路的分析方法

米里型时序逻辑电路的特点是电路的输出信号不仅取决于存储电路的状态,而且还取决于外部输入信号。如下所示电路图:

根据电路图写出三个方程组如图所示:
驱动方程:
、
输出方程:
根据D触发器的特性方程(Qn+1 = D)状态方程:
0、
0
根据三个方程,当X = 0,D0D1 = 00时,那么由D触发器的特性方程知Q0Q1=00,带入状态方程得到新状态
,带入输出方程得Z = 0,由D触发器的特性方程反推得D0 = 1,D1 = 0。下一次状态更新:Q0 = 1,Q1 = 0,带入状态方程得到新状态
,以此类推,得到它的特性表,如图所示:

由此知状态图如图所示:

由状态图知,当外部输入X = 0时,状态Q1Q0转移按00-01-10-11-00循环,因此可以实现模4加法计数器功能,所以该电路是一个同步模4可逆计数器。
参考:锆石教程