--- Quote Start ---
Dual ports means each port can do either write OR read on each port in clock cycle, not both.
--- Quote End ---
I added another process,
ShowResults:Process(Clock,show)
variable i:integer range 0 to 7:=0;
begin
IF rising_edge(clock) and show='1' THEN
D<=ram1(2*i);
S<=ram1(2*i+1);
i:=i+1;
end if;
end process;
acmain<='0' when Z=16 else '1'; --Z is a counter to read 16 elements and then stop activating the first process.acmain is in sensitivity list of first process I listed in first post.
show<='1' when acmain='0' else '0';
So, I activate it when I deactivate the first process , So I can either read or write. However Still unable to infer to memory. What is the best solution for that