Advertisement
Guest User

alphabet

a guest
Aug 9th, 2018
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. `timescale 1ns / 1ps
  2. //////////////////////////////////////////////////////////////////////////////////
  3. // Company:
  4. // Engineer:       Mauricio Solis
  5. //
  6. // Create Date:    17:09:55 05/23/2015
  7. // Design Name:
  8. // Module Name:    caracters
  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. module characters(
  22.     input [7:0] select ,
  23.     input [2:0]coor_x,
  24.     input [2:0]coor_y,
  25.     output pixel
  26.     );
  27.    
  28.     logic [39:0] vec_char;
  29.    
  30.     logic [39:0]vect_char_a;//97
  31.     logic [39:0]vect_char_b;
  32.     logic [39:0]vect_char_c;
  33.     logic [39:0]vect_char_d;
  34.     logic [39:0]vect_char_e;
  35.     logic [39:0]vect_char_f;
  36.     logic [39:0]vect_char_g;
  37.     logic [39:0]vect_char_h;
  38.     logic [39:0]vect_char_i;
  39.     logic [39:0]vect_char_j;
  40.     logic [39:0]vect_char_k;
  41.     logic [39:0]vect_char_l;
  42.     logic [39:0]vect_char_m;
  43.     logic [39:0]vect_char_n;
  44.     logic [39:0]vect_char_o;
  45.     logic [39:0]vect_char_p;
  46.     logic [39:0]vect_char_q;
  47.     logic [39:0]vect_char_r;
  48.     logic [39:0]vect_char_s;
  49.     logic [39:0]vect_char_t;
  50.     logic [39:0]vect_char_u;
  51.     logic [39:0]vect_char_v;
  52.     logic [39:0]vect_char_w;
  53.     logic [39:0]vect_char_x;
  54.     logic [39:0]vect_char_y;
  55.     logic [39:0]vect_char_z;
  56.     logic [39:0]vect_char_nn;
  57.    
  58.     logic [39:0]vect_char_am;// MAYUS
  59.     logic [39:0]vect_char_bm;
  60.     logic [39:0]vect_char_cm;
  61.     logic [39:0]vect_char_dm;
  62.     logic [39:0]vect_char_em;
  63.     logic [39:0]vect_char_fm;
  64.     logic [39:0]vect_char_gm;
  65.     logic [39:0]vect_char_hm;
  66.     logic [39:0]vect_char_im;
  67.     logic [39:0]vect_char_jm;
  68.     logic [39:0]vect_char_km;
  69.     logic [39:0]vect_char_lm;
  70.     logic [39:0]vect_char_mm;
  71.     logic [39:0]vect_char_nm;
  72.     logic [39:0]vect_char_om;
  73.     logic [39:0]vect_char_pm;
  74.     logic [39:0]vect_char_qm;
  75.     logic [39:0]vect_char_rm;
  76.     logic [39:0]vect_char_sm;
  77.     logic [39:0]vect_char_tm;
  78.     logic [39:0]vect_char_um;
  79.     logic [39:0]vect_char_vm;
  80.     logic [39:0]vect_char_wm;
  81.     logic [39:0]vect_char_xm;
  82.     logic [39:0]vect_char_ym;
  83.     logic [39:0]vect_char_zm;
  84.    
  85.     logic [39:0]vect_num_0;//48
  86.     logic [39:0]vect_num_1;
  87.     logic [39:0]vect_num_2;
  88.     logic [39:0]vect_num_3;
  89.     logic [39:0]vect_num_4;
  90.     logic [39:0]vect_num_5;
  91.     logic [39:0]vect_num_6;
  92.     logic [39:0]vect_num_7;
  93.     logic [39:0]vect_num_8;
  94.     logic [39:0]vect_num_9;
  95.     logic [39:0]vect_num_p;//punto
  96.     logic [39:0]vect_space;//espacio
  97.     logic [39:0]vect_char_arrow;
  98.     logic [39:0]vect_char_add;
  99.     logic [39:0]vect_char_dif;
  100.     logic [39:0]vect_char_mul;
  101.     logic [39:0]vect_char_and;
  102.     logic [39:0]vect_char_or;
  103.    
  104.     assign vect_char_a = {5'b00000,5'b11110,5'b10001,5'b11110,5'b10000,5'b01110,5'b00000,5'b00000};
  105.     assign vect_char_b = {5'b00000,5'b01111,5'b10001,5'b10001,5'b10011,5'b01101,5'b00001,5'b00001};
  106.     assign vect_char_c = {5'b00000,5'b01110,5'b10001,5'b00001,5'b00001,5'b01110,5'b00000,5'b00000};
  107.     assign vect_char_d = {5'b00000,5'b11110,5'b10001,5'b10001,5'b11001,5'b10110,5'b10000,5'b10000};
  108.     assign vect_char_e = {5'b00000,5'b01110,5'b00001,5'b11111,5'b10001,5'b01110,5'b00000,5'b00000};
  109.     assign vect_char_f = {5'b00000,5'b00010,5'b00010,5'b00010,5'b00111,5'b00010,5'b10010,5'b01100};
  110.     assign vect_char_g = {5'b00000,5'b01110,5'b10000,5'b11110,5'b10001,5'b10001,5'b11110,5'b00000};
  111.     assign vect_char_h = {5'b00000,5'b10001,5'b10001,5'b10001,5'b10011,5'b01101,5'b00001,5'b00001};
  112.     assign vect_char_i = {5'b00000,5'b01110,5'b00100,5'b00100,5'b00100,5'b00110,5'b00000,5'b00100};
  113.     assign vect_char_j = {5'b00000,5'b00110,5'b01001,5'b01000,5'b01000,5'b01100,5'b00000,5'b01000};
  114.     assign vect_char_k = {5'b00000,5'b01001,5'b00101,5'b00011,5'b00101,5'b01001,5'b00001,5'b00001};
  115.     assign vect_char_l = {5'b00000,5'b01110,5'b00100,5'b00100,5'b00100,5'b00100,5'b00100,5'b00110};
  116.     assign vect_char_m = {5'b00000,5'b10001,5'b10001,5'b10101,5'b10101,5'b01011,5'b00000,5'b00000};
  117.     assign vect_char_n = {5'b00000,5'b10001,5'b10001,5'b10001,5'b10011,5'b01101,5'b00000,5'b00000};
  118.     assign vect_char_o = {5'b00000,5'b01110,5'b10001,5'b10001,5'b10001,5'b01110,5'b00000,5'b00000};
  119.     assign vect_char_p = {5'b00000,5'b00001,5'b00001,5'b01111,5'b10001,5'b01111,5'b00000,5'b00000};
  120.     assign vect_char_q = {5'b00000,5'b10000,5'b10000,5'b11110,5'b10001,5'b11110,5'b00000,5'b00000};
  121.     assign vect_char_r = {5'b00000,5'b00001,5'b00001,5'b00001,5'b10011,5'b01101,5'b00000,5'b00000};
  122.     assign vect_char_s = {5'b00000,5'b01111,5'b10000,5'b01110,5'b00001,5'b01110,5'b00000,5'b00000};
  123.     assign vect_char_t = {5'b00000,5'b01100,5'b10010,5'b00010,5'b00010,5'b00111,5'b00010,5'b00010};
  124.     assign vect_char_u = {5'b00000,5'b10110,5'b11001,5'b10001,5'b10001,5'b10001,5'b00000,5'b00000};
  125.     assign vect_char_v = {5'b00000,5'b00100,5'b01010,5'b10001,5'b10001,5'b10001,5'b00000,5'b00000};
  126.     assign vect_char_w = {5'b00000,5'b01010,5'b10101,5'b10101,5'b10001,5'b10001,5'b00000,5'b00000};
  127.     assign vect_char_x = {5'b00000,5'b10001,5'b01010,5'b00100,5'b01010,5'b10001,5'b00000,5'b00000};
  128.     assign vect_char_y = {5'b00000,5'b01110,5'b10000,5'b11110,5'b10001,5'b10001,5'b00000,5'b00000};
  129.     assign vect_char_z = {5'b00000,5'b11111,5'b00010,5'b00100,5'b01000,5'b11111,5'b00000,5'b00000};
  130.     assign vect_char_nn = {5'b00000,5'b10001,5'b10001,5'b10001,5'b10011,5'b01101,5'b00000,5'b01110};
  131.     assign vect_char_am = {5'b00000,5'b10001,5'b10001,5'b11111,5'b10001,5'b10001,5'b10001,5'b01110};
  132.     assign vect_char_bm = {5'b00000,5'b01111,5'b10001,5'b10001,5'b01111,5'b10001,5'b10001,5'b01111};
  133.     assign vect_char_cm = {5'b00000,5'b01110,5'b10001,5'b00001,5'b00001,5'b00001,5'b10001,5'b01110};
  134.     assign vect_char_dm = {5'b00000,5'b00111,5'b01001,5'b10001,5'b10001,5'b10001,5'b01001,5'b00111};
  135.     assign vect_char_em = {5'b00000,5'b11111,5'b00001,5'b00001,5'b01111,5'b00001,5'b00001,5'b11111};
  136.     assign vect_char_fm = {5'b00000,5'b00001,5'b00001,5'b00001,5'b01111,5'b00001,5'b00001,5'b11111};
  137.     assign vect_char_gm = {5'b00000,5'b01111,5'b10001,5'b10001,5'b11101,5'b00001,5'b10001,5'b01110};
  138.     assign vect_char_hm = {5'b00001,5'b10001,5'b10001,5'b10001,5'b11111,5'b10001,5'b10001,5'b10000};
  139.     assign vect_char_im = {5'b00000,5'b01110,5'b00100,5'b00100,5'b00100,5'b00100,5'b00100,5'b01110};
  140.     assign vect_char_jm = {5'b00000,5'b00110,5'b01001,5'b01000,5'b01000,5'b01000,5'b01000,5'b11100};
  141.     assign vect_char_km = {5'b00000,5'b10001,5'b01001,5'b00101,5'b00011,5'b00101,5'b01001,5'b10001};
  142.     assign vect_char_lm = {5'b00000,5'b11111,5'b00001,5'b00001,5'b00001,5'b00001,5'b00001,5'b00001};
  143.     assign vect_char_mm = {5'b00000,5'b10001,5'b10001,5'b10001,5'b10101,5'b10101,5'b11011,5'b10001};
  144.     assign vect_char_nm = {5'b00001,5'b10001,5'b10001,5'b11001,5'b10101,5'b10011,5'b10001,5'b10000};
  145.     assign vect_char_om = {5'b00000,5'b01111,5'b10001,5'b10001,5'b10001,5'b10001,5'b10001,5'b01110};
  146.     assign vect_char_pm = {5'b00000,5'b00001,5'b00001,5'b00001,5'b01111,5'b10001,5'b10001,5'b01111};
  147.     assign vect_char_qm = {5'b00000,5'b10110,5'b01001,5'b10101,5'b10001,5'b10001,5'b10001,5'b01110};
  148.     assign vect_char_rm = {5'b00000,5'b10001,5'b01001,5'b00101,5'b01111,5'b10001,5'b10001,5'b01111};
  149.     assign vect_char_sm = {5'b00000,5'b01111,5'b10000,5'b10000,5'b01110,5'b00001,5'b00001,5'b11110};
  150.     assign vect_char_tm = {5'b00000,5'b00100,5'b00100,5'b00100,5'b00100,5'b00100,5'b00100,5'b11111};
  151.     assign vect_char_um = {5'b00000,5'b01110,5'b10001,5'b10001,5'b10001,5'b10001,5'b10001,5'b10001};
  152.     assign vect_char_vm = {5'b00000,5'b00100,5'b01010,5'b10001,5'b10001,5'b10001,5'b10001,5'b10001};
  153.     assign vect_char_wm = {5'b00000,5'b01010,5'b10101,5'b10101,5'b10101,5'b10001,5'b10001,5'b10001};
  154.     assign vect_char_xm = {5'b00000,5'b10001,5'b10001,5'b01010,5'b00100,5'b01010,5'b10001,5'b10001};
  155.     assign vect_char_ym = {5'b00000,5'b00100,5'b00100,5'b00100,5'b01010,5'b10001,5'b10001,5'b10001};
  156.     assign vect_char_zm = {5'b00000,5'b11111,5'b00001,5'b00010,5'b00100,5'b01000,5'b10000,5'b11111};
  157.  
  158.  
  159.  
  160.     //COMPLETAR EL RESTO DE LAS LETRAS
  161.  
  162.     assign vect_num_0 = {5'b00000,5'b01110,5'b10001,5'b10011,5'b10101,5'b11001,5'b10001,5'b01110};
  163.     assign vect_num_1 = {5'b00000,5'b01110,5'b00100,5'b00100,5'b00100,5'b00100,5'b00110,5'b00100};
  164.     assign vect_num_2 = {5'b00000,5'b11111,5'b00010,5'b00100,5'b01000,5'b10000,5'b10001,5'b01110};
  165.     assign vect_num_3 = {5'b00000,5'b01110,5'b10001,5'b10000,5'b01000,5'b00100,5'b01000,5'b11111};
  166.     assign vect_num_4 = {5'b00000,5'b01000,5'b01000,5'b11111,5'b01001,5'b01010,5'b01100,5'b01000};
  167.     assign vect_num_5 = {5'b00000,5'b01110,5'b10001,5'b10000,5'b10000,5'b01111,5'b00001,5'b11111};
  168.     assign vect_num_6 = {5'b00000,5'b01110,5'b10001,5'b10001,5'b01111,5'b00001,5'b00010,5'b01100};
  169.     assign vect_num_7 = {5'b00000,5'b00010,5'b00010,5'b00010,5'b00100,5'b01000,5'b10000,5'b11111};
  170.     assign vect_num_8 = {5'b00000,5'b01110,5'b10001,5'b10001,5'b01110,5'b10001,5'b10001,5'b01110};
  171.     assign vect_num_9 = {5'b00000,5'b00110,5'b01000,5'b10000,5'b11110,5'b10001,5'b10001,5'b01110};
  172.     assign vect_char_arrow = {5'b00000,5'b00000,5'b00100,5'b00010,5'b11111,5'b00010,5'b00100,5'b00000};
  173.     assign vect_char_add = {5'b00000,5'b00000,5'b00100,5'b00100,5'b11111,5'b00100,5'b00100,5'b00000};
  174.     assign vect_char_dif = {5'b00000,5'b00000,5'b00000,5'b00000,5'b11111,5'b00000,5'b00000,5'b00000};
  175.     assign vect_char_mul = {5'b00000,5'b00000,5'b00100,5'b10101,5'b01110,5'b10101,5'b00100,5'b00000};
  176.     assign vect_char_and = {5'b00000,5'b10110,5'b01001,5'b10101,5'b00010,5'b00101,5'b01001,5'b00110};
  177.     assign vect_char_or = {5'b00000,5'b00100,5'b00100,5'b00100,5'b00100,5'b00100,5'b00100,5'b00100};
  178.     assign vect_space = {5'b00000,5'b00000,5'b00000,5'b00000,5'b00000,5'b00000,5'b00000,5'b00000};
  179.     assign vect_num_p = {5'b00000,5'b00110,5'b00110,5'b00000,5'b00000,5'b00000,5'b00000,5'b00000};
  180.  
  181.     //COMPLETAR EL RESTO DE LOS NUMEROS
  182.  
  183.  
  184.     always_comb
  185.         case(select)
  186.             "0":    vec_char=vect_num_0;
  187.             "1":    vec_char=vect_num_1;
  188.             "2":    vec_char=vect_num_2;
  189.             "3":    vec_char=vect_num_3;
  190.             "4":    vec_char=vect_num_4;
  191.             "5":    vec_char=vect_num_5;
  192.             "6":    vec_char=vect_num_6;
  193.             "7":    vec_char=vect_num_7;
  194.             "8":    vec_char=vect_num_8;
  195.             "9":    vec_char=vect_num_9;
  196.             8'd46:  vec_char=vect_num_p;
  197.             8'd32:  vec_char=vect_space;
  198.             8'd97:  vec_char=vect_char_a;
  199.             8'd98:  vec_char=vect_char_b;
  200.             8'd99:  vec_char=vect_char_c;
  201.             8'd100: vec_char=vect_char_d;
  202.             8'd101: vec_char=vect_char_e;
  203.             8'd102: vec_char=vect_char_f;
  204.             8'd103: vec_char=vect_char_g;
  205.             8'd104: vec_char=vect_char_h;
  206.             8'd105: vec_char=vect_char_i;
  207.             8'd106: vec_char=vect_char_j;
  208.             8'd107: vec_char=vect_char_k;
  209.             8'd108: vec_char=vect_char_l;
  210.             8'd109: vec_char=vect_char_m;
  211.             8'd110: vec_char=vect_char_n;
  212.             8'd111: vec_char=vect_char_o;
  213.             8'd112: vec_char=vect_char_p;
  214.             8'd113: vec_char=vect_char_q;
  215.             8'd114: vec_char=vect_char_r;
  216.             8'd115: vec_char=vect_char_s;
  217.             8'd116: vec_char=vect_char_t;
  218.             8'd117: vec_char=vect_char_u;
  219.             8'd118: vec_char=vect_char_v;
  220.             8'd119: vec_char=vect_char_w;
  221.             8'd120: vec_char=vect_char_x;
  222.             8'd121: vec_char=vect_char_y;
  223.             8'd122: vec_char=vect_char_z;
  224.             8'd65: vec_char=vect_char_am;
  225.             8'd66: vec_char=vect_char_bm;
  226.             8'd67: vec_char=vect_char_cm;
  227.             8'd68: vec_char=vect_char_dm;
  228.             8'd69: vec_char=vect_char_em;
  229.             8'd70: vec_char=vect_char_fm;
  230.             8'd71: vec_char=vect_char_gm;
  231.             8'd72: vec_char=vect_char_hm;
  232.             8'd73: vec_char=vect_char_im;
  233.             8'd74: vec_char=vect_char_jm;
  234.             8'd75: vec_char=vect_char_km;
  235.             8'd76: vec_char=vect_char_lm;
  236.             8'd77: vec_char=vect_char_mm;
  237.             8'd78: vec_char=vect_char_nm;
  238.             8'd79: vec_char=vect_char_om;
  239.             8'd80: vec_char=vect_char_pm;
  240.             8'd81: vec_char=vect_char_qm;
  241.             8'd82: vec_char=vect_char_rm;
  242.             8'd83: vec_char=vect_char_sm;
  243.             8'd84: vec_char=vect_char_tm;
  244.             8'd85: vec_char=vect_char_um;
  245.             8'd86: vec_char=vect_char_vm;
  246.             8'd87: vec_char=vect_char_wm;
  247.             8'd88: vec_char=vect_char_xm;
  248.             8'd89: vec_char=vect_char_ym;
  249.             8'd90: vec_char=vect_char_zm;
  250.             8'd164: vec_char=vect_char_nn;//?? enie
  251.             8'd60: vec_char=vect_char_arrow;
  252.             8'd43: vec_char=vect_char_add;
  253.             8'd45: vec_char=vect_char_dif;
  254.             8'd42: vec_char=vect_char_mul;
  255.             8'd38: vec_char=vect_char_and;
  256.             8'd124: vec_char=vect_char_or;
  257.            
  258.             default:vec_char=vect_num_p;//punto
  259.     endcase
  260.    
  261.    
  262.     logic [4:0]character_to_show[0:7];
  263.     logic [4:0]row;
  264.    
  265.     assign { character_to_show[7], character_to_show[6], character_to_show[5], character_to_show[4],
  266.                 character_to_show[3], character_to_show[2], character_to_show[1], character_to_show[0] } =
  267.                 vec_char;
  268.     assign row = character_to_show[coor_y];
  269.     assign pixel = row[coor_x];
  270.    
  271. endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement