Hallo, ich hab hier folgende Programmzeile gefunden: (a, b, c) <= t2'("000"); a,b,c sind Std_logic t2 ist ein subtype vom typ std_logic_vector. Welchen Sinn hat aber bei der Zuweisung das ' ? Gruß und Danke
Jörg wrote: > (a, b, c) <= t2'("000"); > a,b,c sind Std_logic t2 ist ein subtype vom typ std_logic_vector. > Welchen Sinn hat aber bei der Zuweisung das ' ? Interessantes Konstrukt. Mit ' wird lesend auf Attribute zugegriffen (CLK'EVENT etc.). Ich bin unsicher, ob die VHDL Syntax sowas zuläßt; jedenfalls fand ich nur Beispiele, bei denen der Attributname ein Bezeichner ist. Dummerweise kann man ' auch nicht überladen, jedenfalls ist es nicht durch den Syntax Check der ISE gekommen. Eventuell steht noch was bei der Subtype-Deklaration? Ich kann mir gerade auch nicht vorstellen, welche Semantik das haben soll ;-) -- stefan
Hallo, Erstmal danke für die Antwort. Die Subtypendekleration lautet subtype t2 is std_logic_vector(1 to 3); Das ganze tritt innerhalb einer Testbench auf. Soll also nicht synthetisiert werden. Ich hab bezgl des ' mir hier noch irgendwo "Qualified expression" aufgeschrieben. Kann da jemand was mit anfangen? Gruß Jörg
Jörg wrote: > Ich hab bezgl des ' mir hier noch irgendwo "Qualified expression" > aufgeschrieben. Kann da jemand was mit anfangen? Du hast dir damit die Antwort selbst gegeben. :) z.B. aus http://www.emmelmann.org/Library/Tutorials/docs/schaltungsdesign_mit_VHDL/text_b1.pdf
1 | Qualifizierte Ausdrücke ("qualified expression"): |
2 | sie dienen zur |
3 | expliziten Festlegung des Datentyps bei Operanden, die mehreren |
4 | Typen entsprechen können. Die Syntax hierfür lautet: |
5 | type_name'(ambiguous_operand_expr) |
VHDL ist streng und statisch "getypt". Das Literal "001" kann im verwendeten Kontext allerdings mehrere Typen annehmen. Theoretisch könnte sich ein Compiler aus der linken Seite den Typ herleiten (nämlich std_logic_vector), aber VHDL scheint das nicht zu machen -- das muss also irgendwo in der Sprachdefinition stehen. Da es nur eine Typkonversion ist, ändert das Konstrukt nichts an der Synthesefähigkeit des übrigen VHDL-Codes. -- stefan
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.