|
|
|
Anfang
zurück
weiter
Ende
|
Autor |
Beitrag |
sofien
Gast
|
Erstellt: 24.01.07, 22:43 Betreff: Case Anweisung
drucken
Thema drucken weiterempfehlen
|
|
|
Hallo ich habe folgende Funktion unter Quartus kompiliert und es funktioniert ohne Probleme. Wenn ich aber die gleiche Funktion unter Modelsim kompiliere kommt die folgende Fehlermeldung.
"Array type case expression must be of a locally static subtype"
function CATANH(n: std_logic_vector) return std_logic_vector is -- ln, sqrt variable result: std_logic_vector(63 downto 0);
begin case n is
when x"00000001" => result:=x"3FE193EA7AAD030B"; when x"00000002" => result:=x"3FD058AEFA811452"; when x"00000003" => result:=x"3FC015891C9EAEF7"; when x"00000004" => result:=x"3FB005588AD375AD"; when x"00000005" => result:=x"3FA001558891AEE3"; when x"00000006" => result:=x"3F9000555888AD1D"; when x"00000007" => result:=x"3F8000155588891B"; when x"00000008" => result:=x"3F7000055558888B"; when x"00000009" => result:=x"3F60000155558889"; when x"0000000a" => result:=x"3F50000055555889"; when x"0000000b" => result:=x"3F40000015555589"; when x"0000000c" => result:=x"3F30000005555559"; when x"0000000d" => result:=x"3F20000001555556"; when x"0000000e" => result:=x"3F10000000555555"; when x"0000000f" => result:=x"3F00000000155555"; when x"00000010" => result:=x"3EF0000000055555"; when x"00000011" => result:=x"3EE0000000015555"; when x"00000012" => result:=x"3ED0000000005555"; when x"00000013" => result:=x"3EC0000000001555"; when x"00000014" => result:=x"3EB0000000000555"; when x"00000015" => result:=x"3EA0000000000155"; when x"00000016" => result:=x"3E90000000000055"; when x"00000017" => result:=x"3E80000000000015"; when x"00000018" => result:=x"3E70000000000005"; when x"00000019" => result:=x"3E60000000000001"; when x"0000001a" => result:=x"3E50000000000000"; when others => result:=x"0000000000000000";
end case; return result; end CATANH;
kann mir jemand helfen, ich muss es unbedingt unter Modelsim zum laufen bringen.
ich wäre sehr denkbar.
Gruss Sofien
|
|
nach oben |
|
|
DaMicha
Stammgast
Beiträge: 27 Ort: Rostock
|
Erstellt: 25.01.07, 07:52 Betreff: Re: Case Anweisung
drucken
weiterempfehlen
|
|
|
Hallo.
Ich bin mir nicht ganz sicher, aber ich denke, für den Case muss der Typ bekannt sein. Also auch die Bitbreite. Versuche mal folgenden Funktionsheader:
function CATANH(n: std_logic_vector(31 downto 0)) return std_logic_vector is -- ln, sqrt
alternativ könntest Du eine Zwischenvariable einführen, der Du n zuweist und auf der das Case dann angewendet wird.
Gruß DaMicha.
|
|
nach oben |
|
|
Gast
|
Erstellt: 25.01.07, 13:32 Betreff: Re: Case Anweisung
drucken
weiterempfehlen
|
|
|
vielen lieben Dank, es hat mit der ersten alternative funktioniert.
Gruss Sofien
|
|
nach oben |
|
|
|
powered by carookee.com - eigenes profi-forum kostenlos
Design © trevorj
|