// Dual Edge triggerred flip-flop
// 

module detff (q,qb,d,clk);

	output q;
	output qb;
	input d;
	input clk;


	supply0 gnd;
	supply1 vdd;

	// fill this in.

endmodule



// Correct output from Test bench should be:

// # Q value is 1, QB value is 0 
// # Q value is 0, QB value is 1 
// # Q value is 1, QB value is 0 
// # Q value is 0, QB value is 1 
// # Q value is 1, QB value is 0 
// # Q value is 1, QB value is 0 

module tb_detff;

 reg  d, clk,r;
 wire  q;
 wire  qb;



 initial clk = 0;

 always #(40/2) clk = ~clk;

 detff dut (q, qb, d, clk);


 initial
  begin
    d = 1; 


    #190  d = 0;
    $display ("Q value is %b, QB value is %b ", q, qb);

    #40 d = 1;
    $display ("Q value is %b, QB value is %b ", q, qb);

    #20  d = 0;
    $display ("Q value is %b, QB value is %b ", q, qb);

    #40  d = 1;
    $display ("Q value is %b, QB value is %b ", q, qb);

    #40  d = 0;
    #2  d = 1;

    $display ("Q value is %b, QB value is %b ", q, qb);

    #18  d = 0;
    #2  d = 1;


    $display ("Q value is %b, QB value is %b ", q, qb);

  end

endmodule

<div align="center"><br /><script type="text/javascript"><!--
google_ad_client = "pub-7293844627074885";
//468x60, Created at 07. 11. 25
google_ad_slot = "8619794253";
google_ad_width = 468;
google_ad_height = 60;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script><br />&nbsp;</div>