Languages

CommunityCategory: XMODELModeling a PAM4 transmitter with non-ideal linearity

XMODEL

Modeling a PAM4 transmitter with non-ideal linearity

SA Support Team Staff 2024-07-31

I'd like to stress-test my PAM4 receiver and need a PAM4 transmitter model with non-uniform output levels. One measure that quantifies the linearity of a pulse-amplitude-modulation (PAM) signal is the ratio level mismatch (RLM), defined as the smallest separation between the adjacent levels divided by the ideal separation. An ideal PAM4 signal would have an RLM of 1 while non-ideal PAM4 signals have an RLM less than 1. For example, when the four levels of a PAM4 transmitter output is V0=-1.0, V1=-0.4, V2=0.5, and V3=1.0, respectively, the RLM is 0.5/0.667 = 0.75.

The PAM4 transmitter model described in the Q&A posting uses the 'dac' primitives and hence can only produce ideal PAM4 levels with RLM=1. Can you show me how to model a PAM4 transmitter with arbitrary V0, V1, V2, and V3 levels?

1 Answers
SA Support Team Staff 2024-07-31

Sure, it's easy. All you need is the model of a digital-to-analog converter (DAC) with non-uniform output levels. In fact, another Q&A posting explains how to model a non-uniform DAC simply by adding a 'pwl_func' primitive following the 'dac' primitive to define the arbitrary non-uniform mapping between the digital input values and analog output levels.

We've revised the PAM4 transmitter model (sandbox.tx_pam4:schematic cellview) from the Q&A posting so that it can produce the arbitrary levels defined by the parameters named 'V0', 'V1', 'V2', and 'V3'. The 'dac' primitive maps the digital 2-bit input of 00, 01, 10, and 11 to the ideal analog levels of -1, -1/3, +1/3, and +1, respectively, while the 'pwl_func' primitives map these levels to 'V0', 'V1', 'V2', and 'V3', respectively. Note that a pair of 'pwl_func' primitives is used to produce the differential outputs, with the common-mode level defined by the parameter 'vcm'.

The sandbox.tb_rx_pam4:schematic cellview shown below is the testbench we used to demonstrate the operation of this PAM4 transmitter. It is essentially equivalent to the one used in the previous Q&A posting, except that it uses a transmission line with source-side and load-side terminations instead of the 'filter' primitive as the channel.

The first eye diagram shown below is the one measured at the receiver input when 'V0'=-1.0, 'V1'=-1.0/3, 'V2'=1.0/3 and 'V3'=1.0. That is, the PAM4 transmitter model produces the ideal PAM4 outputs. Indeed, the eye diagram shows that the three separations between the adjacent levels are all equal.

The second eye diagram shown below is when 'V0'=-1.0, 'V1'=-0.4, 'V2'=0.5 and 'V3'=1.0. In this case, the PAM4 transmitter model produces non-ideal PAM4 outputs with RLM=0.75. The eye diagram confirms that the transmitter produces the PAM4 signal with the specified levels of 'V0', 'V1', 'V2', and 'V3'.

Attachment: pam4_rlm_20240731.tar.gz

XMODEL

비이상적인 선형특성을 갖는 PAM4 송신기 모델링하는 법

SA Support Team Staff 2024-07-31

설계한 PAM4 수신기를 스트레스 테스트하기 위해, 비이상적인 출력 레벨을 갖는 PAM4 송신기 모델이 필요합니다. PAM 신호의 선형성을 표현하는 척도로 ratio level mismatch(RLM)이라는 지표가 있는데, 인접한 레벨의 가장 작은 차이를 이상적인 레벨 차이값으로 나눈 값으로 정의됩니다. 이상적인 PAM4 신호는 RLM 값이 1이고, 비이상적인 PAM4 신호는 1보다 작은 RLM 값을 갖습니다. 예를 들어, PAM4 송신기의 네 출력레벨이 각각 V0=-1.0, V1=-0.4, V2=0.5, V3=1.0이라면, RLM 값은 0.5/0.667 = 0.75이 됩니다.

이전 Q&A 포스팅에서 설명한 PAM4 송신기 모델은 'dac' primitive를 사용하고 있고, 그 결과 RLM=1인 이상적인 PAM4 신호만을 생성할 수 있습니다. 임의의 V0, V1, V2, V3 레벨값을 갖는 PAM4 송신기를 모델할 수 있는 방법이 있을까요?

1 Answers
SA Support Team Staff 2024-07-31

Sure, it's easy. All you need is the model of a digital-to-analog converter (DAC) with non-uniform output levels. In fact, another Q&A posting explains how to model a non-uniform DAC simply by adding a 'pwl_func' primitive following the 'dac' primitive to define the arbitrary non-uniform mapping between the digital input values and analog output levels.

We've revised the PAM4 transmitter model (sandbox.tx_pam4:schematic cellview) from the Q&A posting so that it can produce the arbitrary levels defined by the parameters named 'V0', 'V1', 'V2', and 'V3'. The 'dac' primitive maps the digital 2-bit input of 00, 01, 10, and 11 to the ideal analog levels of -1, -1/3, +1/3, and +1, respectively, while the 'pwl_func' primitives map these levels to 'V0', 'V1', 'V2', and 'V3', respectively. Note that a pair of 'pwl_func' primitives is used to produce the differential outputs, with the common-mode level defined by the parameter 'vcm'.

The sandbox.tb_rx_pam4:schematic cellview shown below is the testbench we used to demonstrate the operation of this PAM4 transmitter. It is essentially equivalent to the one used in the previous Q&A posting, except that it uses a transmission line with source-side and load-side terminations instead of the 'filter' primitive as the channel.

The first eye diagram shown below is the one measured at the receiver input when 'V0'=-1.0, 'V1'=-1.0/3, 'V2'=1.0/3 and 'V3'=1.0. That is, the PAM4 transmitter model produces the ideal PAM4 outputs. Indeed, the eye diagram shows that the three separations between the adjacent levels are all equal.

The second eye diagram shown below is when 'V0'=-1.0, 'V1'=-0.4, 'V2'=0.5 and 'V3'=1.0. In this case, the PAM4 transmitter model produces non-ideal PAM4 outputs with RLM=0.75. The eye diagram confirms that the transmitter produces the PAM4 signal with the specified levels of 'V0', 'V1', 'V2', and 'V3'.

Attachment: pam4_rlm_20240731.tar.gz