题目:实现两个串联异步复位的T触发器,具体结构及波形图如下:
这一题比较简单,只要知道了T触发器的特性就比较好解答了。即:输入为1时值翻转(0变成1\1变成0),输入为0时不变。
两个串联设置成两个always块就可以,代码如下
`timescale 1ns/1ns
module Tff_2 (
input wire data, clk, rst,
output reg q
);
//*************code***********//
reg data1;
always @(posedge clk,negedge rst)begin
if(!rst) data1<=0;
else if(data) data1<=~data1;
else data1<=data1;
end
always @(posedge clk,negedge rst)begin
if(!rst) q<=0;
else if(data1) q<=~q;
else q<=q;
end
//*************code***********//
endmodule
顺便复习一下T触发器细节上的结构及特性:
逻辑功能:控制信号T=1时,翻转;T=0时,保持。特性表及特性方程如下:
特性表
特性方程:
而它的逻辑符号图形如下:
事实上,JK触发器的两个输入端连在一起作为T端就可以构成T触发器。