peter schrieb:
> signal ct : integer range 0 to 4 := 1; mit:
> shift_r <= std_logic_vector(unsigned(shift_r) srl ct);
> Nur mit SRA SLA funktioniert es nicht so , wenn ich es dort oben
> reinsetze.
Wenn du was wie wo reinsetzt?
> Nur mit SRA SLA funktioniert es nicht so , wenn ich es dort oben
> reinsetze.
Diese Aussgae ist, wie wenn du dein Auto in die Werkstatt fährst und
sagst: Kaputt! Machen!
Zu Recht wird dich irgendwer fragen:
Was geht nicht?
Wie merkst du das?
Was würdest du erwarten?
Was passiert sonst?
Ok, zur Sache. Die Suche nach "VHDL SRA SLA" findet ganz schnell das
hier:
1 | shift_operator ::= sll | srl | sla | sra | rol | ror
|
2 |
|
3 | The shift operators are defined for the one-dimensional array with
|
4 | the elements of the type BIT or BOOLEAN.
|
Deine verwendeten Datentypen sind aber std_logic und unsigned. Kann also
ohne Typumwandlung nicht gehen...
Für unsigned gibt es aber in der numeric_std was:
http://www.eda.org/rassp/vhdl/models/standards/numeric_std.vhd
Es gibt darin zum Schieben der Datentypen signed und unsigned die
Funktionen
function "sll" (ARG: UNSIGNED; COUNT: INTEGER) return UNSIGNED;
function "sll" (ARG: SIGNED; COUNT: INTEGER) return SIGNED;
function "srl" (ARG: UNSIGNED; COUNT: INTEGER) return UNSIGNED;
function "srl" (ARG: SIGNED; COUNT: INTEGER) return SIGNED;
Eine davon wird dann schon passen...