Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 2nd, 2012  |  syntax: None  |  size: 0.79 KB  |  hits: 16  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. module ddd_ff(q, d, clk, clear);
  2.  
  3.   output q;
  4.   input d, clk, clear;
  5.   reg q;
  6.  
  7.   initial
  8.   begin
  9.   q = 1'b0;
  10.   end
  11.  
  12.   always@(negedge clk or posedge clear)
  13.   if(clear)
  14.     q <= 1'b0;
  15.   else
  16.   q <= d;
  17. endmodule  
  18.  
  19. module mod_5 (Q, clock, clear);
  20.  
  21.   output [2:0] Q;
  22.   input clock;
  23.   input clear;
  24.  
  25.   wire [2:0] Q_not;
  26.   wire CLEAR;
  27.  
  28. initial
  29. begin
  30.   $monitor( " clear : %d clock: %d Q1 : %b, Q2: %b, Q3: %b, ~Q[0]: %b, ~Q[1]: %b ~Q[2]: %b",clear ,clock, Q[0], Q[1], Q[2], Q_not[0], Q_not[1], Q_not[2]);
  31. end
  32.  
  33.   assign CLEAR = (Q[0] & Q[2]);
  34.   assign Q_not[0] = ~Q[0];
  35.   assign Q_not[1] = ~Q[1];
  36.   assign Q_not[2] = ~Q[2];
  37.  
  38.   ddd_ff t0(Q[0], Q_not[0], clock, CLEAR);
  39.   ddd_ff t1(Q[1], Q_not[1], Q[0], CLEAR);
  40.   ddd_ff t2(Q[2], Q_not[2], Q[1], CLEAR);
  41.  
  42. endmodule