SHARE
TWEET

Task Lola

akatla Jul 8th, 2019 85 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. `timescale 1ns / 1ps
  3. //////////////////////////////////////////////////////////////////////////////////
  4. // Company:
  5. // Engineer:
  6. //
  7. // Create Date:    20:09:51 11/04/2018
  8. // Design Name:
  9. // Module Name:    runlight
  10. // Project Name:
  11. // Target Devices:
  12. // Tool versions:
  13. // Description:
  14. //
  15. // Dependencies:
  16. //
  17. // Revision:
  18. // Revision 0.01 - File Created
  19. // Additional Comments:
  20. //
  21. //////////////////////////////////////////////////////////////////////////////////
  22. module RunLolaOne #(parameter DIGINIT = 0, DIGITA = DIGINIT + 3)                    // 21
  23. (    
  24.     input  clk,
  25.     output [3:0]row
  26. );
  27.  
  28. // 25 wires.
  29. wire [DIGITA:0]add;
  30. wire [2:0]add_stp;
  31.  
  32. // Register counter.
  33. reg  [DIGITA:0]RG = {(DIGINIT + 4){1'b0}};
  34. // Register shifter
  35. reg [3:0]rowGO = 4'b0000;
  36. reg [2:0]step_r = 3'b000;
  37.  
  38. assign row[3:0] = rowGO[3:0];
  39.  
  40. assign add[DIGITA:0] = RG[DIGITA:0] + 1'b1;
  41.  
  42. assign add_stp[2:0] = step_r[2:0] + 1'b1;
  43.  
  44. // Register shifter run
  45. always@(posedge clk) begin
  46.            
  47.             if(RG[DIGITA:0] == {{(DIGINIT + 3){1'b0}},{1'b1}}) begin
  48.            
  49.                 if(step_r[2:0] == 3'b000) begin
  50.                     rowGO[3:0] <= 4'b1110;
  51.                                        
  52.                 end
  53.                
  54.                 if(step_r[2:0] == 3'b100) begin
  55.                     rowGO[3:0] <= 4'b0111;
  56.                    
  57.                 end
  58.  
  59.             end
  60.            
  61.             if(RG[DIGITA:0] == {{(DIGINIT + 2){1'b0}},{2'b10}}) begin
  62.                
  63.                         if(step_r[2:0] >= 3'b000 && step_r[2:0] <= 3'b011)
  64.                        begin
  65.                             rowGO <= {rowGO[0], rowGO[3:1]};                       
  66.                         end
  67.                        
  68.                        if(step_r[2:0] >= 3'b100 && step_r[2:0] <= 3'b111)                      
  69.                         begin                      
  70.                             rowGO <= {rowGO[2:0], rowGO[3]};                       
  71.                         end
  72.                        
  73.                     step_r[2:0] <= add_stp[2:0];
  74.                                    
  75.             end
  76.            
  77.             RG[DIGITA:0] <= add[DIGITA:0];
  78. end
  79.  
  80. endmodule
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top