![]() | |
НПО Системы Безопасности (499)340-94-73 График работы: ПН-ПТ: 10:00-19:00 СБ-ВС: выходной ![]() ![]() |
Главная » Периодика » Безопасность 0 ... 119120121122123124125 ... 233 3. Выходной файл: CSIM: CUPL Simulation Program Version 4.2a Serial* ... Copyright (c) 1996 Protel International CREATED Wed Dec 04 03:00:11 1991 LISTING FOR SIMULATION FILE: barrel22.si Name Barrel22; Partno CA0006; Date 05/11/89; Revision 02; Designer Kahl; Company Protel International; Assembly None; Location None; Device g20v8a; FIELD input = [D7,D6,D5,D4,D3,D2,Dl,D01; FIELD output = [Q7,Q6,Q5,Q4,Q3,Q2,Q1,Q0]; FIELD shift = [S2,S1,S0]; ORDER: CLOCK, %3, 0E, %3, shift, %1, input, %2, output; var X = Q7; var Y = Q7 . . 4;
Существует одно обстоятельство, которое надо всегда учитывать при создании входного файла моделирования новым синтаксическим способом. Если перед операторами проверки условий (IF, WHILE, UNTIL) стоят один или несколько операторов $SET или $СОМР без промежуточного оператора $OUT, то задавае- мые ими значения не будут учитываться при проверке условий, так как условия проверяются только для значений используемых переменных, полученных в результате последнего моделирования. Например, вы хотите получить на выходе следующий результат: ORDER: CLOCK,clr,dir,! 0E,%2,count,%1,carry; var mode = clr,dir; VECTORS:
Приведенная ниже последовательность операторов будет генерировать неправильный результат: ORDER: CLOCK,clr,dir, ! 0E,%2,count,%1,carry; var mode = clr,dir; VECTORS: С 100 LLLL L $set mode = 0; $for i=l..9 : $comp count = count + 1; $if count="9": $set carry = H; $endif; $out; $endf; который будет иметь вид:
[0019sa] user expected (L) for carry Неправильный результат был получен из-за того, что значение счетчика count, используемое при проверке условия в операторе IF для вектора 10, в то время было текущим смоделированным значением (показанным в векторе 9) и не устанавливалось с помощью команды $сотр. Правильная последовательность операторов будет выглядеть так: с 100 LLLL L $set mode = О; $for i=l..9 : $if count="8": $set carry = H; $endif; $comp count = count + 1,- $out; $endf; Виртуальное моделирование Виртуальное моделирование позволяет создавать и моделировать проект без указания целевой микросхемы. Таким образом, появляется возможность получить работающий проект еще до выбора архитектуры, на которой он будет осуществлен. Это особенно полезно для разработок, которые в последствии могут быть разделены на несколько отдельных частей. Применение виртуального моделирования не вызывает особых сложностей. Нет необходимости в изучении новых команд и синтаксиса, просто нужно использовать мнемонические обозначения виртуальных (VIRTUAL) устройств при компиляции и моделировании для выполнения программы виртуального моделирования. Программа виртуального моделирования также используется для моделирования проектов на базе устройств FPGA. Если полное архитектурное моделирование невозможно по причинам прав собственности внутренних блоков схемы или из-за сложности внутренних логических ресурсов, тогда виртуальное моделирование является лучщим вариантом на стадии тестирования схемы. Моделирование неисправностей Для любых конъюнктивных членов может быть смоделирована внутренняя ошибка, что позволяет определить зону действия такой ошибки. Формат оператора: STUCKL п ; STUCKH п ; где п - номер JEDEC перемычки для первой перемычки в конъюнктивном члене. В файл документации с расширением .DOC входит карта перемычек, в которой перечислены номера первых перемычек для всех конъюнктивных членов микросхемы. Формат 1 принудительно устанавливает конъюнктивный член в 0. Формат 2 принудительно устанавливает конъюнктивный член в 1. Команда STUCK должна быть расположена между операторами ORDER и VECTORS. 0 ... 119120121122123124125 ... 233 |