Gast
#640372
Hallo Leute! Ich habe eine SPI-Schnittstelle unter VHDL realisiert. Ich verwende das ISE8.2 und Modelsim6.2g Die Simulation funktioniert hervorragend. Wenn ich aber eine Post-Place and Route-Simulation durchführe, das Model kann man sich im ISE erstellen lassen, dann verhält es sich im Modelsim anders als die Simulation: Das VHDL-Model hat einen Busy-Ausgang, (highaktiv) der auf 1 ist, wenn die Reset-Taste gedrückt ist. Sobald in der Simulation Reset deaktiviert wird, sollte bei der nächsten CLK-Taktflanke Busy auf 0 springen. Dies funktioniert in der normalen Simulation perfekt nur nicht in der Post-Place and Route-Simulation. Dort benötigt das Busy-Signal ca. 5 Takte bis es auf 0 springt. In einer nebenläufigen Anweisung erhält Busy folgenden Wert. busy<=busy_start or busy_spi; Busy_start ist zu Beginn immer auf 0(Im-Reset-Zustand und im Normalzustand), bis ein SPI-Start eingeleitet wird. Busy_spi ist im Reset-Zustand auf 1 und sollte nachdem Reset deaktiviert wird mit dem nächsten Clock auf 0 Springen. spi_zugriff: process(clk,rst) variable spi_count: integer range 0 to 15; begin if rst=ein then busy_spi<='1'; spi_cs<='1'; spi_mosi<='0'; spi_clk<='0'; spi_count:=15; state_spi<=s_bereit; elsif clk'event and clk='1' then if state_spi=s_bereit then busy_spi<='0'; end if; ... ... ... Ich habe wirklich absolut keine Ahnung, warum das Busy in der Post-Place and Rout-Simulation so lange ca. 5CLKs benötigt, um auf 0 zu springen? Bitte helft mir. Danke Tschüss Martin