In this article we describe a mixed signal verification method for doing Signal Delta dynamic tests in a system-on-chip (SoC) environment. We detail the methods for verifying the ADC in an RTL+SPICE or RTL+VAMS (Verilog AMS) based abstraction of the SoC, where the analog part of the design has an electrical based modeling (VAMS/SPICE). (To review the basics of sigma delta ADCs, read The basics of sigma delta analog-to-digital converters. )
To calculate the signal and the noise frequency that can be used as a stimulus for the ADC Verification in the proposed Mixed Mode Environment, we present a simple formula that can be applied on any ADC Subsystem. This stimulus can then be used on the ADC channels to do noise rejection checks and observe the Clock Jitter impact on SNR when using various clock sources such as PLL, IRC etc. The described method equips the mixed signal SoC designer to verify ADC Performance across different possible combinations of SoC modes of operation.
Traditional verification methods rely on digital/analog measurement accuracy and do not find out parameters like SNR/ENOB. The proposed method and flow solves this problem by giving a calculated stimulus that not only tests the modulator (in case of Sigma Delta ADC), but also tests the performance of the decimation filter. ADC dynamic characteristics are crucial for many markets, e.g. metering, motor control, etc. At Present, SoC teams rarely check these with SoC network of data converter and its IO/muxing interface.
The second part of the article describes how to qualitatively analyze dynamic characteristics of Data Converters. This process enhances the verification environment with regression capability, which shows PASS/FAIL at the end of the test case considering the values of certain important results.
Signal and noise frequency calculation
With reference to Figure 1 , sampled data is assumed to be repetitive while calculating the fast fourier transform (FFT) where:
- Fi = Input Frequency
- Ts = sampling time
- Nsa = No.of samples (2n) n = 1,2,3…..
The relation shown here should hold true to calculate the best signal to noise ratio (SNR).
Ts x Nsa = n(1/F1)
The best approach is to fix the number of samples (at which point FFT is to be performed); then given the sampling time Ts , apply the corresponding frequency Fi to the input or vice versa.
A data converter is a low pass filter, let's say its cut-off frequency is Fc. If the signal frequency is lower than Fc then it gets converted and displayed at the output; if a signal has a frequency greater than Fc then ADC does not convert those components. This is the basis of this design solution.
Example of a data converter with following specifications:
- Differential signal dynamic range as per IP specs = +/-250mV
- Output digital bus width = 24
- Clock frequency = 6.14Mhz(163ns)
- OSR (over sampling ratio) supported = 64
- Single data generation time (avg with 64 samples) = 163ns*64 = 10.43us
128 samples would take 10.43us*128=1.33504ms ( 749.04Hz)
As per Nyquist criteria , we need two samples in one cycle to regenerate the signal, hence signal max frequency (noise threshold) = 1e06/(2*10.43)Hz = 47.9Khz.
Noise source can be interleaved on signal source to generate Dynamic I/P signal for mixed mode simulations. Note: For other data converter systems OSR = 1 can be assumed; the rest of the calculation remains the same.
Modes of SoC operation
The proposed verification methodology can completely verify the working of a data converter subsystem in either the normal run mode or the low power mode. Figure 3 shows an example of one such subsystem working in normal run mode.
Click on image to enlarge.
Using this method in low power modes, where the data converter runs on low power with low quality clock source, we can say how the jitter on the clock can be seen at the output by observing SNR and dynamic range.
Mixed mode verification as opposed to simulating the entire design in transistor level form (SPICE) gives more coverage in multiple functionalities, clock sources, and modes of operation. For verifying, the present SoC flows use the decimator and receiver by modeling the modulator in synthesizable logic. This may not be able to check the behaviors due to bad integration of modulator.
This is a simple and realistic way to predict dynamic behavior of the data converter through SoC mixed mode simulations where the impact due to SoC integration–multiplexing structure, loading, routing package and boards–can be estimated prior to silicon reaching customers
Qualitatively analyze dynamic characteristics of data converters
A parameterized Verilog-AMS SNR/ENOB and dynamic range calculator can be used to test different ADC architectures(SAR,SD-ADC). The data from these VAMS models are compared against MATLAB for correlation.
Using this method, one can do noise rejection checks, see the clock jitter impact on SNR across different SoC modes of operation (PLL,IRC, etc), perform dynamic range check through VAMS monitor to identify signal attenuation due to bad IO muxing, high source impedance, and sampling issues at high clock speeds.
Dynamic checks for data converters are done in the post silicon phase, where the dynamic parameters are calculated. These parameters, if having a lower value than expected, can reveal which blocks in a data converter subsystem are the culprits. In this way the dynamic checks for data converters can be done and issues can be identified early in the pre-silicon simulation phase.
With this method, impact of noise on input can be checked and data converter characteristics can be estimated against poor signal quality. Impact of clock jitter can be verified in the simulations to measure impact in SNDR/SNR.
A VAMS-based model for SNDR/SNR calculation eliminates MATLAB usage, which is encouraged due to limited licenses and cost. Also, data need not be manually entered as when included in the testbench, the VAMS Model collects the data. This is not possible in MATLAB for analysis, i.e., the proposed flow works simultaneous with data collection without MATLAB.
MATLAB is the standard tool for performing the analysis for dynamic performance, but licensing cost is a concern. Our proposed flow not only eliminates the usage of MATLAB but eases the calculation of the dynamic parameters. It also performs noise rejection/tolerance, which is not checked in pure digital verification.
Such a verification methodology can be used to set up a regression environment, thereby ensuring higher coverage in less time.
VAMS SNR monitor
A parameterized VAMS model described by the flowchart in Figure 4 contains4 inputs – signal frequency, sampling frequency, number of samples (N)and number of bits in the ADC output. When this model is instantiated inthe testbench, it collects the digital output given by the dataconverter and stores it in an N-sized array. After completion of N = 2n(where n= 1, 2, 3 ….) values, the VAMS model runs an FFT algorithm fromwhere the signal and the noise coefficients are identified.
The signal component and the noise components are then used to calculate the SNR/SNDR and ENOB (only for Nyquist converters).
Sucha VAMS monitor calculates the SNR and prints the result in the logfile.Pass/fail conditions can be decided on the parameterized values. Figure 5 shows a snippet of the monitor displaying signal components, noisecomponents and SNR. This result was then compared with MATLAB resultsand has seen a 1.7db error which has occurred as the sampling frequencywas not a 2n integral multiple of signal frequency.
Click on image to enlarge.
Click on image to enlarge.
Figure 6: Performance of SDADC’s in a subsystem
Figure 6 shows the performance of four SDADCs in a subsystem, with a good SNR oneach ADC, indicating the accuracy and correctness of the DesignComponents
VAMS dynamic range calculator
A good dataconverter should have a linear transfer function but this does nothappen in cases where the ADC attains early saturation. It means thatthough the signal has not yet reached its peak-peak voltage as definedin its Spec, but the output has. In such a case, calculating dynamicrange parameter can tell us whether there is such an error in oursubsystem or not.
The parameterized VAMS model for calculating dynamic range is described by the flowchart in Figure 7 . It also contains four inputs – signal frequency, sampling frequency,number of samples (N) and number of bits in the ADC output. When thismodel is instantiated in the testbench, it collects the digital outputgiven by the data Converter and stores it in a variable.
TheVAMS Model runs a sorting algorithm throughout and by the end of thecollection of all the samples it has the maximum and the minimum valuesstored in a register. These two values are then used to calculate thedynamic range.
Click on image to enlarge.
Figure 8: Output of an Data Converter with Differential Mode Dynamic Input
Figure 8 shows an ADC running with its PGA (programmable gain amplifier) on and a400mV input to the system giving an output dynamic range of 402mV,which verifies the linear transfer characteristics of an ADC.
Siddi Jai Prakash is a mixed signal architecture engineer at Freescale Semiconductor. Heis involved in architecture and verification of a metering SoC and anautomotive SoC for radar applications.
Snehal Rathi is aspecialist in mixed signal verification at Freescale. Main areas of workare the integration and functionality of analog blocks with the SoC,mainly data converters, by ensuring quality in their static and dynamiccharacteristics at the output. Also contributed to automation in mixedsignal verification flow with Verilog-AMS modeling.
Kushal Kama lhas been involved in mixed signal SoC verification for the past threeyears at Freescale. He specializes in HDL modeling, mixed signalsimulation at SoC/IP levels and full chip SPICE simulation.