Advertisement
Guest User

Untitled

a guest
Oct 21st, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.11 KB | None | 0 0
  1. module Controle(input wire [5:0] Opcode,
  2. input wire [5:0] func,
  3. input wire [0:0] clk,
  4. output reg [0:0] PCWrite,
  5. output reg [0:0] PCWriteCond,
  6. output reg [1:0] PCWriteCondMux,
  7. output reg [2:0] MuxBranch,
  8. output reg [2:0] MuxMemoriaEnd,
  9. output reg [0:0] IRWrite,
  10. output reg [0:0] RegWrite,
  11. output reg [1:0] RegDst,
  12. output reg [2:0] MuxULA1,
  13. output reg [2:0] ALUControl,
  14. output reg [0:0] ALUOutControl,
  15. output reg [0:0] DivControl,
  16. output reg [2:0] MuxULA2,
  17. output reg [1:0] MuxMemoriaDado,
  18. output reg [0:0] AControl,
  19. output reg [0:0] BControl,
  20. output reg [0:0] EPCCont,
  21. output reg [0:0] MultControl,
  22. output reg [2:0] RDControl,
  23. output reg [0:0] MuxRD,
  24. output reg [0:0] MuxSaidaLO,
  25. output reg [0:0] MuxSaidaHI,
  26. output reg [1:0] ContShifts,
  27. output reg [3:0] MuxWriteData,
  28. output reg [0:0] MuxHILO,
  29. output reg [0:0] LuiControl,
  30. output reg [0:0] MuxMDR,
  31. output reg [2:0] ControleBits,
  32. output reg [0:0] CHi,
  33. output reg [0:0] CLo,
  34. output reg [0:0] MemRead,
  35. output reg [0:0] MDRControl);
  36.  
  37. reg [31:0] state;
  38.  
  39. always @(posedge clk)begin
  40.  
  41. case(state)
  42. //RESET
  43. 32'b00000000000000000000000000000000:
  44. begin
  45. state <= 32'b00000000000000000000000000000001;
  46. end
  47.  
  48. 32'b00000000000000000000000000000001:
  49. begin
  50. RegDst <= 2'b11;
  51. RegWrite <= 1'd1;
  52. MuxWriteData <= 4'b1000;
  53. state <= 32'b00000000000000000000000000000010;
  54. end
  55.  
  56. 32'b00000000000000000000000000000010:
  57. begin
  58. RegWrite <= 1'd0;
  59. state <= 32'b00000000000000000000000000000011;
  60. end
  61. //PC+4
  62. 32'b00000000000000000000000000000011:
  63. begin
  64. MuxULA1 <= 3'b000;
  65. MuxULA2 <= 3'b001;
  66. MuxMemoriaEnd <= 3'b000;
  67. ALUControl <= 3'b001;
  68. PCWrite <= 1'b1;
  69. MemRead <= 1'b0;
  70. state <= 32'b00000000000000000000000000000100;
  71. end
  72.  
  73. 32'b00000000000000000000000000000100:
  74. begin
  75. PCWrite <= 1'b0;
  76. state <= 32'b00000000000000000000000000000101;
  77. end
  78.  
  79. 32'b00000000000000000000000000000101:
  80. begin
  81. IRWrite <= 1'b1;
  82. state <= 32'b00000000000000000000000000000110;
  83. end
  84. endcase
  85. end
  86. endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement