牛客网Verilog快速入门题目收获——异步复位的串联T触发器(VL2)

一、题目要求:
给出信号示意图以及波形示意图,用verilog实现两个串联的异步复位的T触发器的逻辑。

二、完成题目前的知识储备
1、书写规范
根据verilog代码书写规范,低电平复位信号用 rst_n ,高电平复位用rst。(这里题目低电平复位,但是仍用的rst,要注意),另外根据波形即可判断是低电平复位还是高电平复位。
2、关于异步复位和同步复位

  • 同步复位:复位信号与时钟上升沿有关,复位信号只有在时钟上升沿到来的时候才有效,否则无法完成复位操作。
 always@(posedge clk)
 begin
     if(!rst_n)begin
...
    end
    else 
end
  • 异步复位:无论时钟上升沿是否到来,只要复位信号有效,那么就可对系统进行复位操作。
always@(posedge clk or negedge rst_n)
begin
    if(!rst_n)begin
...
   end
   else 
end

3、T 触发器
T触发器的主要功能是输出翻转控制。
数字电路中,在时钟有效边沿到来时,输入有效信号T取值的不同,那么电路就会具有不同的保持和翻转功能。
下图为T触发器的特性表,可看到T为输入有效信号,Qn为当前输出,Qn+1为下一时刻输出。当输入有效信号T=0时,能保持状态不变,当输入有效信号T=1时,可实现翻转功能。
在这里插入图片描述
T触发器的真值表

TQnQn+1
000
011
101
110

根据真值表我们能够得到两个信息:

  • Qn+1 = T ⊕ Qn 同为0,异为1
  • 当T=0的时候,Qn+1 = Qn,当T=1的时候,Qn+1 = ~Qn。(也就是保持和翻转)

4、题目分析
题目种给出了如下的信号示意图以及波形示意图
在信号示意图种加入中间存储变量q1
在这里插入图片描述
通过如下波形可看出,data相当于我们分析的T触发器中的输入有效信号T,rst信号为低电平复位信号。
在这里插入图片描述
因此本题的异步低电平复位的串联T触发器。

Verilog代码编写如下:

`timescale 1ns/1ns
module Tff_2 (
input wire data, clk, rst, //低电平复位最好用rst_n
output reg q  
);
//*************code***********//
reg q1; //中间存储变量定义为reg型
//第一个T触发器
always @ (posedge clk or negedge rst)begin
        if(!rst)
            q1 <= 1'b0;
        else if(data) //相当于T触发器中的输入有效信号为1的时候翻转,否则保持
            q1 <= ~q1;
        else
            q1 <= q1;
    end
//第二个T触发器  
always @ (posedge clk or negedge rst)begin
        if(!rst)
            q <= 1'b0;
        else if(q1)  //相当于第一个T触发器的输出作为下一个T触发器输入
            q <= ~q; //同时输入有效信号为1的时候,翻转,否则保持
        else
            q <= q;   
    end
//*************code***********//
endmodule
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fighting_FPGA

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值