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)边沿检测
异步复位的串联T触发器
一、题目描述
题目来源:牛客网Verilog快速入门
二、解析与代码
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