Hallo!
Ich habe folgendes Problem:
Innerhalb meiner VHDL Architektur möchte ich innerhalb einer
case-when-Abfrage eine Variable/ein Signal anders belegen. Also zum
Beispiel:
1 | begin
|
2 | switchmu: PROCESS(clk)
|
3 | BEGIN
|
4 | IF clk'EVENT AND clk='1' THEN
|
5 | CASE mu(7 downto 4) IS
|
6 | WHEN "0000" =>
|
7 | temp_old <= 0;
|
8 | WHEN "0001" =>
|
9 | temp_old <= 15;
|
10 | WHEN "0010" =>
|
11 | temp_old <= 14;
|
12 | WHEN "0011" =>
|
13 | temp_old <= 13;
|
14 | WHEN "0100" =>
|
15 | temp_old <= 12;
|
16 | WHEN "0101" =>
|
17 | temp_old <= 11;
|
18 | WHEN "0110" =>
|
19 | temp_old <= 10;
|
20 | WHEN OTHERS =>
|
21 | temp_old <= 0;
|
22 |
|
23 | END CASE;
|
24 | END IF;
|
25 | END PROCESS;
|
Dann später innerhalb dieser Architektur möchte ich folgende Zuweisung
machen:
1 | process(clk)
|
2 | begin
|
3 | if (clk'event and clk='1') then
|
4 | sxtxemu_out(24-temp downto 0) <= sxtxemu_hi(24 downto temp);
|
5 | sxtxemu_out(23 downto 25-temp) <= (others => sxtxemu_hi(24));
|
6 | end process;
|
ISim spuckt mir aber leider ohne weitere Erklärung einen "fatal Error"
aus. Wenn ich temp jedoch durch nen Wert, also z.B. 10, ersetze, dann
klappts.
Meine Fragen:
1) Welche Libraries muss ich einfügen damit das klappt?
2) Welchen Datentyp muss "temp" haben?
Vielen vielen Dank!