Современные решения для производства электроники

Protel DXP для начинающих. Урок 11.

 

На предыдущем занятии мы начали изучать основы работы в программе моделирования системы Protel DXP. Продолжим рассмотрение ее возможностей.

Горячая связь с редакторами схем и плат

Рассмотрим еще одну полезную функцию системы моделирования — горячую связь с редакторами схем и плат.

1. Вернемся на страницу Transient Analysis щелчком левой кнопкой мыши на соответствующей закладке.

2. Двойным щелчком левой кнопки мыши в дереве проекта откроем документы Multivibrator simulation.SchDoc и Multivibrator.PcbDoc.

Все они будут открыты в одном окне на разных вкладках. Настроим режим одновременного просмотра документов.

3. Щелкнем правой кнопкой мыши на закладке документа Multivibrator.sdf и в появившемся контекстном меню выберем команду Split Horizontal. Окно проекта разделится на две части, в одной из которых будет отображаться документ Multivibrator.sdf, а в другой — документы Multivibrator simulation.SchDoc и Multivibrator.PcbDoc.

4. Щелкнем правой кнопкой мыши на закладке документа Multivibrator.PcbDoc и в появившемся контекстном меню выберем команду Split Vertical. Верхняя часть окно проекта также разделится на две части.

Настроим оптимальный масштаб просмотра схемы и платы.

5. Щелчком левой кнопкой мыши в поле окна схемы перейдем в редактор принципиальных схем и нажмем комбинацию горячих клавиш V, F (команда меню View | Fit All Objects).

6. Щелчком левой кнопкой мыши в поле окна платы перейдем в редактор печатных плат и нажмем комбинацию горячих клавиш V, F (команда меню View | Fit All Objects).

Окно проекта примет вид, показанный на рисунке 1. Обратное слияние окон выполняется командой Merge All из контекстного меню, вызываемого щелчком правой кнопки мыши на закладке любого из документов. Здесь также работает перетаскивание, которое мы предлагаем исследовать самостоятельно.

Рис. 1. Одновременный просмотр нескольких документов проекта.

7. Выполним команду Project | Compile PCB Project, чем запустим компиляцию проекта. Компиляция нужна из-за того, что мы вносили изменения в схему и меняли ее имя.

8. Выполним щелчок правой кнопкой мыши на имени сигнала v1#branch на странице графиков и в появившемся контекстном меню выберем команду Cross Probe To Schematic. Вид в окне редактора схем изменится, и в нем будет показан только источник V1, ток через который мы указали (рис. 2a).

a) c) b)

Рис. 2. Горячая связь с редактором схем.

9. Выполним щелчок правой кнопкой мыши на имени сигнала collector_vt2 на верхнем графике и снова выберем команду Cross Probe To Schematic. Вид в окне редактора схем изменится, и в нем будет показана цепь коллектора транзистора VT2 (рис. 2b).

8. Выполним щелчок правой кнопкой мыши на имени сигнала qvt1[ic] на нижнем графике и снова выберем команду Cross Probe To Schematic.

Ничего не произойдет. Почему? Потому что вы указали найти элемент QVT1, а на схеме такого транзистора нет. Как мы помним, префикс Q к обозначению VT1 был добавлен автоматически при генерации списка соединений SPICE, чтобы дать понять программе моделирования, что речь идет о биполярном транзисторе. Чтобы горячая связь заработала необходимо переименовать транзисторы VT1 и VT2 в QVT1 и QVT2 соответственно.

9. Перейдем в редактор схем, нажатием кнопки Clear в нижней части окна снимем маскирование и нажмем комбинацию горячих клавиш V, F для изменения масштаба просмотра.

10. Выполним щелчок левой кнопкой мыши на позиционном обозначении транзистора VT1. Транзистор выделится, а текст обозначения подсветится зеленой рамкой.

11. Щелкнем еще раз на позиционном обозначении VT1. Редактор войдет в режим редактирования текстовых полей непосредственно на странице (ранее мы редактировали атрибуты в специальном окне).

12. Добавим к существующему обозначению букву Q и щелкнем левой кнопкой мыши в любом свободном месте схемы.

13. Аналогичным образом изменим позиционное обозначение транзистора VT2.

14. Заново выполним компиляцию проекта (команда Project | Compile PCB Project).

15. Снова выполним щелчок правой кнопкой мыши на имени сигнала qvt1[ic] на нижнем графике и снова выберем команду Cross Probe To Schematic. В редакторе схем будет показан транзистор QVT1, ток через коллектор которого мы рассчитали (рис. 2c).

Разумно предположить, что аналогичная проблема с обозначениями транзисторов будет присутствовать и на печатной плате. Кроме того, не следует забывать, что перед моделированием мы переименовали четыре цепи на схеме и еще не обновляли проект платы. Выполним это сейчас.

16. Щелчком левой кнопкой мыши в поле окна платы перейдем в редактор печатных плат.

17. Выполним команду меню Design | Import Changes from [Multiuvibrator.PRJPCB].

18. На экране появится сообщение о том, что обозначения двух из десяти компонентов были изменены и синхронизатор проекта пытается найти соответствие. Нажмем кнопку Yes для продолжения.

19. На экране появится следующее сообщение о том, что было найдено 16 различий между имеющимся проектом платы и принципиальной схемой, но только 15 из них могут быть выполнены. Нажмем кнопку Yes для продолжения.

20. Откроется окно Engineering Change Order с перечнем найденных несоответствий между платой и схемой. Нажмем кнопку Validate Changes. В столбце Status Check напротив каждого изменения появится значок, сигнализирующий о возможности выполнения данного изменения.

Легко видеть, что система не может выполнить добавление на плату топологического посадочного места для источника V1, так как в описании источника на схеме отсутствует необходимая ссылка. Но и даже среди остальных 15 «проверенных» изменений выполнять надо далеко не все — нам надо лишь обновить обозначения компонентов и имена цепей. Обратите внимание, что система нашла изменение посадочных мест конденсаторов, которое мы сделали, когда изучали размещение компонентов.

21. Выключим «галочки» напротив всех изменений, кроме перечисленных в разделах Change Component Designators и Change Net Names, как показано на рисунке 3, и нажмем кнопку Execute Changes. Подсветка покажет ход выполнения изменений.

Рис. 3. Перечень найденных несоответствий между платой и схемой.

22. Нажмем кнопку Close и закроем окно синхронизатора проекта.

23. Выполним щелчок правой кнопкой мыши на имени сигнала collector_vt2 на верхнем графике страницы результатов измерений и в контекстном меню выберем команду Cross Probe To Multivibrator.PcbDoc. Вид в окне редактора плат изменится, и в нем будет показана цепь коллектора транзистора QVT2 (рис. 4a).

a) b)

Рис. 4. Горячая связь с редактором печатных плат.

24. Выполним щелчок правой кнопкой мыши на имени сигнала qvt1[ic] на нижнем графике и снова выберем команду Cross Probe To Schematic. Вид в окне редактора плат изменится, и в нем будет показана транзистор QVT1 (рис. 4b).

Из всего проделанного выше следует сделать один важный вывод: если вы хотите максимально использовать функциональность сквозной системы проектирования, следует минимальным образом ориентироваться на ГОСТ, использовать предлагаемые по умолчанию обозначения элементов и цепей, а также следовать принятой в системе методологии проектирования. Такой подход позволит избежать большинства проблем в любой современной западной системе проектирования. По завершении разработки проекта следует выполнить его «дооформление» согласно требованиям ЕСКД и вывод документации для бумажных архивов. Система Protel DXP для этого подходит наилучшим образом.

