Forum: FPGA, VHDL & Co. [VHDL] std_logic nicht als Taktsignal?


von lufu (Gast)


Lesenswert?

Hallo liebe Fachmänner/frauen,

gestern (13.08.13) hat jemand den Link zu einem kostenlosen VHDL-Buch 
ins Forum gestellt (Beitrag "VHDL-Buch kostenlos herunterladbar"). Im 
Anhang gibt es einige nützliche Hinweise, um Stolperfallen zu vermeiden. 
Darunter ist auch die Aussage zu finden, dass man "std_logic" als 
komplexen Datentyp nur dort verwenden soll, wo es unbedingt nötig ist. 
Für alle "einfachen" Signale wie bspw. Clock/Reset sollte man den 
"bit"-Datentyp verwenden (Anhang, Hinweis 2). Unter Hinweis 5 kann man 
nachlesen, wie man ein Signal auf die fallende/steigende Flanke abfragt 
(clk'event and clk ='1'). Als Begründung für diese Schreibweise ist 
folgendes angegeben:
> Die Funktionen rising edge () und falling_edge () sind nur fur Signale des
> Datentyps std_logic deklariert, dieser Datentyp sollte jedoch nach 2. nicht
> als Taktsignal verwendet werden.

Bisher habe ich für Taktsignal ausschließlich std_logic, zusammen mit 
diesen Funktionen verwendet. Habe ich das bisher immer "falsch"  (bzw. 
nicht stilgerecht) gemacht, oder ist das Buch in dieser Hinsicht einfach 
etwas antiquiert?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Früher (tm) hatten diese Datentypen den Vorteil einer kürzeren 
Simulationszeit, weil keine Auflösungstabellen zu bearbeiten waren...

Ich verwende aber heute "im echten Leben" ausschließlich std_logic und 
habe nur bei Studenten/Praktikanten/undCo (von der Hochschule 
vorgeschädigt) die Datentypen bit und std_ulogic gesehen.

von Alexander F. (alexf91)


Lesenswert?

Zu Problemen kann es bei gemeinsamer Verwendung von std_logic und 
"clk'event and clk='1'" kommen, da hier z.B. auch eine Änderung von "U" 
auf "1" als steigende Flanke erkannt wird. Dadurch kommt es zu 
Abweichungen zwischen Simulation und Synthese.
Die Funktionen rising_edge() und falling_edge() berücksichtigen das 
aber.
Ich persönlich verwende eigentlich immer die Kombination rising_edge() 
und std_logic und bin dabei noch nie auf Probleme gestoßen.

von Karl Könner (Gast)


Lesenswert?

lufu schrieb:


> Darunter ist auch die Aussage zu finden, dass man "std_logic" als
> komplexen Datentyp nur dort verwenden soll, wo es unbedingt nötig ist.
> Für alle "einfachen" Signale wie bspw. Clock/Reset sollte man den
> "bit"-Datentyp verwenden (Anhang, Hinweis 2). Unter Hinweis 5 kann man
> nachlesen, wie man ein Signal auf die fallende/steigende Flanke abfragt
> (clk'event and clk ='1'). Als Begründung für diese Schreibweise ist
> folgendes angegeben:
>> Die Funktionen rising edge () und falling_edge () sind nur fur Signale des
>> Datentyps std_logic deklariert, dieser Datentyp sollte jedoch nach 2. nicht
>> als Taktsignal verwendet werden.
>
> Bisher habe ich für Taktsignal ausschließlich std_logic, zusammen mit
> diesen Funktionen verwendet. Habe ich das bisher immer "falsch"  (bzw.
> nicht stilgerecht) gemacht, oder ist das Buch in dieser Hinsicht einfach
> etwas antiquiert?

Wenn da steht das man std_logic nur verwendete wo unbedingt nötig, dann 
heisst es ebene das bei Taktsignalen std_logic nötig ist. Das Beispiel 
mit rising-edge betont noch mal die Notwendigkeit. Ich sehe nicht wo 
diese Aussage irgendwo antiquiert sein sollte. Höchstens das Alternative 
bit zu std_logic auch noch ein wenig zu viel des Guten ist und man ggf. 
auch gleich auf boolean wechseln kann.


Ach ja und man sollte in Entscheidung einbeziehen ob das Code für die 
Simu
(vereinfachte auf '0' '1' reduzierte Signalmodelle) oder für die 
Synthese
(physikalisch/ logisch realistischeres Modell mit Tristate, unbelegt, 
PullUp, PullDown, ...) gedacht ist.

MfG,


MfG,

von Bürovorsteher (Gast)


Lesenswert?

Die Herren Reichardt und Schwarz als echte Professoren machen das an 
ihrer Hochschule eben so, weil sie sich im echten Leben schlecht 
auskennen.
Allen anderen machen es mit std_logic.
Das ist ein gewisser Nachteil dieses Buches.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Da kommt mir doch wieder der 
Beitrag "Re: Verständnisproblem Xilinx XC9572 CPLD"  in den 
Sinn...

von Olga (Gast)


Lesenswert?

Der ist scheinbar für normalsterbliche nicht zu lesen...

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Olga schrieb:
> Der ist scheinbar für normalsterbliche nicht zu lesen...
Jetzt schon... ;-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.