Материал: Методические указания по выполнению лабораторных работ № 1 - 3 по дисциплине «Схемотехническое моделирование аналоговых устройств». Балашов Ю.С., Мушта А.И

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Математический аппарат UltraSim используется со следующими инструментами Cadence:

  • AMSUltra для Verilog/VHDL - совместного моделирования с NCSIM;

  • UltraSimVerilog для смешанного аналого-цифрового моделирования с VerilogXL;

  • аналоговая опция VoltageStorm (VAVO) для анализа цепей питания аналоговых и смешанных схем;

  • аналоговая опция ElectronStorm (VAEO) для анализа электромиграции аналоговых и смешанных схем;

  • VoltageStorm для анализа цепей питания цифровых схем и анализа всего дизайна.

В рамках платформы Virtuoso, UltraSim тесно интегрируется с существующими системами. Цель интеграции - предоставление пользователю стандартных вычислительных блоков на выбор, в зависимости от характера схемы, ресурсов и требований.

  • Унификация интерфейсов Ultrasim и Spectre – CMI, UWI, SFE, ... .

  • Общая тестовая регрессия – более 7000 тестов.

  • Общие модели полупроводниковых приборов, поддержка CMI. Новая версия, CMI 4.0.

Система UltraSim проходит тестирование на тех же тестах, поддерживает все режимы и последовательности среды проектирования Virtuoso.

С использованием современной FastSPICE технологии Virtuoso UltraSim, система моделирования позволяет выполнять высокопроизводительное, аналоговое или смешанное моделирование всей системы. Поддержка многих языков описания объектов обеспечивает независимость языка и уровня абстракции в методологии проектирования. Обобщенная реализация полупроводниковых приборов в системах моделирования, входящих в платформу Virtuoso, гарантирует высокую точность результатов. С учетом RC-редукции, с помощью UltraSim и Virtuoso стало возможным решение ранее недоступных задач полной и точной верификации проекта после фазы разработки топологии на нанометровых технологиях.

3.3. Контрольные вопросы к домашнему заданию

  1. Что такое система на кристалле?

  2. В чем различие между нисходящим (top-down) и восходящим (bottom-up) проектированиями?

  3. В чем суть метода проектирования Meet-in-the-middle?

  4. Какие уровни абстракции моделей и уровни абстракции физического дизайна существуют?

  5. В чем различие между системами моделирования Virtuoso Spectre и Virtuoso UltraSim? В каких случаях надо применять одну или другую систему моделирования?

3.4. Лабораторно-практические задания и методические указания по их выполнению

Это учебное руководство предполагает, что Вы знакомы с форматом SPICE и основными командами UNIX, Ваша среда настроена так, чтобы было возможным выполнение моделирования в системе Virtuoso UltraSim, и Вы имеете учетную запись на учебном компьютере.

Копирование файлов примера.

1. Найдите корневой каталог Cadence, введя

cds_root ultrasim

Система выведет на экран корневой каталог.

2. Определите местоположение учебного каталога, введя

ls cds_root_dir/tools/ultrasim/examples

3. Скопируйте учебный каталог в свою домашнюю директорию.

4. Проверьте, что следующие подкаталоги находятся в текущем каталоге: inv_mea/, ultrasim_workshop/, usim_ade/, Usim_Verilog/.

Подкаталог ultrasim_workshop содержит mult16_vcd, mult16_vec, и sram16k. В данной лабораторной работе будут рассмотрены примеры из папок inv_mea и ultrasim_workshop, в которых работа с UltraSim ведется в консольном режиме из терминала UNIX. Рекомендуется самостоятельно изучить возможности Virtuoso UltraSim при работе с ADE – папка usim_ade, а также при работе с моделями, описанными на языке Verilog – папка Usim_Verilog.

1. Начало работы в Virtuoso UltraSim и SimVision

1.1. Перейдите в каталог inv_mea.

1.2. Откройте inv_mea.sp.

more inv_mea.sp

Это - моделирование нетлиста КМОП инвертора с .alter парметрами для различных входных длительностей фронта сигнала и емкостей выходной нагрузки.

Примечание: следующие SPICE-параметры используются во входном файле: .title, .options, .include, .param, .global, .subckt, .ends, .tran, .probe, .meas, .alter, и .end.

1.3. Выполните моделирование, используя средство моделирования Virtuoso UltraSim.

ultrasim inv_mea.sp

В терминале ведется журнал моделирования.

Примечание: журнал моделирования может быть сохранен в файле, используйте для этого inv_mea.out.

Следующие файлы были сгенерированы для этого нетлиста:

inv_mea.trn: графический файл в формате sst2

inv_mea.1.trn: первый .alter графический файл в формате sst2

inv_mea.2.trn: второй .alter графический файл в формате sst2

inv_mea.meas0: подробный измерительный файл отчета

inv_mea.meas1: первый .alter детализированный измерительный файл отчета

inv_mea.meas2: второй .alter детализированный измерительный файл отчета

inv_mea.mt0: упрощенный измерительный файл отчета

inv_mea.mt1: первый .alter упрощенный измерительный файл отчета

inv_mea.mt2: второй .alter упрощенный измерительный файл отчета

1.4. Проверьте измеренные результаты.

more inv_mea.mt*

2. Проверка графических результатов в SimVision для файлов *.Trn

2.1. Запустите средство просмотра графических файлов SimVision.

simvision&

Появится окно браузера проекта SimVision.

2.2. Откройте базу данных графиков, выбирая File – Open Database.

Появится открытое окно базы данных.

2.3. Выберите inv_mea.trn.

2.4. Кликните Open.

2.5. Выберите сигналы из базы данных.

Появится окно вывода графических результатов, которое должно выглядеть подобно рис. 3.5.

Рис. 3.5. Окно результатов моделирования inv_mea.sp.

2.6. Выйдете из SimVision, выбрав File – Exit.

Появится диалоговое окно выхода из SimVision.

2.7. Нажмите кнопку Yes.

3. Использование цифрового векторного файла

Разработчик может определять входные векторы и будущие выходные векторы внутри цифрового векторного файла. Симулятор Virtuoso UltraSim преобразовывает входные векторы в PWL источника напряжения и проверяет результаты симуляции с выходными векторами.

3.1. Измените текущую директорию на mult16_vec в каталоге примера.

cd ~/ultrasim_tutorial/mult16_vec

3.2. Откройте mult16.net.

more mult16.net

Умножитель состоит из двух входных регистров, массива умножителя, и выходного регистра. Он имеет два 16-разрядных входа (A[15:0], B [15:0]), вход тактовой частоты (CLK), и 32-разрядный выход (P [31:0]).

3.3. Откройте mult16_vec.vec.

more mult16_vec.vec

Несколько первых строк определяют свойства векторных сигналов. Основание определяет число битов в векторном формате, io определяет направления (ввод или вывод) сигналов, vname определяет сигнальные имена. tunit представляет единицу измерения времени. trise и tfall – входные времена нарастания и спада. vih, vil, voh, и vol определяют входное высокое напряжение, входное низкое напряжение, выходное высокое напряжение, и выходное низкое напряжение, соответственно.

Примечание: первые два выходных вектора ‘xxxxxxxx”. Результат умножения первых входных векторов – это третий выходной вектор.

3.4. Откройте mult16_vec.sp.

more mult16_vec.sp

Обратите внимание на .vec, .lprobe параметры, и подстановочный знак (*) используемый в парметрах .lprobe. Векторный файл вызывают с .vec параметром. Логический зонд (.lprobe) используется, чтобы уменьшить размер графического файла.

3.5. Выполните моделирование, используя средство моделирования Virtuoso UltraSim.

ultrasim mult16_vec.sp > mult16_vec.out &

Ожидайте, пока идет моделирование.

3.6. Просмотрите вектор проверки результатов.

more mult16_vec.veclog

Все выводы (P <31> ~ P <0>) должны быть корректными.

4. Проверка графиков в SimVision для файлов *.Sv

    1. Запустите средство просмотра графических результатов моделирования.

simvision&

Появляется окно браузера проектов SimVision.

