Designof 8 Bit Pipeline ADC
Designof 8 Bit Pipeline ADC
net/publication/348690310
CITATIONS READS
0 5,112
1 author:
SEE PROFILE
All content following this page was uploaded by Seyed Arash Katourani on 22 January 2021.
Arash Katourani
January 2021
Email: [email protected]
1
Page
1-Pipeline Architecture ............................................................................... 3
2-Testing ..................................................................................................... 5
3-Design of Analog Parts ............................................................................ 7
4-Two Bit Flash ADC ................................................................................... 9
5-Two Bit DAC........................................................................................... 10
6-Gain-Stage………………….. ........................................................................ 12
7-Shift Register…….. .................................................................................. 13
8-Simulation Results…. ............................................................................. 14
9-FFT Calculation(SNR and ENOB) ............................................................ 19
10- DNL Calculation ……..………..................................................................28
2
Page
1- Pipeline Architecture
3
Page
Fig. 1-2: 6 bit architecture.
4
Page
2- Testing
It is better to use ideal blocks for finding errors and flaws in sections such as Gain-Stage and
Subtractor. These sections are inherently analog and could be susceptible.
For this reason, Comparator and PEDFF have been designed with Verilog codes, and then for
the final design, the non-ideal replaced.
Fig. 2-1: Verilog code for PEDFF (For initial testing) real ones have been replaced after.
5
Page
Fig. 2-2: Verilog code for comparator (For initial testing) real ones have been replaced after.
6
Page
3- Design of Analog Parts
Op-amp1:
Fig. 3-1: OTA for Gain-Stage, Track and Hold, and Subtractor.
1
R. S. Assaad and J. Silva-Martinez, "The Recycling Folded Cascode: A General Enhancement of the Folded Cascode
Page
Amplifier," in IEEE Journal of Solid-State Circuits, vol. 44, no. 9, pp. 2535-2542, Sept. 2009, doi:
10.1109/JSSC.2009.2024819.
Track and Hold:
Subtractor:
8
Page
Clock Generator:
10
11
Page
6- Gain-Stage
According to Fig. 8-2 the gain of this stage should be 4 in order of full scale results.
12
Page
7- Shift Register
Fig. 7-1: Shift Register for synchronizing the bits, using DFF.
13
Page
8- Simulation Results
Results are for 8 mV, 10 micro-second input ramp with the clock of 50 MHz.
First stage:
Third Stage:
The output signal is the output of an ideal 8 bit DAC (Fig. 9-1). This ideal block defines by
Verilog codes (Fig. 9-2).
In this project, 𝑁 = 213 and. m = 251 are assumed.
The reason for not increasing N was to not increase the simulation time.
Assuming the clock frequency is 50 MHz, 𝑓𝑖𝑛 is as follows:
251 251000000
𝑓𝑖𝑛 = × 50 𝑀𝐻𝑍 =
213 163.84
According to the output waveform and the time it takes 𝑡𝑑𝑒𝑙𝑎𝑦 , is 5 times greater than the clock.
1
𝑆𝑡𝑜𝑝𝑡𝑖𝑚𝑒 = 𝑁 × + 𝑡𝑑𝑒𝑙𝑎𝑦
𝑓𝑠
𝑆𝑡𝑜𝑝𝑡𝑖𝑚𝑒 = (213 ) × (20 𝑛𝑠) + (100 𝑛𝑠)
Finally, I set the strobepriod to 5% of the clock time, ie, 1ns. The lower the value, the more
accurate the simulation will be. After the simulation finishes, save the output waveform in a .csv
file and load in MATLAB, and calculate FFT and SFDR through the written code. Strobeperiod
is an indication for number of discreet sample of Output data. For example, in 40ns simulation
and for Strobeperiod =20 ns, 2 date could be extracted from Cadence to a .CSV file.
19
Page
2
Most of these concepts are related to DSP.
Test Bench:
20
Page
Fig. 9-2: 8 bit ideal DAC Verilog code.
Simulation Results:
Fig. 9-5: Input signal (red) and ideal DAC output - Magnified.
22
Page
Fig. 9-6: Extracting data for Matlab using calculator.
MATLAB Codes:
>> load FFT.txt
l=load('FFT.txt');
sgl=l(:,2);
N=8192;
m=251;
fs=50*10^6;
Ts=1/fs; % Ts=2*10^(-9)
23
strobeperiod=1*10^(-9);
Page
dis0=Ts/strobeperiod; %dis0=20
dis=25;
for i=1:length(l)
if dis<=length(l)
signal(i)=sgl(dis);
dis=dis+dis0;
end
end
input_signal=signal(1:N);
lensi=length(input_signal);
fff_out = abs(fft(input_signal)); % fft
fff_out = fff_out(2:floor(length(fff_out))); % remove bin 1 (DC)
fff_out = 20*log10(abs(fff_out/max(fff_out)));
f = (0:length(fff_out)-1)/length(fff_out) ;
figure(1);
plot(f,fff_out)
ylabel('Output Spectrum (dB)');
xlabel('Normalized Frequency (fin/fs)');
fff_out2=fff_out(1:N/2);
[bin bin] = max(fff_out2);
dbfff_out2=[fff_out2(1:(bin-1)) fff_out2((bin+1):end)];
[bins bins] =max(dbfff_out2);
24
SFDR = -dbfff_out2(bins);
Page
disp('SFDR')
disp(SFDR)
SFDR
14.6594
25
Page
Fig. 9-8: SFDR.
251000000
Results in Cadence for 𝐻𝑧 = 1.531982421875 𝑀𝐻𝑧: Using
163.84
measurement>spectrum
26
27
Page
10- DNL INL
For the test bench, the input signal is a triangle wave. Hence the ADC is 8 bit, for a ramp from 0
V 800 mV, there 28 quantized stages. Using this argument, we need the time 𝟐^𝟖 . 𝐂𝐥𝐨𝐜𝐤 for the
ramp. Strobeperiod is 20n for 256 sample in raising and 256 samples is falling.
28
Page
Fig. 10-2: Transient setup.
Simulation Results:
29
31
Page