Универсальная квазилинейная поведенческая модель
устройства выборки-хранения
Дмитрий ОСИПОВ
[email protected] Юрий БОЧАРОВ
Показана реализация квазилинейной поведенческой модели УВХ (устройство выборки-хранения) на языке Verilog-A. Рассмотрена процедура идентификации параметров модели. Разработан инструментарий, позволяющий проводить анализ по переменному току для схем выборки-хранения. Рассмотрен модуль Verilog-A для автоматического построения АЧХ и ФЧХ схем выборки-хранения. Этот модуль можно использовать для моделирования частотных свойств схем УВХ и АЦП.
Введение
Схемы устройств выборки-хранения (УВХ) — критический блок многих архитектур аналого-цифровых преобразователей. Неидеальность характеристики УВХ оказывает прямое воздействие на характеристики АЦП в целом. При разработке схем АЦП моделирование всей схемы на уровне транзисторов или топологическом уровне (с экстракцией паразитных параметров) может выходить за разумные временные рамки. Использование поведенческих моделей отдельных блоков может существенно сократить время моделирования всей системы.
В статье рассмотрена универсальная квазилинейная модель УВХ, которая может быть реализована на стандартном языке описания аналоговой аппаратуры Verilog-A. Этот язык является хорошо стандартизированным средством [1] и поддерживается симуляторами всех известных производителей САПР, такими как Cadence, Mentor Graphics и Synopsys. Блоки, описанные на Verilog-A, можно применять внутри обычных SPICE-нетлистов этих симуляторов (авторы используют симулятор Cadence Spectre). Использование этой модели при моделировании работы АЦП позволяет существенно сократить время моделирования. Кроме того, модель можно использовать при передаче разработанного блока УВХ в качестве СФ-блока.
УВХ является сильно нелинейной схемой относительно входного сигнала. На рис. 1 показана схема простейшего устройства выборки-хранения.
При замкнутом ключе схема находится в режиме слежения: выходной сигнал повторяет входной. При разомкнутом — в режиме хранения: на выходе установившееся значение равно значению входного сигнала в момент подачи сигнала выборки. На рис. 2 показаны входной и выходной сигналы УВХ. Выходной сигнал УВХ в режиме хранения является входом АЦП.
тактовый сигнал
—конденсатор хранения
Преобразование начинается после установления аналогового сигнала на выходе УВХ. В идеальном случае УВХ выполняет дискретизацию входного сигнала по времени, таким образом, если s(t) — входной сигнал УВХ, то на выходе мы получаем последовательность отсчетов s'(nT), п = 0, 1, ..., где Т — период дискретизации. Если частота входного сигнала Fc < 1/Т, то входной сигнал может быть однозначно восстановлен. АЦП работает с последовательностью неквантованных отсчетов s' (пТ), таким образом, любая неидеальность функции УВХ оказывает прямое влияние на точность аналого-цифрового преобразования.
вход О
s(t)
линеиныи фильтр
О выход
О
вход тактового ситала
Рис. 1. Простая схема УВХ
Рис. 3. Предложенная модель УВХ
1741
проектирование
моделирование работы
рис. 4. Алгоритм проведения AC-анализа схемы выборки-хранения
Идея квазилинейной модели УВХ состоит в восстановлении аналогового сигнала х(^ по последовательности неквантованных отсчетов 5 ' (пТ). Тогда УВХ можно рассматривать как линейный фильтр с входом 5^) и выходом х(^) с последовательно включенной схемой идеального УВХ (рис. 3).
Для идентификации параметров линейного фильтра используется оригинальная методика анализа по переменному току.
Методика проведения анализа по переменному току
Для анализа по переменному току (АС-анализа) схем УВХ разработан специальный модуль на языке аналогового моделирования Verilog-A. Эта методика является расширением возможностей методики АС-анализа, изложенной в [2], для симуляторов, поддерживающих Verilog-A.
В отличие от инструмента spectreRF (РАС-анализ) [3] данный метод не рассчитывает Фурье-образ для полного периода выходного сигнала. Таким образом, возможна «точечная» оценка АС-характеристик выходного устройства. Действительно, обычно в АЦП происходит преобразование установившегося сигнала УВХ. Полный Фурье-образ выходного сигнала содержит информацию о «краевых» эффектах, возникающих в процессе смены режимов УВХ, что оказывает влияние на рассчитанную таким образом амплитуду основной гармоники. Приведенный метод расчета АС-характеристики УВХ, напротив, оперирует только информацией об установившемся значении выходной амплитуды. Проведение АС-анализа по различным точкам выходно-
го сигнала позволяет оценить ошибки УВХ, связанные с дрейфом выходного напряжения УВХ (в основном из-за утечек конденсаторов хранения).
На рис. 4 показан алгоритм работы разработанного модуля Verilog-A. На вход УВХ подается входной синусоидальный сигнал:
5 й = а со8(2пР^).
Выходной сигнал УВХ аппроксимируется синусоидальным сигналом с частотой F¿
У = а' cos(2%Fct + ф),
где у (%) — установившееся значение на выходе УВХ; а' — значение амплитуды аппроксимирующего сигнала; а ф — фаза колебаний. Значения а' и ф могут быть рассчитаны исходя из системы уравнений, представленной внизу страницы.
В принципе для расчета достаточно двух уравнений. Однако предложенный модуль Verilog-A выполняет усреднение уравнений по всему периоду входного сигнала по методу наименьших квадратов для исключения ошибок, связанных с нелинейностью УВХ. Выбор точек для аппроксимации на временной оси оказывает прямое влияние на получаемые характеристики УВХ. Прежде всего, из-за времени установления и утечек конденсатора за время хранения. Таким образом, снятие нескольких характеристик для различного выбора точек аппроксимации позволяет оценить влияние этих неидеаль-ностей на характеристики АЦП.
После расчета фазы и амплитуды выходных колебаний модуль Verilog-A увеличивает частоту входного сигнала.
\y'(tk) = a'cos (2%Fctk) cos(9) - a'sin (2nFctk) sin (ф)
= a'cos(2jiircíi+1)cos(9)-a'sin(2jiFcíi+1)sin(9)
Приведем пример кода модуля Verilog-A:
01 module ACTestGenerate (Sample, out, in);
02 input in; // Выходной сигнал УВХ
03 output Sample,out; // Тактовый сигнал УВХ, входной сигнал УВХ
04
05 electrical in, Sample, out;
06
07 // Параметры модуля, задаются пользователем
08 parameter real Fs=1e6; // Частота тактового сигнала
09 parameter real Fstart=100; // Начальная частота входного сигнала УВХ
10 parameter real Fend=500K; // Конечная частота входного сигнала УВХ
11 parameter real deltaF=100; // Шаг изменения частоты входного сигнала УВХ
12
13 parameter real ampl=0.1; // Амплитуда входного сигнала УВХ
14 parameter real offset=0.1; // Смещение входного сигнала УВХ
15 parameter real To=0.9 ; // Точка выборки, в долях от периода тактового сигнала
16
17 // Внутренние переменные
18 real Fcurrent; // Текущая частота входного сигнала УВХ
19 real A0,B0,C0, A1,B1,C1; // Итоговые коэффициенты аппроксимирующего уравнения
20 real a,b,c; // Текущие коэффициенты аппроксимирующего уравнения
21 real sinPh,cosPh; // Синус и косинус фазы, умноженный на амплитуду аппроксимированного выходного сигнала
22 real Samp; // Уровень тактового сигнала
23 real Ctime; // Время изменения частоты входного сигнала УВХ
24 real delay; // Задержка появления выходного сигнала
25
26 real Oampl,OPhase; // Амплитуда и фаза выходного сигнала УВХ
27
28 integer out_file; // Дескриптор выходного файла
29
30 // Начало аналогового процесса
31 analog begin
32
33 //Начальная установка значений переменных
34 @(timer(0)) begin
35 Fcurrent=Fstart;
36 Samp=0;
37 // Планирование времени следующего изменения частоты входного сигнала УВХ
38 Ctime=1/Fcurrent;
39 out_file=$fopen("LOG.dat");
40 A0=0; B0=0; C0=0; A1=0; B1=0; C1=0;
41 delay=0.4/Fs;
42 end
43
44 // Выдача тактового сигнала и расчет текущих значений коэффициентов аппроксимирующего уравнения
45 @(timer(0,0.5/Fs)) begin
46 if (Samp==3.3) begin
47 a=cos(($abstime-Ctime+1/Fcurrent)*Fcurrent*'M_ TWO_PI);
48 b=sin(($abstime-Ctime+1/Fcurrent)*Fcurrent*'M_ TWO_PI);
49 A0=A0+a*a;
50 B0=B0+a*b;
51 B1=B1+b*b;
52 Samp=0;
53 end
54 else Samp=3.3;
55 end
56 // Дискретизация выходного сигнала в момент времени To*T
57 @(timer(To/Fs,1/Fs)) begin
58 c=V(in)-offset;
59 C0=C0+a*c;
60 C1=C1+b*c;
61 end 60
62 // Установка нового значения текущей частоты входного сигнала УВХ и расчет значений амплитуды и фазы
63 @(timer(Ctime)) begin
64 // Установка нового значения текущей частоты входного сигнала УВХ
65 Fcurrent=Fcurrent+deltaF;
66 // Расчет времени следующей установки значения текущей частоты входного сигнала УВХ
67 Ctime=$abstime+1/Fcurrent;
68 A1=B0;
69 // Решение системы аппроксимирующих уравнений
70 sinPh=(B0*C1-C0*B1)/(A0*B1-A1*B0);
71 cosPh=(A0*C1-A1*C0)/(A0*B1-A1*B0);
72
73 OAmpl = sqrt(cosPh*cosPh+sinPh*sinPh);
74 OPhase = acos(cosPh/OAmpl);
75 // Сброс коэффициентов системы аппроксимирующих уравнений
76 A0=0; B0=0; C0=0; A1=0; B1=0; C1=0;
77 // Запись выходного файла
78 $fstrobe(out_file,"%f, %f, %f,%f", Fcurrent-deltaF, OAmpl, OPhase);
Амплитуда, дБ ^ 1 1 л. О СП О 01 о о о о о
0 -50 „ -100 Я £-150 -200 -250 ......
102 1 03 1 04 1 05 Частота, Гц
Рис. 5. АЧХ и ФЧХ тестовой схемы УВХ
79 // Прерывание симуляции по достижении конечной частоты AC-анализа
80 if (Fcurrent==Fend) $finish;
81 end
82 // Установка напряжения на входе УВХ
83 V(out) <+ ampl * cosfM_TWO_PI * (Fcurrent) * ($abstime-Ctime-1/ Fcurrent)) + offset;
84 // Установка напряжения на тактовом входе УВХ
85 V(Sample) <+ transition(Samp,0,10n,10n);
86
87 end
88
89 endmodule
Verilog-A — стандартный язык поведенческого описания аналоговых схем. Основной целью создания Verilog-A была возможность
быстрого создания поведенческих моделей разного уровня детализации в рамках методологии разработки «сверху вниз». Для начального ознакомления с возможностями Verilog-A авторы рекомендуют симулятор Dolphin SMASH 5.5 [4]. Ограниченная по возможностям версия может быть бесплатно загружена с сайта производителя.
Для описания реальных сигналов, возникающих в аналоговых цепях, язык имеет стандартные «дисциплины», позволяющие определять электрические сигналы. Для установления или считывания токов и напряже-
Рис. 6. Результаты моделирования и линейная аппроксимация
ний используются функции доступа: V() — для напряжения и I() для тока. Язык позволяет использовать переменные для задания токов и напряжений, а также имеет большое количество средств для описания «аналоговых событий», таких как пересечение порогов и т. д. В настоящем модуле используется лишь один тип событийного моделирования — событие по таймеру, генерирующего событие при достижении определенного значения времени моделирования.
Кроме приведенного описания стандарта [1], ознакомиться с использованием Verilog-A можно по [5, 6]. Подробное описание языка выходит за рамки настоящей статьи.
Тестирование метода разработанной методики AC-анализа
В качестве простого теста разработанной методики был проведен анализ схемы по переменному току.
Сигнал на входе схемы обрабатывается блоком поведенческого описания фильтра Баттервота 3-го порядка, затем сигнал с выхода фильтра поступает на блок, описывающий идеальную схему выборки-хранения. Тестовая модель также описана на Verilog-A. Проведенное моделирование показывает полное соответствие АЧХ и ФЧХ, рассчитанных с помощью предложенного метода, и АЧХ и ФЧХ фильтра, рассчитанных с помощью стандартного AC-анализа в spectre. На рис. 5 приведены АЧХ и ФЧХ тестовой модели, рассчитанные по предложенной методике.
Построение модели
После проведения AC-анализа схемы УВХ по изложенному методу пользователь получает файл значений, соответствующий АЧХ и ФЧХ исследуемой схемы. Результаты моделирования могут быть аппроксимированы с помощью инструмента MATLAB System Identification Toolbox. MATLAB позволяет получать передаточную функцию системы вида:
N
IV*
_ k=О
JV+1 -
k=О
Передаточная функция в такой форме может быть напрямую использована Verilog-A функцией laplace_nd для моделирования фильтров.
В процессе проектирования 14-разрядного АЦП последовательных приближений по технологии фабрики AMS (Австрия) с нормами 0,35 мкм была построена модель блока УВХ. Для идентификации параметров использовалась схема, полученная с учетом экстракции паразитных параметров с по-
H(s)
1761
проектирование I моделирование работы
мощью Mentor Graphics Calibre. Результаты AC-анализа и аппроксимирующая линейная модель (N = 2) приведены на рис. 6.
Verilog-A модель, описывающая линейный фильтр, соответствующий разработанному блоку УВХ:
01 module analogFilter (in,out);
02 electrical in,out;
03 input in;
04 output out;
05
06 analog begin
07 V(out)< + laplace_nd(V(in),{4.065e13, 9.21e6} {4.142e13,2.836e7, 1});
08 end
09
10 endmodule
В качестве идеального УВХ использовался стандартный модуль из библиотеки Cadence Virtuoso Platform AHDLIB.
Заключение
Предложенная модель позволяет быстро строить поведенческие модели УВХ, учитывающие результаты экстракции топологии разработанного блока. Использование такой поведенческой модели позволяет существенно сократить время моделирования всей схемы АЦП или блока УВХ. Время моделирования 1 мс работы УВХ с экстракцией топологии сокращается с 2 ч до 2-3 мин. Параметры модели могут быть идентифицированы за 10-11 ч. Таким образом, после разового проведения цикла моделирования для идентификации параметров модели возможно быстрое проведение моделирования работы отдельных блоков системы совместно с поведенческой моделью (например, компараторов или логики). ■
Литература
1. Verilog-AMS Language Reference Manual. Analog & Mixed-Signal Extensions to Verilog-HDL. Version 2.3.1. 2009. http://www.accellera.org/ activities/verilog-ams/
2. Biolek D., Biolkova V., Kolka Z. S-Z AC analysis of switched circuits in PSPICE. AMTEE 2007. Advanced Methods of the Theory of Electrical Engineering. Plzen, 2007.
3. Kundert K. Simulating Switched-Capacitor Filters with SpectreRF. http://www.designers-guide.org. 2006.
4. www.dolphin.fr
5. Kundert K., Zinke O. The Designer's Guide to Verilog-AMS. Boston: Kluwner Academic Publishers, 2004.
6. Fitzpatric D., Miller I. Analog Behavioral Modeling with the Verilog-A Language. Springer, 1997.