Alternatively, do not use generators or read files; just declare a constant array in the package. Put it in a package, not in the main architecture, and you can even write the package automatically using a script (say reading the output of an assembler or a text file).
library ieee; use ieee.std_logic_1164.all; package ProgMem is type Word is std_logic_vector(7 downto 0); constant ROM : array (0 to 3) of Word := ( X"C3", X"00", X"00", "UUUUUUUU" ); end package Progmem;
The actual program may be longer, but this illustrates the pattern.
source share