概述
1.D触发器:
module D_flip_flop(
input [1:0] d,
input clk,
output reg[1:0] q,
output reg[1:0] qb
);
always @(posedge clk) //时钟上升沿触发D触发器
begin
q<= d ;
qb<= ~d ;
end
endmodule
2.RS触发器
module SY_RS_FF ( R, S, CLK, Q, QB ); //模块名及参数定义,范围至endmodule。
input R, S, CLK; //输入端口定义
output Q, QB; //输出端口定义
reg Q; //寄存器定义
assign QB = ~Q; //assign语句,QB=/Q。
always @( posedge CLK ) //在CLK的上跳沿,执行以下语句。
case ({ R ,S }) //case语句,至于endcase为止。
1:Q <= 1; //当R,S的组合为01,则令Q=1。
2:Q <= 0; //当R,S的组合为01,则令Q=1。
3:Q <= 1'bx; //当R,S的组合为11,则令Q为1bit的数,数值为不定(x)。
endcase //case语句结束
endmodule //模块结束
3.JK触发器
module JK(clk,j,k,q,r,s,seg); input clk,j,k,r,s; output q;
output [7:0]seg; reg q=0; reg [7:0]seg;
always @(posedge clk)
begin
if(r==1 && s==0)
begin
q<=0;
end
if(r==0 && s==1)
begin
q<=1;
end
if(r==0 && s==0)
begin
if(j==1 && k==1)
begin
q<=~q;
end
if(j==1 && k==0)
begin q<=1;
end
if(j==0 && k==0)
begin
q<=q;
endif(j==0 && k==1)
begin q<=0;
end
end
end
endmoudle
4.T 触发器
input T,
input clk,
output Q,
output QB,
always@(posedge clk)
begin
if(~reset)
begin
Q<=1'b0;
end
else
begin
if(T)
Q<=~Q;
QB<=~Q;
else
begin
Q<=Q;
QB<=~Q;
end
end
end
最后
以上就是伶俐美女为你收集整理的几种触发器的Verliog语言描述的全部内容,希望文章能够帮你解决几种触发器的Verliog语言描述所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复