VHDL - addition, logische Operatoren und rol mit einem typ möglich?

OP #1078649
Lesenswert?

Hallo,
Ich will mit einem 32 bit breiten Typ sowohl Additionen, logische 
Operaten (nand, or, xor, etc...) als auch Rotationen (rol) durchführen, 
welchen Typ soll ich hierführ wählen? Für bit_vector wäre die rotation 
kein problem, allerdings ist die Addition nicht definiert, bei 
std_logic_vecotor wiederum habe ich kein rol. Was empfehlt ihr mir, um 
mit möglichst wenig to_blablabla() auszukommen?
Corni
#1078694
Lesenswert?

Die einfachste Lösung ist, std_logic_vector verwenden und rol 
ausschreiben, ohne den rol-Operator zu benutzen.

signal : std_logic_vector(15 downto 0);
...
signal <= signal(0) & signal(15 downto 1);

Oder, um es generisch zu halten für verschiedene Vektorbreiten:
signal <= signal(signal'left) & signal(signal'right downto 
signal'left-1);

Die anderen möglichen Schiebeoperationen lassen sich genauso schreiben.


(Wer kam eigentlich auf die Idee, in VHDL für eine solche Operation 
einen eigenen Operator einzuführen?)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren