Advertisement
Guest User

Untitled

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