1.D触发器
带清零端的负跳变沿D触发器
Verilog表述
//边沿触发的D触发器
module edge_dff(q, qbar, d, clk, clear);
output q, qbar;
input d, clk, clear;
//内部变量
wire s, sbar, r, rbar, cbar;
//生成clear的反向信号
assign cbar = ~clear;
//输入锁存;锁存器是电平敏感的、边沿触发的寄存器由三个SR锁存器组成
assign sbar = ~(rbar & s),
s = ~(sbar & cbar & ~clk),
r = ~(rbar & ~clk & s),
rbar = ~(r & cbar & d);
//输出锁存
assign q = ~(s & qbar),
qbar = ~(q & r & cbar);
endmodule
2.T触发器
Verilog表述
//边沿触发的T触发器。每个时钟周期翻转一次
module T_FF(q, clk, clear);
output q;
input clk, clear;
//调用(实例引用)边沿触发的D触发器
//输出q取反后反馈到输入
//注意D触发器的qbar端口不需要,让它悬空
edge_dff ff1(q, , ~q, clk, clear);
endmodule
3.四位脉动计数器
Verilog表述
module counter(Q , clock, clear);
output [3:0] Q;
input clock, clear;
T_FF tff0(Q[0], clock, clear);
T_FF tff1(Q[1], Q[0], clear);
T_FF tff2(Q[2], Q[1], clear);
T_FF tff3(Q[3], Q[2], claer);
endmodule