Hallo,
wer kann mir bei meinem Anfängerfehler helfen ?
Ich möchte bei auftreten eines Signals "ale" eine Adresse aus einem
"inout"-Vector und einem "in"-Vector zusammensetzen, speichern und an
einem Ausgang zur Verfügung stellen. Synthese klappt leider nicht:
Xst:1710 - FF/Latch <addr_19> (without init value) has a constant value
of 0 in block <bus_couple>. This FF/Latch will be trimmed during the
optimization process.
Xst:1895 - Due to other FF/Latch trimming, FF/Latch <addr_18> (without
init value) has a constant value of 0 in block <bus_couple>. This
FF/Latch will be trimmed during the optimization process.
.
.
.
für den gesamten Vector...
entity bus_couple is
port ( din : out std_logic_vector (15 downto 0);
clk : in std_logic;
cpu_rd_n : in std_logic;
cpu_wd_n : in std_logic;
ale : in std_logic;
dout : in std_logic_vector (15 downto 0);
addr : buffer std_logic_vector (19 downto 0);
addr_a : in std_logic_vector (3 downto 0);
bus_out : inout std_logic_vector (15 downto 0));
end bus_couple;
architecture BEHAVIORAL of bus_couple is
signal shiftAle : std_logic_vector (2 downto 0);
signal setAddr : std_logic;
begin
process (clk)
begin
if (rising_edge(clk)) then
if (shiftAle = "011") then -- Positive Flanke von ale erfassen
addr <= addr_a & bus_out; -- nach 2 Zyklen Adresse von
Bus und Adressleitungen
zusammensetzen
else
addr(19 downto 0) <= addr(19 downto 0);
end if;
end if;
end process;
shiftAle <= shiftAle(1 downto 0) & ale; -- ale Signal shiften und auf
shiftAle abbilden
bus_out <= dout when (cpu_rd_n='0') else -- cpu_rd_n legt dout auf Bus
(others => 'Z');
din <= bus_out when (cpu_wd_n='0') else -- cpu_wd_n legt Bus auf din
(others => 'Z');
end BEHAVIORAL;
Vielen Dank !
Hallo, habe das Problem selbst gefunden. Lag am shiften (shiftAle) ausserhalb von process. Grüße
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.