×
嵌入式 > 嵌入式开发 > 详情

D触发器Verilog描述

发布时间:2020-07-08 发布时间:
|

//基本D触发器

moduleD_EF(Q,D,CLK)

inputD,CLK;

outputQ;

regQ;//在always语句中被赋值的信号要声明为reg类型寄存器定义

always@(posedgeCLK)//上升沿,下降沿用negedge表示,^_^需要记忆

beginQ<=D;end

endmodule

//带异步清0、异步置1的D触发器

moduleD_EF(q,qn,d,clk,set,reset)

inputd,clk,set,reset;

outputq,qn;

regq,qn;//寄存器定义

always@(posedgeclkornegedgesetornegedgereset)

begin

if(!reset)beginq<=0;qn<=1;end//异步清0,低有效

elseif(!set)beginq<=1;qn<=1;end//异步置1,低有效

elsebeginq<=~d;qn<=~d;end

end

endmodule

//带同步清0、同步置1的D触发器

moduleD_EF(q,qn,d,clk,set,reset)

inputd,clk,set,reset;

outputq,qn;

regq,qn;

always@(posedgeclk)

begin

if(reset)beginq<=0;qn<=1;end//同步清0,高有效

elseif(set)beginq<=1;qn<=1;end//同步置1,高有效

elsebeginq<=~d;qn<=~d;end

end

endmodule

附:D触发器二分频

moduledff_2(clk,rst,clk_out);

inputclk,rst;

outputclk_out;

wireclk,rst;

regclk_out;

always@(posedgeclkornegedgerst)

if(!rst)

begin

clk_out<=0;

end

else

begin

clk_out<=~clk_out;

end

endmodule

因为器件有时延所以可以这样,也因为时延所以多个D触发器可以组合成多位寄存器。



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
现场总线系统的功能安全评价