Научная статья на тему 'Идентификация параметров нелинейной модели Увх на Verilog-A'

Идентификация параметров нелинейной модели Увх на Verilog-A Текст научной статьи по специальности «Электротехника, электронная техника, информационные технологии»

CC BY
27
8
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по электротехнике, электронной технике, информационным технологиям, автор научной работы — Осипов Дмитрий

В статье описан процесс идентификации модели Хаммерштайна для устройств выборки-хранения в среде проектирования Cadence. Рассмотрен Verilog-A модуль, позволяющий проводить автоматическое измерение DC-характеристики схем, параметры которых зависят от тактового сигнала.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Идентификация параметров нелинейной модели Увх на Verilog-A»

1501

проектирование

схемотехника

идентификация параметров нелинейной модели УВХ

на Verilog-A

Дмитрий ОсипОВ

[email protected]

В статье описан процесс идентификации модели Хаммерштайна для устройств выборки-хранения в среде проектирования Cadence. Рассмотрен Verilog-A модуль, позволяющий проводить автоматическое измерение DC-характеристики схем, параметры которых зависят от тактового сигнала.

Введение

В [1] рассмотрен процесс идентификации квазилинейной модели УВХ. Однако такая модель не учитывает нелинейности передаточной характеристики УВХ. Популярной универсальной моделью, учитывающей нелинейность, является модель Хаммерштайна [2] (рис. 1). Эта модель состоит из нелинейного блока без памяти, описывающего статическую нелинейность системы, и линейного блока с памятью, описывающего линейную динамику системы.

Данная модель хорошо подходит для описания устройств, которые не имеют нелинейной динамики, однако не могут быть описаны как полностью линейная система. Для идентификации нелинейного блока был разработан специальный Verilog-A модуль, позволяющий строить DC-характеристику системы, чьи параметры зависят от тактового сигнала. Линейный блок может быть идентифицирован на основе проведения АС-анализа, как описано в [1].

DC-характеристика тактируемого устройства

На рис. 2 показана схема измерения DC-характеристики УВХ. Verilog-A модуль выдает постоянный сигнал на вход УВХ в течение времени, достаточного для установки выходного сигнала (УВХ находится в режиме выборки). Затем Verilog-A модуль выдает перепад тактового сигнала, переводя УВХ в режим

хранения. Установившееся значение на выходе УВХ записывается в выходной файл. После этого Verilog-A модуль переводит УВХ в режим выборки и переходит к следующему значению напряжения на входе УВХ.

Verilog-A модуль для DC-анализа тактируемых схем:

01 module DCTestGenerate (SHin, SHout, Sample);

02 output SHin, Sample; // Вход УВХ и тактовый сигнал

03 input Shout; // Выход УВХ

04

05 electrical SHin,Sample,SHout;

06

07 //Период тактового сигнала

08 parameter real T = 4u;

09 //Ширина импульса тактового сигнала, соответствует режиму УВХ «выборка»

10 parameter real PW = 1u;

11 //Шаг напряжения

09 parameter real SHoutStep = 0.00022;

// Момент записи устоявшегося значения на выходе УВХ

10 parameter real m=0.9 from (0:1);

11

12 real Vout,Vs; // Численное значение выходного напряжения и напряжения тактового сигнала

13 integer out_file; // Дескриптор выходного файла

14 // Аналоговый процесс

15 analog begin

16 //Установка начальных значений

17 @(timer(0)) begin

18 Vout=0;

19 Vs=3.3;

20 out_file = $fopen("LOG.DAT" );

21 $fstrobe(out_file,"SH input, SH output");

22 end

23 //Переход в режим хранения

24 @(timer(PW,T) Vs=0;

25 //Переход в режим выборки и изменение уровня выходного напряжения

23 @(timer(T,T)) begin

24 Vout=Vout+SHoutStep;

25 Vs=3.3

26 end

27 //Запись в файл значения напряжения на выходе УВХ

28 @(timer(PW+m*(T-PW),T)) $fstrobe(out_file,"%f, %f", V(SHin),V(SHout));

29

30 V(SHin)<+transition(Vout,0,10n);

31 V(Sample)<+transition(Vs,0,10n);

32

33 end

34 endmodule

В результате выполнения временного анализа пользователь получает стандартный CSV (Comma Separated Values) файл, который может быть передан для обработки в MATLAB.

Аппроксимация DC-характеристики

Стандартным способом аппроксимации слабонелинейной функции является аппроксимация полиномом вида:

i=N

x=YJais. (1)

;=о

Подобная аппроксимация может быть выполнена в системе Mathworks MATLAB с использованием средства Curve Fitting Tool. На рис. 3 показана ошибка аппроксимации для схемы УВХ, выполненного по технологии 0,35 мкм, для 14-разрядного АЦП. DC-анализ проводился с шагом 200 мкВ, что соответствует значению младшего разряда АЦП. Ошибка не превышает значения 100 мкВ (половины младшего разряда АЦП), степень полинома N = 9.

Аппроксимация DC-характеристики может быть напрямую использована в Verilog-A описании нелинейного блока без памяти:

Рис. 1. Модель УВХ на основе нелинейной модели Хаммерштайна Рис. 2. Схема измерения DC-характеристики УВХ

схемотехника

проектирование

151

01 module NonlinearBlockNM (in,out);

02 input in;

03 output out;

04 electrical in,out;

05

06 real OUT;

07 parameter real a0=0 ;

08 ...

09 parameter real a9=0 ;

10

11 analog begin

12 // Уравнение аппроксимации

13 0UT=a0+a1*V(in)+a2*pow(V(in),2)+...+a9*pow(V(in),9);

14 V(out)<transtion(0UT,0,1n);

15 end

16

17 endmodule

Идентификация линейного блока

После выполнения АС-анализа и аппроксимации, как изложено в [1], мы получим передаточную функцию вида:

G(S) =

S'(s) S'(s)

ад goxx(s)

Gis) =

