Advertisement
Guest User

Untitled

a guest
Feb 26th, 2019
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. `timescale 1ns / 1ps
  2. //////////////////////////////////////////////////////////////////////////////////
  3. // Company:
  4. // Engineer:
  5. //
  6. // Create Date: 02/21/2019 03:24:52 PM
  7. // Design Name:
  8. // Module Name: hellokhang
  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.  
  22.  
  23. module hellokhang(input [15:0] sw, input CLOCK, output [3:0] an, output reg [7:0] seg = 8'b10001001);
  24.  
  25.     assign an =       4'b0110;
  26.     parameter [7:0] A =     8'b10001000;
  27.     parameter [7:0] E =     8'b10000110;
  28.     parameter [7:0] G =     8'b10010000;
  29.     parameter [7:0] HK =    8'b10001001;
  30.     parameter [7:0] L =     8'b11000111;
  31.     parameter [7:0] N =     8'b10101011;
  32.     parameter [7:0] O =     8'b11000000;
  33.     parameter [7:0] dash =  8'b10111111;
  34.     parameter [7:0] blank = 8'b01111111;
  35.     reg[27:0] count = 0;
  36.     wire toggle;
  37.     reg switch = 0;
  38.     reg[4:0] next = 0;
  39.     assign toggle = sw[3] ? count[25]:count[27];
  40.    
  41.     always@ (posedge CLOCK) begin
  42.         case(switch)
  43.             1'b1:
  44.             begin
  45.                 next <= (sw[15] == 0)? (next == 11 && sw[2] == 0) ? 0 : ((sw[2] == 0) ? next + 1: ((next == 0) ? 11 : next - 1)) : next;
  46.                 count <= 0;
  47.                 switch <=0;
  48.             end
  49.             1'b0:
  50.             begin
  51.                 count <= count + 1;
  52.                 switch <= (toggle == 1) ? 1 : 0;
  53.                 case (next)
  54.                     4'b0000:seg <= HK;
  55.                     4'b0001:seg <= E;
  56.                     4'b0010:seg <= L;
  57.                     4'b0011:seg <= L;
  58.                     4'b0100:seg <= O;
  59.                     4'b0101:seg <= dash;
  60.                     4'b0110:seg <= HK;
  61.                     4'b0111:seg <= HK;        
  62.                     4'b1000:seg <= A;
  63.                     4'b1001:seg <= N;
  64.                     4'b1010:seg <= G;
  65.                     4'b1011:seg <= blank;
  66.                 endcase
  67.             end
  68.       endcase
  69.     end
  70. endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement