------------------------------------------------------------------------------- -- Title : definition de fonts 64 caracteres -- Project : ------------------------------------------------------------------------------- -- File : fonts.vhd -- Author : NOUEL Patrice -- Company : -- Last update: 2004/03/04 -- Platform : ------------------------------------------------------------------------------- -- Description: ------------------------------------------------------------------------------- -- Revisions : -- Date Version Author Description -- 2003/10/02 1.0 nouel Created ------------------------------------------------------------------------------- LIBRARY ieee; USE ieee.std_logic_1164.ALL; USE ieee.numeric_std.ALL; ENTITY fonts IS PORT ( adresse_caractere : IN std_logic_vector(5 DOWNTO 0); -- 64 colonne_font : IN std_logic_vector(2 DOWNTO 0); -- 1 bit parmi 8 ligne_font : IN std_logic_vector(2 DOWNTO 0); -- 1 bit parmi 8 pixel : OUT std_ulogic); -- allumé ou éteint END fonts; ARCHITECTURE pour_fpga OF fonts IS TYPE tableau IS ARRAY (0 TO 511) OF std_logic_vector(7 DOWNTO 0); CONSTANT rom_512x8 : tableau := ( "00111100", -- **** "01100110", -- ** ** "01101110", -- ** *** "01101110", -- ** *** "01100000", -- ** "01100010", -- ** * "00111100", -- **** "00000000", -- "00011000", -- ** "00111100", -- **** "01100110", -- ** ** "01111110", -- ****** "01100110", -- ** ** "01100110", -- ** ** "01100110", -- ** ** "00000000", -- "01111100", -- ***** "01100110", -- ** ** "01100110", -- ** ** "01111100", -- ***** "01100110", -- ** ** "01100110", -- ** ** "01111100", -- ***** "00000000", -- "00111100", -- **** "01100110", -- ** ** "01100000", -- ** "01100000", -- ** "01100000", -- ** "01100110", -- ** ** "00111100", -- **** "00000000", -- "01111000", -- **** "01101100", -- ** ** "01100110", -- ** ** "01100110", -- ** ** "01100110", -- ** ** "01101100", -- ** ** "01111000", -- **** "00000000", -- "01111110", -- ****** "01100000", -- ** "01100000", -- ** "01111000", -- **** "01100000", -- ** "01100000", -- ** "01111110", -- ****** "00000000", -- "01111110", -- ****** "01100000", -- ** "01100000", -- ** "01111000", -- **** "01100000", -- ** "01100000", -- ** "01100000", -- ** "00000000", -- "00111100", -- **** "01100110", -- ** ** "01100000", -- ** "01101110", -- ** *** "01100110", -- ** ** "01100110", -- ** ** "00111100", -- **** "00000000", -- "01100110", -- ** ** "01100110", -- ** ** "01100110", -- ** ** "01111110", -- ****** "01100110", -- ** ** "01100110", -- ** ** "01100110", -- ** ** "00000000", -- "00111100", -- **** "00011000", -- ** "00011000", -- ** "00011000", -- ** "00011000", -- ** "00011000", -- ** "00111100", -- **** "00000000", -- "00011110", -- **** "00001100", -- ** "00001100", -- ** "00001100", -- ** "00001100", -- ** "01101100", -- ** ** "00111000", -- *** "00000000", -- "01100110", -- ** ** "01101100", -- ** ** "01111000", -- **** "01110000", -- *** "01111000", -- **** "01101100", -- ** ** "01100110", -- ** ** "00000000", -- "01100000", -- ** "01100000", -- ** "01100000", -- ** "01100000", -- ** "01100000", -- ** "01100000", -- ** "01111110", -- ****** "00000000", -- "01100011", -- ** ** "01110111", -- *** *** "01111111", -- ******* "01101011", -- ** * ** "01100011", -- ** ** "01100011", -- ** ** "01100011", -- ** ** "00000000", -- "01100110", -- ** ** "01110110", -- *** ** "01111110", -- ****** "01111110", -- ****** "01101110", -- ** *** "01100110", -- ** ** "01100110", -- ** ** "00000000", -- "00111100", -- **** "01100110", -- ** ** "01100110", -- ** ** "01100110", -- ** ** "01100110", -- ** ** "01100110", -- ** ** "00111100", -- **** "00000000", -- "01111100", -- ***** "01100110", -- ** ** "01100110", -- ** ** "01111100", -- ***** "01100000", -- ** "01100000", -- ** "01100000", -- ** "00000000", -- "00111100", -- **** "01100110", -- ** ** "01100110", -- ** ** "01100110", -- ** ** "01100110", -- ** ** "00111100", -- **** "00001110", -- *** "00000000", -- "01111100", -- ***** "01100110", -- ** ** "01100110", -- ** ** "01111100", -- ***** "01111000", -- **** "01101100", -- ** ** "01100110", -- ** ** "00000000", -- "00111100", -- **** "01100110", -- ** ** "01100000", -- ** "00111100", -- **** "00000110", -- ** "01100110", -- ** ** "00111100", -- **** "00000000", -- "01111110", -- ****** "00011000", -- ** "00011000", -- ** "00011000", -- ** "00011000", -- ** "00011000", -- ** "00011000", -- ** "00000000", -- "01100110", -- ** ** "01100110", -- ** ** "01100110", -- ** ** "01100110", -- ** ** "01100110", -- ** ** "01100110", -- ** ** "00111100", -- **** "00000000", -- "01100110", -- ** ** "01100110", -- ** ** "01100110", -- ** ** "01100110", -- ** ** "01100110", -- ** ** "00111100", -- **** "00011000", -- ** "00000000", -- "01100011", -- ** ** "01100011", -- ** ** "01100011", -- ** ** "01101011", -- ** * ** "01111111", -- ******* "01110111", -- *** *** "01100011", -- ** ** "00000000", -- "01100110", -- ** ** "01100110", -- ** ** "00111100", -- **** "00011000", -- ** "00111100", -- **** "01100110", -- ** ** "01100110", -- ** ** "00000000", -- "01100110", -- ** ** "01100110", -- ** ** "01100110", -- ** ** "00111100", -- **** "00011000", -- ** "00011000", -- ** "00011000", -- ** "00000000", -- "01111110", -- ****** "00000110", -- ** "00001100", -- ** "00011000", -- ** "00110000", -- ** "01100000", -- ** "01111110", -- ****** "00000000", -- "00111100", -- **** "00110000", -- ** "00110000", -- ** "00110000", -- ** "00110000", -- ** "00110000", -- ** "00111100", -- **** "00000000", -- "00011000", -- ** "00011000", -- ** "00011000", -- ** "00011000", -- ** "01111110", -- ****** "00111100", -- **** "00011000", -- ** "00000000", -- "00111100", -- **** "00001100", -- ** "00001100", -- ** "00001100", -- ** "00001100", -- ** "00001100", -- ** "00111100", -- **** "00000000", -- "00000000", -- "00011000", -- ** "00111100", -- **** "01111110", -- ****** "00011000", -- ** "00011000", -- ** "00011000", -- ** "00011000", -- ** "00000000", -- "00010000", -- * "00110000", -- ** "01111111", -- ******* "01111111", -- ******* "00110000", -- ** "00010000", -- * "00000000", -- "00000000", -- "00000000", -- "00000000", -- "00000000", -- "00000000", -- "00000000", -- "00000000", -- "00000000", -- "00011000", -- ** "00011000", -- ** "00011000", -- ** "00011000", -- ** "00000000", -- "00000000", -- "00011000", -- ** "00000000", -- "01100110", -- ** ** "01100110", -- ** ** "01100110", -- ** ** "00000000", -- "00000000", -- "00000000", -- "00000000", -- "00000000", -- "01100110", -- ** ** "01100110", -- ** ** "11111111", -- ******** "01100110", -- ** ** "11111111", -- ******** "01100110", -- ** ** "01100110", -- ** ** "00000000", -- "00011000", -- ** "00111110", -- ***** "01100000", -- ** "00111100", -- **** "00000110", -- ** "01111100", -- ***** "00011000", -- ** "00000000", -- "01100010", -- ** * "01100110", -- ** ** "00001100", -- ** "00011000", -- ** "00110000", -- ** "01100110", -- ** ** "01000110", -- * ** "00000000", -- "00111100", -- **** "01100110", -- ** ** "00111100", -- **** "00111000", -- *** "01100111", -- ** *** "01100110", -- ** ** "00111111", -- ****** "00000000", -- "00000110", -- ** "00001100", -- ** "00011000", -- ** "00000000", -- "00000000", -- "00000000", -- "00000000", -- "00000000", -- "00001100", -- ** "00011000", -- ** "00110000", -- ** "00110000", -- ** "00110000", -- ** "00011000", -- ** "00001100", -- ** "00000000", -- "00110000", -- ** "00011000", -- ** "00001100", -- ** "00001100", -- ** "00001100", -- ** "00011000", -- ** "00110000", -- ** "00000000", -- "00000000", -- "01100110", -- ** ** "00111100", -- **** "11111111", -- ******** "00111100", -- **** "01100110", -- ** ** "00000000", -- "00000000", -- "00000000", -- "00011000", -- ** "00011000", -- ** "01111110", -- ****** "00011000", -- ** "00011000", -- ** "00000000", -- "00000000", -- "00000000", -- "00000000", -- "00000000", -- "00000000", -- "00000000", -- "00011000", -- ** "00011000", -- ** "00110000", -- ** "00000000", -- "00000000", -- "00000000", -- "01111110", -- ****** "00000000", -- "00000000", -- "00000000", -- "00000000", -- "00000000", -- "00000000", -- "00000000", -- "00000000", -- "00000000", -- "00011000", -- ** "00011000", -- ** "00000000", -- "00000000", -- "00000011", -- ** "00000110", -- ** "00001100", -- ** "00011000", -- ** "00110000", -- ** "01100000", -- ** "00000000", -- "00111100", -- **** "01100110", -- ** ** "01101110", -- ** *** "01110110", -- *** ** "01100110", -- ** ** "01100110", -- ** ** "00111100", -- **** "00000000", -- "00011000", -- ** "00011000", -- ** . "00111000", -- *** "00011000", -- ** "00011000", -- ** "00011000", -- ** "01111110", -- ****** "00000000", -- "00111100", -- **** "01100110", -- ** ** "00000110", -- ** "00001100", -- ** "00110000", -- ** "01100000", -- ** "01111110", -- ****** "00000000", -- "00111100", -- **** "01100110", -- ** ** "00000110", -- ** "00011100", -- *** "00000110", -- ** "01100110", -- ** ** "00111100", -- **** "00000000", -- "00000110", -- ** "00001110", -- *** "00011110", -- **** "01100110", -- ** ** "01111111", -- ******* "00000110", -- ** "00000110", -- ** "00000000", -- "01111110", -- ****** "01100000", -- ** "01111100", -- ***** "00000110", -- ** "00000110", -- ** "01100110", -- ** ** "00111100", -- **** "00000000", -- "00111100", -- **** "01100110", -- ** ** "01100000", -- ** "01111100", -- ***** "01100110", -- ** ** "01100110", -- ** ** "00111100", -- **** "00000000", -- "01111110", -- ****** "01100110", -- ** ** "00001100", -- ** "00011000", -- ** "00011000", -- ** "00011000", -- ** "00011000", -- ** "00000000", -- "00111100", -- **** "01100110", -- ** ** "01100110", -- ** ** "00111100", -- **** "01100110", -- ** ** "01100110", -- ** ** "00111100", -- **** "00000000", -- "00111100", -- **** "01100110", -- ** ** "01100110", -- ** ** "00111110", -- ***** "00000110", -- ** "01100110", -- ** ** "00111100", -- **** "00000000", -- "00011000", -- ** "00111100", -- **** "01100110", -- ** ** "01111110", -- ****** "01100110", -- ** ** "01100110", -- ** ** "01100110", -- ** ** "00000000", -- "01111100", -- ***** "01100110", -- ** ** "01100110", -- ** ** "01111100", -- ***** "01100110", -- ** ** "01100110", -- ** ** "01111100", -- ***** "00000000", -- "00111100", -- **** "01100110", -- ** ** "01100000", -- ** "01100000", -- ** "01100000", -- ** "01100110", -- ** ** "00111100", -- **** "00000000", -- "01111000", -- **** "01101100", -- ** ** "01100110", -- ** ** "01100110", -- ** ** "01100110", -- ** ** "01101100", -- ** ** "01111000", -- **** "00000000", -- "01111110", -- ****** "01100000", -- ** "01100000", -- ** "01111000", -- **** "01100000", -- ** "01100000", -- ** "01111110", -- ****** "00000000", -- "01111110", -- ****** "01100000", -- ** "01100000", -- ** "01111000", -- **** "01100000", -- ** "01100000", -- ** "01100000", -- ** "00000000");-- SIGNAL adresse_rom : std_logic_vector(8 DOWNTO 0); -- 512 SIGNAL sortie_rom : std_logic_vector(7 DOWNTO 0); -- 8 pixels BEGIN -- pour_fpga adresse_rom <= adresse_caractere & ligne_font ; sortie_rom <= rom_512x8(TO_integer(unsigned(adresse_rom))); -- un seul pixel (bit) en sortie -- on compte de droite à gauche pour affichage correct WITH colonne_font SELECT pixel <= sortie_rom(7) WHEN "000", sortie_rom(6) WHEN "001", sortie_rom(5) WHEN "010", sortie_rom(4) WHEN "011", sortie_rom(3) WHEN "100", sortie_rom(2) WHEN "101", sortie_rom(1) WHEN "110", sortie_rom(0) WHEN others; END pour_fpga;