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.