Gast
#203625
Hallo @all,
mal eine Frage, und ich hoffe sie ist nicht zu doof gestellt (bzw. das
die Frage so simpel ist das keiner drauf antwortet :-)) :
Ich möchte 2 von den 12 Block-RAMS aus dem Spartan 3 in einer Entity
verwenden.
Sprich : mir reicht der 1k*18 nicht, ich möchte 2k*18 haben.
Also 2 Instanziierungen klappen noch, die beiden IN-ports sind ja auch
kein problem, aber wie sieht das aus mit dem Data-Out Port.
Muß ich den unbedingt multiplexen ? (kost ja laufzeit und logik)
So in etwa hatte ich mir das vorgestellt :
entity ram is
...
addr : in std_logic_vector (11 downto 0);
din : in std_logic_vector (7 downto 0);
dout : out std_logic_vector (7 downto 0);
wen : in std_logic;
ena : in std_logic
end entity;
architecture ...
...
BLOCK_RAM_1 : RAMB16_S9_S9 port map (
addr => addr (11 downto 0),
din => din,
dout => dout,
wen => wen,
ena => not addr (0) and ena
...
);
BLOCK_RAM_2 : RAMB16_S9_S9 port map (
addr => addr (11 downto 0),
din => din,
dout => dout,
wen => wen,
ena => addr (0) and ena
...
);
...
Bräuchte ich extra noch 2 8 bit-vektoren zwischen denen ich dann im
ausgang hin und her schalte und spare mir dann so das enable für das
jeweilge Block-Ram oder kann ich die out-ports doch
"aufeinander"-legen (ähnlich wie beim datenbus)
Habe beim synthetisieren immer das problem des Multi-Source :-((
Gruß
Rene