www.mikrocontroller.net

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


Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.