Procedure mit verschieden langen Vectoren

OP #1311485
Hallo liebe Community,

ich hoffe sehr, ihr könnt mir hierbei helfen.

Ich muss aus verschiedenen Prozessen unterschiedliche viele Daten 
(unterschiedlich lange std_logic_vector) in ein bestimmtes 
Schieberegister schreiben. Dieser Schreibvorgang muss nach einem 
bestimmten (komplizierten) Schema erfolgen, weshalb das für die 
einzelnen Prozesse von einer Procedure übernommen werden soll. Und 
natürlich, weil nicht einfach mehrere Prozesse auf ein Signal schreiben 
können. Das alles muss später auch auf einer Hardware laufen...

Gibt es hier überhaupt eine Möglichkeit, einer Procedure mal einen 30 
Bit Vector zu übergeben, der in das Schieberegister geschrieben werden 
soll und mal einen 100 Bit Vector der ebenfalls in das Register 
geschrieben werden soll?

Vielmals Danke für eure Antwort,
Liebe Grüße,
Martina
Moderator (Firma: Titel) Persönliche Seite
> Gibt es hier überhaupt eine Möglichkeit
Das Bauteil, das du brauchst, heißt Multiplexer.

> muss nach einem bestimmten (komplizierten) Schema erfolgen
Das hört sich nach einer FSM zur Verwaltung an.

Leider sind die Informationen bisher so spärlich, dass man nicht mehr 
dazu sagen kann:
> weil nicht einfach mehrere Prozesse auf ein Signal schreiben können.
Wie soll geregelt werden, welcher Prozess gerade sinnvolle Daten für das 
SR hat?
OP
Guten Morgen!

Sorry, wenn man sich schon so lange mit dem Zeug beschäftigt, ist das 
alles schon klar und man vergisst, das andere Leute nicht so tief drin 
sind...

Also ich habe einen Prozess, in dem eine große SM läuft. Je nach Zustand 
müssen mehrere Werte (Signal) in einer bestimmten Reihenfolge in das SR 
geschrieben werden. Diese Signal haben eine feste Länge. Dazu kommt ein 
Signal, dessen Länge (länge des Vectors) je nach Zustand der SMS 
zwischen 0 Bit und 30 Bit variieren kann. Hier dachte ich, das Schreiben 
in das SR mit einem Unterprogramm sei eleganter und übersichtlicher, als 
das in jedem Zustand wiederholt zu machen.

Zusätzlich gibt es einen (oder vielleicht später mehrere) zusätzliche 
Prozess, der von "außen" (Kommando über Bus) angestoßen wird und dann 
auch Werte in das SR laden muss. Mit zwei verschieden Prozessen kann man 
ja sowieso nicht (außer Multiplexer) auf ein SR schreiben.

So, ich hoffe das jetzt besser erklärt zu haben.

Gruß Martina

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 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.