Математический аппарат 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 стало возможным решение ранее недоступных задач полной и точной верификации проекта после фазы разработки топологии на нанометровых технологиях.
Что такое система на кристалле?
В чем различие между нисходящим (top-down) и восходящим (bottom-up) проектированиями?
В чем суть метода проектирования Meet-in-the-middle?
Какие уровни абстракции моделей и уровни абстракции физического дизайна существуют?
В чем различие между системами моделирования Virtuoso Spectre и Virtuoso UltraSim? В каких случаях надо применять одну или другую систему моделирования?
Это учебное руководство предполагает, что Вы знакомы с форматом 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.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.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.
Разработчик может определять входные векторы и будущие выходные векторы внутри цифрового векторного файла. Симулятор 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>) должны быть корректными.
Запустите средство просмотра графических результатов моделирования.
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.
Увеличьте тактовую частоту в 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
Средство моделирования 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.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 нс.