题解 | #异步复位的串联T触发器#

异步复位的串联T触发器

https://www.nowcoder.com/practice/9c8cb743919d405b9dac28eadecddfb5

`timescale 1ns/1ns
module Tff_2 (
input wire data, clk, rst,
output reg q  
);

reg data_temp;

always@(posedge clk or negedge rst)begin
if(!rst)
data_temp<=1'b0;
else begin
if(data==1'b1)
data_temp<=~data_temp;
else
data_temp<=data_temp;
end
end

always@(posedge clk or negedge rst)begin
if(!rst)
q<=1'b0;
else begin
if(data_temp==1'b1)
q<=~q;
else
q<=q;
end
end

endmodule

*****************************tb***************************
`timescale 1ns / 1ps
module tb_TFF_2();
 reg  data;
 reg  clk ;
 reg  rst ;

 wire q   ;

initial
begin
clk =1'b0;
rst =1'b1;
data=1'b0;
#20
rst=1'b0;
#40
rst=1'b1;
#10
data=1'b1;
#40
data=1'b0;
#20
data=1'b1;
#50
data=1'b0;
#5
data=1'b1;
#15
data=1'b0;
#400
$stop;
end

always #2.5 clk=~clk;

TFF_2              TFF_2_inst(
.data                 (data),
.clk                  (clk ),
.rst                  (rst ),
                    
.q                    (q   )
);

endmodule













全部评论
点赞
送花
回复 分享
发布于 2023-07-31 20:17 四川

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务