Simulating and carrying out a proper noise analysis in Cadence is important to prevent undesired post-tapeout issues.
A Noise analysis is crucial for understanding the impact of the circuit performance. In this guide, I will walk you through the process of performing a standard noise analysis using Cadence Virtuoso.
The tool Virtuoso runs a small-signal AC noise analysis which can calculate the noise for each given frequency.
Let’s define what is Noise:
Unwanted electrical signals that can interfere with the desired operation of your circuit.
First, it is important to understand the IC Noise Sources: Mainly, Thermal, Flicker and Shot noise. In this other post, I talked more in detail about the most common Noise Types in analog integrated circuits.
Set up your Test Bench
First, build and set up the schematic test bench of the circuit you want to test. I believe that if you are reading this, you already have it!!
In the following step, we will define and configure together the analysis setup, where all the parameters and configuration are defined.
Run the simulation
Maestro Simulation Configuration
Let’s start with a standard and basic configuration (see the picture below for reference).
In Assembler, click on “Click to add analysis” below your active Test.
- Select “Noise” analysis type.
- Define Frequency Range: Specify the frequency range over which you want to analyze noise.
- Sweep type: Automatic.
- Select Output Nodes: Choose the voltage nodes for which you want to analyze the noise. Usually the “Negative Output Node” is ground (if you are not using differential signals). It is important to tell Cadence in the noise analysis config which signal is your output. You can only choose one by one in each test.
If you want to measure the noise in a current… then select “probe”. Later you choose a device, where the current is flowing through. If you don’t have a device to select, you can always place and select a 0 ohm resistor, 0V vdc or an iprobe!
Once the analysis is configured with all the setup parameters, run the simulation.
Cadence Virtuoso will simulate your circuit and provide the noise-related results.
Total Integrated Noise
One relevant metric used to analyze the overall impact of noise in analog circuit’s performance, is the output integrated noise. This is the result of integrating the noise over a frequency range of interest to determine the squared voltage.
The Total Integrated Noise considers the effect of noise across a concrete frequency segment (defined by 2 frequencies), and not just the noise at specific points.
To get that value in the Cadence outputs, the best way is to add an output expression to our maestro view using the following formula:
sqrt(integ((getData(“out” ?result “noise”)**2 frequency_1 frequency_2 “ “))
In this example, I will configure the total integrated noise at 1MHz +/- 50kHz and 2.5MHz +/-50kHz.
The result of the total integrated noise of an OTA of my example, calculated for those frequencies, 1MHz and 2.5MHz, can be seen below:
Note, if you want to calculate the output noise for several outputs (voltage or currents), you need to manually change the output in the analysis config menu.
Noise Spectrum
To see the noise spectrum graphically , you can go to the “Result Browser”, go inside the “noise” folder and plot the output signal. Note that the output noise is always referred to as “out”.
Device Noise Contribution
Another valuable metric is the noise contribution, especially when we want to understand the noise in your circuit in order to take action and make changes in your design.
As its name says, the noise contribution report describes the noise contribution of each element and their impact on the overall circuit noise. The noise contributors are computed to the specified output node you defined previously on the analysis config menu.
To open this report, the quickest way is to right click on the Results >> Print >> Noise Summary. Also you can go to Results >> Print >> Noise summary
Now, a new GUI (graphical user interface) will prompt and you make config the report:
- In my case I select “integrated noise” and choose V as noise unit
- Complete the frequency range you defined before (or other)
- Then select “include all types”.
- Select “truncate by number”, and then I choose to show the most 10 significant noise sources. Depend how many devices you want to show.
- Select “Suffix notation” to show pico, nano, etc with lyrics instead of the numbers i.e. 10E-9, 10E-12, etc.
- If you press “Apply” instead of the button “OK”, you will see the results on the Results Display Window, but you can still modify more parameters and press apply again (and iterate your report).
If everything is fine, the integrated noise must match with the previously calculated in the output expressions and the shown in the report (see with a red arrow in the pic before).
I hope that this small tutorial have been helpful for you. Do not hesitate to ask any open question, comments or any kind of suggestion.