Параметрический анализ

Вернемся к рассмотрению доступных в системе Protel DXP методов анализа.

Часто разработчику требуется оценить, как изменение того или иного параметра влияет на функционирование всей схемы. Такой анализ называется параметрическим или, иначе, анализом чувствительности.

Рассмотрим, как отразится на работе схемы разрабатываемого нами мультивибратора изменение емкости конденсаторов C1 и C2.

1. Щелкнем правой кнопкой мыши на вкладке любого из открытых документов и в появившемся контекстном меню выберем команду Merge All, чем выключим отображение документов в разных окнах.

2. Щелчком на вкладке документа Multivibrator simulation.SchDoc, расположенной в верхней части окна проекта, вернемся в редактор схем.

Рис. 5. Панель инструментов Mixed Sim.

3. С помощью команды меню View | Toolbars | Mixed Sim включим панель инструментов Mixed Sim (рис. 5). В отличие от команды меню Design | Simulate | Mixed Sim расположенные здесь кнопки позволяют независимо выполнять три этапа подготовки к моделированию: настройку видов анализа, генерацию списка соединений и запуск процесса моделирования.

4. Нажмем кнопку Setup Mixed-Signal Simulation, откроется уже знакомое нам по предыдущему уроку окно настройки моделирования Analyses Setup.

5. Щелкнем левой кнопкой мыши на строке Parameter Sweep в списке Analyses/Options слева. В правой части окна появятся настройки этого вида анализа (рис. 6). В общем случае система Protel DXP позволяет независимо варьировать два параметра, но для начала мы ограничимся только одним из них.

Рис. 6. Настройка параметрического анализа.

6. Щелкнем левой кнопкой мыши на клетке в столбце Value напротив строки Primary Sweep Variable и появившемся выпадающем списке выберем параметр C1(capacitance).

7. Зададим начальное значение диапазона изменения параметра (Primary Start Value) равным 20n.

8. Зададим конечное значение диапазона изменения параметра (Primary Stop Value) равным 30n.

9. Зададим шаг изменения параметра (Primary Step Value) равным 1n.

10. В клетке Primary Sweep Type оставим значение Absolute Value.

При таких настройках емкость конденсатора C1 примет 11 значений в диапазоне от 20 до 30 нФ.

11. Включим «галочку» напротив строки Parameter Sweep в списке слева и закроем окно нажатием кнопки OK.

12. Сформируем заново список соединений, для чего на панели инструментов Mixed Sim нажмем кнопку Generate XSPICE Netlist. В окне проекта автоматически откроется отчет Status Report.txt.

13. Щелкнем левой кнопкой мыши на вкладке документа Multivibrator.nsx.

Легко видеть, что полученный список соединений почти не отличается от существовавшего ранее. Единственное изменение произошло в блоке описания назначенных опций и типов анализа.

.OPTION KeepLastSetup=False
*Selected Circuit Analyses:
.TRAN 1E−5 0.01 0 1E−5
.OP
.CONTROL
SWEEP C1[capacitance] 2E−8 3E−8 1E−9
.ENDC

Добавленные последние три строки данного блока предписывают выполнить вариацию параметра C1 в заданном диапазоне.

14. Находясь в режиме просмотра списка соединений, выполним команду меню Simulate | Run, чем запустим процесс моделирования.

Система переключится в режим отображения документа Multivibrator.sdf, в котором будут отображаться результаты расчета по мере их поступления.

15. Наибольший интерес для нас будут представлять результаты анализа переходных процессов, поэтому по завершению процесса анализа щелкнем левой кнопкой мыши на вкладке Transient Analysis, в нижней части экрана.

16. Вращением ролика мыши или с помощью линеек прокрутки добьемся, чтобы на экране отображалась временная диаграмма сигнала collector_vt2.

Ранее на вкладке Transient Analysis присутствовало четыре графика, согласно установкам отображения четырех рассчитанных сигналов: BASE_VT1, BASE_VT2, COLLECTOR_VT1 и COLLECTOR_VT2. Теперь их будет восемь, так как для каждого из этих сигналов будет прорисовано по два отдельных графика. Первый из них, как и ранее, будет отображать результаты анализа переходных процессов, а второй будет содержать набор кривых, полученных в ходе параметрического анализа. Число кривых будет равно числу вариаций значения параметра. На рисунке 7a показаны сигналы на коллекторе транзистора VT2 при разных значениях емкости конденсатора C1.

a)

b)

c)

d)

Рис. 7. Просмотр результатов параметрического анализа.

17. Щелкнем левой кнопкой мыши на имени сигнала collector_vt2_p01, показанном справа от графика. Выбранный сигнал подсветится, а остальные потускнеют согласно настройкам маскирования (рис. 7b). В правом нижнем углу графика появится описание выбранного сигнала: «c1(capacitance) = 20.00n (sweep 1 of 11)».

18. Щелчком левой кнопки мыши или вращением ролика мыши активируем следующий сигнал и так далее (рис. 7c и 7d). Если ролик у мыши отсутствует, то для просмотра большого списков используется расположенная здесь же линейка прокрутки.

Легко видеть, что с ростом емкости увеличивается период колебаний мультивибратора. Но так как емкость меняется только в одном его плече, то это приводит к изменению скважности импульсов, что очень наглядно показано на рисунках 7b, 7c и 7d.

Для изменения периода колебаний с сохранением скважности, равной 1 необходимо менять емкость обеих конденсаторов. Как уже говорилось ранее, система Protel DXP позволяет выполнять одновременную вариацию двух параметров. Рассмотрим, как это делается.

19. Щелкнем на вкладке документа Multivibrator simulation.SchDoc и вернемся в редактор схем.

20. Нажмем кнопку Setup Mixed-Signal Simulation, откроется окно настройки моделирования Analyses Setup.

21. В списке Parameter Sweep Setup включим «галочку» в строке Enable Secondary.

22. Щелкнем левой кнопкой мыши на клетке в столбце Value напротив строки Secondary Sweep Variable и появившемся выпадающем списке выберем параметр C2(capacitance).

Значения изменяемого параметра могут быть заданы абсолютными, как в случае конденсатора C1, так и относительными, когда задается отклонение от номинального значения. Рассмотрим эту возможность.

23. В клетке Secondary Sweep Type оставим значение Relative Value (рис. 8).

Рис. 8. Настройка одновременного изменения двух параметров.

24. Зададим начальное значение диапазона изменения параметра (Secondary Start Value) равным 0n.

25. Зададим конечное значение диапазона изменения параметра (Secondary Stop Value) равным 10n.

26. Зададим шаг изменения параметра (Secondary Step Value) равным 1n.

При таких настройках емкость конденсатора C2 примет 11 значений в диапазоне от 20 до 30 нФ. Однако, не следует забывать, что изменение значений будет выполняться для каждого значения первичного параметра, а значит программа выполнит 121 проход, что само по себе может занять значительное время. Кроме того, в ходе такого расчета будет получен 121 набор данных для токов, напряжений, мощностей и т.д. (согласно настройкам General Setup), обработка которого может потребовать значительных вычислительных ресурсов.

27. Для сокращения времени вычисления откажемся от расчета рабочих точек, для чего уберем «галочку» напротив вида анализа Operating Point Analysis и закроем окно нажатием кнопки OK.

