Commit Graph

353 Commits

Author SHA1 Message Date
enjoy-digital bdff760128
Merge pull request #81 from ozbenh/gen-py-fixes
gen.py fixes
2021-09-27 17:00:17 +02:00
enjoy-digital 734d948665
Merge pull request #78 from lschuermann/dev/phy-gmii-model
phy/gmii: add model parameter to skip clock buffers & generation
2021-09-27 16:58:26 +02:00
enjoy-digital bcb1946711
Merge pull request #76 from lschuermann/dev/xgmii-phy
Add 64-bit XGMII PHY implementation for 10G Ethernet
2021-09-27 16:53:29 +02:00
Benjamin Herrenschmidt 63ff6f47e7 gen: Add clock constraints
Otherwise the generated verilog is missing necessary "keep" attributes

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2021-09-24 12:19:10 +10:00
Benjamin Herrenschmidt f2032a4227 Remove clock asserts
They aren't strictly necessary, especially since the MAC can have
a wider data path and thus cope with running slightly slower

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2021-09-23 12:24:58 +10:00
Florent Kermarrec 1db5299a62 core/ip: Simplify. 2021-09-22 18:59:48 +02:00
Florent Kermarrec e2eb74f704 core/icmp: Simplify. 2021-09-22 18:36:03 +02:00
Florent Kermarrec 33322ad80f core/arp: Simplify IDLE state. 2021-09-22 18:35:48 +02:00
Florent Kermarrec 4cadf912f2 bench/arty:bench/arty: Add UDP Streamer example with UDP TX stream from Switches. 2021-09-22 18:21:20 +02:00
Florent Kermarrec c7aa4e50f4 frontend/stream/LiteEthStream2UDPTX: Fix/Simplify no FIFO case. 2021-09-22 18:05:59 +02:00
Florent Kermarrec a26608f30f bench/arty: Add UDP Streamer example with UDP RX stream redirected to Leds.
Tested with:
./arty.py --build --load
./test_udp_streamer.py --leds
2021-09-22 17:06:27 +02:00
Florent Kermarrec a6298975bd core/udp: Simplify LiteEthUDPTX. 2021-09-22 16:54:41 +02:00
Florent Kermarrec 8f05e72f99 frontend/etherbone: Simplify code. 2021-09-22 16:45:37 +02:00
Florent Kermarrec bee34ee955 core/udp: Simplify LiteEthUDPRX and make sure to drop exceeding payload. 2021-09-22 16:32:47 +02:00
Benjamin Herrenschmidt 9b3837e636 Allow "device" to be specified in yaml
Otherwise we don't get the DDROutput overrides and the standalone
core fails to generate when using GMII_MII

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2021-09-22 22:27:30 +10:00
Benjamin Herrenschmidt cccc0c720a Add support for GMII_MII PHY to gen.py
It was missing. It's useful for Wukong

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2021-09-22 22:27:25 +10:00
Florent Kermarrec 393158f2a5 frontend/stream/LiteEthUDP2StreamRX: Pass last signal from Sink to Source. 2021-09-22 12:05:09 +02:00
Florent Kermarrec 9b88c0f299 frontend/stream: Apply convert_ip to ip_address. 2021-09-22 11:14:01 +02:00
Florent Kermarrec 27a0b99e54 common: Improve convert_ip to automatically detect passed format.
Simplify use in the code.
2021-09-22 11:13:33 +02:00
Florent Kermarrec e39fec240b CONTRIBUTORS: Update. 2021-09-15 14:49:06 +02:00
Florent Kermarrec 8e059b5124 phy/s6rgmii: Remove IBUF (ISE seems to have trouble with it). 2021-09-13 19:31:29 +02:00
Leon Schuermann 109002985a phy/gmii: add model parameter to skip clock buffers & generation
To support a simple GMII simulation, skip clock generation and buffer
logic. This allows to operate a GMII interface over sys_clk. Proper
GMII clocking support can still be added in the simulation, this
should work when setting model = False.

It also sets an attribute "model" such that we can avoid adding
Platform constraints in the rest of the ecosystem (such as
litex/litex/soc/integration/soc.py, add_ethernet and add_etherbone).

Signed-off-by: Leon Schuermann <leon@is.currently.online>
2021-09-01 20:30:51 +02:00
Leon Schuermann ea55332d26 Add 64-bit XGMII PHY implementation for 10G Ethernet
Adds support for 64-bit wide XGMII PHYs in LiteEth. A 64-bit wide
XGMII data path is a common method to interconnect multi-gigabit
Ethernet inside FPGAs. This module expects a 64-bit MAC data path,
which is to be added later. It has been tested locally using a
rewritten XGMII module for the LiteX simulator as well as on a KCU116
board.

This work has been inspired by enjoy-digital/liteeth#21 but is
entirely rewritten using Migen FSMs and with respect to
IEEE802.3-2018. Thanks to Florent Kermarrec (@enjoy-digital) and Vamsi
Vytla (@jersey99) for providing the base implementation.

This implementation does not yet support proper 32-bit (DDR) XGMII
PHYs, although support can be easily added by an additional module
which performs the DDR encoding / decoding of the data respectively.

