ASCII_ROM.VHD
上传用户:dgjihui88
上传日期:2013-07-23
资源大小:43k
文件大小:9k
源码类别:

VHDL/FPGA/Verilog

开发平台:

MultiPlatform

  1. library IEEE;
  2. use IEEE.std_logic_1164.all;
  3. use IEEE.std_logic_arith.all;
  4. use IEEE.std_logic_unsigned.all;
  5. library work;
  6.    use work.my_package.all;
  7. entity CHAR_FONT is
  8. Port (   
  9. SCAN_ADDR : In STD_LOGIC_VECTOR (10 downto 0);
  10. FONT_CODE : Out STD_LOGIC_VECTOR (7 downto 0)
  11. );
  12. end CHAR_FONT;
  13. architecture BEHAVIORAL of CHAR_FONT is
  14. constant FONT_TAB: ROM_TYPE(0 to 1023) :=
  15. (X"00", X"00", X"00", X"00", X"00", X"00", X"00", X"00", -- D_00
  16.  X"7E", X"81", X"A5", X"81", X"BD", X"99", X"81", X"7E", -- D_01
  17.  X"7E", X"FF", X"DB", X"FF", X"C3", X"E7", X"FF", X"7E", -- D_02
  18.  X"6C", X"FE", X"FE", X"FE", X"7C", X"38", X"10", X"00", -- D_03
  19.  X"10", X"38", X"7C", X"FE", X"7C", X"38", X"10", X"00", -- D_04
  20.  X"38", X"7C", X"38", X"FE", X"FE", X"7C", X"38", X"7C", -- D_05
  21.  X"10", X"10", X"38", X"7C", X"FE", X"7C", X"38", X"7C", -- D_06
  22.  X"00", X"00", X"18", X"3C", X"3C", X"18", X"00", X"00", -- D_07
  23.  X"FF", X"FF", X"E7", X"C3", X"C3", X"E7", X"FF", X"FF", -- D_08
  24.  X"00", X"3C", X"66", X"42", X"42", X"66", X"3C", X"00", -- D_09
  25.  X"FF", X"C3", X"99", X"BD", X"BD", X"99", X"C3", X"FF", -- D_0A
  26.  X"0F", X"07", X"0F", X"7D", X"CC", X"CC", X"CC", X"78", -- D_0B
  27.  X"3C", X"66", X"66", X"66", X"3C", X"18", X"7E", X"18", -- D_0C
  28.  X"3F", X"33", X"3F", X"30", X"30", X"70", X"F0", X"E0", -- D_0D
  29.  X"7F", X"63", X"7F", X"63", X"63", X"67", X"E6", X"C0", -- D_0E
  30.  X"99", X"5A", X"3C", X"E7", X"E7", X"3C", X"5A", X"99", -- D_0F
  31.  X"80", X"ED", X"F8", X"FE", X"F8", X"E0", X"80", X"00", -- D_10
  32.  X"02", X"0E", X"3E", X"FE", X"3E", X"0E", X"02", X"00", -- D_11
  33.  X"18", X"3C", X"7E", X"18", X"18", X"7E", X"3C", X"18", -- D_12
  34.  X"66", X"66", X"66", X"66", X"66", X"00", X"66", X"00", -- D_13
  35.  X"7F", X"DB", X"DB", X"7B", X"1B", X"1B", X"1B", X"00", -- D_14
  36.  X"3E", X"63", X"38", X"6C", X"6C", X"38", X"CC", X"78", -- D_15
  37.  X"00", X"00", X"00", X"00", X"7E", X"7E", X"7E", X"00", -- D_16
  38.  X"18", X"3C", X"7E", X"18", X"7E", X"3C", X"18", X"FF", -- D_17
  39.  
  40.  X"18", X"3C", X"7E", X"18", X"18", X"18", X"18", X"00", -- D_18
  41.  X"18", X"18", X"18", X"18", X"7E", X"3C", X"18", X"00", -- D_19
  42.  X"00", X"18", X"0C", X"FE", X"0C", X"18", X"00", X"00", -- D_1A
  43.  X"00", X"3D", X"60", X"FE", X"6D", X"30", X"00", X"00", -- D_1B
  44.  X"00", X"00", X"C0", X"C0", X"C0", X"FE", X"00", X"00", -- D_1C
  45.  X"00", X"24", X"66", X"FF", X"66", X"24", X"00", X"00", -- D_1D
  46.  X"00", X"18", X"3C", X"7E", X"FF", X"FF", X"00", X"00", -- D_1E
  47.  X"00", X"FF", X"FF", X"7E", X"3C", X"18", X"00", X"00", -- D_1F
  48.  X"00", X"00", X"00", X"00", X"00", X"00", X"00", X"00", -- D_20 ' '
  49.  X"30", X"78", X"78", X"30", X"30", X"00", X"30", X"00", -- D_21 '!'
  50.  X"6C", X"6C", X"6C", X"00", X"00", X"00", X"00", X"00", -- D_22 '"'
  51.  X"6C", X"6C", X"FE", X"6C", X"FE", X"6C", X"6C", X"00", -- D_23 '#'
  52.  X"30", X"7C", X"C0", X"78", X"0C", X"F8", X"30", X"00", -- D_24 '$'
  53.  X"00", X"C6", X"CC", X"18", X"30", X"66", X"C6", X"00", -- D_25 '%'
  54.  X"38", X"6C", X"38", X"76", X"DC", X"CC", X"76", X"00", -- D_26 '&'
  55.  X"60", X"60", X"C0", X"00", X"00", X"00", X"00", X"00", -- D_27 '`'
  56.  X"18", X"30", X"60", X"60", X"60", X"30", X"18", X"00", -- D_28 '('
  57.  X"60", X"30", X"18", X"18", X"18", X"30", X"60", X"00", -- D_29 ')'
  58.  X"00", X"66", X"3C", X"FF", X"3C", X"66", X"00", X"00", -- D_2A '#'
  59.  X"00", X"30", X"30", X"FC", X"30", X"30", X"00", X"00", -- D_2B '+'
  60.  X"00", X"00", X"00", X"00", X"00", X"30", X"30", X"60", -- D_2C ','
  61.  X"00", X"00", X"00", X"FC", X"00", X"00", X"00", X"00", -- D_2D '-'
  62.  X"00", X"00", X"00", X"00", X"00", X"30", X"30", X"00", -- D_2E '.'
  63.  X"06", X"0C", X"18", X"30", X"60", X"C0", X"80", X"00", -- D_2F '/'
  64.  X"7C", X"C6", X"CE", X"DE", X"F6", X"E6", X"7C", X"00", -- D_30 '0'
  65.  X"30", X"70", X"30", X"30", X"30", X"30", X"FC", X"00", -- D_31 '1'
  66.  X"78", X"CC", X"0C", X"38", X"60", X"CC", X"FC", X"00", -- D_32 '2'
  67.  X"78", X"CC", X"0C", X"38", X"0C", X"CC", X"78", X"00", -- D_33 '3'
  68.  X"1C", X"3C", X"6C", X"CC", X"FE", X"0C", X"1E", X"00", -- D_34 '4'
  69.  X"FC", X"C0", X"F8", X"0C", X"0C", X"CC", X"78", X"00", -- D_35 '5'
  70.  X"38", X"60", X"C0", X"F8", X"CC", X"CC", X"78", X"00", -- D_36 '6'
  71.  X"FC", X"CC", X"0C", X"18", X"30", X"30", X"30", X"00", -- D_37 '7'
  72.  
  73.  X"78", X"CC", X"CC", X"78", X"CC", X"CC", X"78", X"00", -- D_38 '8'
  74.  X"78", X"CC", X"CC", X"7C", X"0C", X"18", X"70", X"00", -- D_39 '9'
  75.  X"00", X"30", X"30", X"00", X"00", X"30", X"30", X"00", -- D_3A ':'
  76.  X"00", X"30", X"30", X"00", X"00", X"30", X"30", X"00", -- D_3B ';'
  77.  X"18", X"30", X"60", X"C0", X"60", X"30", X"18", X"00", -- D_3C '<'
  78.  X"00", X"00", X"FC", X"00", X"00", X"FC", X"00", X"00", -- D_3D '='
  79.  X"60", X"30", X"18", X"0C", X"18", X"30", X"60", X"00", -- D_3E '>'
  80.  X"78", X"CC", X"0C", X"18", X"30", X"00", X"30", X"00", -- D_3F '?'
  81.  X"7C", X"C6", X"DE", X"DE", X"DE", X"C0", X"78", X"00", -- D_40 '@'
  82.  X"30", X"78", X"CC", X"CC", X"FC", X"CC", X"CC", X"00", -- D_41 'A'
  83.  X"FC", X"66", X"66", X"7C", X"66", X"66", X"FC", X"00", -- D_42 'B'
  84.  X"3C", X"66", X"C0", X"C0", X"C0", X"66", X"3C", X"00", -- D_43 'C'
  85.  X"F8", X"6C", X"66", X"66", X"66", X"6C", X"F8", X"00", -- D_44 'D'
  86.  X"FE", X"62", X"68", X"78", X"68", X"62", X"FE", X"00", -- D_45 'E'
  87.  X"FE", X"62", X"68", X"78", X"68", X"60", X"F0", X"00", -- D_46 'F'
  88.  X"3C", X"66", X"C0", X"C0", X"CE", X"66", X"3E", X"00", -- D_47 'G'
  89.  X"CC", X"CC", X"CC", X"FC", X"CC", X"CC", X"CC", X"00", -- D_48 'H'
  90.  X"78", X"30", X"30", X"30", X"30", X"30", X"78", X"00", -- D_49 'I'
  91.  X"1E", X"0C", X"0C", X"0C", X"CC", X"CC", X"78", X"00", -- D_4A 'J'
  92.  X"E6", X"66", X"6C", X"78", X"6C", X"66", X"E6", X"00", -- D_4B 'K'
  93.  X"F0", X"60", X"60", X"60", X"62", X"66", X"FE", X"00", -- D_4C 'L'
  94.  X"C6", X"EE", X"FE", X"FE", X"D6", X"C6", X"C6", X"00", -- D_4D 'M'
  95.  X"C6", X"E6", X"F6", X"DE", X"CE", X"C6", X"C6", X"00", -- D_4E 'N'
  96.  X"38", X"6C", X"C6", X"C6", X"C6", X"6C", X"38", X"00", -- D_4F 'O'
  97.  X"FC", X"66", X"66", X"7C", X"60", X"60", X"F0", X"00", -- D_50 'P'
  98.  X"78", X"CC", X"CC", X"CC", X"DC", X"78", X"1C", X"00", -- D_51 'Q'
  99.  X"FC", X"66", X"66", X"7C", X"6C", X"66", X"E6", X"0C", -- D_52 'R'
  100.  X"78", X"CC", X"E0", X"70", X"1C", X"CC", X"78", X"00", -- D_53 'S'
  101.  X"FC", X"B4", X"30", X"30", X"30", X"30", X"78", X"00", -- D_54 'T'
  102.  X"CC", X"CC", X"CC", X"CC", X"CC", X"CC", X"FC", X"00", -- D_55 'U'
  103.  X"CC", X"CC", X"CC", X"CC", X"CC", X"78", X"30", X"00", -- D_56 'V'
  104.  X"C6", X"C6", X"C6", X"D6", X"FE", X"EE", X"C6", X"00", -- D_57 'W'
  105.  X"C6", X"C6", X"6C", X"38", X"38", X"6C", X"C6", X"00", -- D_58 'X'
  106.  X"CC", X"CC", X"CC", X"78", X"30", X"30", X"78", X"00", -- D_59 'Y'
  107.  X"FE", X"C6", X"8C", X"88", X"32", X"66", X"FE", X"00", -- D_5A 'Z'
  108.  X"78", X"60", X"60", X"60", X"60", X"60", X"78", X"00", -- D_5B '['
  109.  X"C0", X"60", X"30", X"18", X"0C", X"06", X"02", X"00", -- D_5C ''
  110.  X"78", X"18", X"18", X"18", X"18", X"18", X"78", X"00", -- D_5D ']'
  111.  X"10", X"38", X"6C", X"C6", X"00", X"00", X"00", X"00", -- D_5E '^'
  112.  X"00", X"00", X"00", X"00", X"00", X"00", X"00", X"FF", -- D_5F '_'
  113.  X"30", X"30", X"18", X"00", X"00", X"00", X"00", X"00", -- D_60 '`'
  114.  X"00", X"00", X"78", X"0C", X"7C", X"CC", X"76", X"00", -- D_61 'a'
  115.  X"E0", X"60", X"60", X"7C", X"66", X"66", X"DC", X"00", -- D_62 'b'
  116.  X"00", X"00", X"78", X"CC", X"C0", X"CC", X"78", X"00", -- D_63 'c'
  117.  X"1C", X"0C", X"0C", X"7C", X"CC", X"CC", X"76", X"00", -- D_64 'd'
  118.  X"00", X"00", X"78", X"CC", X"FC", X"C0", X"78", X"00", -- D_65 'e'
  119.  X"38", X"6C", X"60", X"F0", X"60", X"60", X"F0", X"00", -- D_66 'f'
  120.  X"00", X"00", X"76", X"CC", X"CC", X"7C", X"0C", X"F8", -- D_67 'g'
  121.  X"E0", X"60", X"6C", X"76", X"66", X"66", X"E6", X"00", -- D_68 'h'
  122.  X"30", X"00", X"70", X"30", X"30", X"30", X"78", X"00", -- D_69 'i'
  123.  X"0C", X"00", X"0C", X"0C", X"0C", X"CC", X"CC", X"78", -- D_6A 'j'
  124.  X"E0", X"60", X"66", X"6C", X"78", X"6C", X"E6", X"00", -- D_6B 'k'
  125.  X"70", X"30", X"30", X"30", X"30", X"30", X"78", X"00", -- D_6C 'l'
  126.  X"00", X"00", X"CC", X"FE", X"FE", X"D6", X"C6", X"00", -- D_6D 'm'
  127.  X"00", X"00", X"F8", X"CC", X"CC", X"CC", X"CC", X"00", -- D_6E 'n'
  128.  X"00", X"00", X"78", X"CC", X"CC", X"CC", X"78", X"00", -- D_6F 'o'
  129.  X"00", X"00", X"DC", X"66", X"66", X"7C", X"60", X"F0", -- D_70 'p'
  130.  X"00", X"00", X"76", X"CC", X"CC", X"7C", X"0C", X"1E", -- D_71 'q'
  131.  X"00", X"00", X"DC", X"76", X"66", X"60", X"F0", X"00", -- D_72 'r'
  132.  X"00", X"00", X"7C", X"C0", X"78", X"0C", X"F8", X"00", -- D_73 's'
  133.  X"10", X"30", X"7C", X"30", X"30", X"34", X"18", X"00", -- D_74 't'
  134.  X"00", X"00", X"CC", X"CC", X"CC", X"CC", X"76", X"00", -- D_75 'u'
  135.  X"00", X"00", X"CC", X"CC", X"CC", X"78", X"30", X"00", -- D_76 'v'
  136.  X"00", X"00", X"C6", X"D6", X"FE", X"FE", X"6C", X"00", -- D_77 'w'
  137.  X"00", X"00", X"C6", X"6C", X"38", X"6C", X"C6", X"00", -- D_78 'x'
  138.  X"00", X"00", X"CC", X"CC", X"CC", X"7C", X"0C", X"F8", -- D_79 'y'
  139.  X"00", X"00", X"FC", X"98", X"30", X"64", X"FC", X"00", -- D_7A 'z'
  140.  X"1C", X"30", X"30", X"E0", X"30", X"30", X"1C", X"00", -- D_7B '{'
  141.  X"18", X"18", X"18", X"00", X"18", X"18", X"18", X"00", -- D_7C '|'
  142.  X"E0", X"30", X"30", X"1C", X"30", X"30", X"E0", X"00", -- D_7D '}'
  143.  X"76", X"DC", X"00", X"00", X"00", X"00", X"00", X"00", -- D_7E '~'
  144.  X"00", X"10", X"38", X"6C", X"C6", X"C6", X"FE", X"00"  -- D_7F delta
  145. );
  146. begin
  147. FONT_CODE <= CONV_STD_LOGIC_VECTOR(FONT_TAB(CONV_INTEGER(SCAN_ADDR(10 downto 0))),8);
  148. end BEHAVIORAL;