Advertisement
ptrawt

CPE212-[Lab8.1] q3

Sep 6th, 2013
266
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. module uppernog(q,x,clk,reset);
  2.     input x,reset,clk;
  3.     output [1:0]q;
  4.     wire xorq,xorf,nq1;
  5.    
  6.     xor xor1(xorq,q[0],q[1]);
  7.     xor xor2(xorf,x,xorq);
  8.    
  9.     not not1(nq1,q[0]);
  10.    
  11.     D_FF d0(q[1],xorf,clk,reset);
  12.     D_FF d1(q[0],nq1,clk,reset);
  13.    
  14. endmodule
  15.  
  16. module D_FF(q,d,clk,reset);
  17.     output q;
  18.     input d,clk,reset;
  19.     reg q;
  20.     always @(posedge reset or negedge clk)
  21.     if(reset)
  22.         q <= 1'b0;
  23.     else
  24.         q <= d;
  25. endmodule
  26.  
  27. module stimulus;
  28.     wire [1:0]q;
  29.     reg x,clk,reset;
  30.    
  31.     uppernog up1(q,x,clk,reset);
  32.    
  33.     initial
  34.         begin
  35.             x = 1'b0;
  36.             clk = 1'b1;
  37.             reset = 1'b1;
  38.         end
  39.    
  40.     always #1 clk = ~clk;
  41.     always #16 x = ~x;
  42.     initial
  43.         begin
  44.             #10 reset = ~reset;
  45.             #40 reset = ~reset;
  46.         end
  47.     initial #50 $finish;
  48.    
  49.     initial
  50.         $monitor($time,"\treset = %d\tclk = %d\t\tx = %d\tq = %b",reset,clk,x,q);
  51. endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement