www.mikrocontroller.net

Forum: FPGA, VHDL & Co. gibt es "lokale" Signale?


Autor: Randy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Xenu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Fpga Kuechle (fpgakuechle) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Randy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Randy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Randy schrieb:
> 40 Zeilen Code in eine eigene Entity zu schieben bringt hald
> entsprechend Schreibarbeit mit sich...

Hat aber Vorteile ...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.