Problem mit den Ausgänge

OP (Firma: Uni Hannover) #1502988
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!!!
Angehängte Dateien:
#1503033
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...
OP (Firma: Uni Hannover) #1503243
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 ?
Angehängte Dateien:
#1503277
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren