VHDL Register in procedure

OP (Firma: www.dossmatik.de) #4845887
Ich habe einen Process, der ähnlich mit mehreren Signalen parallel 
abläuft. Dafür habe ich eine procedure geschrieben, um den Code zu 
vereinfachen. Leider kann innerhalb der Procedure kein Signal deklariert 
werden. Nur Variablen. Ich benötige aber einen gespeicherten internen 
Wert vom letzten Durchlauf. Wie kann ich so ein Register in einer 
Procedure erzeugen?

Wie machen es die ganzen DSP Algorithmen, die mehrere Kanäle parallel 
verarbeiten? Vielleicht keine Procedure, aber ich finde gerade keinen 
vernünfitigen Programierstil für mathemaitsche Matrizenrechnungen, um 
den Code wartbar zu schreiben.
(Firma: Ingenieurbuero Gardiner)
Ich denke, die standard Lösung wäre die 'interne' Signale auch 
ausserhalb des procedures zu definieren (z.B. in der Architecture 
declarative Teil) und als inout Signale in der procedure Parameterliste 
anzugeben. Oder auch, alle 'interne' Signale in einem gemeinsamen Record 
Typ zusammenzufassen.

Wenn du den Scope unbedingt einschränken willst, bleibt vermutlich nur 
die Lösung das Signal sowie dessen Verarbeitung in einem Generate Block 
zu definieren.
OP (Firma: www.dossmatik.de)
Charles G. schrieb:
> Ich denke, die standard Lösung wäre die 'interne' Signale auch
> ausserhalb des procedures zu definieren (z.B. in der Architecture
> declarative Teil) und als inout Signale in der procedure Parameterliste
> anzugeben. Oder auch, alle 'interne' Signale in einem gemeinsamen Record
> Typ zusammenzufassen.
>
> Wenn du den Scope unbedingt einschränken willst, bleibt vermutlich nur
> die Lösung das Signal sowie dessen Verarbeitung in einem Generate Block
> zu definieren.

In die Richtung habe ich auch schon gedacht.
inout und Buffer Signale sind nicht zulässig.

Ja in die Richtung loop generate könnte ich auch stricken.


Block das habe ich noch nie benutzt. Kann mich dunkel erinnern.
Gast
hi,

man kann eine Function/Procedure auch im Scope eines Prozesses 
deklarieren. Dann kann die Function/Procedure auf alle Signale des 
Processes zugreifen (ohne impure sein zu müssen) und müsste so auch 
Register/State/etc kennen.

grüße

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.