Forum: FPGA, VHDL & Co. VHDL CODE SCHREIBEN


von yassine (Gast)


Lesenswert?

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

von Christian R. (supachris)


Lesenswert?

Du hast Ubuntu auf dem FPGA?

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

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.

von yassine (Gast)


Lesenswert?

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.

von Tuffke (Gast)


Lesenswert?

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.

von yassine (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.