28. Нажатием кнопки Run Mixed Signal Simulation на панели инструментов Mixed Sim или горячей клавиши F9 запустим процесс моделирования. Отметим, что перед запуском анализа будет автоматически выполнено формирование списка соединений.

Система переключится в режим отображения документа Multivibrator.sdf.

29. По окончании расчета щелкнем левой кнопкой мыши на вкладке Transient Analysis.

30. Вращением ролика мыши или с помощью линеек прокрутки добьемся, чтобы на экране отображалась временная диаграмма сигнала collector_vt2.

31. Щелкнем левой кнопкой мыши на имени сигнала collector_vt2_p001, показанном справа от графика. В правом нижнем углу графика появится описание выбранного сигнала: «c1(capacitance) = 20.00n c2(capacitance) = 20.00n (sweep 1 of 121)» (рис. 9a). Это же описание будет продублировано в строке состояния.

a)

b)

c)

Рис. 9. Результаты анализа при изменении двух параметров.

32. Наведем указатель мыши на название следующего сигнала. Его описание появится в строке состояния «c1(capacitance) = 21.00n c2(capacitance) = 20.00n (sweep 1 of 121)».

33. Нас интересуют сигналы, полученные при одинаковых значениях емкости конденсаторов C1 и C2, поэтому найдем такой сигнал в списке (например, collector_vt2_p061) и щелкнем на его названии. В правом нижнем углу графика появится описание: «c1(capacitance) = 25.00n c2(capacitance) = 25.00n (sweep 61 of 121)» (рис. 9b).

Легко видеть, что период колебаний, как и ранее, с ростом емкости конденсаторов увеличился, но так как значения емкости одинаковые, скважность импульсов осталась равна 1. Максимальное увеличение периода колебаний можно наблюдать на диаграмме последнего сигнала collector_vt2_p121 (рис. 9c).

Следует также знать, протокол именования точек записывается в файл Multivibrator.swd, автоматически создаваемый в папке Project Outputs for Multivibrator. Этот файл понадобится нам анализа в режиме изменения температуры.

Режим свипирования температуры

Существует вид параметрического анализа, выделенный в отдельный — это режим свипирования температуры. В общем случае фактическая температура в градусах Цельсия, при которой проводится анализ схемы, задается в переменной TEMP разделе Advanced Options окна Analyses Setup (рис. 10).

Рис. 10. Задание фактической температуры схемы.

Не следует путать эту переменную с расположенной здесь же переменной TNOM, задающей программе SPICE номинальную температуру, для которой определены модели устройств. Эту переменную лучше всего оставить заданной по умолчанию и равной 27 градусам Цельсия.

В случаях, когда требуется оценить динамику изменения работы схемы при изменении температуры, используется режим анализа Temperature Sweep. Рассмотрим, его подробнее.

1. Щелкнем на вкладке документа Multivibrator simulation.SchDoc и вернемся в редактор схем.

2. Нажмем кнопку Setup Mixed-Signal Simulation, откроется окно настройки моделирования Analyses Setup.

3. Щелкнем левой кнопкой мыши на строке Advanced Options в списке Analyses/Options слева. В правой части окна появится список переменных и опций программы моделирования SPICE (рис. 10).

4. С помощью линейки прокрутки найдем в этом списке переменную TEMP, в столбце Value напротив нее введем значение 20 и нажмем клавишу Enter. Обратите внимание, расположенная рядом в столбце Def «галочка» выключится.

5. Щелкнем левой кнопкой мыши на строке Temperature Sweep в списке Analyses/Options слева. В правой части окна появятся настройки этого вида анализа (рис. 11).

Рис. 11. Задание диапазона изменения температур.

6. Зададим начальное значение диапазона изменения температуры (Start Temperature) равным 15.

7. Зададим конечное значение диапазона изменения температуры (Stop Temperature) равным 25.

8. Зададим шаг изменения температуры (Step Temperature) равным 1.

9. Включим «галочку» напротив строки Temperature Sweep в списке слева и закроем окно нажатием кнопки OK.

10. Нажатием кнопки Run Mixed Signal Simulation на панели инструментов Mixed Sim или горячей клавиши F9 запустим процесс моделирования. Система переключится в режим отображения документа Multivibrator.sdf.

11. По окончании расчета щелкнем левой кнопкой мыши на вкладке Transient Analysis.

12. Вращением ролика мыши или с помощью линеек прокрутки добьемся, чтобы на экране отображалась временная диаграмма сигнала collector_vt2.

13. С помощью мыши выделим участок графика, как показано на рисунке 12a. Масштаб отображения по шкале времени изменится.

a)

b)

c)

d)

Рис. 12. Результаты анализа при изменении температуры.

14. К сожалению, в отличие от параметрического анализа при наведении указателя мыши на название сигнала расшифровка этого названия в строке состояния появляться не будет. Поэтому откроем расположенный в папке Project Outputs for Multivibrator файл Multivibrator.swd, содержащий протокол именования графиков:

*TRAN sweep option[temp] run 1 of 11 (t1)
option[temp] 20 -> 15
*TRAN sweep option[temp] run 2 of 11 (t2)
option[temp] 20 -> 16
*TRAN sweep option[temp] run 3 of 11 (t3)
option[temp] 20 -> 17
*TRAN sweep option[temp] run 4 of 11 (t4)
option[temp] 20 -> 18
*TRAN sweep option[temp] run 5 of 11 (t5)
option[temp] 20 -> 19
*TRAN sweep option[temp] run 6 of 11 (t6)
option[temp] 20 -> 20
*TRAN sweep option[temp] run 7 of 11 (t7)
option[temp] 20 -> 21
*TRAN sweep option[temp] run 8 of 11 (t8)
option[temp] 20 -> 22
*TRAN sweep option[temp] run 9 of 11 (t9)
option[temp] 20 -> 23
*TRAN sweep option[temp] run 10 of 11 (t10)
option[temp] 20 -> 24
*TRAN sweep option[temp] run 11 of 11 (t11)
option[temp] 20 -> 25

Легко видеть, что температуре в 20 градусов Цельсия будет соответствовать сигнал с суффиксом t6, то есть collector_vt2_t6.

15. Щелкнем левой кнопкой мыши на названии сигнала collector_vt2_t6 справа от графика.

Выделенный нами из набора сигнал в точности совпадает с сигналом, представленным на верхней диаграмме для фиксированной температуры (рис. 12b).

18. Щелчком левой кнопки мыши или вращением ролика мыши активируем сигналы, полученные для других значений температуры.

Легко видеть, что вид даже соседнего сигнала collector_vt2_t5, полученного при температуре 19 градусов, будет сильно отличаться от сигнала collector_vt2_t6 (рис. 12c). В чем ошибка? На самом деле, никакой ошибки нет, а полученный эффект — это всего лишь результат одной из особенностей численного моделирования, которую надо знать и учитывать.

Дело в том, что моделируемый нами мультивибратор является симметричным устройством. В реальном устройстве симметричные компоненты схемы никогда не будут одинаковыми, и это приведет к тому, что один из транзисторов откроется раньше. А значит, сколько бы раз мы не включали питание, начальная фаза колебаний мультивибратора будет приблизительно одинакова.

При моделировании же мы используем идеальные одинаковые компоненты, взятые из одинаковых библиотек и имеющих абсолютно одинаковые параметры. Схема при этом является абсолютно симметричной, а начальная фаза колебаний является случайной и определяется цифровым шумом, возникающим вследствие представления чисел в формате с плавающей точкой. Таким образом, сигнал collector_vt2_t5 был получен в ходе многократного запуска программы моделирования при других случайных начальных условиях и оказался инвертированным по фазе, что подтверждает вид сигнала collector_vt1_t5 (рис. 12d).

Отсюда следует простой вывод: чтобы добиться повторяемости результатов полученных при множественных запусках анализа переходных процессов, необходимо контролировать начальные условия. Система Protel DXP предоставляет такую возможность с помощью специальных объектов. Рассмотрим, как это делается, а заодно рассмотрим функцию подключения библиотек к системе.

Учет начальных условий

1. Щелкнем на вкладке документа Multivibrator simulation.SchDoc и вернемся в редактор схем.

2. Выполним команду меню Design | Add/Remove Library.

3. В открывшемся окне Available Libraries нажмем кнопку Install.

4. Стандартное окно выбора файла в котором укажем библиотеку Simulation Sources.IntLib, размещенную в папке C:\Program Files\Altium\Library\Simulation, и нажмем кнопку Открыть. Указанная библиотека окажется в списке подключенных на вкладке Installed диалогового окна Available Libraries (рис. 13).

Рис. 13. Окно подключения библиотек.

5. Нажмем кнопку Close и закроем это окно.

6. Выполним команду меню Place | Part.

7. В открывшемся окне Place Part нажмем кнопку, расположенную справа от текстового поля Lib Ref.

8. В открывшемся окне Browse Library в списке подключенных библиотек выберем строку Simulation Sources.IntLib.

9. В списке Component Name выберем компонент .IC (рис. 14).

Рис. 14. Результат поиска компонента.

Обратите внимание, что это та самая библиотека, в которой хранится используемый нами в схеме источник питания VSRC. Использование специальной панели инструментов избавило нас от необходимости искать и подключать данную библиотеку. Компонент вызывался из нее нажатием всего одной кнопки и приобретал заданные параметры, благодаря специфическим настройкам ресурсов среды проектирования. Позднее мы рассмотрим и эти возможности системы Protel DXP.

10. Нажатием кнопки OK закроем окно Browse Library.

11. В окне Place Part будет указан компонент .IC. Закроем это окно нажатием кнопки OK. Редактор схем перейдет в режим размещения компонентов, и к указателю мыши будет «приклеен» символ задания начальных условий.

12. Переместим указатель мыши таким образом, чтобы единственный вывод символа .IC касался цепи коллектора транзистора QVT2, и выполним щелчок левой кнопкой мыши. Компонент окажется размещенным на схеме (рис. 15), а система предложит вам разместить следующий символ.

Рис. 15. Размещение символа .IC.

13. Нажатием правой кнопки мыши или клавиши Esc выйдем из режима размещения.

14. Нажатием кнопки Cancel закроем появившееся окно Place Part, предлагающее выбрать новый компонент.

15. Выполним двойной щелчок левой кнопкой мыши на символе .IC. Откроется знакомое нам окно Component Properties.

16. Прежде всего, в поле Designator введем позиционное обозначение IC1.

17. Выключим опцию Visible напротив поля Comment.

18. Выполним двойной щелчок левой кнопкой мыши на имени модели для моделирования (тип Simulation) в списке Models for IC.

19. В открывшемся окне Sim Model — Initial Condition на вкладке Parameters включим опцию Component Parameter, введем в поле Initial Voltage значение 12 и нажатием кнопки OK закроем окно. Параметр Initial Voltage появится в списке Parameters for IC.

20. Нажатием кнопки OK закроем окно Component Properties.

Теперь нам остается лишь включить учет начальных условий при анализе переходных процессов.

21. Нажмем кнопку Setup Mixed-Signal Simulation на панели инструментов Mixed Sim, откроется окно настройки моделирования Analyses Setup.

22. Щелкнем левой кнопкой мыши на строке Transient Analysis в списке Analyses/Options слева.

23. Включим «галочку» в строке Use Initial Condition (учитывать начальные условия) в списке в правой части окна нажмем кнопку OK.

24. Нажатием кнопки Run Mixed Signal Simulation на панели инструментов Mixed Sim или горячей клавиши F9, запустим процесс моделирования. Система переключится в режим отображения документа Multivibrator.sdf.

25. Вращением ролика мыши или с помощью линеек прокрутки добьемся, чтобы на экране отображалась временная диаграмма сигнала collector_vt2.

Легко видеть, что теперь начальная фаза колебаний строго зафиксирована, а изменение температуры сейчас влияет на период колебаний, что хорошо заметно на четвертом импульсе в правой части графика.

26. С помощью мыши выделим участок графика, как показано на рисунке 16a.

a)

b)

Рис. 16. Результаты анализа при изменении температуры.

Сдвиг переднего фронта импульса теперь монотонно зависит от изменения температуры и не противоречит здравому смыслу (рис. 16b). В данной схеме присутствуют только два температурно-зависимых устройства — это транзисторы QVT1 и QVT2. Резисторы и конденсаторы описаны идеальными моделями, не зависящими от температуры.

Отметим, что в системе Protel DXP предусмотрен еще один служебный компонент .NS, позволяющий задавать начальное напряжение в узле схемы, которое будет учитываться при предварительном проходе расчета рабочих точек (Operating Point Analysis). Этот компонент также хранится в библиотеке Simulation Sources.IntLib.

Итак, на данном занятии основное внимание было уделено параметрическому анализу. На следующем занятии мы продолжим рассмотрение возможностей системы моделирования на новых примерах.

Protel DXP для начинающих. Урок 11

Юрий Потапов, [email protected]

Два предыдущих занятия были посвящены моделированию схем с помощью системы Protel DXP. Продолжим рассмотрение ее возможностей.

Частотный анализ схемы в режиме малого сигнала

Одним из стандартных видов анализа по методу SPICE является анализ частотных характеристик схемы в режиме малого сигнала. Для его рассмотрения нам потребуется новая схема, которую мы построим из компонентов имеющихся у нас библиотек.

1. Выполним команду меню File | New | PCB Project. На панели Projects появится новый пустой проект PCB Project1.PrjPCB.

2. Наведем указатель мыши на имя проекта, выполним щелчок правой кнопкой мыши и в появившемся контекстном меню выберем команду Save Project. Откроется стандартное окно системы Windows, предлагающее задать имя сохраняемого файла.

Для облегчения работы с файлами проекта их рекомендуется хранить в отдельной папке с соответствующим именем. Создадим такую папку.

3. В окне Save As укажем место на диске, где будет храниться наш новый проект. Пусть это будет папка Examples. Выполним щелчок правой кнопкой мыши в окне списка файлов и в появившемся контекстном меню выберем команду Создать | Папку. Появится новая папка, которую здесь же переименуем в Filter.

4. Откроем новую папку двойным щелчком левой кнопкой мыши на ее имени, в поле Имя Файла окна Save As введем имя Filter.PrjPCB и нажмем кнопку Сохранить.

5. Наведем указатель мыши на имя проекта, выполним щелчок правой кнопкой мыши и в появившемся контекстном меню выберем команду New | Schematic. В окне проекта откроется чистый лист схемы Sheet1.SchDoc с заданным по умолчанию шаблоном.

6. Нажатием кнопки Libraries в нижней части экрана откроем одноименную панель.

7. Включим опцию Components и в списке подключенных библиотек выберем имя интегрированной библиотеки Miscellaneous Devices.IntLib.

8. В поле фильтра введем маску поиска компонента ind, после чего в списке останутся только те компоненты, имена которых содержат этот текст.

