Advertisement
Guest User

Untitled

a guest
Mar 13th, 2018
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.18 KB | None | 0 0
  1.  
  2. module SW_to_LEDR (SW, LEDR);//SW_to_LEDR
  3. input [9:0] SW; // przełączniki
  4. output [9:0] LEDR; // czerwone LEDs
  5. assign LEDR = SW;
  6. endmodule
  7.  
  8.  
  9. //1
  10. module showDigitDec ( //show a given 4-bit number on given display
  11. input [3:0] SW,
  12. output reg [0:6] HEX0);
  13.  
  14. always @(*)
  15. case(SW)
  16. 4'b0000: HEX0 = ~7'b1111110;// 0
  17. 4'b0001: HEX0 = ~7'b0110000;// 1
  18. 4'b0010: HEX0 = ~7'b1101101;// 2
  19. 4'b0011: HEX0 = ~7'b1111001;// 3
  20. 4'b0100: HEX0 = ~7'b0110011;// 4
  21. 4'b0101: HEX0 = ~7'b1011011;// 5
  22. 4'b0110: HEX0 = ~7'b1011111;// 6
  23. 4'b0111: HEX0 = ~7'b1110000;// 7
  24. 4'b1000: HEX0 = ~7'b1111111;// 8
  25. 4'b1001: HEX0 = ~7'b1111011;// 9
  26. 4'b1010: HEX0 = ~7'b1111010;// r (error)
  27. 4'b1011: HEX0 = ~7'b1111010;// r
  28. 4'b1100: HEX0 = ~7'b1111010;// r
  29. 4'b1101: HEX0 = ~7'b1111010;// r
  30. 4'b1110: HEX0 = ~7'b1111010;// r
  31. 4'b1111: HEX0 = ~7'b1111010;// r
  32. endcase
  33.  
  34. endmodule
  35.  
  36. module show2DigitNumberDec ( // display 2 given decimal digits
  37. input [7:0] SW,
  38. output [9:0] LEDR,
  39. output [0:6] HEX0, HEX1);
  40.  
  41. assign LEDR[7:0] = SW[7:0];
  42.  
  43. wire [0:3]sw1 = SW[3:0];
  44. wire [0:3]sw2 = SW[7:4];
  45. reg led8 = 0;
  46. reg led9 = 0;
  47.  
  48. showDigit ex1(SW[3:0], HEX0);
  49. showDigit ex2(SW[7:4], HEX1);
  50.  
  51. assign LEDR[8] = led8;
  52. assign LEDR[9] = led9;
  53.  
  54. always @(*)
  55. begin
  56. if(sw1 > 4'b1001)
  57. led8 = 1;
  58. else
  59. led8 = 0;
  60.  
  61. if(sw2 > 4'b1001)
  62. led9 = 1;
  63. else
  64. led9 = 0;
  65. end
  66.  
  67. endmodule
  68.  
  69.  
  70.  
  71. // 2
  72. module showDigitHex ( //show a given 4-bit number on given display
  73. input [3:0] SW,
  74. output reg [0:6] HEX0);
  75.  
  76. always @(*)
  77. case(SW)
  78. 4'b0000: HEX0 = ~7'b1111110;// 0
  79. 4'b0001: HEX0 = ~7'b0110000;// 1
  80. 4'b0010: HEX0 = ~7'b1101101;// 2
  81. 4'b0011: HEX0 = ~7'b1111001;// 3
  82. 4'b0100: HEX0 = ~7'b0110011;// 4
  83. 4'b0101: HEX0 = ~7'b1011011;// 5
  84. 4'b0110: HEX0 = ~7'b1011111;// 6
  85. 4'b0111: HEX0 = ~7'b1110000;// 7
  86. 4'b1000: HEX0 = ~7'b1111111;// 8
  87. 4'b1001: HEX0 = ~7'b1111011;// 9
  88. 4'b1010: HEX0 = ~7'b1110111;// A
  89. 4'b1011: HEX0 = ~7'b0011111;// b
  90. 4'b1100: HEX0 = ~7'b1001110;// C
  91. 4'b1101: HEX0 = ~7'b0111101;// d
  92. 4'b1110: HEX0 = ~7'b1001111;// E
  93. 4'b1111: HEX0 = ~7'b1000111;// F
  94. endcase
  95.  
  96. endmodule
  97.  
  98. module show2DigitNumberHex ( // display 2 given hexadecimal digits
  99. input [7:0] SW,
  100. output [7:0] LEDR,
  101. output [0:6] HEX0, HEX1);
  102.  
  103. assign LEDR[7:0] = SW[7:0];
  104.  
  105. wire [0:3]sw1 = SW[3:0];
  106. wire [0:3]sw2 = SW[7:4];
  107.  
  108. showDigit ex1(SW[3:0], HEX0);
  109. showDigit ex2(SW[7:4], HEX1);
  110.  
  111. endmodule
  112.  
  113.  
  114.  
  115. //3
  116. module ps3 ( // binary to bcd
  117. input [3:0] SW,
  118. output [0:6] HEX0, HEX1);
  119.  
  120. wire [0:3]sw1 = SW[3:0];
  121. reg tens = 4'b0000;
  122.  
  123. reg [0:3] n1;
  124.  
  125.  
  126. showDigit ex1(n1, HEX0);
  127. showDigit ex2(tens, HEX1);
  128.  
  129.  
  130. always @(*)
  131. begin
  132. if(sw1 > 4'b1001)
  133. tens = 4'b0001;
  134. else
  135. tens = 4'b0000;
  136. end
  137.  
  138. endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement