概述
时序电路的基本单位就是触发器,接下来介绍几种同步寄存器的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触发器:
在时钟沿到来的时候若T为0,那么触发器输出不变。如果为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触发器:
处于时钟沿触发时当JK为00,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实现所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复