hallo leute ich habe ein problem mit VHDL ich anfänger und wollte ich ein code mit vhdl schreiben damit ich Z.B hello world auf eine stelle von RAM des FPGAs schreiben und wieder auslesen. ich weisse nicht wie ich genau auf eine Adresse(RAM von FPGA) zugreifen kann. ich habe Ubuntu als betriebsystem und mit dem befehl (sudo memread -a 0x<adresse> -l<größe>)auf dem Terminal kann ich genau in eine bestimmte Adresse eine größe von daten auslesen. ich bedanke mich bei ihnen im voraus. yassine
Lies das: ISBN 3486581929 Da steht unter anderem das drin, was du suchst. Auf Seite 186. Aber du solltest dich erstmal mit den Grundlagen von VHDL befassen, was mit dem Buch ganz wunderbar geht. Außerdem haben viele FPGA nicht einfach einen RAM, sondern mehrere einzelne RAM-Blöcke, und die kannst du jeweils ansprechen.
ich habe einbisschen ahnung über VHDL ich habe schon damit ein Projekt gemacht an der uni und zwar wie ich die wartezeit für daten die aus dem ADU über ein SRAM kommen auf dem LCD anzeigen. und jetzt das problem ich habe das FPGA schon Programmiert, aber wenn ich die code oder inhalt lesen will ,ich weisse ich nicht unter welche adresse kann ich die finden,und meine daten auslesen. library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; --Uncomment the following library declaration if instantiating --any Xilinx primitives in this code. --library UNISIM; --use UNISIM.VComponents.all; -------------------------Implementierung eines Block-RAm Moduls---------- entity block_ram is port( CLK : in bit; RESET: in bit; EN : in bit; WE : in bit; ADDR : in std_logic_vector(7 downto 0); DIN : in std_logic_vector(15 downto 0); DOUT : out std_logic_vector(15 downto 0) ); end block_ram; architecture Behavioral of block_ram is type RAM_TYPE is array (0 to 255) of std_logic_vector(15 downto 0); signal BRAM: RAM_TYPE ( x"FFFF",x"FFFE",x"FFFD",x"FFFC",x"FFFB",x"FFFA",x"FFF9",x"FFF8",x"FFF7", x"FFF6",x"FFF5",x"FFF4",x"FFF3",x"FFF2",x"FFF1",x"FFF0",others => "1111" ); begin -------------------------Sychrones Block-RAM----------------------- P1: process(CLK) begin if CLK'event and CLK='1' then if EN='1' then if WE='0' then BRAM(conv_integer(ADDR)) <= DIN; DOUT <= DIN; else DOUT <= BRAM(conv_integer(ADDR)); end if; end if; end if; end process P1; end behavioral; und wenn ich Z.B hello welt auf dem code schreiben will wo soll ich die schreiben damiit ich die danach auf dem terminal auslesen kann . ich bedanke mich bei ihre hilfe.
yassine: >ich habe Ubuntu als betriebsystem und mit dem befehl (sudo memread -a >0x<adresse> -l<größe>)auf dem Terminal kann ich genau in eine bestimmte >Adresse eine größe von daten auslesen. Diese Möglichkeit einen Befehl zu verwenden um RAM auszulesen, der auf dem FPGA ist, wirst wohl nur du haben. Dieser Befehl hängt von deiner Entwicklungsumgebung ab. Es ist schwierig dafür allgemein gültige Tipps abzugeben wenn man nicht einmal weiß, welche Entwicklungsumgebung das sein soll. Wie ist den der FPGA an den Rechner angebunden? Steckkarte? USB? Welcher Hersteller? .... Würde sagen, dein Problem ist nicht VHDL Code zu schreiben, sondern du musst verstehen wie FPGA und PC zusammenarbeiten.
der FPGA ist in einem ML-555 Bord integriert und diese Bord ist über ein PCIe angebunden(PC'A') und über Cable usb DLC9G auf dem PC 'B' wo ich meine code schreibe und ISE10.1 installierte. Mfg yassine
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.