Verilog快速入门(2)—— 异步复位的串联T触发器

Verilog快速入门

(1) 四选一多路器
(2)异步复位的串联T触发器
(3)奇偶校验
(4)移位运算与乘法
(5)位拆分与运算
(6)使用子模块实现三输入数的大小比较
(7)4位数值比较器电路
(8)4bit超前进位加法器电路
(9)优先编码器电路①
(10)用优先编码器①实现键盘编码电路
(11)8线-3线优先编码器
(12)使用8线-3线优先编码器实现16线-4线优先编码器
(13)用3-8译码器实现全减器
(14)使用3-8译码器①实现逻辑函数
(15)数据选择器实现逻辑函数
(16)状态机
(17)ROM的简单实现
(18)边沿检测



一、题目描述

题目来源:牛客网Verilog快速入门

串联T触发器

二、解析与代码

1、T触发器介绍

T触发器是一种边沿敏感的存储单元。只有一个信号输入端T,在时钟有效边沿到来时,T端输入有效信号,则触发器翻转,否则触发器保持不变。因此T触发器能够实现有效的计数功能,常用于实现数字计数器。
T触发器逻辑功能为:

当T=0时,触发器状态不变Qn+1=Qn;
当T=1时,在脉冲有效边沿到来时翻转。

触发器的特性表如表1-1所示:

T Q n + 1 Q_{n+1} Qn+1
0 Q n Q_n Qn
1 ∼ Q n \sim Q_n Qn

由触发器的特性表可以得特性方程以及状态转换图:

图1-1状态转换图
在这里插入图片描述

2、代码

`timescale 1ns/1ns
module Tff_2 (
input wire data, clk, rst,
output reg q  
);
//*************code***********//
reg tmp;
always@(posedge clk or negedge rst)begin //异步复位
    if(!rst)
        tmp <= 0;
    else if(data) 
        tmp <= ~tmp;
    else
        tmp <= tmp;   
end

always@(posedge clk or negedge rst)begin
    if(!rst)
        q <= 0;
    else if(tmp) 
        q <= ~q;
    else
        q <= q;   
end
//*************code***********//
endmodule
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值