1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
was ist der korrekte Signalzuweisung? wie in obige Beispiel über ein interne signal oder darf ich ohne o1_Reg direkt
1 | |
schreiben
|
Anzeige
|
korrekte Signal Zuweisung in Vhdl
was ist der korrekte Signalzuweisung? wie in obige Beispiel über ein interne signal oder darf ich ohne o1_Reg direkt
schreiben Beides ist "korrekt". Du kannst den Ausgang o1 aber eben nicht mehr irgendwo anders lesend verarbeiten. Dafür müsste der ein buffer oder ein inout sein. Und diese beiden für zu schreibfaulen Lesen von Ausgängen zu verwenden, das ist schlechter Stil. lkmiller, Herzlichen Dank
Gast
#6586442
Lothar M. schrieb: > Du kannst den Ausgang o1 aber eben nicht mehr irgendwo anders lesend > verarbeiten. Seit VHDL-2008 geht das. VHDL-2008 hat generell viele schöne Verbesserungen und mittlerweile ist die Unterstützung in den Tools dafür gut genug um es immer zu nutzen.
Gast
#6586450
New C. schrieb:
Unabhängig von der Zuweisung ist das aber auch nicht ganz sinnvoll. Erstens ist i1 nach einer rising_edge 1, zweitens müssten in clk und i1 im gleichen Deltazyklus eine Flanke haben, damit das ausgewertet wird (geht das eigentlich?) und drittens ist clk und rst gar nicht definiert. Ich nehme an, das ist nur ein Flüchtigkeitsfehler beim Erstellen dieses kurzen Beispiels, aber auf sowas sollte man achten. Dussel schrieb: > drittens ist clk und rst gar nicht definiert. Es ist eigentlich andersrum: die Sensitivliste ist falsch. Dort muss passend zum Code i1 rein. Viele Anfänger meinen, dass man mit der Sensitivliste irgend etwas "steuern" könnte. Dabei ist es schlicht so, dass man erst den Code schreibt, und dann schaut, welche Signale davon in die Sensitivliste gehören. Dussel schrieb: > zweitens müssten in clk und i1 im gleichen Deltazyklus eine Flanke > haben, damit das ausgewertet wird (geht das eigentlich?) Das interessiert überhaupt nur den Simulator. Und dort können sich einem Deltazyklus durchaus mehrere Signale gleichzeitig ändern. Z. B. bei einem parallelen Bus, oder hier, wenn clk und i1 im selben Prozess von 0 auf 1 gesetzt werden. Denn dann werden diese Änderungen gleichzeitig für beide beim nächsten wait oder beim Prozessende relevant. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|