Main Content

LDO Circuit Analysis Using Mixed-Signal Analyzer

This example shows you how to use the ‘Trend Chart’ plotting capability and ‘Update’ workflow feature of Mixed Signal Analyzer (MSA) app, in analyzing a Low Drop-Out (LDO) voltage regulator circuit.


LDO is an analog circuit that maintains a constant output voltage relative to the input reference voltage, even with varying load current. The LDO schematic shown below comprises an OpAmp, a pass-transistor (FET) and resistor divider (R1, R2) in a feedback loop.

One of the important characteristics of the LDO is load regulation. It is defined as the ability of the LDO to maintain a steady output with changes in the load current [1]. The worst case of the output voltage variation occurs as the load current transitions from zero to its maximum rated value or vice versa. Load regulation is a steady state parameter, i.e., the frequency components are ignored [1] and is measured in simulation using ‘DC analysis’ in Cadence Virtuoso.


Phase margin is a dynamic parameter which represents the stability of the feedback loop in the LDO block. Phase margin is measured in simulation using ‘Stability Analysis’ in Cadence Virtuoso.

LDO Simulation Data

Before using MSA app, one needs to generate LDO simulation data using Cadence Virtuoso. The LDO circuit is simulated in Cadence Virtuoso across various PVT corners. Important LDO metrics like load regulation and phase margin, waveforms showing transient behavior of the LDO are saved during the simulation.

You can extract the cadence simulation data into a mat-file for further analysis in MSA using the function adeinfo2msa(). More information about using this function can be found on the Mixed Signal Analyzer.

Import Simulation Data Into MSA

The LDO simulation data has been provided in a mat-file named ‘ldo_test_Interactive.1.mat’. You can import the simulation data in MSA using the command below:


Above function run opens MSA app and displays the list of simulation data imported from Cadence into the data panel of the app. Next, you can select any signal name and click on “Display Waveform” button in the toolstrip to visualize the signal. For example, in the image below we are displaying the waveform at output (i.e., ‘ldo_out’) of the LDO using the transient analysis data.

You can visualize metrics like ‘Phase Margin’ by selecting the metric and clicking on ‘Trend Chart’. You can also customize the plots e.g., rename a plot (expand the ‘Plot’ menu and click on ‘Rename Plot’) or rearrange the plot parameters (click on the arrows above ‘X-Axis’ and ‘Legend’).

You can save your plot customizations in a session mat-file using the menu option ‘Save Session’. A session mat-file called ‘LDO_Interactive.1.session.mat’ has been provided to you. Optionally, you can run the following function call to view the customizations saved in the session mat-file.

% mixedSignalAnalyzer('LDO_Interactive.1.session.mat')

MSA Update Workflow

You can use the update workflow to update the plots based on your customization when you tweak a design. For example, let the minimum requirement on the LDO phase margin be 60 degrees. Here are the steps that can be followed to update your plots in MSA:

  1. You can see from the trend-chart of ‘Phase Margin’ that it is lesser than 60 degrees for the FF corner. Let’s say you tweak a design parameter, e.g., increase ‘Cfb’ to improve the phase margin, and re-run the simulation to verify the results.

  2. You can generate a new mat-file consisting of simulation results from the tweaked design using the function call adeinfo2msa(runName='Interactive.2',metricsOnly=false,import2msa='false'). A mat-file with the updated results called ‘ldo_test_Interactive.2.mat’ has been provided to you.

  3. You can update the MSA session by using the new simulation mat-file and the session-mat file from the previous section as input arguments using the following function call. The function also generates a report as per the provided arguments.

msaSessionUpdate(sessionFileName='LDO_Interactive.1.session.mat', ... 
    sessionPath='./', updateMatFileName='ldo_test_Interactive.2.mat', ...
    reportType='pdf', reportFileName='LDO_Design_Report')
ans = 

After running the session update function, MSA sets up the plots as per the customization in the session mat-file. You can see that the LDO phase margin is greater than 60 degrees at all corners after tweaking ‘Cfb’.

MSA Update From Cadence

An alternative workflow to update your MSA plots directly from Cadence, without generating a simulation mat-file, is by adding the msaSessionUpdate() function call as a ‘matlabexpr’ under ‘Outputs Setup’ in maestro view. At the end of simulation, MSA plots get updated with new simulation data using the customizations from the session mat-file, e.g., 'ldoSession.mat' in the function call shown below.


The capability of MSA to analyze metrics/scalar results using ‘Trend Chart’ feature has been presented. A workflow is also shown for updating the plots after design tweaks using MSA and generate a report with the updated results. This “Update Workflow” can be automated by including the function calls in a MATLAB script that can be called after the simulations are completed.


[1] Understanding the Terms and Definitions of LDO Voltage Regulators