RTL 平面级视图
verilog 代码
`timescale 1ns/1ns
module Tff_2 (
input wire data, clk, rst, output reg q
);
reg tf_1;
always@(posedge clk or negedge rst)
begin
if (!rst)
begin
tf_1 <= 0;
end
else if(data)
begin
tf_1 <= !tf_1;
end
else
begin
tf_1 <= tf_1;
end
end
always@(posedge clk or negedge rst)
begin
if (!rst)
begin
q <= 0;
end
else if(tf_1)
begin
q <= !q;
end
else
begin
q <= q;
end
end
endmodule
仿真波形:
T 触发器在 CP 时钟脉冲控制下,根据输入信号 T 取值的不同,具有保持和翻转功能的触发器,即当 T=0 时能保持状态不变,当 T=1 时一定翻转的电路。
Data 数据流输入做第一个 T 触发器的 T 取值;
Tf_1 为第一个 T 触发器的输出,同时用于第二个 T 触发器的 T 取值;
起始 reset 将第一个 T 触发器 tf_1 和第二个 T 触发器 q 置零。