VL2 异步复位的串联T触发器

VL2 异步复位的串联T触发器

设有一个输入T和输出Q,当时钟上升沿时,如果T和Q不相同时,其输出值会是1。(异或 )

这时:Q为1:

mux(T == 1,Q = ~Q,Q = Q)

以上是一个T触发器

verilog代码:

c 复制代码
timescale 1ns/1ns
module Tff_2 (
input wire data, clk, rst,
output reg q  
);
//*************code***********//
reg a ;

always @(posedge clk or negedge rst )begin
if (!rst)begin
    a <= 1'b0;
    q <= 1'b0;
end else begin
    a <= data ^ a;
    q <= a ^ q ;
end
end
//*************code***********//
endmodule

testbench:

复制代码
````timescale  1ns / 1ps

module tff_2_tb();

// Tff_2 Parameters
parameter PERIOD  = 10;


// Tff_2 Inputs
reg        data_T  ;
reg        clk   ;
reg        rst   ;

// Tff_2 Outputs
wire  q           ;    


initial
begin
    clk = 0;
    forever #(PERIOD/2)  clk=~clk;
end

initial
begin
     rst  =  0;
     data_T = 1'd0;
    #(PERIOD*2) rst  =  1; 
    #50 data_T = 1'd0;
    #50 data_T = 1'd1;
    #50 data_T = 1'd0;
    #50 data_T = 1'd1;
    #50 data_T = 1'd0;
    $finish;
end

Tff_2  Tff_2_TB (
   .data(data_T),
    .clk(clk),
    .rst(rst),
    .q(q)
);

endmodule


波形:

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/4a8b34ea2f8649569acc6c47148e31a5.png)
相关推荐
XINVRY-FPGA1 小时前
XCZU47DR-2FFVE1156I XilinxFPGA Zynq UltraScale+ RFSoC
嵌入式硬件·fpga开发·云计算·硬件工程·射频工程·fpga
hfut02883 小时前
systemverilog interface总结
fpga开发
tiantianuser3 小时前
RDMA设计33:RoCE v2 接收模块
fpga开发·rdma·高速传输·cmac·roce v2
博览鸿蒙1 天前
FPGA 开发软件学习笔记分享(内含安装与环境配置)
笔记·学习·fpga开发
希言自然也1 天前
赛灵思KU系列FPGA的ICAPE3原语和MultiBoot功能
fpga开发
Flamingˢ1 天前
FPGA实战:基于Verilog的数码管动态扫描驱动设计与仿真验证
fpga开发
GateWorld1 天前
跨时钟域同步(CDC)握手协议
fpga开发·cdc·asic·跨时钟域同步·握手协议
Flamingˢ1 天前
Verilog中reg与wire的区别:从语法到实战
学习·fpga开发·硬件工程
数字芯片实验室1 天前
边界值测试:一个”==”引发的芯片bug
fpga开发·bug
9527华安1 天前
FPGA实现Aurora8B10B视频转UVC传输,基于GTP高速收发器+FT602芯片架构,提供4套工程源码和技术支持
fpga开发·gtp·uvc·aurora8b10b·ft602