Advertisement
Guest User

Untitled

a guest
Jan 17th, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.10 KB | None | 0 0
  1. module sys(CLK, Qreg, SEG);
  2.  
  3. input CLK;
  4. output [7:0] SEG;
  5. output [3:0] Qreg; // krazace zero
  6. wire [3:0] BIN;
  7.  
  8. reg0 myReg(CEO, Qreg);
  9. CNT myCNT(CLK,1'b0,1'b1,,CEO);
  10. MUX myMUX(CEO, 4'b0010, 4'b0000, 4'b0001, 4'b1000,Qreg,BIN);
  11. SEG7 mySEG(BIN, SEG);
  12.  
  13. endmodule
  14.  
  15. module reg0(CLK,Q);
  16. input CLK;
  17. output [3:0] Q;
  18. reg [3:0] Q;
  19.  
  20. always @(posedge CLK)
  21. case(Q)
  22. 4'b0111 : Q <= 4'b1110;
  23. 4'b1110 : Q <= 4'b1101;
  24. 4'b1101 : Q <= 4'b1011;
  25. 4'b1011 : Q <= 4'b0111;
  26. default : Q <= 4'b0111;
  27. endcase
  28. endmodule
  29.  
  30. module CNT(CLK,CLR,CE,Q,CEO);
  31. input CLK, CLR, CE;
  32. output [18:0] Q;
  33. reg [18:0] Q;
  34. output CEO;
  35.  
  36. always @(posedge CLK or posedge CLR)
  37. if(CLR)
  38. Q <= 18'd0;
  39. else begin
  40. if(CE) begin
  41. if(Q != 18'd499_999)
  42. begin
  43. Q <= Q + 1;
  44. // CEO = 1'b0;
  45. end
  46. else
  47. begin
  48. Q <= 18'd0;
  49. // CEO = 1'b1;
  50. end
  51. end
  52. end
  53. assign CEO = CE & (Q == 18'd499_999);
  54. endmodule
  55.  
  56. module MUX(CLK, IN1, IN2, IN3, IN4, SEL, Q);
  57.  
  58. input CLK;
  59. input [3:0] IN1, IN2, IN3, IN4;
  60. input [3:0] SEL;
  61. output [3:0] Q;
  62. reg [3:0] Q;
  63.  
  64. always @(posedge CLK)
  65. case(SEL)
  66. 4'b0111 : Q <= IN1;
  67. 4'b1110 : Q <= IN2;
  68. 4'b1101 : Q <= IN3;
  69. 4'b1011 : Q <= IN4;
  70. default : Q <= IN1;
  71. endcase
  72.  
  73. endmodule
  74.  
  75.  
  76. module SEG7(BIN, SEG);
  77. input [3:0] BIN;
  78. output [6:0] SEG;
  79. reg [6:0] SEG;
  80.  
  81. always @(BIN)
  82. case (BIN)
  83. 4'b0001 : SEG = 7'b1111001; // 1
  84. 4'b0010 : SEG = 7'b0100100; // 2
  85. 4'b0011 : SEG = 7'b0110000; // 3
  86. 4'b0100 : SEG = 7'b0011001; // 4
  87. 4'b0101 : SEG = 7'b0010010; // 5
  88. 4'b0110 : SEG = 7'b0000010; // 6
  89. 4'b0111 : SEG = 7'b1111000; // 7
  90. 4'b1000 : SEG = 7'b0000000; // 8
  91. 4'b1001 : SEG = 7'b0010000; // 9
  92. 4'b1010 : SEG = 7'b0001000; // A
  93. 4'b1011 : SEG = 7'b0000011; // b
  94. 4'b1100 : SEG = 7'b1000110; // C
  95. 4'b1101 : SEG = 7'b0100001; // d
  96. 4'b1110 : SEG = 7'b0000110; // E
  97. 4'b1111 : SEG = 7'b0001110; // F
  98. default : SEG = 7'b1000000; // 0
  99. endcase
  100. endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement