240 Mbps Manchester-encoded differential transceiver on the SKY130 open-source node. Integrated PLL, CDR, dual FIFOs, and PRBS-7 self-test.
| Signal Group | Count |
|---|---|
| PLL control | 5 sig |
| CDR control | 3 sig |
| TX serializer ctrl/status | 7 sig |
| RX deserializer ctrl/status | 7 sig |
| Clock outputs | clk_240m_tx, _rx |
| Parameter | Typ | Unit |
|---|---|---|
| Input frequency | 24.0 | MHz |
| Output frequency | 240 | MHz |
| Multiply ratio | 10× | — |
| Lock time | ~8 | µs |
| Jitter (RMS) | 50 | ps |
| VCO tuning range | 200–400 | MHz |
| Parameter | Value |
|---|---|
| Depth | 8 words |
| Internal width | 8 bits |
| External width | 4 bits |
| Write clock | 24 MHz |
| Effective write rate | 12 MHz (gated) |
| Overflow action | FIFO_ERR + discard |
| Property | Value |
|---|---|
| DC balance | ±0 over any 2 symbols |
| Transition density | 100% |
| Max run length | 1 symbol |
| Symbol rate | 240 Mbaud |
| Bit rate | 120 Mbps effective |
The Alexander (bang-bang) phase detector samples the incoming data at three points: early, on-time, and late. Comparing early vs. late samples determines whether the recovered clock leads or lags the data transitions.
| Bits | Name | Description |
|---|---|---|
| [2:0] | CDR_GAIN | Loop gain (0x4 default) |
| [3] | CDR_FAST_LOCK | 2× gain in acquisition |
| [4] | CDR_RST | Active-high reset |
| Bits | Name | Description |
|---|---|---|
| [3:0] | VCO_TRIM | Coarse freq trim (0x8=240 MHz) |
| [5:4] | CP_CURRENT | Charge pump current (0x2=40 µA) |
| [6] | PLL_RST | Active-high reset |
| [7] | PLL_BYPASS | Bypass for test |
| Value | VCO Freq |
|---|---|
| 0x0 | ~200 MHz |
| 0x8 | ~240 MHz (nominal) |
| 0xF | ~400 MHz |
| Value | Current |
|---|---|
| 0x0 | 10 µA |
| 0x1 | 20 µA |
| 0x2 | 40 µA (default) |
| 0x3 | 80 µA |
| Signal | Role |
|---|---|
| POWER_GOOD | All supplies OK |
| ANALOG_ISO_N | De-asserts bias disconnect |
| DIGITAL_RESET_N | Digital core reset |
| ANALOG_RESET_N | PLL / CDR reset |
| POR_ACTIVE | POR in progress |
| POR_COMPLETE | Sequencing done |
| Step | Reg | Value |
|---|---|---|
| 3 | 0x00 | 0x01 |
| 4 | 0x04 | 0x28 (PLL_RST=0) |
| 6 | 0x01 | 0x05 (TX_EN+PRBS_EN) |
| 7 | 0x03 | 0x00 (PRBS src) |
| 8 | 0x05 | 0x04 (CDR_RST=0) |
| 9 | 0x02 | 0x05 (RX_EN+CHK_EN) |
| Pin | Symbol | Description |
|---|---|---|
| IN0 | CLK_REF | 24 MHz ref, 50% duty CMOS |
| IN1 | RST_N | Active-low async reset |
| IN2–5 | TXD[3:0] | 4-bit TX data (CMOS) |
| IN6 | TX_VALID | TX data valid strobe |
| IN7 | TEST_MODE | Test mode enable |
| Pin | Symbol | Description |
|---|---|---|
| OUT0–3 | RXD[3:0] | 4-bit RX data (CMOS) |
| OUT4 | PLL_LOCK | PLL frequency lock |
| OUT5 | CDR_LOCK | CDR phase lock |
| OUT6 | PRBS_ERR | PRBS error (latched) |
| OUT7 | RX_VALID | RX data valid strobe |
| Pin | Symbol | Description |
|---|---|---|
| IO0 | SDA | I²C data (open-drain) |
| IO1 | SCL | I²C clock ≤24 MHz |
| IO2 | TXP | TX diff (+) CML 100Ω |
| IO3 | TXN | TX diff (−) CML 100Ω |
| IO4 | RXP | RX diff (+) CML 100Ω |
| IO5 | RXN | RX diff (−) CML 100Ω |
| IO6 | LPBK_EN | Analog loopback enable |
| IO7 | DBG_ANA | Analog debug output |
| Parameter | Min | Typ | Max | Unit |
|---|---|---|---|---|
| DVDD | 1.71 | 1.8 | 1.89 | V |
| AVDD | 3.0 | 3.3 | 3.6 | V |
| T_A | −40 | 25 | 85 | °C |
| CLK_REF | 23.5 | 24.0 | 24.5 | MHz |
| Parameter | Min | Max |
|---|---|---|
| DVDD | −0.3 | 2.0 V |
| AVDD | −0.3 | 3.6 V |
| Digital input | −0.3 | DVDD+0.3 |
| Diff input (RXP/N) | −0.5 | AVDD+0.5 |
| Parameter | Min | Typ | Unit |
|---|---|---|---|
| V_IH (digital) | 0.7×DVDD | — | V |
| V_IL (digital) | — | 0.3×DVDD | V |
| Diff input sens. | 10 | — | mV_pp |
| Diff output swing | 400 | 600 | mV_pp |
| I_DD active | — | 12 | mA |
| I_DD idle | — | 100 | µA |
| TT Signal | SerDes Pin |
|---|---|
| ui_in[0] | CLK_REF (24 MHz) |
| ui_in[1] | RST_N |
| ui_in[5:2] | TXD[3:0] |
| ui_in[6] | TX_VALID |
| ui_in[7] | TEST_MODE |
| uo_out[3:0] | RXD[3:0] |
| uo_out[4] | PLL_LOCK |
| uo_out[5] | CDR_LOCK |
| uo_out[6] | PRBS_ERR |
| uo_out[7] | RX_VALID |
| TT Signal | SerDes Pin |
|---|---|
| uio[0] | SDA (I²C) |
| uio[1] | SCL (I²C) |
| uio[2] | TXP |
| uio[3] | TXN |
| uio[4] | RXP |
| uio[5] | RXN |
| uio[6] | LPBK_EN |
| uio[7] | DBG_ANA |