DCU¶
Lattice Semiconductor ECP5/ECP5-5G Dual-Channel Unit (DCU) Interface.
- class bakeneko.interface.phy.serdes.vendor.lattice.ecp5.dcu.DCU(*, dcu: DCUNumber, channel: Channel, link_speed: Literal[LinkSpeed.LS2_5, LinkSpeed.LS5_0], refclk: Signal, tx0_p: Signal | None = None, tx0_n: Signal | None = None, rx0_p: Signal | None = None, rx0_n: Signal | None = None, tx1_p: Signal | None = None, tx1_n: Signal | None = None, rx1_p: Signal | None = None, rx1_n: Signal | None = None) None¶
Lattice Semiconductor ECP5/ECP5-5G devices have a concept called a Dual-Channel Unit (DCU), it represents an encapsulation of 2 SerDes channels.
Each ECP5/ECP5-5G device has 2 DCUs on the larger 45k an 85k variants, and a single DCU on the smaller 25k variants with no DCUs the non-UM devices.
The overall structure of a DCU looks like this:
╭───────────╮ │ DCU │ ├─────┬─────┤ │ CH0 │ CH1 │ ╰─────┴─────╯
Within each DCU, there is also an
EXTREFblock, which deals with internal reference clock generation from the DCU, as well as an auxiliary control channel.A more detailed block diagram of a DCU would be as follows:
╭───────────────────────────────╮ │ DCU │ │ ╭─────────╮ ╭─────────╮ ╭───╮ │ │ │ │ │ │ │ A │ │ │ │ CH0 │ │ CH1 │ │ U │ │ │ │ │ │ │ │ X │ │ │ ├─────────┤ ├─────────┤ ╰───╯ │ │ │ │ │ │ ╭───╮ │ │ │ PCS │ │ PCS │ │ E │ │ │ │ │ │ │ │ X │ │ │ ├─────────┤ ├─────────┤ │ T │ │ │ │ SERDES0 │ │ SERDES1 │ │ R │ │ │ ├────┬────┤ ├────┬────┤ │ E │ │ │ │ RX │ TX │ │ RX │ TX │ │ F │ │ │ ╰────┴────╯ ╰────┴────╯ ╰───╯ │ ╰───────────────────────────────╯
For more details on the ECP5 DCUs see the Lattice Technical Note FPGA-TN-02206.
Note
Many of the DCU and channel properties are set at elaboration time for the synthesis and place-and-route tools, however, many, if not most of them are able to be modified via the SerDes Client Interface (
SCI) for the DCU.- Parameters:
dcu (DCUNumber) – The specific DCU on the device to use.
channel (Channel) – The specific channel or channels to use for the given DCU.
link_speed (LinkSpeed) – The link speed for the DCUs channels.
refclk (Signal) – The input reference clock for this DCU
tx0_p (Signal | None) – The positive side of the channel 0 transmitter pair (default:
None)tx0_n (Signal | None) – The negative side of the channel 0 transmitter pair (default:
None)rx0_p (Signal | None) – The positive side of the channel 0 receiver pair (default:
None)rx0_n (Signal | None) – The negative side of the channel 0 receiver pair (default:
None)tx1_p (Signal | None) – The positive side of the channel 0 transmitter pair (default:
None)tx1_n (Signal | None) – The negative side of the channel 0 transmitter pair (default:
None)rx1_p (Signal | None) – The positive side of the channel 0 receiver pair (default:
None)rx1_n (Signal | None) – The negative side of the channel 0 receiver pair (default:
None)
- Attributes:
dcu_num (DCUNumber) – The DCU on the device this module is configured for
chan (Channel) – The DCU channel(s) this module is configured for
sci (DCUInterface) – The SerDes Client Interface for this DCU.