9. Выберем компонент Inductor и нажмем кнопку Place Inductor. Редактор схемы перейдет в режим размещения элементов, а к указателю мыши окажется «приклеенным» символ катушки индуктивности.

10. Нажмем клавишу Tab, откроется окно Component Properties, в котором в поле Designator укажем позиционное обозначение L1, в поле Value списка Parameters for введем значение индуктивности 15nH, выключим галочку Visible у поля Comment и нажмем кнопку OK.

11. Сдвинем указатель мыши в центр листа схемы таким образом, чтобы слева и справа от размещаемой катушки могли поместиться несколько элементов, и выполним щелчок левой кнопкой мыши. На схеме появится символ катушки индуктивности, а редактор предложит разместить вторую катушку.

12. Нажмем клавишу Tab и в окне Component Properties в поле Value списка Parameters for введем значение индуктивности 33nH, после чего нажмем кнопку OK. Размещаемая катушка автоматически получит позиционное обозначение L2.

13. Сдвинем указатель мыши немного вправо от катушки L1 и выполним щелчок левой кнопкой мыши. На схеме появится второй символ катушки индуктивности, а редактор предложит разместить катушку L3 с тем же номиналом.

13. Сдвинем указатель мыши немного вправо от катушки L2 и выполним щелчок левой кнопкой мыши. На схеме появится второй символ катушки индуктивности, а редактор предложит разместить катушку L4.

14. Нажмем клавишу Tab и в окне Component Properties в поле Value списка Parameters for введем значение индуктивности 15nH, после чего нажмем кнопку OK.

15. Разместим последнюю катушку и выйдем из режима размещения нажатием клавиши Esc или щелчком правой кнопки мыши.

16. Вернемся на панель Libraries и в поле фильтра введем маску поиска компонента cap.

17. Выберем компонент Cap и нажмем кнопку Place Cap. Редактор схемы перейдет в режим размещения элементов, а к указателю мыши окажется «приклеенным» символ конденсатора.

18. Нажмем клавишу Tab, откроется окно Component Properties, в котором в поле Designator укажем позиционное обозначение C1, в поле Value списка Parameters for введем значение емкости 10pF, выключим галочку Visible у поля Comment и нажмем кнопку OK.

19. Нажмем клавишу Пробел, чтобы изменить ориентацию символа на вертикальную (нижний вывод будет соединен с «землей»), и разместим символ конденсатора C1 между катушками L1 и L2.

20. Аналогичным образом разместим конденсаторы C2 и С3 между катушками L2, L3 и L3, L4 соответственно. Клавишу Tab при этом нажимать не надо, так как номинал конденсаторов менять не надо. У всех их емкость должна быть равна 10pF. Позиционное обозначение будет присваиваться автоматически.

21. Выйдем из режима размещения нажатием клавиши Esc или щелчком правой кнопки мыши.

22. Выполним команду меню Place | Wire (горячие клавиши P, W) и прорисуем связи между компонентами, как показано на рисунке 1a.

a)

b)

c)

Рис. 1. Этапы прорисовки схемы фильтра нижних частот.

Собственно схема фильтра готова, но для правильного моделирования ее частотных характеристик необходимо добавить еще несколько элементов: входную и выходную нагрузки, источник сигнала и метки цепей.

В качестве нагрузок будем использовать обычные резисторы номиналом 50 Ом. Можно взять резисторы Res1, сохраненные в библиотеке Miscellaneous Devices.IntLib, но их начертание отличается от принятых в России, поэтому мы воспользуемся исправленными символами резисторов, которые мы нарисовали при создании схемы мультивибратора и сохранили в проекте на одном из первых занятий.

23. Нажмем кнопку Libraries в верхней части панели Libraries. Откроется окно Available Libraries со списком подключенных в настоящий момент библиотек (рис. 2).

24. Нажмем кнопку Install, в появившемся окне Открыть укажем файл Multivibrator.SCHLIB, сохраненный нами ранее в папке проекта Multivibrator и закроем окно. В списке Installed Libraries окна Available Libraries добавится новая библиотека.

25. Нажмем кнопку Close и закроем это окно.

26. Вернемся на панель Libraries и в выпадающем списке укажем имя библиотеки Multivibrator.SCHLIB. В списке компонентов библиотеки появятся четыре исправленных нами элемента.

27. Выберем компонент Res1 и нажмем кнопку Place Res1. Редактор схемы перейдет в режим размещения элементов, а к указателю мыши окажется «приклеенным» символ резистора.

28. Нажмем клавишу Tab, откроется окно Component Properties, в котором в поле Designator укажем позиционное обозначение R1, в поле Value списка Parameters for введем значение сопротивления 50, выключим галочку Visible у поля Comment и нажмем кнопку OK.

29. Разместим символ резистора R1 в горизонтальной ориентации немного левее катушки L1 и щелкнем левой кнопкой мыши. Редактор предложит разместить резистор R2.

30. Нажмем клавишу Пробел, чтобы изменить ориентацию символа на вертикальную (нижний вывод будет соединен с «землей»), и разместим резистор R2 правее катушки L4, после чего выйдем из режима размещения нажатием клавиши Esc или щелчком правой кнопки мыши

31. Вернемся на панель Libraries и в выпадающем списке укажем имя библиотеки Simulation Sources.IntLib. В списке компонентов библиотеки появятся четыре исправленных нами элемента.

32. Выберем компонент VSIN и нажмем кнопку Place VSIN. Редактор схемы перейдет в режим размещения элементов, а к указателю мыши окажется «приклеенным» символ источника синусоидального напряжения.

33. Нажмем клавишу Tab и в окне Component Properties в поле Designator укажем позиционное обозначение V1.

34. Выполним двойной щелчок левой кнопкой мыши на модели источника VSIN в списке Models for.

35. Откроется окно Sim Model — Voltage Source / Sinusoidal, в котором на вкладке Parameters изменим значение в поле Amplitude на 0. Частоту колебаний обнулять необязательно. В данный момент для нас важно значение 1 в поле AC Amplitude, задающее напряжение 1 В для анализа в режиме малого сигнала. Нажатием кнопки OK сохраним сделанные изменения.

36. Закроем окно Component Properties.

37. Разместим источник напряжения V1 в вертикальной ориентации немного левее резистора R1 и выйдем из режима размещения нажатием клавиши Esc или щелчком правой кнопки мыши.

38. Выполним команду меню Place | Wire (горячие клавиши P, W) и прорисуем связи между компонентами, как показано на рисунке 1b.

Теперь нам остается только добавить на схему метки цепей.

39. Выполним команду меню Place | Power Port (горячие клавиши P, O). Редактор предложит разместить порт питания.

40. Нажмем клавишу Tab и окне Power Port зададим стиль порта (Style) Power Ground. Здесь же в поле Net введем имя цепи GND и закроем окно.

41. Разместим символ заземления, как показано на рисунке 1c.

42. Выполним команду меню Place | Net Label (горячие клавиши P, N). Редактор предложит разместить метку цепи.

40. Нажмем клавишу Tab, в окне Net Label зададим имя IN и закроем окно.

41. Разместим метку цепи IN на связи между резистором R1 и катушкой L1, как показано на рисунке 1c.

42. Аналогичным образом создадим метку OUT и разместим ее между катушкой L4 и резистором R2, как показано на рисунке 1c.

43. Выполним команду меню File | Save As (горячие клавиши F, A) и сохраним схему пол именем Filter.SchDoc.

