
написал вот такое:
Код
entity memory_t is
Port ( switch : in std_logic_vector(7 downto 0);
button4 : in std_logic;
data : inout std_logic_vector(15 downto 0);
address : out std_logic_vector(17 downto 0);
led,char : out std_logic_vector(7 downto 0);
ce,ub,lb,we,oe : inout std_logic
);
end memory_t;
architecture Behavioral of memory_t is
begin
ce<='0';
ub<='1'; lb<='1';
led<=(ce,ub,lb,we,oe,button4,'0','0');
address(17 downto 8)<="0000000000";
address(7 downto 0)<=switch;
char<=data(7 downto 0);
process(button4)
begin
if button4='1' then
data(7 downto 0)<="01010101";
we<='0'; oe<='1';
else
data(7 downto 0)<="ZZZZZZZZ";
we<='1'; oe<='0';
end if;
end process;
end Behavioral;
Port ( switch : in std_logic_vector(7 downto 0);
button4 : in std_logic;
data : inout std_logic_vector(15 downto 0);
address : out std_logic_vector(17 downto 0);
led,char : out std_logic_vector(7 downto 0);
ce,ub,lb,we,oe : inout std_logic
);
end memory_t;
architecture Behavioral of memory_t is
begin
ce<='0';
ub<='1'; lb<='1';
led<=(ce,ub,lb,we,oe,button4,'0','0');
address(17 downto 8)<="0000000000";
address(7 downto 0)<=switch;
char<=data(7 downto 0);
process(button4)
begin
if button4='1' then
data(7 downto 0)<="01010101";
we<='0'; oe<='1';
else
data(7 downto 0)<="ZZZZZZZZ";
we<='1'; oe<='0';
end if;
end process;
end Behavioral;
Работает не так как думал. А если точнее - как будто у памяти запоминание не срабатывает.

Там есть более ранние посты. Но там про моделирование спрашивается. А меня синтез интересует. Т.е. я на char смотрю постоянно что на тех линиях происходит. И когда надо записать - записываю, а когда не надо - перевожу порт в Z.