Advertisement
Guest User

moje

a guest
Dec 21st, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. module main(
  2.     input wire clk,
  3.     input wire reset,
  4.     input wire btn2,
  5.     input wire btn1,
  6.     input wire btn0,
  7.     output [4:0] ledg
  8. );
  9. parameter FAZA1 = 3'b000;
  10. parameter FAZA21 = 3'b001;
  11. parameter FAZA22 = 3'b010;
  12.  
  13. reg [4:0] led, led_next;
  14. reg [2:0] state_reg, state_next;
  15. integer counter, counter_next;
  16. wire b0, b1, b2;
  17. redge r2(
  18.     .clk(clk),
  19.     .reset(reset),
  20.     .signal_in(btn2),
  21.     .signal_out(b2));
  22. redge r1(
  23.     .clk(clk),
  24.     .reset(reset),
  25.     .signal_in(btn1),
  26.     .signal_out(b1));
  27. redge r0(
  28.     .clk(clk),
  29.     .reset(reset),
  30.     .signal_in(btn0),
  31.     .signal_out(b0));
  32.    
  33. always @(posedge clk, posedge reset) begin
  34.     if(reset == 1) begin
  35.         led <= 5'b00000;
  36.         state_reg <= FAZA1;
  37.         counter <= 0;
  38.     end
  39.     else begin
  40.         led <= led_next;
  41.         state_reg <= state_next;
  42.         counter <= counter_next;
  43.     end
  44. end
  45.  
  46. always @(*) begin
  47.     led_next = led;
  48.     state_next = state_reg;
  49.     counter_next = counter;
  50.     case(state_reg)
  51.         FAZA1: begin
  52.             if(b2 == 1) begin
  53.                 if(led == 5'b00000 || 5'b10000)
  54.                     led_next = 5'b00001;
  55.                 else led_next = {led[3:0], 1'b0};
  56.             end
  57.             if(b1 == 1) begin
  58.                 led_next = 5'b00000;
  59.                 state_next = FAZA21;
  60.                 //counter_next = 0;
  61.             end
  62.         end
  63.         FAZA21: begin
  64.             if(led == 5'b11111) state_next = FAZA22;
  65.             else if(b2 == 1) begin
  66.                 led_next = {led[3:0], 1'b1};
  67.             end
  68.         end
  69.         FAZA22: begin
  70.             if(led == 5'b00000) state_next = FAZA21;
  71.             else if(b2 == 1) begin
  72.                 led_next = {1'b0, led[4:1]};
  73.             end
  74.         end
  75.     endcase
  76. end
  77. endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement