Читайте также:
|
|
library IEEE;
use IEEE.STD_LOGIC_1164.all;
use IEEE.NUMERIC_STD.all;
library STD;
use STD.textio.all;
use work.converters.all;
entity mem2 is
port(
clk: in STD_LOGIC;
r: in STD_LOGIC;
w: in STD_LOGIC;
addr: in natural;
datai: in STD_LOGIC_VECTOR(7 downto 0);
load_mem: in STD_LOGIC;
store_mem: in STD_LOGIC;
datao: out STD_LOGIC_VECTOR(7 downto 0)
);
end mem2;
architecture mem2_a of mem2 is
type mem_array is array(0 to 3) of STD_LOGIC_VECTOR(7 downto 0);
signal mem_arr: mem_array;
begin
mem_from_file: process(clk) – чтение текст.данных из файла и конвертир.
file vectors_kont_r: text open READ_MODE is "C:\Program Files\Aldec\shem_mem1\src\load6.txt";
variable buf_prog_r: string(1 to 4);
variable control_read: natural;
begin
if clk'event and clk = '1' and load_mem = '1' and r ='0' then
FILE_OPEN(vectors_kont_r, "C:\Program Files\Aldec\shem_mem1\src\load6.txt", READ_MODE);
READ(vectors_kont_r, buf_prog_r, control_read);
for i in 0 to 3 loop
mem_arr(i) <= conv8(character'POS(buf_prog_r(i+1)));
end loop;
else
if clk'event and clk ='1' and load_mem = '0' and r ='0' then
mem_arr(addr) <= datai;
end if;
end if;
FILE_CLOSE(vectors_kont_r);
end process mem_from_file_or_bus;
char_file_load5: process(w) – запись текст. Данных в файл с предварит. Конвертир.
file vectors_kont_w:TEXT open WRITE_MODE is "C:\Program Files\Aldec\shem_mem2\src\load5.dat";
variable buf_prog_w: string (1 to 4);
begin
FILE_OPEN(vectors_kont_w, "C:\Program Files\Aldec\shem_mem2\src\load5.dat", WRITE_MODE);
if w'event and w = '1' then
for i in 0 to 3 loop
buf_prog_w(i+1):= conv(mem_arr(i)); --конверт.
end loop;
WRITE(vectors_kont_w, buf_prog_w);
end if;
FILE_CLOSE(vectors_kont_w);
end process int_picture_mem_file_load5;
read_mem: process(clk) –пересылка данных из массива на выход. порт
begin
if r = '0' and clk'event then
datao <= "ZZZZZZZZ";
end if;
if r = '1' and clk'event then
datao <= mem_arr(addr);
end if;
end process read_mem;
end mem2_a;
Временная диаграмма работы проекта показана на Рис.5.1
Рис.5.1
Дата добавления: 2015-08-27; просмотров: 52 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Waveform Editor1 | | | Форматированные операции ввода-вывода (чтения-записи) с символами ASCII. |