www.mikrocontroller.net

Forum: FPGA, VHDL & Co. SRAM-Ansteuerung mit Spartan-3


Autor: Tobias Danz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich bin grad dabei ein SRAM anzusteuern. Ich habe ein VHDL-Programm
geschrieben, welches dies tun soll. Mein Problem, das da
Verzögerungszeiten drin sind, die das auslesen der falschen Daten zur
Folge hat. Man kann mir jemand saegn, wo ich vielleicht eine andere
Variante der Ansteuerung finde?

Tobias Danz

Autor: tobias hofer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie sollen wir hier sagen können wo der fehler steckt? ohne dein vhdl
code? poste ihn doch mal. und dann wären ein paar angaben zu deinem ram
auch noch vorteilhaft.

tobias

Autor: C3PO (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum baust du dir nicht eine Zeitverzögerung ein ?

Autor: Tobias Danz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo, ich möchte wissen wie am besten eine globale Zeitverzögerung
einbaue, und dabei trotzdem alle Flip-Flops synchron ansteuren

Autor: C3PO (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
die Sache mit VHDL ist schon etwas her...

google doch mal nach vhdl und delay, da sollte sich doch schon was
finden lassen.

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In dem Du ein Schiebetegister benutzt.

signal SHIFT_REGISTER : STD_LOGIC_VECTOR(9 downto 0);

begin

process(CLK,CLR,SHIFT_REGISTER)

begin

if(CLR = '1') then
   SHIFT_REGISTER <= "0000000001";
elsif(CLK event and CLK = '0')then
   SHIFT_REGISTER <= SHIFT_REGISTER(8 downto 0) & SHIFT_REGISTER(9);
end if;
end process;

-- Neuer Process

process(CLK,CLR,SHIFT_REGISTER)
if(CLR = '1')then
   Zeit_Ist_vergangen <= '0';
elsif(CLK event and CLK = '1')then -- !!!!!!!ACHTUNG wichtig andere
Flanke benutzen als im anderen Process
   if(SHIFT_REGISTER(9) = '1')then
      sind 10 Takte vergangen
      Zeist_Ist_Vergangen <= '1';
   end if;
end if;
end process;

Autor: Jörn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oder benutz einen freilaufenden Zähler und dessen Überlauf als Enable
Signal für Deine FFs.

Autor: C3PO (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Freilaufende Zähler muß aber getriggert werden, damit die
Zeitspannen immer gleich sind !

Autor: Jörn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
die zeitspannen sind immer gleich ... der Zähler braucht immer x Schritt
für einen Überlauf.
Nur der Startpunkt muss eindeutig sein.

Autor: C3PO (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
genau das meinte ich !Man muss den Zähler starten können.

Autor: Tobias Danz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo michael,

indem Syntax ausschnitt von dir, ist "Zeit_Ist_vergangen" der Port
oder wie muß ich dieses Signal verstehn?
Welche Werte werden an das "shift_register" gelegt?

Tobias

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.