题解 | 异步复位的串联T触发器
`timescale 1ns/1ns
module Tff_2 (
input wire data, clk, rst,
output reg q
);
//*************code***********//
reg q1;
always@(posedge clk or negedge rst)
if(!rst) begin
q <= 1'b0 ;
end else if (q1) begin
q <= ~q ;
end
always@(posedge clk or negedge rst)
if(!rst) begin
q1 <= 1'b0 ;
end else if (data) begin
q1 <= ~q1 ;
end
//*************code***********//
endmodule
T触发器:输入为1时,输出数据取反;
亦可模块化;(修改q为wire型)
`timescale 1ns/1ns
module Tff_2 (
input wire data, clk, rst,
output wire q
);
//*************code***********//
wire q1;
tt t1(
.clk(clk),
.rst(rst),
.t(data),
.q(q1)
);
tt t2(
.clk(clk),
.rst(rst),
.t(q1),
.q(q)
);
//*************code***********//
endmodule
module tt(
input wire clk,rst,t,
output reg q
);
always@(posedge clk or negedge rst)
if(!rst) begin
q <= 1'b0 ;
end else if (t) begin
q <= ~q ;
end
endmodule
查看7道真题和解析
