RenHao

HW20120326

Apr 1st, 2013
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. HW1
  2. -----------------------------------------------------------------------
  3. module fadder(input a,b,c,output co,s);
  4.     assign co = a & c | a & b | b & c ;
  5.     assign s = b ^ a ^ c;
  6. endmodule  
  7. -----------------------------------------------------------------------
  8. module adder_4bits(input [3:0]a,b,input c,output [3:0]s,output co);
  9.     wire co1,co2,co3;
  10.  
  11.     fadder bit1(a[0],b[0],c,co1,s[0]);
  12.     fadder bit2(a[1],b[1],co1,co2,s[1]);
  13.     fadder bit3(a[2],b[2],co2,co3,s[2]);
  14.     fadder bit4(a[3],b[3],co3,co,s[3]);
  15. endmodule
  16. -----------------------------------------------------------------------
  17. module sub_4b(input [3:0]x,y,output [3:0]d,output c,co);
  18.  
  19. assign c = 1 ;
  20. adder_4bits a0(x,~y,c,d,co);
  21.  
  22. endmodule
  23. -----------------------------------------------------------------------
  24. HW2
  25. -----------------------------------------------------------------------
  26. module counter_mod7(EN,EVEN,Q,CK);
  27.  
  28. input CK,EN;
  29. output reg [2:0]Q;
  30. output EVEN;
  31. parameter S0 = 3'b000 ,S1 = 3'b001 ,S2 = 3'b010 ,S3 = 3'b011 ,S4 = 3'b100 ,S5 = 3'b101 ,S6 = 3'b110 ;
  32.  
  33. assign EVEN = (Q == S0) | (Q == S1) | (Q == S2) | (Q == S3) ;
  34.             //S0 | S1 | S2 | S3 ;
  35.  
  36. always @(posedge CK)
  37.     begin
  38.         case(Q)
  39.             S0: if(EN) Q <= S1 ;
  40.                 else Q <= S0 ;
  41.             S1: if(EN) Q <= S2 ;
  42.                 else Q <= S1 ;
  43.             S2: if(EN) Q <= S3 ;
  44.                 else Q <= S2 ;
  45.             S3: if(EN) Q <= S4 ;
  46.                 else Q <= S3 ;
  47.             S4: if(EN) Q <= S5 ;
  48.                 else Q <= S4 ;
  49.             S5: if(EN) Q <= S6 ;
  50.                 else Q <= S5 ;
  51.             S6: if(EN) Q <= S0 ;
  52.                 else Q <= S6 ;
  53.             default: Q <= S0 ;
  54.         endcase
  55.     end
  56. endmodule
Advertisement
Add Comment
Please, Sign In to add comment