mikrocontroller.net

Forum: FPGA, VHDL & Co. Problem mit den Ausgänge


Autor: Michael Milan (Firma: Uni Hannover) (babybk)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi Leute,

ich hab ein Problem mit den Ausgänge des ob Block.
Und zwaz:
wenn Dataseingang mit dem Wert "11000001" --193 dann Ausgang f_1en muss 
1 sein.Dies Ausgang hab ich gecheckt durch Oscillopkop,und der Wert ist 
leider immer 0.

Wer kann mir erklären?
Oder es passiert so schnell,deshalb kann man nicht beobachten!!!

Autor: Michael Milan (Firma: Uni Hannover) (babybk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Noch en Sache

Nicht nur der Wert 193 sonder von 193-198.Der Fehler kommt wieder

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wer kann mir erklären?
> Oder es passiert so schnell,deshalb kann man nicht beobachten!!!

Genau für diesen Zweck hat man die VHDL Simulatoren erfunden. Da kann 
man alles in Ruhe anschauen, und überlegen warum ein Signal nicht so 
kommt wie man denkt.

Simulieren Deinen Code, am besten Du ladest Dir ModelSim herunter.
Der Xilinx ISIM Simulator gefällt mir nicht so...

Autor: Michael Milan (Firma: Uni Hannover) (babybk)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Also,
ich erzeuge noch ein Block in mein Programm mit dem Name RSLATCHX.
f_1en und f2_en sind die Eingänge von S und R
  S <= f_1en;
  R <= f_2en;
Aber es funtioniert nicht in Ordnung:
Wenn ich den Wert 193(d.h f_1en = 1 )schicke,dann Q = 1
Dann schicke ich weiter den Wert 194(d.h f_2en = 1 ),dann Q = 0
Schließlich schicke ich wieder den Wert 193 (d.h f_1en = 1),dann Q ist 
nicht 1 sondern 0.

ich weiße nicht,ob der Fehler aus RSLATCHX Block oder aus dem Eingang 
RS232_data.

Jemand kann mir helfen?

@Klaus Flaser:beim Modelsim hab ich das Problem,um Code zur 
Simulation(Testbench) zu erzeugen.Hast du den Tipp dafür ?

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du darfst im RSLATCHX keine Befehle wie "after 10 ns" verwenden.
Diese Komponente gehört doch in das FPGA, dort ergeben sich die 
Verzögerungen von selbst durch die Gatterlaufzeiten.
Abgesehen davon enthält ein FPGA keine RS-Flipflops, eine Komponente wie 
diese kann nur Probleme erzeugen.
Du solltest am Anfang alle deine Module streng takt-synchron aufbauen, 
also alle in der Form :

process(clk,reset)
begin
   if (reset = '1') then
       ....
   elsif rising_edge(clk) then
     ....
   endif
end process

Zur Testbench :
Im Gegensatz zu RSLATCHX darfst Du in einer Testbench die Verzögerungen 
verwenden.
Eine Testbench hat keine Ein- und Ausgänge und generiert alle Signale, 
die in deine zu testenden Komponente hineingehen, also als wichtigstes 
Signal zuerst einmal den Takt.
Dann schreibst Du einen Prozess der 1x durchläuft, und der alle 
restlichen Signale erzeugt, z.B.

process
begin
     reset <= '1';
     wait for 10 ns;
     reset <= '0';

     wait for 100 ns;
     rs232_data <= 100;
     wait for 100 ns;
     rs232_data <= 200;
     ....
     wait;
end process;

Du solltest aber vielleicht ein bischen etwas über VHDL lesen.

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.