IV

k= О N+l

Ел.

Результаты

В процессе проектирования 14-разрядного АЦП последовательных приближений по технологии фабрики AMS, Австрия, с нормами 0,35 мкм была построена модель блока УВХ. Для идентификации параметров использовалась схема, полученная с учетом экстракции паразитных параметров с помощью Mentor Graphics Calibre.

В качестве проверки модели применялся временной анализ полной модели с экстракцией топологических параметров и предложенной модели. В качестве входного сигнала использовался синусоидальный сигнал с амплитудой 80% от полной шкалы и частотой 10 кГц и случайным шумом амплитудой 10% от полной шкалы. Использование случайного шума позволяет оценить точность модели для широкого спектра входных сигналов. Схема моделирования в окне САПР Cadence Virtuoso показана на рис. 4.

Модуль генерации тестовых воздействий:

01 module TestGenerate (SHAin, SHAout, Sample);

02 output SHAin, Sample;

03 input SHAout;

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

04

05 electrical SHAin, SHAout, Sample;

06

07 parameter real SampleDuration=0.2u;

08 parameter real T=1u;

09 parameter real m=0.09 from (0:1); // Установка времени записи

// выходного сигнала // тестируемой схемы

10 parameter real Fin=100K; // Частота входного сигнала

11 parameter real Ain=3; // Амплитудавходного сигнала

12 parameter real NoiseAmpl=0.01; // Амплитуда шума

13 parameter real Offset=1.65;

14

15 integer randseed;

// Смещение входного сигнала

// Инициализирующее значение // генератора случайных чисел

Однако, так как в данной модели линейный блок действует не непосредственно на входной сигнал s(t), а на выходной сигнал нелинейного блока х(^, передаточная функция (2) соотносится с изображением входного сигнала как:

(2)

где g0 — первая производная от полинома (1) при s(t) = const: постоянный уровень «большого» сигнала на входе, при котором снималась AC-характеристика. Таким образом, для того чтобы получить передаточную функцию линейного блока модели, необходимо выполнить:

H(s) = G(s)xg0.

После этого линейный блок может быть представлен в виде Verilog-A описания линейного фильтра, как в [1].

16 real randnum, noise,sample;

17 integer Outfile;

18

19 analog begin

21 // Установка начальных значений

22 @ (initial_step) begin

23 randseed = 123;

24 Outfile=$fopen("OUT.DAT");

25 sample=3.3;

26 end

27 // Тактовый генератор для тестируемой схемы (1)

28 @ (timer(SampleDuration,T)) begin

29 sample=0;

30 end

31 // Запись выходного сигнала тестируемой схемы

32 @(timer(SampleDuration+m*(T-SampleDuration),T)) begin

33 $fstrobe(Outfile,"%f",3.3-V(SHAout));

34 $strobe("%f",3.3-V(SHAout));

35 end

36 // Тактовый генератор для тестируемой схемы (2)

37 @ (timer(T-SampleDuration,T)) begin

38 sample=3.3;

39 end

40 // Генерация нового случайного значения

41 randnum=($random(randseed) % 100);

42 // Установка уровня шума

43 noise=transition((randnum/100)*NoiseAmpl,0,10n,10n);

44 // Входной сигнал для тестируемой схемы

45 V(SHAin)<+ Offset + (Am/2)*cos(~M_TWO_PI * (Fin)*($abstime)) + noise;

46 V(Sample)<+transition(sample,0,10n);

47 end

48 endmodule

Этот модуль позволяет управлять параметрами сигнала, подаваемого на вход УВХ, а также сохранять значение выходного сигнала в задаваемый пользователем момент времени.

Сравнивалось устоявшееся значение на выходе УВХ для Уеп^-А модели и полной мо-

1521

проектирование

схемотехника

дели с экстракцией топологии. Результат теста показан на рис. 5.

Время выполнения анализа работы 100 мкс устройства для предложенной модели — 20 c и 40 мин — для полной модели. Таким образом, обеспечивается существенное ускорение моделирования систем, содержащих данный блок в качестве СФ-блока, с сохранением точности.

Заключение

Рассмотрен процесс идентификации модели Хаммерштайна для схем выборки-хранения. Приведены необходимые Verilog-A модули для характеризации линейного и нелинейного блоков модели. Использование предложенной модели может существенно ускорить процесс моделирования системы, содержащей моделируемый блок. ■

Литература

1. Осипов Д. Л., Бочаров Ю. И. Универсальная квазилинейная поведенческая модель УВХ // Компоненты и технологии. 2011. № 11.

2. Janczak A. Identification of nonlinear systems using neural networks and polynomial models: a block-oriented approach. New York: Springer, 2004.

i Надоели баннеры? Вы всегда можете отключить рекламу.