Forum: FPGA, VHDL & Co. Procedure mit verschieden langen Vectoren


von Martina M. (xaiven-be)


Lesenswert?

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

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> 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?

von Martina M. (xaiven-be)


Lesenswert?

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

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
Noch kein Account? Hier anmelden.