Signed-off-by: Leon Schuermann <leon@is.currently.online>
2021-08-17 17:31:43 +02:00
enjoy-digital c6c8be703b
Merge pull request #73 from antmicro/row-hammer
liteeth/phy: add configurable hw reset duration
2021-08-11 09:35:24 +02:00
enjoy-digital a16bfdfc94
Merge pull request #72 from david-sawatzke/fullmemwe
mac: Allow configuring usage of FullMemoryWE (fixes #70)
2021-08-11 09:34:34 +02:00
David Sawatzke c3b9850366 liteeth/core: Allow configuration of full_mem_we parameter 2021-08-10 13:13:46 +02:00
David Sawatzke e14c90dbc3 mac: Allow configuring usage of FullMemoryWE (fixes #70)
On ecp5 `FullMemoryWE` leads to an increase of DP16KD block mem, while
it works better on Intel/Altera devices according to
6c3af746e2.

Simple solution: Make it configurable
2021-08-10 13:13:46 +02:00
enjoy-digital 2a8cac96ba
Merge pull request #71 from antonblanchard/gen_tx_rx_slots
liteeth/gen: Allow configuration of nrxslots and ntxslots
2021-08-06 14:58:53 +02:00
Anton Blanchard 7ac3fe681a liteeth/gen: Allow configuration of nrxslots and ntxslots
We might want to increase nrxslots and ntxslots to improve
performance, so allow it to be overriden via the yaml config.
2021-08-06 06:09:49 +10:00
Florent Kermarrec 947ed03720 liteeth_gen: Allow configuring TX/RX delay RGMII PHYs. 2021-07-16 17:50:37 +02:00
Florent Kermarrec 72dd7bf283 mac/core/LiteEthMACCore: Switch CDC to ClockDomainCrossing and reduce buffering. 2021-07-16 14:51:25 +02:00
Florent Kermarrec 66fcad12cf core/udp/get_port: Simplify code by letting CDC/Converter automatically simplify the logic when CDC/Converter are not required. 2021-07-15 19:53:17 +02:00
Florent Kermarrec 7ba5a59e12 core/arp/LiteEthARPTX: Move datapath outside of FSM (minor logic optimization). 2021-07-15 19:53:12 +02:00
Florent Kermarrec a12d3991e5 core/icmp/LiteEthICMPTX: Move datapath outside of FSM (minor logic optimization). 2021-07-15 19:53:07 +02:00
Florent Kermarrec 43a2ea8118 frontend/Etherbone: Use new LiteX's PacketFIFO. 2021-07-15 18:07:15 +02:00
Florent Kermarrec 2b237881d9 core/icmp: Use new LiteX's PacketFIFO. 2021-07-15 18:06:52 +02:00
Florent Kermarrec c294a3848e bench: Add XCU1525 bench (compiles but not yet working on hardware). 2021-07-02 13:00:43 +02:00
Florent Kermarrec 2f4964cf56 phy: Add initial Ultrascale+ 1000BaseX PHY. 2021-07-02 12:59:00 +02:00
Florent Kermarrec 9343889fbd bench: Add KCU105 bench (with KU_1000BASEX on SFP0 and SGMII/RJ45 SFP adapter). 2021-07-02 09:56:55 +02:00
Florent Kermarrec 5ad0e10a72 bench: Update (remove calls to add_csr no longer required). 2021-07-02 09:34:33 +02:00
Florent Kermarrec 435c67dbc7 frontend/stream/LiteEthStream2UDPTX: Simplify logic, add send_level parameter. 2021-05-27 14:12:04 +02:00
Florent Kermarrec 57e018354c mac/sram: Cosmetic cleanups. 2021-05-07 14:39:38 +02:00
Leon Schuermann d2ef10fc03 mac/sram/timestamping: Fix stat_fifo refactoring typo.
Fixes: 392414eef8 ("mac: Review Timestamping, simplify and...")
Signed-off-by: Leon Schuermann <leon@is.currently.online>
2021-05-07 09:39:03 +02:00
Leon Schuermann af29c09ac0 mac/sram/timestamping: Fix stat_fifo.sink.valid refactoring typo.
Fixes a bug which would fill the TX return channel FIFO whenever the
SRAM Reader FSM is in the IDLE state. Instead, the FIFO should be
filled when the FSM reaches the END state, in which it will remain for
exactly a single clock cycle.

Fixes: 392414eef8 ("mac: Review Timestamping, simplify and...")
Signed-off-by: Leon Schuermann <leon@is.currently.online>
2021-05-07 09:34:23 +02:00
Jędrzej Boczar 18b5b2a70d liteeth/phy: add configurable hw reset duration 2021-04-28 13:24:06 +02:00
enjoy-digital e718a9ea5d
Merge pull request #67 from antmicro/jboc/s7rgmii-iodelay
phy/s7rgmii: add configurable iodelay_clk_freq
2021-04-27 19:39:09 +02:00
Florent Kermarrec 6febb1aaab mac/last_be: Simplify LiteEthMACTXLastBE using an FSM, fix sink.ready corner case. 2021-04-27 18:33:29 +02:00
Florent Kermarrec ca82b03e35 mac/LiteEthMACCoreCrossbar: Simplify. 2021-04-27 18:04:06 +02:00
Jędrzej Boczar dbc0b75178 phy/s7rgmii: add configurable iodelay_clk_freq 2021-04-27 10:59:27 +02:00
Florent Kermarrec 392414eef8 mac: Review Timestamping, simplify and make sure CSR mapping is unchanged when Timestamp is disabled.
- Simplify names (timestamp_source --> timestamp, tx/tx_timestamp CSR/Layouts --> timestamp, etc...)
- Simplify the logic a bit.
- Use consistent names for FIFO between Writer and Reader (cmd_fifo and stat_fifo).
- Avoid stat_fifo on Reader when Timestamp is disabled.
- Use EventSourceLevel() on Reader only when Timestamp is enabled.
2021-04-08 14:07:35 +02:00