Hallo, Ich möchte Daten zwischen einer Entity und dem NIOS II in einem FPGA austauschen. Dafür würde ich jetzt mehrere parallele Datenleitungen verwendent. Es geht sicher auch eleganter. Hat da jemand eine Idee wie man das möglichst einfach realisieren könnte? Ich brauche mehrere Verschiedene Zahlen, die in die Entity rein sollen. Gruß,Sebi
Avalon PIO oder am besten AVALON-Interface, sowas in der Art:
entity Component is
port (
clk : in std_logic;
-- AVALON Slave Interface
as_address : in std_logic_vector(7 downto 0);
as_chipselect : in std_logic;
as_read : in std_logic;
as_write : in std_logic;
as_writedata : in std_logic_vector(31 downto 0);
as_readdata : out std_logic_vector(31 downto 0);
as_readdatavalid : out std_logic;
as_waitrequest : out std_logic
);
end Component;
architecture behave of Component is
as_waitrequest <= not (as_write or as_read);
process(clk)
begin
if rising_edge(clk) then
if as_chipselect = '1' and as_write = '1' then
-- Schreiben von Registern
case as_address is
when x"00" => bla lba
when others => null;
end case;
end if;
end if;
end behave
in NIOS hast Du dann
IOWR_32DIRECT(BASE, adresse, value) und IORD_32DIRECT(BASE, adresse)
oder entsprechend 8 oder 16 Bit.
Grüße,
Kest
Danke!! Ich hab das mal etwas zusammengestaucht, da ich nur die eine Richtung brauche. Die Stelle mit dem x"00" ist ein hex wert für das adressregister? Wie kann ich werte von dem writedata vektor übernehmen?
Ja, x"00" ist die interne Registeradresse
case as_address is
when x"00" => mein_register0 <= as_writedata;
when x"01" => mein_register1 <= as_writedata;
...
when others => null;
end case;
Danach erstellst Du einfach eine Komponente (SOPC-Builder) und dann
kannst Du diese Komponente einfach mit dem NIOS verdrahten. Am besten
machst Du Dich mit AVALON vertraut und liest ein Paar Dokus -- einfach
so zu erklären ist zu kompliziert.
Grüße,
Kest
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.