Pamięć ROM użytą w ćwiczeniu należy wygenerować przy użyciu programu
Xilinx ISE 8.1i Core Generator, który można uruchomić z menu
system Windows przez wybranie
Start/Programy/Xilinx ISEXXX/Accessories/Core Generator.
Po uruchomieniu programu należy postępować następująco:
W prawym oknie nacisnąć Create new project i wskazać
katalog do którego będą wpisywane wygenerowane bloki.
Otworzy się okno dialogowe w którym należy wpisać wymagane główne
parametry modułów. Należy wypełnić wg załączonego obrazka.
Następnie, poprzez naciskanie znaku "+" należy rozwinąć
Menu jak na rysunku poniżej i podwójnie kliknąć na
Single Port Block Memory 6.2.
Pojawi się dodatkowe okno, w którym, na kolejnych 4 stronach należy
wpisać parametry generowanej pamięci (wg poniższych rysunków),
a następnie wcisnąć klawisz Generate.
Po chwili od wciśnięcia Generate w katalogu wskazanym w pkt. a.
zostaną utworzone pliki generowanego bloku pamięci.
W pkt. d., na ostatnim rysunku należało podać plik "vga_bmp.coe".
W pliku tym zawarty jest plik "vga_bmp.bmp" w formacie zgodnym z
programem Core Generator.
Z katalogu wskazanego w pkt. a. należy skopiować do katalogu /src
projektu pliki *.edn, *.vhd, *.mif. W pliku *.vho
umieszczony jest przykład
wstawienia wygenerowanego bloku jako komponent VHDL. Pliki *.vhd oraz *.mif
służą wyłącznie do symulacji funkcjonalnej bloku (są używane w symulatorze)
natomiast plik *.edn jest listą połączeń używaną w czasie implementacji projektu.
W programie Active HDL należy dołączyć skopiowane wcześniej pliki
do projektu (Menu Design / Add Files to Design... Dodatkowo,
plik *.vhd
należy wyłączyć z syntezy (w menu opcji syntezy).
Wygenerowana wg powyższych wskazówek pamięć, jest pamięcią
synchroniczną ROM. W celu jej odczytu należy podać adres (wyprowadzenie addr)
odczytywanej komórki oraz ustawić sygnał zezwalający (wyprowadzenie en)
w stan wysoki. Po pojawieniu się narastającego zbocza sygnału zegarowego
(wyprowadzenie clk) do wyjścia (wyprowadzenie dout) zostanie wpisana
zawartość odczytywanej komórki.