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)
相关推荐
xxLearn1 小时前
Vivado 2025.2 下载程序时提示:“ERROR : invalid command name ps7_init“
fpga开发
科恒盛远10 小时前
【无标题】
fpga开发·硬件工程·信号处理
千寻xun1 天前
一、理论篇-NVME协议学习笔记
笔记·学习·fpga开发·nvme ssd·nvme协议
nuoxin1142 天前
HR4988替代A4988-富利威
网络·人工智能·嵌入式硬件·fpga开发·dsp开发
一口一口吃成大V2 天前
vivado的bit 和 bin的区别
fpga开发
尤老师FPGA3 天前
HDMI数据的接收发送实验(十八)
fpga开发
北京青翼科技3 天前
青翼科技 JFM7K325T FPGA+FT-M6678 DSP 的全国产化信号处理平台丨FPGA开发板
fpga开发·数据采集卡·fmc子卡·fpga开发板·ad采集卡·图像处理卡·dsp信号处理
zlinear数据采集卡3 天前
从0到1硬核拆解:工业级数据采集卡的隔离设计与Modbus通信实战
arm开发·单片机·嵌入式硬件·fpga开发·开源
FakeOccupational3 天前
fpga系列 HDL:Microchip FPGA开发软件 Libero Soc FPGA 在线逻辑分析
fpga开发
FPGA技术联盟4 天前
如何在跨时钟域分析中处理好复位信号?
fpga开发