4.2. Откройте базу данных графиков с ранее сохраненным сценарием команд, выберите File – Source Command Script.

4.3. В окне выбора командного файла SimVision выберите simvison.sv файл.

4.4. Кликните Open.

Появится окно графиков.

Рис. 3.6. Графики результатов моделирования файла mult16_vec.sp.

4.5. Выйдите из SimVision, выберите File – Exit.

Появится диалоговое окно выхода из SimVision.

4.6. Нажмите кнопку Yes.

5. Моделирование умножителя с более высокими тактовыми частотами

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

5.1. Создайте новые входной и векторный файлы.

cp mult16_vec.sp speed.sp

cp mult16_vec.vec speed.vec

5.2. Сделайте следующие изменения в speed.sp используя текстовый редактор.

  • From .vec ‘mult16_vec.vec’ to vec ‘speed.vec’

  • VCK CLK 0 PULSE (0 2.5 100n 1n 1n 99n 200n) to

VCK CLK 0 PULSE (0 2.5 10n 1n 1n 9n 20n)

  • .tran 10p 200n to .tran 10p 200n

5.3. Произведите следующее изменение в speed.vec с помощью текстового редактора.

  • tunit ns to tunit 0.1ns

5.4. Выполните моделирование, используя средство моделирования Virtuoso UltraSim.

ultrasim speed.sp > speed.out &

Ожидайте, пока идет моделирование.

5.5. Просмотрите вектор проверки результатов.

more speed.veclog

6. Использование файла дампа изменений значений

Средство моделирования Virtuoso UltraSim может взять файл дампа изменений значения (VCD) в качестве входных стимулов и ожидаемых выходов. Файл VCD обычно генерируется средством моделирования Verilog.

Примечание: средство моделирования также поддерживает улучшенный VCD (EVCD), цифровой ввод стимулов (обратитесь к секции “Verilog Value Change Dump Stimuli” в Virtuoso UltraSim Simulator User Guide для получения дополнительной информации).

6.1. Измените текущую директорию на mult16_vcd в каталоге примера.

cd ~/ultrasim_tutorial/mult16_vcd

6.2. Откройте mult16_vcd.vcd.

more mult16_vcd.vcd

Файл VCD был сгенерирован Verilog-XL. Отметьте, что шкала времени определена как 10 пс. Это - также единица измерения времени для файла информации о сигнале VCD.

6.3. Откройте vcd_info.

more vcd_info

Информационный файл VCD преобразовывает нотацию шины [] в файле VCD к <> в SPICE нетлисте. Таким образом, определяются контекст, вводы, выводы, и сигнальные свойства.

6.4. Откройте mult16_vcd.sp.

more mult16_vcd.sp

Обратите внимание на строку в файле, содержащую .vcd параметр.

6.5. Выполните моделирование, используя средство моделирования Virtuoso UltraSim.

ultrasim mult16_vcd.sp > mult16_vcd.out &

Ожидайте, пока идет моделирование.

6.6. Просмотрите вектор проверки результатов.

more mult16_vcd.veclog

Все выводы (P <31> ~ P <0>) должны быть корректными.

7. Выполнение фонового моделирования для 16 k sram

7.1. Измените текущий каталог на sram16k.

cd ~/ultrasim_tutorial/sram16k

7.2. Откройте sram16k.net.

more sram16k.net

Схема SRAM имеет:

  • 1024x16-бит ячейки памяти;

  • 10-разрядный ввод адреса (A<9:0>);

  • 16-разрядный ввод данных (DI <15:0>);

  • 16-разрядный вывод данных (DO <15:0>);

  • вход пре-заряда (PRE) и управление записью-чтением (WR, 1 = запись, 0 = чтение).

7.3. Откройте sram16k.sp.

more sram16k.sp

Примечание: режим моделирования установлен в фоновый (hier = 0). Векторный файл sram16k.vec обеспечивает входные стимулы и ожидаемые выходные значения. В общей сложности 32 цикла записи и цикла чтения моделируются с временем окончания 3200 нс.

Источник: https://studfile.net/preview/16568006/