下面这个程序到底哪里错了,哪位高手给点拨一下,type rom_type is array (0 to 127) of unsigned(7 downto 0);这一句的最后到底是unsigned 还是bit_vector还是 std_logic_vector? 我三个都换过了,就是不对,到底调用16进制数组有什么要求?
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_unsigned.all;
entity CHAR_FONT is
Port (
SCAN_ADDR : In std_logic_vector(10 downto 0);
FONT_CODE : Out STD_LOGIC_VECTOR(7 downto 0)
);
end CHAR_FONT;
--
-- This character font rom only supports 16 hex numbers
--
architecture BEHAVIORAL of CHAR_FONT is
type rom_type is array (0 to 127) of unsigned(7 downto 0);
constant FONT_TAB: ROM_TYPE(0 to 127) :=
(X"7C", X"C6", X"CE", X"DE", X"F6", X"E6", X"7C", X"00", -- D_30 '0'
X"30", X"70", X"30", X"30", X"30", X"30", X"FC", X"00", -- D_31 '1'
X"78", X"CC", X"0C", X"38", X"60", X"CC", X"FC", X"00", -- D_32 '2'
X"78", X"CC", X"0C", X"38", X"0C", X"CC", X"78", X"00", -- D_33 '3'
X"1C", X"3C", X"6C", X"CC", X"FE", X"0C", X"1E", X"00", -- D_34 '4'
X"FC", X"C0", X"F8", X"0C", X"0C", X"CC", X"78", X"00", -- D_35 '5'
X"38", X"60", X"C0", X"F8", X"CC", X"CC", X"78", X"00", -- D_36 '6'
X"FC", X"CC", X"0C", X"18", X"30", X"30", X"30", X"00", -- D_37 '7'
X"78", X"CC", X"CC", X"78", X"CC", X"CC", X"78", X"00", -- D_38 '8'
X"78", X"CC", X"CC", X"7C", X"0C", X"18", X"70", X"00", -- D_39 '9'
X"30", X"78", X"CC", X"CC", X"FC", X"CC", X"CC", X"00", -- D_41 'A'
X"FC", X"66", X"66", X"7C", X"66", X"66", X"FC", X"00", -- D_42 'B'
X"3C", X"66", X"C0", X"C0", X"C0", X"66", X"3C", X"00", -- D_43 'C'
X"F8", X"6C", X"66", X"66", X"66", X"6C", X"F8", X"00", -- D_44 'D'
X"FE", X"62", X"68", X"78", X"68", X"62", X"FE", X"00", -- D_45 'E'
X"FE", X"62", X"68", X"78", X"68", X"60", X"F0", X"00" -- D_46 'F'
);
begin
FONT_CODE<=to_std_logic_vector(FONT_TAB(CONV_INTEGER(SCAN_ADDR(6 downto 0))),8);
end BEHAVIORAL; |