VHDL-Forum

 
Sie sind nicht eingeloggt.
LoginLogin Kostenlos anmeldenKostenlos anmelden
BeiträgeBeiträge MembersMitglieder SucheSuche HilfeHilfe
VotesUmfragen FilesDateien CalendarKalender BookmarksBookmarks
VHDL-Forum
1 Treffer gefunden
Suchdauer: 0,02 Sekunden
VHDL-Forum Anfang   zurück   weiter   Ende
   Betreff   Autor   Datum 
No new posts RAM
Ich schreibe gerade an einer Pulserzeugung für einen Wechselrichter. Das PLD soll von einem MC Informationen erhalten die ich in einem Speicher ablegen will. Beim Schreiben dieses Speichers bin ich auf ein Problem gestoßen, von dem ich nicht weiß, was es so richtig ist. Ich wil also den Speicher als Datentyp Array anlegen. In jedem Element des Array soll dann wieder ein 10bit-Vektor stehen. Als Startwert soll in jedem Element eine Null stehen. Nun bekomme ich folgende Fehler: Wenn ich versuche, den Startwert noch vor dem process-begin zuzuweisen: Warning: VHDL Variable Declaration warning at ram.vhd(24): ignored initial value expression for variable mem Um das zu umgehen, habe ich versucht eine Schleife einzubauen, die nur beim allerersten ausführen von process alle Elemente mit 0 initialisiert, das hat aber auch nicht funktioniert. Beim Versuch der Simulation habe ich dann folgende Fehlermeldung bekommen: Error: Semantic error encountered in vector source file C:/cr/alteraproj/ram/db/ram.sim.vwf, line 237, width of signal cannot be zero or less (das bezieht sich auf mem) Ich habe mal den Quelltext angehängt, wenn jemand eine Idee hat woran das liegt, wäre ich für eine Antwort sehr dankbar library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity RAM is Port ( CS : in X01Z; RD : in X01Z; WR : in X01Z; ADDR : in X01Z_vector(3 downto 0); DATA : inout X01Z_vector(9 downto 0):="ZZZZZZZZZZ"); end RAM; architecture behavioral of RAM is begin process (RD, WR, CS) type MEMORY is array(0 to 15) of X01Z_vector(9 downto 0); variable MEM : MEMORY := (others => (others => '0')); begin if (CS = '0') then if (RD = '0') then MEM(INTVAL(ADDR)) := DATA; elsif (WR = '0') then DATA <= MEM(INTVAL(ADDR)); end if; else DATA <= "ZZZZZZZZZZ"; end if; end process; end behavioral;
Toastmaster Christiane Riedel 05.10.04, 11:49
 
 
1 von 1 Ergebnisse Anfang   zurück   weiter   Ende
Search

powered by carookee.com - eigenes profi-forum kostenlos

Design © trevorj