VHDL - Hilfe bei Implementierung von.

OP (Firma: Angestellter/Freelancer) #6840360
Lesenswert?

Hallo Experten,

ich schaffe es irgendwie nicht, dass ich mein gewünschtes Verhalten 
umgesetzt kriege. Vielleicht kann mir einer hier weiter helfen.

Also signal A wird durch ein anderen process gesetzt und daraufhin soll 
das signal B sich wie im Bild verhalten. signal A muss dann durch den 
gleichen process auch zurückgesetzt werden.


Vielen dank im voraus
Angehängte Dateien:
Gast #6840389
Lesenswert?

Zero V. schrieb:
> ich schaffe es irgendwie nicht, dass ich mein gewünschtes Verhalten
> umgesetzt kriege

Kein Wunder.

Dein Diagramm zeigt gleichzeitige Änderung des Zustands von CLK und A.

Da fällt es schwer, zu entscheiden, was passieren soll, wenn das eine 
Signal einen Bruchteil einer Zeit vorher kommt, auch für die Elektronik.

Kläre erst mal die Wolken in deinem Kopf, und male ALLE Situationen auf, 
CLK vor A, CLK nach A, beachte setup-Zeiten passend für deinen Chip, und 
stelle ihren Verlauf dar.

Und wenn du dann entdeckst, das einzelne gewünschte Resultate nur durch 
Erraten und nicht durch Logik erreichbar sind, dann kann ein VHDL das 
eben einfach nicht.  Denn Wunschdenken ist im Chip noch nicht integriert 
worden.
Gast #6840394
Lesenswert?

Es wäre vielleicht gut, wenn du deine Versuche oder Überlegungen hier 
zeigst, damit es nicht nach 'macht das mal für mich' aussieht.
Es ist nicht klar, ob B nur für einen Takt oder solange A gesetzt ist 
gesetzt sein soll.
Gast #6840396
Lesenswert?

MaWin schrieb:
> Dein Diagramm zeigt gleichzeitige Änderung des Zustands von CLK und A.

Das ist allgemein üblich in funktionalen Timing-Diagrammen, oder? Die 
Zeit kommt erst später ins Spiel.

Ich schlage vor, du schreibst erstmal einen Prozess, der Signal A setzt 
und zwei steigende Taktflanken später wieder rücksetzt.
OP (Firma: Angestellter/Freelancer) #6840407
Lesenswert?

Dussel schrieb:
> Es wäre vielleicht gut, wenn du deine Versuche oder Überlegungen
> hier
> zeigst, damit es nicht nach 'macht das mal für mich' aussieht.
> Es ist nicht klar, ob B nur für einen Takt oder solange A gesetzt ist
> gesetzt sein soll.
1
if falling_edge(clk) and A='1' then

das ist das Start-Signal, danach soll B sich wie im Bild verhalten und 
am Ende A wieder zurücksetzen.
Gast #6840417
Lesenswert?

Vancouver schrieb:
> Das ist allgemein üblich in funktionalen Timing-Diagrammen, oder?
Ja. Der Zustand der bei der steigenden Flanke anliegt, wird bei der 
nächsten Flanke weitergegeben. So sieht man es auch auf dem Bild. A wird 
bei der steigenden Flanke gesetzt und das davon abhängende Signal B wird 
bei der nächsten steigenden Flanke gesetzt.
Vancouver schrieb:
> Die Zeit kommt erst später ins Spiel.
Im getakteten Bereich kommt die Zeit in dem Zusammenhang gar nicht ins 
Spiel. Am  Ende wird nur geprüft, ob die Signalzustände in der Hardware 
innerhalb der aus dem Takt vorgegebenen Zeit überall ankommen.
Gast #6840435
Lesenswert?

MaWin schrieb:
> müssen die vor und während der Setup-Zeit gesetzt sein, und das
> sollte das Diagramm ausdrücken.

S/H-Zeiten sind eine Sache der Technologie, die beim funktionalen 
Entwurf erstmal keine Rolle spielt. Da geht es nur um logische 
Abhängigkeiten.
Der TO hat auch garnicht gesagt, ob er einen FPGA bauen möchte. Ich 
vermute mal, es geht zunächst mal nur um ein Simulationsmodell.
Gast #6840446
Lesenswert?

Vancouver schrieb:
> S/H-Zeiten sind eine Sache der Technologie,

Die ZEITDAUER schin, das Prinzip Ursache vor Wirkung aber nicht.

Dinge die gleichzeitig stattfinden, können nicht Ursache voneinander 
sein.

Daher muss dargestellt erkennbar sein, welches Signal VOR dem anderen 
definiert ist, egal wie lange vorher.
Gast #6840465
Lesenswert?

MaWin schrieb:
> Daher muss dargestellt erkennbar sein, welches Signal VOR dem anderen
> definiert ist, egal wie lange vorher.

Ja, das stimmt, aber beim funktionalen Entwurf eines synchronen Designs 
ändern sich alle Signale nur in Abhängigkeit von Taktflanken. Der 
Simulator zeigt auch keine Verzögerung an zwischen der aktiven 
Taktflanke und der dadurch getriggerten Signaländerung, außer wenn du 
explizit ein Delay in den RTL-Code schreibst.
Gast #6840493
Lesenswert?

Vancouver schrieb:
> Der
> Simulator zeigt auch keine Verzögerung an zwischen der aktiven
> Taktflanke und der dadurch getriggerten Signaländerung, außer wenn du
> explizit ein Delay in den RTL-Code schreibst.

Er zeigt es an wenn du bis auf Delta-Zyklen reinzoomst, muss 
gegebenenfalls erst angeschaltet werden.
Moderator (Firma: Titel) Persönliche Seite #6840765
Lesenswert?

Zero V. schrieb:
> Also signal A wird durch ein anderen process gesetzt ...
> signal A muss dann durch den gleichen process auch zurückgesetzt werden.
Welches ist denn "der gleiche" und welches "der andere"?

> Also signal A wird durch ein anderen process gesetzt und daraufhin soll
> das signal B sich wie im Bild verhalten.
Sehe ich das richtig: das Signal B soll dann bei der nächsten fallenden 
Flanke von clk oder irgendwo in der Nähe davon auf low gehen?

Aber es soll von dann ab synchron zur steigenden Flanke von clk agieren?

Das wird eine heiße Kiste.
Oder irgendwas passt noch nicht. Könntest du da mal einzeichnen, was 
wann wo wirkt und wie die Reaktionen sein sollen?

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