Современная электроника №1/2021
ПРОЕКТИРОВАНИЕ И МОДЕЛИРОВАНИЕ 58 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 1 2021 ● функциональность; ● проверка нарушений; ● определение задержек выходных сиг- налов и сообщений событий. Идентификация функции устройства Идентификацию устройства следует выполнять с помощью следующей кон- струкции языка: # <имя модели> source , где <имя модели> – имя имитирующей функции, используемой для указания блока определения модели. Блок опре- деления модели должен заканчиваться высказыванием EXIT. Таким образом, SimCode модель конкретного устрой- ства будет иметь вид листинга 1. Осталь- ные операторы (высказывания) языка, описывающие модель, должны распола- гаться внутри приведённого описания. Объявление данных Digital SimCode описывает данные со входов и выходов устройства, а также внутренние переменные. Взаимодей- ствие модели с окружением произво- дится через входные и выходные порты и порты питания. Каждый порт должен быть перечислен как вход и/или выход, а порты, выполняющие функции ввода и вывода информации в модель одно- временно, должны присутствовать в обоих перечислениях. Для описания входов и выходов служат операторы: ● INPUTS – с именами входящих портов; ● OUTPUTS – с именами выходящих портов. Описание портов следует выполнять через запятую. Указаниепортовпитания (один порт положительной полярности питания, другой – отрицательной) мож- ноперечислитьв INPUTS, авOUTPUTS–с добавлением_LDкимени. Портыпитания должны принимать значение входного уровня (напряжения или тока) и оказы- ватьвлияниенасоединённыецепи. Кро- ме того, нужноуказыватьпортыпитанияс помощьюоператораPWR_GND_PINS. Бла- годаряэтомуимитаторсможетвычислять входные уровни для входных портов и выходные уровни для выходных портов (еслиневыполненоявноеилиполноеих описание, чтообеспечивает зависимость от напряжения питания). Аналогично двунаправленные пор- ты или порты, оказывающие влияние на входные цепи, требуется добавлять с помощьюоператора IO_PAIRS. Объявле- ние вспомогательных переменных сле- дует выполнять с помощьюоператоров INTEGERS (для целочисленных данных) и REALS (для действительных данных). Существуют переменные, зарезервиро- ванные в модели в системных целях. Значения таких переменных не допу- скается изменять явным способом (при помощи операций присвоения). Инициализация модели Инициализация модели строит- ся при помощи оператора ветвления (см. листинг 2). Внутриданнойконструк- ции следует указать операторы иници- ализации. Условный оператор должен содержать зарезервированную цело- численнуюпеременнуюinit_sim, которая равна 1припервоначальномвызове кода Рис. 9. Проверка корректности назначения файла mdl на закладке Model File диалога Sim Model моделииравна 0припоследующихобра- щениях имитатора к модели. Заверше- ние инициализации должно содержать операторEXIT, выполняющий заверше- ние работы модели после инициализа- ции. Дальнейшее обращение имитатора кмоделине будет приводить к выполне- ниюблока операторовинициализации. Определение нагрузочных характеристик Определение нагрузочных характе- ристик следует выполнять с помощью оператора DRIVE <выход1> [<выход2> ...] = (v0=<значение> v1=<значение> ttlh=<значение> tthl=<значение>) для указания выходной характеристи- ки (питающей способности) выходных портов; оператора LOAD <вход> [<вход> ...] = (v0=<значение> r0=<значение> [v1=<значение> r1=<значение>] [io=<значение>] t=<значение>) для указания нагрузочной характери- стики входных портов. Указание параметров питающей спо- собности и нагрузочной характеристи- ки с помощьюDRIVE и LOAD позволяет очень детально и аккуратно описывать взаимодействие модели с окружением и добиваться высокой реалистичности и точности расчёта. Функциональность Описание функциональности циф- рового устройства Digital SimСode выполняется с использованием опе- раторов ветвления, циклов, таблиц истинности и других привычных мето- дов, как и в других HDL-языках. Также можно выполнять безусловные перехо- ды к определённым меткам, что позво- ляет применять подпрограммы. Используются и операторы подклю- чения к внешнему (по отношению к модели) файлу данных при помо- щи оператора READ_DATA. Например, таким образом реализовывается циф- ровой автомат с выбором состояния из внешнегофайла и подобные устройства. Проверка нарушений В Digital SimCode существует возмож- ность формировать утверждения, отла- живающие модели, а также выполнять вывод сообщений в панель Messages. Примерами операторов проверки нарушений являются: 1. FREQUENCY – проверяет входные порты на нарушение минимальной и максимальной частот; 2. CHANGED_XX – для проверки изме- нения порта, сравнивает текущее со- Листинг 1 # MyDevice source ... ... ... EXIT Листинг 2 IF (init_sim) THEN BEGIN ... ... ... EXIT; END;
RkJQdWJsaXNoZXIy MTQ4NjUy