Наша схема полностью готова к моделированию. Выполним настройку анализа частотных характеристик.

1. Нажмем кнопку Setup Mixed-Signal Simulation, откроется окно настройки моделирования Analyses Setup.

2. В списке Analysis/Option включим «галочку» в строке AC Small Signal Analysis. Все остальные виды анализа должны быть выключены.

Рис. 2. Настройка анализа частотных характеристик.

3. В списке справа зададим параметры этого вида анализа (рис. 2): в поле Start Frequency введем значение 1 (это будет соответствовать 1 Гц, так как число 0 здесь не допускается); в поле Stop Frequency введем значение 1g (это будет соответствовать 1 ГГц); параметр Sweep Type оставим Linear; в поле Test Points введем число точек анализа 1000.

4. В списке Analysis/Option щелкнем левой кнопкой мыши на строке General Setup. Справа появятся основные настройки программы моделирования.

5. В выпадающем списке Collect Data For зададим необходимый нам набор данных Node Voltage, Supply Current, Device Current and Power (напряжения в узлах, ток питания, протекающие через элементы токи и рассеиваемая ими мощность).

6. В выпадающем списке Sheets to Netlist выбрана опция Active project, предписывающая генерировать список соединений для всего проекта.

7. В выпадающем списке SimView Setup выберем опцию Show Active Signals, предписывающую модулю отображения результатов анализа показывать их по мере выполнения расчета.

8. Выделим в списке Available Signals сигналы OUT и V1[z] для чего, удерживая нажатой клавишу CTRL, последовательно щелкнем на них левой кнопкой мыши, после чего нажмем расположенную между списками кнопку >. Выделенные сигналы будут перенесены в правый список Active Signals.

9. Нажатием кнопки Run Mixed Signal Simulation на панели инструментов Mixed Sim или горячей клавиши F9 запустим процесс моделирования. Система переключится в режим отображения документа Filter.sdf с единственной вкладкой AC Analysis, на которой появятся два графика (рис. 3).

Рис. 3. Первичные результаты анализа частотных характеристик.

Рассмотрим, что за результаты мы получили. На верхнем графике показана зависимость напряжения в узле OUT от частоты. Она очень напоминает амплитудно-частотную характеристику фильтра нижних частот, но имеет размерность напряжения. Область минимальных потерь (приблизительно до 500 МГц) имеет значения 500 мВ, что связано с наличием резистивного делителя из двух резисторов номиналом 50 Ом (входного R1 и выходного R2), подключенного к источнику сигнала 1 В на низких частотах. Наличие этих резисторов в схемах высокочастотных устройств обязательно, поэтому чтобы компенсировать влияние делителя следует наблюдать удвоенный сигнал.

10. Выполним щелчок правой кнопкой мыши на имени сигнала OUT и в появившемся контекстном меню выберем команду Edit Wave.

11. В окне Edit Waveform в поле Complex Functions включим опцию отображения амплитуды сигнала в децибелах Magnitude (dB), в текстом поле Expression введем текст 2*out, в поле Name введем текст «Потери» и нажмем кнопку Create. Вид графика АЧХ фильтра изменится (рис. 4).

Рис. 4. АЧХ фильтра нижних частот в децибелах.

Измерим полосу пропускания фильтра по уровню -3 дБ.

12. Выполним щелчок правой кнопкой мыши на имени сигнала Потери и в появившемся контекстном меню выберем команду Cursor A. На графике появится маркер A.

13. С помощью мыши захватим маркер и начнем перемещать его вправо, одновременно контролируя значение маркера по оси Y в поле Measurement Cursors на панели Sim Data. Как только значение маркера станет равным -3, отпустим левую кнопку мыши. Значение маркера по оси X будет соответствовать полосе пропускания 521.53 МГц.

Отметим, что маркер не интерполирует характеристику, а лишь перебирает рассчитанные точки и поэтому не может точно попасть в значение -3 дБ (например, в нашем случае ближайшая точка имела значение -3.0964), но в большинстве случаев этой точности вполне достаточно.

В случае анализа полосовых фильтров для оценки полосу пропускания следует использовать два маркера, разность между частотами которых будет также отображаться на панели Sim Data.

Вернемся ко второму графику, на котором изображена частотная зависимость модуля импеданса схемы со стороны подключенного источника сигнала. Для нас сама по себе эта характеристика не интересна, но она позволит получить нам частотную зависимость коэффициента отражения на входе фильтра в узле IN.

Прежде всего, следует отметить, что импеданс представляет собой комплексную величину, рассчитанную для цепи источника, имеющую действительную и мнимую составляющие. Кроме того, как мы уже говорили ранее ток в схему через источник течет снизу вверх по схеме (Iвх на рис. 5), в то время как программа SPICE выдает данные для направления тока от вывода «+» к выводу «-» внутри элемента (Iист на рис. 5). Значит, истинное значение импеданса Zреалн будет представлять с обратное по знаку значение от Zизмер.

Далее, для расчета коэффициента отражения в узле IN нам интересует импеданс именно в этой точке, а не в точке включения источника. Легко видеть, что чтобы получить значение импеданс Z(IN) необходимо вычесть из Zреалн значение сопротивления R1 (рис. 5).

Рис. 5. Пересчет входного импеданса фильтра.

Отформатируем второй график таким образом, чтобы на нем отображалась именно частотная зависимость коэффициента отражения в узле IN, который рассчитывается по формуле:

(1)

где Z0 — характеристическое сопротивление линии, в нашем случае равное R1, а именно 50 Ом.

В нашем случае эта формула преобразуется в вид:

(2)

14. Выполним щелчок правой кнопкой мыши на имени сигнала v1[z] и в появившемся контекстном меню выберем команду Edit Wave.

Рис. 6. Настройка отображения зависимости коэффициента отражения от частоты.

15. В окне Edit Waveform (рис. 6) в поле Complex Functions включим опцию отображения амплитуды сигнала Magnitude, в поле Name введем текст «К» текстовом поле Expression введем текст (UNARY(v1[z])−2*50)/UNARY(v1[z]) и нажмем кнопку Create. Вид графика изменится (рис. 7).

Рис. 7. Зависимость коэффициента отражения по входу фильтра от частоты.

К сожалению, система Protel DXP в настоящий момент не позволяет использовать в формулах расчета характеристик номиналы элементов или глобальные переменные, поэтому в приведенной выше формуле рекомендуется оставить именно 2*50, а не 100. В случае изменения номинала резистора R1, например на 75 Ом, аналогичное изменение необходимо будет сделать в формуле расчета коэффициента отражения.

Другое неудовство программы моделирования состоит в том, что она не добускает использования над результатаи частотного анализа различных математических функций, как в случае с временными характеристиками. Это делает невозможным рассчет привычной российским инжененам характеристики КСВ, которая считается по формуле:

(3)

Вместо КСВ мы рекомендуем использовать другую характеристику, наиболее распространенную на западе и ничуть не хуже описывающую соглавованнность цепей  — возвратные потери (Return Loss), представляющую собой не что иное, как величину модуля коэффициента отражения в децибелах, рассчитываемую по формуле:

(4)

16. Выполним щелчок правой кнопкой мыши на имени сигнала K и в появившемся контекстном меню выберем команду Edit Wave.

17. В окне Edit Waveform (рис. 6) в поле Complex Functions включим опцию отображения амплитуды сигнала в децибелах Magnitude (dB) и нажмем кнопку Create. Вид характеристики изменится (рис. 8).

