integration/soc: add add_etherbone method.
This commit is contained in:
parent
d6b0819e4c
commit
5ad7a3b7df
|
@ -1065,6 +1065,39 @@ class LiteXSoC(SoC):
|
||||||
eth_rx_clk,
|
eth_rx_clk,
|
||||||
eth_tx_clk)
|
eth_tx_clk)
|
||||||
|
|
||||||
|
# Add Etherbone --------------------------------------------------------------------------------
|
||||||
|
def add_etherbone(self, name="etherbone", phy=None,
|
||||||
|
mac_address = 0x10e2d5000000,
|
||||||
|
ip_address = "192.168.1.50",
|
||||||
|
udp_port = 1234):
|
||||||
|
# Imports
|
||||||
|
from liteeth.core import LiteEthUDPIPCore
|
||||||
|
from liteeth.frontend.etherbone import LiteEthEtherbone
|
||||||
|
# Core
|
||||||
|
ethcore = LiteEthUDPIPCore(
|
||||||
|
phy = self.ethphy,
|
||||||
|
mac_address = mac_address,
|
||||||
|
ip_address = ip_address,
|
||||||
|
clk_freq = self.clk_freq)
|
||||||
|
self.submodules += ethcore
|
||||||
|
# Etherbone
|
||||||
|
etherbone = LiteEthEtherbone(ethcore.udp, udp_port)
|
||||||
|
setattr(self.submodules, name, etherbone)
|
||||||
|
self.add_wb_master(etherbone.wishbone.bus)
|
||||||
|
# Timing constraints
|
||||||
|
if hasattr(phy, "crg"):
|
||||||
|
eth_rx_clk = phy.crg.cd_eth_rx.clk
|
||||||
|
eth_tx_clk = phy.crg.cd_eth_tx.clk
|
||||||
|
else:
|
||||||
|
eth_rx_clk = phy.cd_eth_rx.clk
|
||||||
|
eth_tx_clk = phy.cd_eth_tx.clk
|
||||||
|
self.platform.add_period_constraint(eth_rx_clk, 1e9/phy.rx_clk_freq)
|
||||||
|
self.platform.add_period_constraint(eth_tx_clk, 1e9/phy.tx_clk_freq)
|
||||||
|
self.platform.add_false_path_constraints(
|
||||||
|
self.crg.cd_sys.clk,
|
||||||
|
eth_rx_clk,
|
||||||
|
eth_tx_clk)
|
||||||
|
|
||||||
# Add SPI Flash --------------------------------------------------------------------------------
|
# Add SPI Flash --------------------------------------------------------------------------------
|
||||||
def add_spi_flash(self, name="spiflash", mode="4x", dummy_cycles=None, clk_freq=None):
|
def add_spi_flash(self, name="spiflash", mode="4x", dummy_cycles=None, clk_freq=None):
|
||||||
assert dummy_cycles is not None # FIXME: Get dummy_cycles from SPI Flash
|
assert dummy_cycles is not None # FIXME: Get dummy_cycles from SPI Flash
|
||||||
|
|
Loading…
Reference in New Issue