Gast
#1655431
Hallo zusammen! Ich hätte da mal eine Frage, ob ich auf dem richtigen Weg oder ob ihr das anders machen würdet. Ich hab nen PPC bzw. ein kleines Platinchen mit PPC und dem ganzen Speicher-Schnickschnack, was man halt so braucht. Nun möchte ich möglichst viele Funktionen, die der PPC zur Verfügung stellt auf einer Art Eval-Board nutzen können. Da die Portpins teilweise 4-fach belegt sind dachte ich, dass ich zwischen dem PPC und der restlichen Hardware (Pegelwandler für die jeweilige Schnittstelle usw.) ein FPGA als Multiplexer verwenden könnte. Beispielsweise liegen die Signale für Ethernet und CAN auf den selben Pins. Will ich nun Ethernet verwenden, teil ich das nem Microblaze im FPGA mit über die serielle Schnittstelle. Dieser gibt meinetwegen die gewählte Konfiguration z.B. per GPIO an eine darunter liegende VHDL-Ebene weiter, in welcher der Multiplexer realisiert ist. Dieser besteht aus einer ganzen Reihe von Prozessen in deren sensivity list eben alle Signale einer Shcnittstelle stehen. Im Prozess steht dann noch ne if-Abfrage, die überprüft, ob diese Schnittstelle auch wirklich "durchgereicht" werden soll an die jeweiligen Pegelwandler usw. Bei Beispiel Ethernet und CAN gäbe es dann z.B. einen Process für CAN mit CAN_RX und CAN_TX in der sensivity list und einen Process für Ethernet mit den Signalen vom Ethernet-PHY in der sensivitiy list. Also z.B.: can_bus : process (eingang_1, eingang_2) begin if gewaehlte_schnittstelle(7 downto 0) = x"01" then ausgang_can_rx <= eingang_1; ausgang_can_tx <= eingang_2; end if; end process can_bus; ethernet : process (eingang_1, eingang_2, eingang_3, eingang_4, ...) begin if gewaehlte_schnittstelle(7 downto 0) = x"02" then ausgang_eth_tx1 <= eingang_1; ausgang_eth_rx1 <= eingang_2; ausgang_eth_tx2 <= eingang_3; ausgang_eth_rx2 <= eingang_4; ... end if; end process ethernet; Würdet ihr das genau so machen oder bin ich da auf dem Holzweg. Arbeite zwar ab und zu mit VHDL aber hab halt noch nicht so die Erfahrung! Danke schon mal für die Antworten! MfG Max