Рис. 8. Зависимость возвратных потерь фильтра от частоты.

Пользоваться этой характеристикой очень легко. Чем хуже согласование фильтра (коэффициент отражения стремится к 1) и тем выше КСВ. В большинстве случаев при анализе фильтров КСВ в полосе пропускания, как правило, не должно превышать 2. Это значение КСВ соответствует значению возвратных потерь приблизительно -10 дБ, а значит если рассчитанные возвратные потери больше (по модулю, то есть -11, -15, -20 и т.д.) этого значения, то КСВ будет всегда меньше 2.

На практике, если требуется обеспечить КСВ лучше 2, то полезно воспользоваться таблицей пересчета возвратных потерь в КСВ (таблица 1), которую очень легко запомнить.

Если все же требуется получить полную характеристику КСВ фильтра, то ее можно рассчитать в системе Excel, куда можно загрузить зависимость модуля коэффициента отражения от частоты сохраненную в файл в формате CSV. Мы рекомендуем проделать самостоятельно в качесве упражнения.

Для расчета коэффициента отражения по выходу фильтра, следует перерисовать схему, как показано на рисунке 9.

Рис. 9. Схема для расчета коэффициента отражения по выходу фильтра.

Это позволит выполнить моделирование с минимальными изменениями в настройках модуля просмотра результатов расчета. Следует помнить, что опция SimView Setup в окне Analyses Setup при этом должна быть установлена как Keep Last Setup (сохранить последние установки). Так схема нашего фильтра абсолютно симметрична (включая нагрузки), то входные и выходные характеристики не должны отличаться.

Статистический анализ методом Монте-Карло

При проектировании электронных устройств не следует забывать, что мы живем в реальном мире, а используемые нами компоненты имеют некоторый разброс параметров, четко оговоренный в технической документации. Например, номиналы резисторов или конденсаторов из так называемого 10% процентного ряда могут отклоняться в диапазоне ±5% от номинального значения. Разумно предположить, что такие вариации не лучшим образом отразятся на работе схемы, а значит, необходимо иметь инструмент, позволяющий оценить их последствия. Система Protel DXP использует для этих целей стандартную методику, называемую методом Монте-Карло.

Вернемся к схеме, изображенной на рисунке 1c.

1. Нажмем кнопку Setup Mixed-Signal Simulation, откроется окно настройки моделирования Analyses Setup.

2. В списке Analysis/Option включим «галочку» в строке Monte Carlo Analysis.

Рис. 10. Настройка статистического анализа методом Монте-Карло.

В списке справа задаются параметры этого вида анализа (рис. 10): допуски по умолчанию для компонентов различных типов, число запусков, вид распределения Distribution (Uniform — равномерное, Gaussian — Гауссовское, Worst Case — худший случай), начальное значение генератора случайных чисел (Seed).

Самый последний параметр Specific Tolerances служит для задания специальных видов распределения для отдельных компонентов и групп. Чтобы понять что это такое выполним небольшое упражнение.

3. Щелкнем левой кнопкой мыши на ячейке со значением параметра Specific Tolerances, где по умолчанию присутствует текст 0 defined.

4. В правой части ячейки появится небольшая кнопка, которую мы и нажмем.

5. Откроется пустое окно Monte Carlo — Specific Tolerances, в котором нажмем кнопку Add. В окне появится строка таблицы, в которой следует задать значения для резистора R1, как показано на рисунке 11.

Рис. 11. Задание специальных видов распределения отдельных компонентов.

6. Еще раз нажмем кнопку Add и зададим значения для резистора R2.

Что означают заданные значения? Мы имеем два резистора R1 и R2 с номиналом 1k. Для каждого из резисторов заданы два вида допусков: индивидуальные (Device) и групповые (Lot). Индивидуальные допуски имеют значения 1% при равномерном распределении случайных величин (Uniform). Разные трековые номера (Tracking No.) в столбце Device имеют разные значения (1 и 2), что говорят об отсутствии корреляции между значениями номиналов резисторов для индивидуального допуска. В столбце Lot у обоих резисторов одинаковый трековый номер 1, что означает, что резисторы входят в одну группу, допуск для которой задан 4% также при равномерном распределении случайных величин.

При каждом запуске процесса моделирования методом Монте-Карло резисторам сначала назначается одинаковое отклонение от номинального значения в диапазоне ±4%, а затем от полученного значения каждому резистору назначается индивидуальный допуск в диапазоне ±1%. В итоге суммарный допуск будет равен 5% (1%+4%).

Все это кажется излишне запутанным, но описывает типовую ситуацию использования резистивных сборок, когда номиналы резисторов внутри одной сборки отличаются максимум на 2% друг от друга, а наиболее вероятные значения номиналов между сборками могут отличаться друг от друга на 8%. В итоге номиналы отдельных резисторов разных сборок могут отличаться максимум на 10% друг от друга.

7. В нашем примере все компоненты являются дискретными, а резисторы вообще представляют собой идеальный эквивалент характеристического сопротивления линии. Все значения номиналов являются некоррелированными, то есть независимыми друг от друга. Поэтому откажемся от сделанных настроек и закроем окно Monte Carlo — Specific Tolerances, для чего нажмем кнопку Cancel.

8. Так как резисторы идеальные, зададим для них допуск Default Resistor Tolerance равным 0%. Для всех остальных элементов допуски пусть оставим равными 10%.

9. Тип распределения (Distribution) зададим как Uniform (равномерное). Число запусков (Number of Runs) сделаем равным 5, а параметр Seed оставим равным -1.

10. В списке Analysis/Option щелкнем левой кнопкой мыши на строке General Setup и в списке справа для сохранения ранее сделанных настроек отображения результатов анализа опцию SimView Setup зададим как Keep Last Setup, после чего закроем окно нажатием кнопки OK.

11. Нажатием кнопки Run Mixed Signal Simulation на панели инструментов Mixed Sim (горячая клавиша F9) запустим процесс моделирования. Система переключится в режим отображения документа Filter.sdf с единственной вкладкой AC Analysis. Вид графиков на ней не изменится, хотя строка состояния будет показывать ход многократных запусков моделирования схемы. Чтобы посмотреть результаты статистического анализа, создадим новый график.

12. Выполним щелчок правой кнопкой мыши в любом месте документа Filter.sdf и в появившемся контекстном меню выберем команду Add Plot.

13. Запустится мастер создания графиков, который на первом шаге предложит задать его имя. В текстовое поле введем «Потери (анализ Монте-Карло)» и нажмем кнопку Next.

14. На следующем шаге настройки осей менять не будем, поэтому просто нажмем кнопку Next.

15. На третьем шаге мастер предложит указать сигналы, которые будут отображаться на графике. Нажмем кнопку Add и в окне Add Wave to Plot в поле Expression введем текст 2*out_m1. В поле Complex Functions включим опцию Magnitude (dB) и нажмем кнопку Create.

16. Аналогичным образом добавим на данный график отображение удвоенной амплитуды сигналов out_m2, out_m3, out_m4 и out_m5 (рис. 12) и нажмем кнопку Next. Легко догадаться, что сигналы с суффиксом m1…m5 есть не что иное, как сигналы, рассчитанные в ходе соответствующего запуска моделирования схемы методом Монте-Карло.

Рис. 12. Создание графика для отображения результатов расчета методом Монте-Карло.

17. Нажатием кнопки Finish в последнем окне завершим работу мастера Plot Wizard.

