Advertisement
kojotuse

Untitled

Jun 12th, 2014
246
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. `timescale 1ns / 1ps
  2. //////////////////////////////////////////////////////////////////////////////////
  3. // Company:
  4. // Engineer:
  5. //
  6. // Create Date:    16:36:44 05/29/2014
  7. // Design Name:
  8. // Module Name:    up
  9. // Project Name:
  10. // Target Devices:
  11. // Tool versions:
  12. // Description:
  13. //
  14. // Dependencies:
  15. //
  16. // Revision:
  17. // Revision 0.01 - File Created
  18. // Additional Comments:
  19. //
  20. //////////////////////////////////////////////////////////////////////////////////
  21. module up(input CLK, RST, X1,X2,
  22.         output Z1, Z2, Z3, M,
  23.         output [3:0] _PC,
  24.         output [2:0] _PW,
  25.         output _xw
  26.         //output wire [7:0] _tim
  27.     );
  28.      
  29.     reg [3:0] PC;
  30.     reg xw;
  31.     reg [12:0] PW;
  32.     reg CLKD;
  33.     reg[31:0] CWT;
  34.     reg [7:0] tim;
  35.     wire ST2;
  36.     wire ST5;
  37.    
  38.     always @(posedge CLK)
  39.         if(CWT <2500000)
  40.             CWT<=CWT+1;
  41.         else
  42.             begin
  43.                 CLKD<=~CLKD;
  44.                 CWT<=0;
  45.             end  
  46.    
  47.     always @(*)
  48.         case(PC)
  49.             0: PW=12'b000011_000_0000;
  50.             1: PW=12'b010001_001_0001;
  51.             2: PW=12'b000001_010_0111;
  52.             3: PW=12'b000001_011_0010;
  53.             4: PW=12'b010010_001_0100;
  54.             5: PW=12'b000010_100_0001;
  55.             6: PW=12'b000010_101_0101;
  56.             7: PW=12'b101000_001_0111;
  57.             8: PW=12'b001000_011_1000;
  58.             9: PW=12'b000100_111_1001;
  59.             10: PW=12'b000000_000_0000;
  60.         endcase
  61.        
  62.     always @(*)
  63.         case(PW[6:4])
  64.             0: xw= X1;
  65.             1: xw= 1;
  66.             2: xw= !X2;
  67.             3: xw= !tim;
  68.             4: xw= tim;
  69.             5: xw= X2;
  70.             6: xw= 0;
  71.             7: xw= !X1;
  72.         endcase
  73.        
  74.         always @(posedge CLKD)
  75.             if(RST) begin PC<=0; tim=0; end
  76.             else
  77.                 begin
  78.                     if(xw) PC<=PC+1;
  79.                     else PC<=PW[3:0];
  80.                     if(ST2) tim=20;
  81.                     else if(ST5) tim=50;
  82.                     if(tim) tim=tim-1;
  83.                 end
  84.  
  85.            
  86.             assign Z1=PW[7];
  87.             assign Z2=PW[8];
  88.             assign Z3=PW[9];
  89.             assign M=PW[10];
  90.             assign ST2=PW[11];
  91.             assign ST5=PW[12]; 
  92.             assign _tim=tim;
  93. endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement