Languages

CommunityCategory: XMODELMeasuring the average power dissipation of a circuit

XMODEL

Measuring the average power dissipation of a circuit

SA Support Team Staff 2023-12-29

I have a model of a wireline transmitter, of which driver stages are described using circuit primitives. Can you show me how to measure the average power dissipation of this transmitter model?

1 Answers
SA Support Team Staff 2023-12-29

Sure. The average power dissipation of a circuit-level model can be easily measured using the 'meas_avg' primitive of XMODEL. I will illustrate this using the same source-series terminated (SST) voltage-mode transmitter example used in the previous Q&A posting. The cellview sandbox.tb_meas_pavg:schematic contained in the attachment and shown below is a testbench that measures the average power dissipation of this transmitter model.

The transmitter is made of a set of 8 segmented driver stages, each of which consists of switches and resistors that connect either the high-level voltage 'vsw' or low-level voltage `ground to the output via a resistor, depending on the data value being transmitted. The previous Q&A posting explained that the 8-bit thermometer-coded digital input 'en<7:0>' sets the number of driver stages being enabled and the total output resistance of the transmitter. When this transmitter is driving a transmission line channel with a 50-ohm termination on the receiver end, the value of 'en<7:0>' will also determine the voltage and current swing levels and hence the average power dissipation of the transmitter. This average power dissipation is basically the average power delivered by the supply source driving the voltage 'vsw'.

To measure the average power dissipation, the testbench schematic shown above first adds an 'iprobe' primitive that measures the current delivered by the 'dc_gen' primitive driving the voltage 'vsw' of the transmitter. This current value 'I_vsw' is then multiplied with the voltage value 'vsw_val' to compute the instantaneous power value 'P_vsw'. And the combination of 'meas_avg' and 'trig_time' primitives measures the average value of 'P_vsw' over a time period starting at 0.5us and ending at 1.0us, producing the measurement output 'pavg'. The starting and ending time points of the measurement are defined by setting the triggering time instants (i.e., the 'data' parameter) of the 'trig_time' primitive.

The simulated waveforms using this testbench are shown below. The testbench simulates the transmitter with 3, 4, and 5 drivers enabled, and you can see the transmitter output swing and instantaneous power level increase as the number of drivers enabled increases. Also, at 1.0us, the 'meas_avg' primitive completes the measurement and outputs the value of the average power dissipation of the transmitter, which increases from 2.158mW to 2.798mW as the number of drivers enabled increases from 3 to 5.

Attachment: meas_pavg_20231229.tar.gz

XMODEL

회로의 평균 소모전력 측정하는 법

SA Support Team Staff 2023-12-29

구동 드라이버 회로가 circuit primitive로 기술된 wireline 송신기 모델이 있습니다. 이 송신기 모델의 평균 소모전력을 측정하는 법을 예시로 보여주실 수 있나요?

1 Answers
SA Support Team Staff 2023-12-29

Sure. The average power dissipation of a circuit-level model can be easily measured using the 'meas_avg' primitive of XMODEL. I will illustrate this using the same source-series terminated (SST) voltage-mode transmitter example used in the previous Q&A posting. The cellview sandbox.tb_meas_pavg:schematic contained in the attachment and shown below is a testbench that measures the average power dissipation of this transmitter model.

The transmitter is made of a set of 8 segmented driver stages, each of which consists of switches and resistors that connect either the high-level voltage 'vsw' or low-level voltage `ground to the output via a resistor, depending on the data value being transmitted. The previous Q&A posting explained that the 8-bit thermometer-coded digital input 'en<7:0>' sets the number of driver stages being enabled and the total output resistance of the transmitter. When this transmitter is driving a transmission line channel with a 50-ohm termination on the receiver end, the value of 'en<7:0>' will also determine the voltage and current swing levels and hence the average power dissipation of the transmitter. This average power dissipation is basically the average power delivered by the supply source driving the voltage 'vsw'.

To measure the average power dissipation, the testbench schematic shown above first adds an 'iprobe' primitive that measures the current delivered by the 'dc_gen' primitive driving the voltage 'vsw' of the transmitter. This current value 'I_vsw' is then multiplied with the voltage value 'vsw_val' to compute the instantaneous power value 'P_vsw'. And the combination of 'meas_avg' and 'trig_time' primitives measures the average value of 'P_vsw' over a time period starting at 0.5us and ending at 1.0us, producing the measurement output 'pavg'. The starting and ending time points of the measurement are defined by setting the triggering time instants (i.e., the 'data' parameter) of the 'trig_time' primitive.

The simulated waveforms using this testbench are shown below. The testbench simulates the transmitter with 3, 4, and 5 drivers enabled, and you can see the transmitter output swing and instantaneous power level increase as the number of drivers enabled increases. Also, at 1.0us, the 'meas_avg' primitive completes the measurement and outputs the value of the average power dissipation of the transmitter, which increases from 2.158mW to 2.798mW as the number of drivers enabled increases from 3 to 5.

Attachment: meas_pavg_20231229.tar.gz