> 文章列表 > 牛客网Verilog刷题——VL2

牛客网Verilog刷题——VL2

牛客网Verilog刷题——VL2

牛客网Verilog刷题——VL2

  • 题目
  • 答案

题目

  要求用verilog实现两个串联的异步复位的T触发器的逻辑,如下图所示
牛客网Verilog刷题——VL2
  模块的输入输出信号如下表,需要注意的是:这里rst是低电平复位,且采用异步复位的方式复位。

信号 类型 输入/输出
clk wire Intput
rst wire Intput
qt reg Output

  模块的输入输出时序如下图所示。

牛客网Verilog刷题——VL2
  在数字电路中,我们学过,T触发器的次态 Q ∗ Q^* Q取决于现态 Q Q Q和输入T,当T=0时, Q ∗ = Q Q^*=Q Q=Q,当T=1时, Q ∗ Q^* Q=~ Q Q Q。其真值表如下。

T T T Q Q Q Q ∗ Q^* Q
0 0 0
0 1 1
1 0 1
1 1 0

答案

  根据T触发器的原理,可以编写Verilog代码。

`timescale 1ns/1ns
module Tff_2 (
input wire data, clk, rst,
output reg q  
);
//*************code***********//
reg     data_1;
always @(posedge clk or negedge rst)if(!rst)data_1 <= 1'b0;else if(data)data_1 <= ~data_1;elsedata_1 <= data_1;always @(posedge clk or negedge rst)if(!rst)q <= 1'b0;else if(data_1)q <= ~q;elseq <= q;//*************code***********//
endmodule