so meine wirklich letzte Frage!
Ich habe jetzt also einen Power Pc core erstellt. und meine C
anwendungen zum laufen gebracht mit Ausgabe auf COM 1 also nichts dolles
sondern nur Hallo Welt!
Mein großes wirkliches Anliegen ist es jetzt allerdings meinen Ethernet
baustein zu verartzten.
Also eingebunden ist er mit dem OPB Ethernet Media Access Controller
(EMAC) (v1.04a). Das EDK hat mir jetzt mehrere Dateien erzeugt.
1. Einen ganzen Ordner "hdl\xlpp\opb_ethernet_v1_04_a\hdl\vhdl\*.*" wo
alle möglichen vhd Dateien drin sind wohl mit funktionen drin. z.B.
"rx_length_reg.vhd" und "tx_status_reg.vhd" und "receive.vhd" reingucken
kann man da leider nicht :o(
2. zum anderen dirket unter dem "hdl" Ordner eine Datei mit dem Namen
"ethernet_mac_wrapper.vhd" in dem ist der Port definiert und teilweise
default werte zugewiesen.
Kurzer Ausschnitt (mit lücken)
------------------------------------------------------------------------
-------
-- ethernet_mac_wrapper.vhd
------------------------------------------------------------------------
-------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
library UNISIM;
use UNISIM.VCOMPONENTS.ALL;
library opb_ethernet_v1_04_a;
use opb_ethernet_v1_04_a.All;
entity ethernet_mac_wrapper is
port (
PHY_tx_clk : in std_logic;
PHY_rx_clk : in std_logic;
PHY_crs : in std_logic;
PHY_dv : in std_logic;
PHY_rx_data : in std_logic_vector(3 downto 0);
PHY_col : in std_logic;
PHY_rx_er : in std_logic;
---
emac_intrpts : out std_logic_vector(0 to 21);
IP2INTC_Irpt : out std_logic
);
attribute incremental_synthesis : STRING;
attribute incremental_synthesis of ethernet_mac_wrapper: entity is
"yes";
attribute x_core_info : STRING;
attribute x_core_info of ethernet_mac_wrapper: entity is
"opb_ethernet_v1_04_a";
end ethernet_mac_wrapper;
architecture STRUCTURE of ethernet_mac_wrapper is
component opb_ethernet is
generic (
C_DEV_BLK_ID : INTEGER;
C_DEV_MIR_ENABLE : INTEGER;
C_BASEADDR : std_logic_vector;
C_HIGHADDR : std_logic_vector;
C_RESET_PRESENT : INTEGER;
C_INCLUDE_DEV_PENCODER : INTEGER;
---
C_TX_INCLUDE_CSUM : INTEGER;
C_RX_INCLUDE_CSUM : INTEGER
);
port (
PHY_tx_clk : in std_logic;
PHY_rx_clk : in std_logic;
PHY_crs : in std_logic;
PHY_dv : in std_logic;
PHY_rx_data : in std_logic_vector(3 downto 0);
PHY_col : in std_logic;
PHY_rx_er : in std_logic;
OPB_ABus : in std_logic_vector(0 to (C_OPB_AWIDTH-1));
OPB_DBus : in std_logic_vector(0 to (C_OPB_DWIDTH-1));
---
Mn_ABus : out std_logic_vector(0 to (C_OPB_AWIDTH-1));
emac_intrpts : out std_logic_vector(0 to 21);
IP2INTC_Irpt : out std_logic
);
end component;
begin
ethernet_mac : opb_ethernet
generic map (
C_DEV_BLK_ID => 1,
C_DEV_MIR_ENABLE => 1,
C_BASEADDR => X"40c00000",
C_HIGHADDR => X"40c0ffff",
C_RESET_PRESENT => 1,
---
C_RX_DRE_TYPE => 0,
C_TX_INCLUDE_CSUM => 0,
C_RX_INCLUDE_CSUM => 0
)
port map (
PHY_tx_clk => PHY_tx_clk,
PHY_rx_clk => PHY_rx_clk,
PHY_crs => PHY_crs,
PHY_dv => PHY_dv,
---
Mn_seqAddr => Mn_seqAddr,
Mn_ABus => Mn_ABus,
emac_intrpts => emac_intrpts,
IP2INTC_Irpt => IP2INTC_Irpt
);
end architecture STRUCTURE;
Verweisen tut diese Datei aber ja auf "opb_ethernet".
jetzt meine große große Frage ich möchte jetzt aber mich an diesen
Ethernet
Baustein / erzeugten Controller randocken und die reinkommenden Ethernet
Packete (mit VHDL) Bearbeiten und weiterleiten.
Wie kann dieses randocken passieren? Bzw. wie kann ich meine meinen VHDL
Code mit einbinden (zur erinnerung die Datei mit den Ports verweist auf
eine andere Datei) und den Inhalt der oben aufgeführten Datei benutzen?