VHDL-Forum

 
Sie sind nicht eingeloggt.
LoginLogin Kostenlos anmeldenKostenlos anmelden
BeiträgeBeiträge MembersMitglieder SucheSuche HilfeHilfe
VotesUmfragen FilesDateien CalendarKalender BookmarksBookmarks
case Anweisung

Anfang   zurück   weiter   Ende
Autor Beitrag
Sofien
Gast
New PostErstellt: 24.01.07, 17:45  Betreff: case Anweisung  drucken  Thema drucken  weiterempfehlen Antwort mit Zitat  

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
Rick
Gast
New PostErstellt: 23.02.07, 14:17  Betreff: Re: case Anweisung  drucken  weiterempfehlen Antwort mit Zitat  

Hi Sofien,

ich erhalte diese Fehlermeldung auch, wenn die Bitbreite des Vektors über eine Konstante definiert wird.

Beispiel:
constant AD_MSB_MAIN: integer := 4;
constant AD_LSB: integer := 2;
signal vFpgaCheckAddr: std_logic_vector(AD_MSB_MAIN downto AD_LSB)
...
case vFpgaCheckAddr is
...

Wenn ich aber vFpgaCheckAddr als std_logic_vector(4 downto 2) definiere, dann gibts keine Probleme im Modelsim. Modelsim scheint wahrscheinlich nicht so recht mit Konstanten oder offenen Vektorgrenzen umgehen zu können

Versuche mal Dein Glück, indem Du Deine Vektorgrenzen fest eingibst für n:

function CATANH(n: std_logic_vector(31 downto 0))...

Gruß

Rick
nach oben
marketing99
Junior-Mitglied


Beiträge: 11

New PostErstellt: 04.04.20, 10:44  Betreff: Re: case Anweisung  drucken  weiterempfehlen Antwort mit Zitat  

ایده های کسب و کار اینترنتی اجرا نشده در ایران
استارت آپ های مورد نیاز ایران
ثبت روستا در گوگل مپ
کدام تاکسی اینترنتی بهتر است
چگونه از گوگل پلی خرید کنیم؟


[editiert: 15.03.21, 08:01 von marketing99]
nach oben
Benutzerprofil anzeigen Private Nachricht an dieses Mitglied senden
Sortierung ndern:  
Anfang   zurück   weiter   Ende
Seite 1 von 1
Gehe zu:   
Search

powered by carookee.com - eigenes profi-forum kostenlos

Design © trevorj