D触发器的工作原理以及Verilog代码(二/二)

2.  D触发器的verilog代码实现

Verilog实现D触发器的方式有很多,这块主要介绍行为级描述方式:

2.1  基本边沿触发的D触发器

//基本正边沿触发的D触发器
module trigger_b(
        input wire D,
		input wire clk,
		output reg q
		);
	 always @(posedge clk)
	    begin
		     q<=D;  //在时钟信号clk的上升沿,D的值被锁存在q中
		 end
endmodule

2.2  带清零端的D触发器

//带清零端的D触发器
module trigger_c(
         input wire clk,
		 input wire D,
		 input wire clr,
		 output reg q
		 );
	always @(posedge clk or posedge clr)
	     begin 
		     if(s==1)
			 q<=0;
			 else 
			 q<=D;
		end
endmodule

2.3  带置位和清零段的D触发器

//带置位和清零端的D触发器
module trigger_c&s(
         input wire clk,
		 input wire D,
		 input wire clr,
		 input wire s,
		 output reg q
		 );
	always @(posedge clk or posedge clr or posedge s)
	     begin
		     if(clr==1)
			 q<=0;
			 else if(s==1)
			 q<=1;
			 else
			 q<=D;
		 end
endmodule

你可能感兴趣的:(verilog)