Forum: FPGA, VHDL & Co. Variabler Vektorzugriff - so möglich?


von PIC N. (eigo) Benutzerseite


Lesenswert?

Hallo zusammen!

Ich so etwas möglich, dass ich anstatt:
1
-- ...
2
out  : out bit_vector(7 downto 0)
3
-- ...
4
signal iout: std_logic_vector (255 downto 0);   
5
-- ...
6
7
-- ...
8
out <= to_bitvector( iout(255 downto  248) );
9
-- ...
10
out <= to_bitvector( iout(247 downto  240) );
11
-- ...

So etwas schreiben kann?
1
-- ...
2
out  : out bit_vector(7 downto 0)
3
-- ...
4
signal iout: std_logic_vector (255 downto 0);
5
signal k: integer:= 0;   
6
-- ...
7
8
-- ...
9
out <= to_bitvector( iout( (255-k*8) downto  (248-k*8) ) );
10
-- ...

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


Lesenswert?

PIC nico schrieb im Beitrag #3650353:
> Ich so etwas möglich...
Wenn dein Synthesizer das umsetzen kann. Der Simulator könnte es auf 
jeden Fall...

von Klaus F. (kfalser)


Lesenswert?

Lothar Miller schrieb:
> PIC nico schrieb im Beitrag #3650353:
>> Ich so etwas möglich...
> Wenn dein Synthesizer das umsetzen kann. Der Simulator könnte es auf
> jeden Fall...

Wenn man zuvor den Fehler korrigiert, dass ein Signal nicht "out" heißen 
darf, weil es ein reserviertes Wort ist :-)

@PICO
Warum verwendest Du bit_vector? Std_logic oder std_logic_vector sind 
besser, weil sie in der Simulation mehr information liefern und bei der 
Synthese das selbe Ergebnis.

von PIC N. (eigo) Benutzerseite


Lesenswert?

Danke für Eure Rückmeldungen. Ja es war nur ein fiktives Beispiel. Ich 
werde es die Tage mal versuchen zu synthetisieren. Es würde definitiv 
eine Menge Schreibarbeit sparen.

Nabend

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


Lesenswert?

PIC nico schrieb im Beitrag #3650979:
> Es würde definitiv eine Menge Schreibarbeit sparen.
Du weißt aber schon, was du da bekommst? Die Aufgabe sieht ein wenig 
danach aus, dass man da mit einem RAM was machen könnte. Woher kommt der 
256 Bit breite Vektor?

von PIC N. (eigo) Benutzerseite


Lesenswert?

Ein abgebildeter RAM eines LCD Displays. Der "RAM" bzw. der Vektor wird 
entsprechend mit Daten gefüllt und dann in einem Rutsch an das LCD 
übertragen.

von Duke Scarring (Gast)


Lesenswert?

PIC nico schrieb im Beitrag #3651162:
> dann in einem Rutsch an das LCD übertragen.
Das Display hat soviele parallele Eingänge?
Oder bedeutet in einem Rutsch eher: Byte für Byte (=seriell)?

Duke

von PIC N. (eigo) Benutzerseite


Lesenswert?

Byte für Byte, parallel. Die Gegebenheiten erfordern es jedoch, dass das 
verwendete Display immer komplett neu beschrieben werden muss.

: Bearbeitet durch User
von Duke Scarring (Gast)


Lesenswert?

PIC nico schrieb im Beitrag #3651448:
> Byte für Byte, parallel.
Dann würde ich auch einen RAM nehmen und eine FSM zum Auslesen 
dranbauen.

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.