Forum: FPGA, VHDL & Co. Anderes Ergebnis bei POST-PLACE-Simulation


von Martin (Gast)


Lesenswert?

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

von Martin (Gast)


Lesenswert?

Kann es vielleicht sein, dass die simulierte Hardware, die hier bei 
Post-Place and Route-Simulation simuliert wird länger braucht, um aus 
einem Reset zu erwachen?

Den Reset deaktiviere ich nach 10ns, den Start der SPI leite ich nach 
20ns ein.

In der Simulation springt das Busy-Flag sofort nach den 10ns auf 0.

In der Post-Place and Route-Simulation dauert es. Ich habs jetzt 
nachgezählt, es sind genau 10Flanken bis das Busy auf 0 geht.

Danke, tschüss
Martin

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
Noch kein Account? Hier anmelden.