Advertisement
Guest User

Untitled

a guest
May 24th, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.96 KB | None | 0 0
  1. `timescale 1ns / 1ps
  2. //////////////////////////////////////////////////////////////////////////////////
  3. // Company:
  4. // Engineer:
  5. //
  6. // Create Date: 16:10:19 05/17/2019
  7. // Design Name:
  8. // Module Name: coffe_main
  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. `define INIT 3'b000
  22. `define C05 3'b001
  23. `define C10 3'b010
  24. `define C15 3'b011
  25. `define C20 3'b100
  26. `define Exprr 3'b110
  27. `define Expr_l 3'b101
  28. `define Capp 3'b111
  29.  
  30. module coffe_main(
  31. input clk,rst,
  32. input credit05,credit10,
  33. input [1:0] coffee,
  34. output [5:0] current_state,
  35. output reg exprr,expr_l,capp
  36. );
  37. reg [2:0] state_nxt, state_reg;
  38. always @(posedge clk or posedge rst)
  39. begin
  40. if(rst)
  41. state_reg <= 0;
  42. else
  43. state_reg <= state_nxt;
  44. end
  45. assign current_state=state_nxt;
  46. always @(state_reg, coffee, credit05, credit10)
  47. begin
  48.  
  49. state_nxt=state_reg;
  50. exprr=0;
  51. expr_l=0;
  52. capp=0;
  53.  
  54. case(state_reg)
  55. `INIT: begin
  56. state_nxt=`INIT;
  57. exprr=0;
  58. expr_l=0;
  59. capp=0;
  60. if(credit05)
  61. state_nxt=`C05;
  62. if(credit10)
  63. state_nxt=`C10;
  64. end
  65. `C05: begin
  66. state_nxt=`C05;
  67. exprr=0;
  68. expr_l=0;
  69. capp=0;
  70. if(credit05)
  71. state_nxt=`C10;
  72. if(credit10)
  73. state_nxt=`C15;
  74. end
  75.  
  76.  
  77. `C10: begin
  78. state_nxt=`C10;
  79. exprr=0;
  80. expr_l=0;
  81. capp=0;
  82. if(credit05)
  83. state_nxt=`C15;
  84. if(credit10)
  85. state_nxt=`C20;
  86. end
  87. `C15: begin
  88. state_nxt=`C15;
  89. exprr=0;
  90. expr_l=0;
  91. capp=0;
  92. if(credit05 | credit10)
  93. state_nxt=`C20;
  94. end
  95. `C20: begin
  96. state_nxt=`C20;
  97. exprr=0;
  98. expr_l=0;
  99. capp=0;
  100. if(coffee==2'b01)
  101. state_nxt=`Exprr;
  102. if(coffee==2'b10)
  103. state_nxt=`Expr_l;
  104. if(coffee==2'b11)
  105. state_nxt=`Capp;
  106. end
  107.  
  108. `Exprr: begin
  109. state_nxt=`INIT;
  110. exprr=1;
  111. expr_l=0;
  112. capp=0;
  113. end
  114. `Expr_l : begin
  115. state_nxt=`INIT;
  116. exprr=0;
  117. expr_l=1;
  118. capp=0;
  119. end
  120. `Capp: begin
  121. state_nxt=`INIT;
  122. exprr=0;
  123. expr_l=0;
  124. capp=1;
  125. end
  126. endcase
  127. end
  128.  
  129.  
  130. endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement