Hallo zusammen! Ich versuche einen ganz einfahen Tristate-Driver zu synthetisieren. Sieht folgendermaßen aus: entity tristate_driver is port( enable : in std_logic; data_signal: in std_logic; reset: in std_logic; clk: in std_logic; output: out std_logic := '0'); end tristate_driver; architecture Behavioral of tristate_driver is begin process (enable, clk) begin if (reset = '1') then output <= '0'; elsif (clk'event and clk='1') then if enable='1' then output <= 'Z'; end if; end if; end process; end Behavioral; Das enable hängt dabei von zwei Signalen ab und wird so festgelegt: tri : process (int_en, spi_en) begin if clk'event and clk = '1' then if spi_en = '0' and int_en = '0' then enable_tristate <= '1'; else enable_tristate <= '0'; end if; end if; end process; In der Simulation im ISE Webpack funktioniert das wunderbar, wenn ich die Synthese durchführen will, kommt folgender Fehler dabei heraus, auf den ich mir keinen Reim machen kann: "FATAL_ERROR:Xst:xstrtlviewer.c:2417:1.85 - Unsupported macro type (LPM_LATCH_) in FillNodePropFromMacroBas Process will terminate. For technical support on this issue, please open a WebCase with this project attached at http://www.xilinx.com/support." Woran könnte es liegen? Für Hilfe wäre ich sehr dankbar! Gruß Tobias
Hallo, könnte dadran liegen, dass du ein Latch bauen willst mit Tristate-Ausgang. Das gibs wohl nicht in der Bibliothek :D Probiere mal sowas: output <= 'Z' when enable_tristate = '1' else ausgabesignal; ausgabe signal könnte nach deinem code so aussehen: ausgabesignal <= not(reset); Aber willst du das wirklich? Normalerweise schaltet man den Ausgang auf 'Z' wenn enable = '0' ist. Aber kann man natürlich auch anders machen. Der Besucher
Ach, und die Sensitivity-Listen sind in beiden Prozessen falsch. RTL-Simulation und Simulation des Syntheseergebnisses werden so nicht zusammenpassen. Der Besucher
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.