Hallo, ich mache gerade meine ersten Basteleien mit VHDL. Zur Zeit habe ich alles in einer einzigen entity, was nicht unbedingt schlecht sein muß, sind ja nur ca. 200 Zeilen. Verschiedene Teile sind in verschiedenen Prozessen zusammengefasst. Manchmal schreibe ich einen Prozess, der ein paar rein interne "Kabel" hat die ich trotzdem als Signale machen will und nicht als Variablen. In diesem Fall könnte ich ein "lokales Signal" brauchen das nur innerhalb des Prozesses sichtbar ist. Gibt es sowas? Ab und zu gibt es das Problem wenn ich einen Prozess in einem anderen Bastelei wiederverwenden will dass ich drauf aufpassen muß dass es bei den Prozessen keine Überschneidung bei den Signalnamen gibt. Extra eine Entity schreiben für einen Codeschnippsel der vielleicht 20 oder 40 Zeilen hat ist mir auch zu aufwändig... Vielen Dank Randy
Nö, gibt's nicht. Würd mich mal interessieren, wieso Dir in Prozessen die dafür vorgesehenen Variablen nicht reichen und Du unbedingt Signale brauchst. Beispiel?
Hallo Randy (Gast), wie schon mein Vorschreiber bemerkt und Du mit deiner Ankündigung das Dir eine eigene Entity zu aufwendig ist schon befürchtet hast ist in VHDL nichts vorgesehen, Signale innerhalb einer Entity zu lokalisieren. Wenn Du so anspruchsvoll (extra Entity .... zu aufwendig) bist, könnte Dir allerhöchstens der Umstieg auf verilog helfen. der Schreibaufwand bei Verilog Code liegt insgesamt etwas niedriger als bei VHDL. VHDL Code wurde nicht mit der Premisse erschaffen, dem Programmierer möglichst (Schreib-)Arbeit anzuschaffen sondern durch eine sehr restriktive und knappe Syntax Fehler zu vermeiden bzw. lokalisierbar zu machen. (Vergleichbar mit der Programmiersprache ADA). Inwieweit dies gelungen ist, darüber lässt sich allerdings streiten. Über ADA jedenfalls spricht heute (fast) kein Mensch mehr, VHDL haben wir aber nach wie vor am Bein. Gruß Andreas
Randy schrieb: > Verschiedene Teile sind in verschiedenen Prozessen zusammengefasst. > Manchmal schreibe ich einen Prozess, der ein paar rein interne "Kabel" > hat die ich trotzdem als Signale machen will und nicht als Variablen. In > diesem Fall könnte ich ein "lokales Signal" brauchen das nur innerhalb > des Prozesses sichtbar ist. Gibt es sowas? Ab und zu gibt es das Problem > wenn ich einen Prozess in einem anderen Bastelei wiederverwenden will > dass ich drauf aufpassen muß dass es bei den Prozessen keine > Überschneidung bei den Signalnamen gibt. architecture begin b1: block is signal adfg : ... begin process(...) adfg <= .. end process end block b1; b2:block is signal adfg: ... begin process(...) adfg <= .. end process; end block b2; end architecture; MfG
Xenu schrieb: > in Prozessen die dafür vorgesehenen Variablen nicht reichen und Du > unbedingt Signale brauchst. Ich kenne mich in VHDL nicht genug aus um mir eine eigene Meinung zu bilden, ich hab hier gelesen dass man besser Signale benutzt, außer wenn man einen guten Grund hat auf eine Variable auszuweichen: Beitrag "Variable vs Signal" Fpga Kuechle schrieb: > b1: block is Ah, Block kannte ich noch gar nicht. Das werde ich die Tage gleich ausprobieren. Vielen Dank. Randy
> wie schon mein Vorschreiber bemerkt und Du mit deiner Ankündigung das > Dir eine eigene Entity zu aufwendig ist 40 Zeilen Code in eine eigene Entity zu schieben bringt hald entsprechend Schreibarbeit mit sich... Hatte schon gelesen dass VHDL nicht zum mal eben Quick&Dirty Code hinschreiben geeignet ist... werde aber nicht auf Verilog ausweichen weil ich mehr Leute kenne die mir VHDL erklären können als bei Verilog... Vehältnis ca. 2:0 ;-)... Aber vielen Dank für deine Einschätzung... Randy
Randy schrieb: > 40 Zeilen Code in eine eigene Entity zu schieben bringt hald > entsprechend Schreibarbeit mit sich... Hat aber Vorteile ...
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.