Impedance Control

Set up differential pair or single-ended impedance-controlled lines.

Overview

Impedance control in Flux is defined at a part level instead of at a project level. Meaning that parts that require impedance control or differential pair routing come pre-configured with all the required parameters. This implementation greatly simplifies the routing process and reduces busy work.

Learn more about impedance control in this tutorial.

Configuring Impedance Control

There are two ways of configuring impedance control for a part:

  • Automatic setup: this is the recommended process as it only requires part pins to be properly named.
  • Manual setup: it’s also possible to manually add parameters directly to the pins.

Automatic Setup

Flux will automatically add the right parameters to every terminal in the part if the “Part Type” property is set to any of the supported interfaces listed below.

Supported Interfaces
USB A, USB B, USB C, HDMI, PCIe x1, PCIe x2, PCIe x4, PCIe x8, PCIe x16, MIPI CSI, MIPI DSI, DDR3, DDR4

For an interface to be automatically configured, the terminal's name in the part need to follow one of the following names_

Compatible Terminal Names
USB 2.0

"d+"

"d-"

dp

dn

dm

"data+"

"data-"

dp1

dn2

p

n

usb_dp

usb_dm

USB 3.

txp

txn

"tx+"

"tx-"

txm

sstxp1

sstxn1

"dptx+"

"dptx-"

"superspeed_tx+"

"superspeed_tx-"

"rx+"

"rx-"

rxp

rxn

rxm

ssrxp1

ssrxn1

"rx2+"

"rx2-"

"dprx2+"

"dprx2-"

"superspeed_rx2+"

"superspeed_rx2-"

vbus

MIPI

"dp0+"

"dp0-"

"dp1+"

"dp1-"

"dp2+"

"dp2-"

"dp3+"

"dp3-"

"dp4+"

"dp4-"

data_p0

data_n0

data_p1

data_n1

data_p2

data_n2

data_p3

data_n3

data_p4

data_n4

"d0+"

"d0-"

"d1+"

"d1-"

"d2+"

"d2-"

"d3+"

"d3-"

"d4+"

"d4-"

"clk+"

"clk-"

clock_p

clock_n

HDMI

"data0+"

"data0-"

"data1+"

"data1-"

"data2+"

"data2-"

"data3+"

"data3-"

"d0+"

"d0-"

"d1+"

"d1-"

"d2+"

"d2-"

"d3+"

"d3-"

"in_d0+"

"in_d0-"

"in_d1+"

"in_d1-"

"in_d2+"

"in_d2-"

"in_d3+"

"in_d3-"

"out_d0+"

"out_d0-"

"out_d1+"

"out_d1-"

"out_d2+"

"out_d2-"

"out_d3+"

"out_d3-"

data0_p

data0_n

data1_p

data1_n

data2_p

data2_n

data3_p

data3_n

"tmds data0+"

"tmds data0-"

"tmds data1+"

"tmds data1-"

"tmds data2+"

"tmds data2-"

"tmds data3+"

"tmds data3-"

"tmds data 0+"

"tmds data 0-"

"tmds data 1+"

"tmds data 1-"

"tmds data 2+"

"tmds data 2-"

"tmds data 3+"

"tmds data 3-"

"tmds clock+"

"tmds clock-"

"tmds_d0+"

"tmds_d0-"

"tmds_d1+"

"tmds_d1-"

"tmds_d2+"

"tmds_d2-"

"tmds_d3+"

"tmds_d3-"

"tmds_ck+"

"tmds_ck-"

"d_in0+"

"d_in0-"

"d_in1+"

"d_in1-"

"d_in2+"

"d_in2-"

"d_in3+"

"d_in3-"

"clk+"

"clk-"

"clock+"

"clock-"

clock_p

clock_n

in_clkp

in_clkn

out_clkp

out_clkn

PCI

a2

a3

a5

a6

a14

a15

a17

a18

a11

a12

rxa0p

rxa0n

rxa1p

rxa1n

rxa2p

rxa2n

rxa3p

rxa3n

tx0p

tx0n

tx1p

tx1n

tx2p

tx2n

tx3p

tx3n

Manual Setup

If you’re configuring impedance control for an interface that is not currently supported, you’ll need to add the parameters to every terminal manually. Below is a list of all the parameters that need to be configured:

Flux-Defined properties

Defined at component level

  • Bus Type: target interface. For example HDMI, PCIe or USB

Defined at terminal level

  • Bus Group: this property defines the different differential pairs. Some interfaces might require many different bus groups (like ethernet), while others only require one (like USB2.0). For example, if a microcontroller contains two USB buses, terminals for one bus should contain “Bus Group” = USB_1 and terminals in the second bus should contain “Bus Group” = USB_ 2
  • Pair Role: defines what type of role the terminal has. For example CLK, D1, D2, D3, D4, TX, TX1, TX2, TX3, RX, RX1, RX2, RX3, etc.
  • Controlled Impedance Pair: this should be a unique name that identifies the pair. This is particularly important for parts that contain more than one bus. For example in a part with two USB buses, you will have two Data 1 pairs. In that case one pair could be named “Data1_Bus1” and the other pair “Data1_Bus2”. You can follow any naming convention you prefer, the only requirement is that each pair has a unique “Controlled Impedance Pair” string.

Impedance Constraints

  • Controlled Impedance: target impedance, measured in Ohms.
  • Controlled Impedance Tolerance: how much the actual impedance can vary with respect to the “Controlled Impedance” property, measured in %.

These rules configure the impedance parameters that need to be obeyed and are usually part of the interface specifications. For example, USB 3.2 Gen 2 (10 Gbps) requires VBUS=90Ω±15% and D+ and D- =90Ω±7.5%

Differential Pair Constraints

  • PN Skew Max: the maximum time difference tolerated for signals between the two terminals in the pair, measured in pico-seconds.
  • Pin Delay: specifies the time delay from the IC to the terminal connection point, measured in ps.

Bus Constraints

  • Pair to Pair Skew Max: the maximum time difference tolerated for signals between the two different pairs in a bus, for example, data and clock lines.

Limitations

The following features will be supported in the next releases:

  • Squiggles

  • Multi-tracing for bus:

    • PCIe
    • HDM
    • Ethernet
  • DRC Checks

    • DRC for length matching
    • DRC for ground underneath
    • DRC for trace spacing (uncoupled length)
Type to search, ESC to discard
Type to search, ESC to discard
Type to search, ESC to discard