我是靠谱客的博主 合适故事,最近开发中收集的这篇文章主要介绍数字电路设计之各种触发器的verilog实现,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

时序电路的基本单位就是触发器,接下来介绍几种同步寄存器的verilog HDL实现。

同步RS寄存器:有r(复位),s(置位)。它的缺点在于会有不确定状态x

module RS_Flip( clk,r,s,q,qb);

 

 input wire clk,r,s;

output reg q;

output wire qb;

assign qb = ~q;

always@(posedge clk)begin

    case({r,s})

    2'b00:  q <= q;

    2'b01:  q <= 1;

   2'b10:  q <= 0;

   2'b11:  q <= 1'bx;

   endcase

end

 

endmodule

 

同步T触发器:

在时钟沿到来的时候若T0,那么触发器输出不变。如果为1,则输出反转。

module T_Flip( clk,rst,t,q,qb);

    input wire  clk,t,rst;

    output wire qb;

    output reg  q;

 

    assign qb = ~q;

    always@(posedge clk)begin

    if(rst) 

     q <= 0;

   else if(t)

     q <= ~q;

   else;

 end  

endmodule

 

同步D触发器:这种触发器是最常用的。

它是在RS触发器的基础上改进而来。

module D_Flip( clk,rst,d,q,qb);

 input wire  clk,rst,d;

 output reg  q;

 output wire qb;

 assign  qb = ~q;

 always@(posedge clk)begin

     if(rst)

     q <= 0;

    else

     q <= d;

 end

endmodule

 

同步JK触发器:

处于时钟沿触发时当JK00,01,10时和RS触发器一样,当为11时和T触发器一样。

module JK_Flip( clk,j,k,q,qb );

input wire  clk,j,k;

output wire qb;

output reg  q;

assign qb = ~q;

always@(posedge clk)begin

    case({j,k})

    2'b00:

    q <= q;

    2'b01:

    q <= 0;

    2'b10:

    q <= 1;

    2'b11:

    q <= ~q;

    endcase

end

endmodule

最后

以上就是合适故事为你收集整理的数字电路设计之各种触发器的verilog实现的全部内容,希望文章能够帮你解决数字电路设计之各种触发器的verilog实现所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部