Forum: FPGA, VHDL & Co. Bitmaske variabler Länge in Vhdl


von Mat (Gast)


Lesenswert?

Hallo zusammen,
möchte in vhdl folgendes umsetzen:
1
signal a : std_logic_vector(laenge_a -1 downto 0); 
2
signal b : std_logiv_vector(laenge_b -1 downto 0);
3
4
Process(clk)
5
Begin
6
7
   ...
8
   Case Zustand is
9
10
      When A => b <= a(laenge_b downto 0);
11
                -- b <= a & "1111"; 
12
      When B => b <= a(2*laenge_b-1 downto laenge_b);
13
14
       ...

Suche nach einer Umsetzung mittels bitmaske für eine Variable Länge von 
a und der Maske b.

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


Lesenswert?

Bitte das nächste Mal die VHDL-Tags verwenden:
1
[vhdl]
2
  VHDL-Code
3
[/vhdl]


Ich kapiere nicht ganz, was das Problem ist. Ist immer garaniert, dass 
die Ziellänge größer als die Quelllänge ist? Das ist alles zu abstrakt. 
Was ist die eigentliche Aufgabe? Wofür brauchst du so einen Multiplexer?

: Bearbeitet durch Moderator
von Duke Scarring (Gast)


Lesenswert?

Mat schrieb:
> Suche nach einer Umsetzung mittels bitmaske für eine Variable Länge von
> a und der Maske b.
Das sieht für mich wie ein Multiplexer aus und Dein Ansatz ist doch 
schon gar nicht so schlecht:
1
 a( (x+1) * laenge_b-1   downto   (x) * laenge_b);
Jetzt mußt Du nur noch schauen, ob dein Synthesizer damit was anfangen 
kann.

Duke

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.