module dtype_er(out, clk, reset, enable, d);
   
   output out;
   input  clk, reset, enable, d;
   reg	  out;
   
   always @(posedge clk)
      if (reset)
	 out = 0;
      else if (enable)
	 out = d;
   
endmodule

module stimulus;
   
   reg	   clk, reset, enable, d;
   wire	   q;
   integer i;
   
   dtype_er der_test(q, clk, reset, enable, d);
   
   initial begin
      clk = 1'b0;
      forever #5 clk = ~clk;
   end
   
   initial
      $display($time, " i = %b, reset = %b, enable = %b, d = %b, q = %b", 
	       i[3:0], reset, enable, d, q);
   
   always@(posedge clk) 
      #1 $display($time, " i = %b, reset = %b, enable = %b, d = %b, q = %b", 
		  i[3:0], reset, enable, d, q);
   
   initial begin
      d = 1'b0;
      reset = 1'b0;
      enable = 1'b0;
      for (i = 0; i < 16; i = i + 1) begin
	 #10 d  = i[0];
	 reset  = i[2];
	 enable = i[3];
      end      
      $finish;
   end
   
endmodule // stimulus






<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>