На вкладке AC Analysis появится новый график с пятью кривыми (рис. 13a). Масштаб по оси Y выбран автоматически и не позволяет ясно наблюдать разницу между полученными кривыми, поэтому изменим его.

a)

b)

c)

Рис. 13. Результаты анализа методом Монте-Карло.

18. Выполним щелчок правой кнопкой мыши на оси Y и в появившемся контекстном меню выберем команду Format Axis. Появится окно Y Axis Settings (рис. 14).

Рис. 14. Настройка формата оси Y.

19. В поле Scale выключим автоматическое определение масштаба для чего уберем «галочки» Auto напротив текстовых полей Minimum и Maximum.

20. В поле Minimum введем значение -40, а в поле Maximum — 0, после чего закроем окно нажатием кнопки OK. Вид графика изменится (рис. 13b).

21. С помощью мыши в окне охвата выделим некоторую область вокруг точки изгиба кривой. Масштаб изображения снова изменится (рис. 13c). Обратите внимание, что теперь, когда автоматическое масштабирование выключено, выбор окном охвата изменяет масштаб не только по оси X, но и Y.

Теперь на график можно добавить маркеры и измерить полосу пропускания по уровню -3 дБ для разных случайных реализаций. Точные значения параметров компонентов каждой реализации записываются в уже знакомый нам файл Filter.swd, расположенный в папке Project Outputs for Filter. Этот файл будет содержать блоки данных с указанием имени элемента, заданного для него допуска, вида распределения, номинального и случайного значения параметров:

*AC Monte Carlo run 1 of 5 (m1)

v1 dev=10% uniform : 0 -> 0
r2 dev=0% uniform : 50 -> 50
r1 dev=0% uniform : 50 -> 50
l4 dev=10% uniform : 15n -> 16.2n
l3 dev=10% uniform : 33n -> 32.2n
l2 dev=10% uniform : 33n -> 34n
l1 dev=10% uniform : 15n -> 13.7n
c3 dev=10% uniform : 10p -> 10.4p
c2 dev=10% uniform : 10p -> 10.3p
c1 dev=10% uniform : 10p -> 9.76p

*AC Monte Carlo run 2 of 5 (m2)
v1 dev=10% uniform : 0 -> 0
r2 dev=0% uniform : 50 -> 50
r1 dev=0% uniform : 50 -> 50
l4 dev=10% uniform : 15n -> 15.4n
l3 dev=10% uniform : 33n -> 31.2n
l2 dev=10% uniform : 33n -> 31.4n
l1 dev=10% uniform : 15n -> 15.7n
c3 dev=10% uniform : 10p -> 10.5p
c2 dev=10% uniform : 10p -> 10.8p
c1 dev=10% uniform : 10p -> 9.14p

*AC Monte Carlo run 3 of 5 (m3)

v1 dev=10% uniform : 0 -> 0
r2 dev=0% uniform : 50 -> 50
r1 dev=0% uniform : 50 -> 50
l4 dev=10% uniform : 15n -> 15n
l3 dev=10% uniform : 33n -> 32n
l2 dev=10% uniform : 33n -> 31.3n
l1 dev=10% uniform : 15n -> 14.9n
c3 dev=10% uniform : 10p -> 10.6p
c2 dev=10% uniform : 10p -> 10.6p
c1 dev=10% uniform : 10p -> 9.06p

*AC Monte Carlo run 4 of 5 (m4)

v1 dev=10% uniform : 0 -> 0
r2 dev=0% uniform : 50 -> 50
r1 dev=0% uniform : 50 -> 50
l4 dev=10% uniform : 15n -> 13.6n
l3 dev=10% uniform : 33n -> 32.2n
l2 dev=10% uniform : 33n -> 32.8n
l1 dev=10% uniform : 15n -> 16.3n
c3 dev=10% uniform : 10p -> 10.8p
c2 dev=10% uniform : 10p -> 10.8p
c1 dev=10% uniform : 10p -> 9.63p

*AC Monte Carlo run 5 of 5 (m5)

v1 dev=10% uniform : 0 -> 0
r2 dev=0% uniform : 50 -> 50
r1 dev=0% uniform : 50 -> 50
l4 dev=10% uniform : 15n -> 14.3n
l3 dev=10% uniform : 33n -> 36.2n
l2 dev=10% uniform : 33n -> 31.5n
l1 dev=10% uniform : 15n -> 15.3n
c3 dev=10% uniform : 10p -> 9.33p
c2 dev=10% uniform : 10p -> 10.4p
c1 dev=10% uniform : 10p -> 9.87p

Разумно предположить, что наиболее неблагоприятный для схемы вариант будет получен, когда значения параметров будут иметь максимальное отклонение от номинала, то есть примут крайние значения границ диапазонов. Такой вид анализа называется анализом худшего случая. Проведем его.

22. Вернемся в редактор схем и нажатием кнопки Setup Mixed-Signal Simulation вызовем окно Analyses Setup.

23. В списке Analysis/Option щелкнем левой кнопкой мыши на строке Monte Carlo Analysis.

24. В списке справа параметр Distribution (вид распределения) зададим как Worst Case (худший случай) и нажатием кнопки OK закроем окно.

25. Нажатием кнопки Run Mixed Signal Simulation на панели инструментов Mixed Sim (горячая клавиша F9) запустим процесс моделирования.

Если опция SimView Setup была задана как Keep Last Setup, то масштабирование графиков не изменится, но все зависимости будут намного сильнее отличаться от кривой, полученной при номинальных значениях.

Как правило, анализ худшего случая правильно показывает наиболее неблагоприятный результат, но при резких параметричеких зависимостях (например, резонансах) может он пропустить наиболее критическую комбинацию параметров. Поэтому в общем случае сначала рекомендуется выполнить статистический анализ при равномерном или Гауссовом распределении случайных значений параметров, а уже затем, когда будут ясны тенденции изменения искомых зависимостей, проводить анализ худшего случая.

Следует отметить, что система Protel DXP не имеет средств постобработки результатов статистического анализа. Здесь нет возможности построить гистограммы, показывающие вероятность статистического рапределения, например, максимума частотной характеристики или полосы пропускания по уровню -3 дБ. Поэтому рекомендуется выполнить экспорт полученных зависимостей во внешний файл в формате Comma Separated Value и продолжить их обработку с помощью специальных программ, таких как Statistica.

Итак, на данном занятии мы рассмотрели малосигнальный частотный и статистический анализ. Следующий урок будет посвящен оставшимся четырем видам анализа: анализу схем при изменяюшемся постоянном напряжении (DC Sweep Analysis), анализу шумов (Noise Analysis), анализу нулей и полюсов (Pole-Zero Analysis) и анализу передаточных функций (Transfer Function Analysis).

Уроки Protel DXP
Урок 6
Автотрассировка с помощью встроенного трассировщика Situs. Настройка правил проектирования. Задание стратегии трассировки. Автотрассировка с помощью программы Specctra. Поиск неразведенных цепей.
Урок 4
Размещение компонентов на плате. Глобальные операции редактирования. Ручная трассировка платы. Редактирование проводников на плате в интерактивном режиме. Межслойные переходы.
Урок 9
Моделирование. Подготовка схемы к моделированию. Описание моделей элементов. Настройка анализа переходных процессов. Генерация списка соединений SPICE. Обработка результатов измерений. Использование маркеров. Просмотр спектров сигналов.
Урок 12
Анализ схем при изменяющемся постоянном напряжении. Анализ шумов. Анализ передаточных функций по постоянному току. Анализ нулей и полюсов.