Система - это совокупность связанных элементов, объединенных в одно целое для достижения определенной цели Чтобы разобраться в системе, изучить, исследовать ее (задача анализа), надо описать систему, зафиксировать ее свойства, поведение, структуру и параметры, то есть построить одну или несколько моделей. Для этого надо ответить на три основные вопроса: Что она делает (узнать поведение, функцию системы); Как она устроена (выяснить структуру системы); Каково ее качество (насколько хорошо она выполняет свои функции). Структура системы - это фиксированная совокупность элементов, составляющих систему, и связей между ними. Структурный элемент системы - это элементарная, неделимая на данном уровне детализации единица (часть) системы. Неделимость элемента - это удобное допущение, но не физическое свойство. Оперируя понятием элемент, мы оставляем за собой право перейти на более низкий иерархический уровень и говорить о том, из чего состоит элемент. Сказанное свидетельствует о физической разложимости последнего. Элемент системы часто называют структурным примитивом (СТП). В действительности, он является черным ящиком и указывает входы, выходы и выполняемую функцию Параметры системы - это величины характеризующие качество, свойства или режимы работы объекта. Различают выходные, внутренние и внешние параметры. Выходные параметры - это показатели качества системы. По ним можно судить о правильности функционирования системы и ее качестве. Они позволяют сравнивать однотипные по назначению системы, сделать выбор подходящего варианта. Выходных параметров обычно много и их принято представлять вектором: Y = (y1,y2,...,yn) Внутренние параметры - это параметры структурных (внутренних) элементов системы: X = (x1,x2,...,xn) Внешние параметры - это параметры внешней среды, оказывающие влияние (обычно отрицательное) на функционирование системы. Q = (q1,q2,...,qn) Параметры входных сигналов иногда выделяют в отдельную группу и называют входными параметрами: I = (i1,i2,...,in) Между различными видами параметров, существует некоторая зависимость. Правильнее говорить, что выходные параметры объекта (а, значит, и его качество), зависят от входных воздействий, параметров внешней среды и, конечно же, от качества составляющих объект элементов (Х-параметров). Такая зависимость представляется в аналитической форме и называется глобальной функцией объекта W. В первом случае мы ничего не знаем о составляющих объект элементах, то есть нам неизвестны его Хпараметры. Поэтому глобальная функция объекта записывается в упрощенном виде, как его реакция на внешние воздействия I и Q Для динамических объектов в глобальную функцию добавляется еще одна координата - время t. Y = Wc(I,Q,t) - черный ящик или Y = Wc(I,Q,X,t) - система До сих пор, говоря о системе, мы предполагали, что объект уже существует и задача сводится к изучению, исследованию его. Отыскав его функцию и структуру; "измерив" его параметры, мы тем самым решили эту задачу. Ее название задача анализа (от гр. analysis - разложение, расчленение). Но чаще инженер встречается с противоположной задачей - объекта нет, и его предстоит создать, спроектировать. Это задача синтеза объекта. Рассуждая с позиции системного подхода, мы можем сказать, что для ее решения надо сделать три шага: выявить функцию системы (абстрактный синтез), разработать структуру системы (структурный синтез) и определить параметры системы так, чтобы получить желаемое качество проекта. Сначала надо выявить глобальную функцию системы, рассматривая саму систему на абстрактном уровне в виде черного ящика, о котором известно только то, что он будет делать. Затем следует "транслировать" функциональное описание в структурное, например, разбивая глобальную функцию системы на подфункции и повторяя, при необходимости, это дробление до тех пор, пока не будут получены элементарные функции, структуры которых очевидны ( или уже реализованы). Этот этап порождения структуры, реализующий необходимые функции, называют структурным синтезом. На третьем этапе (параметрический синтез) остается лишь подобрать параметры системы так, чтобы достичь желаемого качества ее работы. Несмотря на внешнюю привлекательность и стройность процедуры формального синтеза оказываются исключительно сложными. Специалисты в теории систем даже склоняются к мысли, что в общей постановке задача строгого синтеза неразрешима. Чаще всего у инженера нет альтернативы методу проб и ошибок, реализованному в процедуре итерационного проектирования: сначала создается базовый вариант системы, а затем он улучшается, пока не будет достигнуто желаемое качество работы. Что же припасено в арсеналах инженера для улучшения проекта? Из глобальной функции системы Y = Wc(I,Q,X) (вектор ) Y видно, что улучшить ее качество можно тремя способами: воздействием на вектор Х - параметрический метод; изменением функции Wс - схемотехнический метод; воздействием на внешние параметры I и Q. Параметрический метод - есть не что иное, как улучшение качества входящих в систему элементов. Этот метод самый простой и потому рекомендуется начинать "борьбу за качество" именно с него. Он не требует никаких изменений модели. Достаточно лишь "прогнать" ее на новом наборе Х-параметров. Схемотехнический метод требует введения в разработку структурной избыточности. Понятно, что изменения, внесенные в структуру системы, потребуют и аналогичной коррекции ее модели. Схемотехнические приемы весьма эффективны, но более дорогие. К ним инженер обычно обращается после того, как исчерпаны возможности параметрического метода. Для третьего метода не придумано подходящего названия. Мы назовем его методом уменьшения отрицательного влияния внешней среды. Итог. Только системный подход может гарантировать хорошее качество проекта. Основные задачи, с которыми имеет дело инженер (анализ, синтез, улучшение проекта), оказываются непременными спутниками любого процесса проектирования. Классификация моделей Физические и абстрактные модели. Физическая модель - это материально реализованная система. Абстрактная модель - это описание объекта проектирования или исследования на каком-либо языке, например график, чертеж, схема, граф, таблица, формула, граф - или блок - схема алгоритма, программа для ЭВМ или словесное описание. Разновидностью абстрактных моделей является математическая модель. Такая модель представляет собой описание объекта на языке математических отношений. Математические модели в свою очередь делятся на аналитические и имитационные. Аналитические модели представляют собой уравнения или системы уравнений. Они записаны и решены в буквенном виде. Имитационная модель представляет собой алгоритм (процедуру), которым описывается поведение соответствующего ей объекта или способ вычисления его выходных сигналов. Поведенческие или функциональные. Их отличительная черта заключается в том, что они описывают объект как бы снаружи, внутренняя структура объекта не раскрывается. Это модели типа черный ящик. Структурные модели отражают внутреннее строение объекта, его структуру. Детерминированные модели - это грубые модели, они относительно просты и экономичны, но часто недостаточно точны для окончательных оценок и принятия ответственных решений. Вероятностные модели учитывают случайные факторы, например случайные отклонения параметров от своих номинальных значений из-за технологических разбросов, температурных и временных изменений. Процесс моделирования с помощью вероятностных моделей называется моделированием и является разновидностью имитационного моделирования. статистическим Основное достоинство вероятностных моделей - высокая точность и надежность получаемых результатов. Основной недостаток - значительные затраты машинного времени на проведение статистического моделирования. Поисковое проектирование с помощью вероятностных моделей - слишком расточительное занятие. Поэтому вероятностные модели применяются только тогда, когда уже приняты решения относительно структуры проектируемого объекта и определены ориентировочно (на детерминированных моделях) значения его параметров. Статическая модель - это, как правило, системы булевских, алгебраических или трансцендентных уравнений, решения которых определяют состояние исследуемого объекта. Основной признак таких моделей: отсутствие в их описаниях независимой переменной - времени. Об этом уже говорилось в лекции 2, где обсуждалась глобальная функция системы. Напомним, что для статических систем она выглядит так: Как видите, модельное время tm в них отсутствует. Динамические модели имитируют поведение объекта во времени. В них явным или неявным образом присутствует время: С помощью динамических моделей исследуются переходные процессы в системе, определяются быстродействие и задержки распространения сигналов через элементы, строятся переходные характеристики. Динамические модели непрерывных систем представляют собой системы дифференциальных уравнений. Для дискретных систем надо решить главный вопрос: как организовать "модельные часы", то есть выбрать конкретный механизм продвижения модельного времени. По окончании переходных процессов система достигает установившегося состояния. Это указывает на возможность верификации (проверки) статических и динамических моделей по совпадению результатов "испытаний" статических моделей с результатами, полученными на динамических моделях при t m-> . Процессы, протекающие в дискретных динамических системах, можно отобразить цепочкой переходов из одного состояния в другое в дискретные моменты времени. Это дает еще одну возможность исследовать динамические системы на некотором множестве статических моделей, а время имитировать неявным образом, например, связав его с циклом работы управляющей программы моделирования (моделятора). Линейные и нелинейные модели Большинство реальных систем нелинейны и их модели получаются слишком сложными. Однако во многих случаях нелинейные системы можно линеаризовать, пожертвовав точностью, но получив при этом более простые модели. Таким образом, используя кусочно-линейную аппроксимацию нелинейных объектов, можно исследовать их работу "по кусочкам" с помощью линейных, то есть более простых моделей. Количество таких моделей, очевидно, определяется числом участков аппроксимации. Непрерывные и дискретные модели В непрерывных моделях фигурирующие в них переменные непрерывны. Это касается и такой независимой переменной, как время tm Для дискретных моделей переменные, в том числе и время, дискретны, то есть для них определено некоторое множество разрешенных значений (уровней), в частном случае их всего два (двоичные переменные). Распределенные, сосредоточенные и информационные модели Эти разновидности моделей непосредственно связаны с иерархией описания объектов и фактически представляют собой иерархическую систему математических моделей (рис. 9). Рис.9. Иерархическая система математических моделей Требования, предъявляемые к математическим моделям Наиболее важными являются требования точности, экономичности и универсальности. Они противоречивы, например повышение точности модели делает ее сложнее, а, значит, и менее экономичной. Точность модели - это количественная оценка степени совпадения модельных результатов с натурными. Точность модели тесно связана с понятием "адекватность". Но это не синонимы: понятие "адекватность" носит качественный характер, тогда как за понятием "точность" стоит число, количественная оценка модели. Реальные объекты характеризуются не одним, а несколькими выходными параметрами. В модели выходные параметры могут представляться с различной погрешностью, одни упрощенно, другие точно. Отсюда вытекает первоначальный векторный характер оценки и необходимость сведения ее к скалярной величине. В противном случае трудно говорить о качестве моделей вообще и сравнивать их между собой. Кроме того, истинные параметры объекта обычно отождествляются с экспериментально измеренными. Однако погрешности натурного эксперимента могут оказаться соизмеримыми с погрешностью модели, а иногда и превышать ее. Наконец, один и тот же выходной параметр модели может оказаться важным (доминирующим) для одних применений и второстепенным для других. Обозначим выходные параметры объекта через yi , а значения тех же параметров в модели через yMi = l,k Тогда для каждого выходного параметра можно вычислить относительную погрешность, с которой он представляется в модели: Вектор относительных погрешностей: и будет являться векторной оценкой точности модели. Сведение ее к скалярной форме обычно осуществляется на основе какой-либо нормы вектора. В качестве оценки точности можно использовать m-норму, то есть максимальный по абсолютной величине элемент вектора: или l-норму (суммарную погрешность): Однако более реалистичной выглядит среднеквадратичная погрешность: Для оценки правильности модели используются простые приемы, такие как: проверка физического смысла (соблюдение физических законов); проверка размерности и знаков; проверка пределов; проверка тренда, то есть тенденции изменения выходных параметров в зависимости от внутренних и внешних. Убедившись, что модель работает правильно, можно попытаться довести ее до кондиции. Эта работа называется калибровкой (подгонкой) модели и состоит в том, что в базовый (грубый) вариант модели, добавляются детали и используются уже известные нам методы улучшения (лекция 2), пока модель не достигнет желаемого качества (необходимой точности). Мы рассмотрели основной метод оценки точности модели. Иногда, по неизвестным мне причинам, его называют методом Тьюринга. Метод дает хорошие результаты, если натурный и модельный эксперименты проводятся в одинаковых условиях. Модель ВС должна обрабатывать то же самое задание, причем в совершенстве модели самого задания мы должны быть абсолютно уверены. Разумеется, весь эксперимент имеет смысл, если параметр tp можно измерить с достаточной точностью. По крайней мере, погрешность измерения должна быть меньше Eдоп.. Метод имеет и два серьезных недостатка. Во-первых, модель нельзя откалибровать для всех условий, в которых предполагается ее использование. Если удается определить рабочее пространство X- и Qпараметров модели, то ее желательно откалибровать только на границах этого пространства. В противном случае исчерпывающие натурные эксперименты сделают просто ненужной саму модель. Второй недостаток заключается в том, что метод изначально предполагает наличие оригинала. Объект, для которого строится модель, должен существовать. При изучении естественных объектов названный недостаток себя не проявляет, однако для искусственных объектов он выглядит весьма устрашающе. Ведь в процессе проектирования модель предшествует объекту. Мы должны построить модель до того, как будет изготовлен сам объект. Значит, сравнивать не с чем! Конечно, можно попробовать метод контрольных (тестовых) задач. Он основан на том, что при определенных условиях и в некоторых режимах можно заранее предсказать реакцию проектируемого объекта или рассчитать ее вручную. Если модель в этих контрольных точках ведет себя в соответствии с прогнозом, значит, она правильная. Названным способом можно верифицировать свою модель, подобно тому, как это делается при тестировании программы. К сожалению, возможности этого метода весьма ограниченны. Наибольшие надежды в данной ситуации возлагаются на третий метод, который можно назвать методом асимптотического ряда моделей. Е.С. Вентцель придумала ему название - спор моделей. Идея метода основана на аксиоме, где говорится, что при бесконечном повышении качества модели она приближается к самому объекту. Следовательно, построив ряд моделей возрастающей точности, мы сможем на основании модельных экспериментов предсказать, какими будут выходные параметры у реального объекта, который еще предстоит построить в будущем. Мы уже говорили о прогнозирующих способностях моделей и теперь собираемся их использовать. Для простоты будем считать, что проектируемый объект характеризуется одним выходным параметром yp, значение которого и предстоит спрогнозировать. На рис. 3 показано, как это сделать. Рис. 3. Идея асимптотического ряда моделей Построим для начала простую, грубую модель М1 проектируемого объекта и, испытав ее, найдем интересующий нас модельный параметр ym1. Построим вторую, более точную модель М2 того же самого объекта. Обычно модель М2 является усовершенствованием модели М1. Опять "измерим" ее выходной параметр ym2. Повторяя этот процесс несколько раз, мы получим ряд моделей: М1, М2, ┘ Мn,... Все они моделируют один и тот же объект, но делают это с разной степенью точности. Чем старше модель, тем выше ее качество, ведь каждая следующая получается улучшением предыдущей. Если при построении моделей мы не наделали ошибок (нет выпадающих точек), то ряд значений ym1, ym2, ┘ ymn, ┘ будет асимптотически приближаться к реальному значению yp, которое теперь легко нанести на график и определить его величину. После чего можно вычислить точность каждой из построенного ряда моделей. В чем же заключается "спор" этих моделей. Подозреваю, что они борются за право быть избранной в качестве рабочей модели. Теперь можно решить вопрос о рабочей модели. Ею должна быть самая простая модель, которая еще обеспечивает требуемую точность модельных экспериментов Eдоп.. Экономичность математических моделей определяется двумя основными факторами: затратами машинного времени на прогон модели; затратами оперативной памяти, необходимой для размещения модели. Обычно именно время моделирования является основным сдерживающим фактором при попытке решать проекты большой размерности. Моделирование, которое длится несколько часов, вряд ли вдохновит разработчика на повторные эксперименты. В лекции 7 мы обсудим понятие "эффективность моделирования" и поговорим о способах ускорения модельных экспериментов. Косвенным показателем экономичности математической модели служит также количество внутренних параметров, используемых в ней. Чем их больше, тем выше требования к оперативной и дисковой памяти, тем длительнее будет их обработка. Наконец, чем больше параметров, тем больше времени потребуется для отыскания сведений об их численных значениях. Универсальность моделей определяет область их возможных применений. Можно построить отдельные модели для насыщенного, активного и запертого транзистора. Можно построить модель транзистора, пригодную для анализа цифровых схем, но совершенно неприемлемую для аналоговых схем. Понятно, что такие модели будут просты и удобны для частных задач, но универсальностью они не обладают. Механизмы продвижения модельного времени Реальные объекты являются динамическими системами. Они функционируют во времени, в них протекают определенные процессы, которые можно представить чередой сменяющих друг друга состояний. Время является непременным атрибутом таких систем и, следовательно, его надо уметь моделировать наряду с другими параметрами. При моделировании реальные параметры объекта заменяются модельными. Это касается и реального времени: в ходе моделирования оно представляется некоторым искусственным (системным) временем, которое обычно называют модельным временем. Существуют два классических способа продвижения модельного времени: "принцип Dt" и "принцип dz". Рассмотрим их особенности на конкретном примере. В реальном объекте протекает некий процесс, представляющий собой цепочку событий E1...E7. Событие - это любое изменение состояния системы, например переключение триггера из "1" в "0" или увеличение содержимого счетчика с приходом очередного счетного импульса. Событие считается мгновенным и по этой причине на временной оси оно отображается точкой. В общем случае события могут появляться в произвольные моменты времени. Принцип Dt весьма прост. Ось времени разбивается на равные временные интервалы (такты) длительностью Dt. Следовательно, модельное время может принимать только дискретные значения, кратные этому временному интервалу: Dt, 2Dt, 3Dt и так далее. Моделирующая программа (моделятор) продвигает модельное время в соответствии с формулой: tm := tm + Dt. На деле это означает, что моделятор является циклической программой, которая в течение одного цикла своей работы обрабатывает один такт модельного времени длительностью Dt. Для управления модельным временем в программе создается соответствующая переменная - счетчик модельного времени T (модельные часы), который просто считает количество выполненных тактов. В начале моделирования этот счетчик сбрасывается в нулевое состояние (T:=0), а затем его содержимое увеличивается на "1" с каждым циклом работы моделятора: (T := T+1). Таким образом, переменная T показывает текущее модельное время, которое движется скачками одинаковой длины Dt (подобно секундной стрелке на часах) от "0" до Tmax. Величина Tmax задается пользователем и определяет конечное время моделирования. Длительность такта Dt также является прерогативой пользователя и для синхронных цифровых устройств обычно составляет половину периода синхронизации. Разрешенные временные отметки никак не привязаны к моментам появления реальных событий в объекте, поэтому последние приходится искусственно передвигать на границы тактов, вынужденно искажая реальную картину. На рис.1 показано, что каждое реальное событие "привязываются" к левой границе того такта, в пределах которого оно в действительности произошло. Понятно, что принятое соглашение может быть другим: реальное событие с тем же успехом можно перенести на конец того такта, в котором это событие произошло. Принцип Dt не позволяет указать истинное положение событий внутри интервала Dt. Поэтому принимается соглашение переносить их на начало (или на конец) того такта, в пределах которого они в действительности произошли. При этом искажается реальная картина событий, теряются причинноследственные связи, последовательно протекающие события становятся параллельными, задержки распространения сигналов в структурных элементах не отображаются. Много процессорного времени тратится на обработку "пустых" интервалов (рис.1). Их число резко возрастает при попытке более точно смоделировать реальные события, так как для этого надо уменьшать длительность такта Dt. Между тем, если в реальном объекте не происходит никаких событий (изменений), то состояние его остается неизменным. А раз так, то нет никакой необходимости моделировать объект в промежутках между соседними событиями - ничего нового мы не получим. Такая модель, ориентированная на события, должна функционировать в неравномерной шкале модельного времени, "перепрыгивая" от одного события к другому. При этом стрелка модельных часов перемещается от текущего события к ближайшему будущему, не останавливаясь в промежутках между ними. Принцип dz реализует только что описанный механизм продвижения модельного времени. Перед началом моделирования счетчик модельного времени сбрасываются в "0" (tm := 0) и задается начальное состояние моделируемого объекта Z0 (рис.1). Затем моделятор отыскивает ближайшее будущее событие (на рис.1 это событие E1) и переводит стрелку модельных часов на время свершения этого события (tm := tm1). Время tm1 и событие E1 становятся текущими. Моделятор имитирует реакцию объекта на событие E1, что может привести к появлению новых событий. Затем модельное время передвигается на ближайшее следующее событие E2 (tm := tm2) и цикл работы моделятора повторяется вновь. Понятно, что "расстояние" между соседними событиями может быть произвольным, поэтому шкала модельного времени получается неравномерной. Таким образом, модельное время, продвигаемое по принципу dz, определяется по простой формуле: tm := tближ , если время вычисляется в абсолютных единицах, tm := tm + Dtближ, если время вычисляется в относительных единицах. В этих формулах tближ - ближайшее будущее событие, по отношению к текущему модельному времени, а Dtближ - "расстояние" между текущим и ближайшим будущим событиями. Во многих работах, посвященных имитационному моделированию больших систем, состояния объекта обозначают через Zi, а скачкообразные (релейные) изменения состояний - через dzi (рис.1). По этой причине событийный механизм управления временем называют принципом dz или принципом особых состояний. Особые состояния - это, на мой взгляд, не очень точное название. На самом деле под ними следует понимать особые точки процесса, в которых происходят события, ведущие к скачкообразному (dzi) изменению состояний объекта. Результаты сравнения рассмотренных принципов управления модельным временем приведены в таблице 1. Принцип Dt Принцип dz Модельное время не "привязано" к реальным событиям. Модельное время "опирается" на события, то Оно движется само по себе, не обращая внимания на есть временные отметки "привязаны" к происходящие в объекте процессы. моментам наступления реальных событий. Шкала модельного времени tm не равномерна. Время движется скачками разной длины, равной "расстоянию" между соседними событиями: Шкала модельного времени tm равномерна. Время tm := tближ движется шагами одинаковой длины Dt : или tm := tm + Dt tm := tm + Dtближ или tm модельные часы; T:=T+1 t - время наступления ближайшего будущего tm - счетчик модельного времени, модельные часы; ближ события; Dt - длительность такта; Dtближ - "расстояние" между текущим ближайшим будущим событиями. и Моменты появления событий при моделировании искажаются. Их приходится "привязывать" к разрешенным Моменты появления событий при временным отметкам Dt, 2Dt, 3Dt, ... , то есть к границам моделировании не искажаются. тактов. Так как время наступления события фактически Время наступления событий не приходится округляется до длительности такта Dt, то возникает округлять до значения, кратного Dt. Точность систематическая погрешность метода, которая может моделирования выше. достигать величины Dt. Нарушаются причинно-следственные связи. Не нарушаются причинно-следственные связи. Адекватность воспроизведения Последовательные события в пределах одного такта последовательных событий не искажается, как неразличимы и будут отображаться как одновременные. бы близко друг к другу они не находились. Временные задержки в структурных элементах не Временные задержки в структурных элементах воспроизводятся моделируются естественным образом. "Холостые" циклы работы моделятора Непроизводительно (вхолостую) тратится машинное время отсутствуют. Эффективность алгоритма гораздо на обработку "пустых" тактов. выше. Реальное, модельное и машинное времена Реальные динамические системы (объекты) работают в реальном (физическом) времени, которое обозначают буквой tp. При моделировании они замещаются некоторыми другими системами, называемыми имитационными моделями. Процессы, протекающие в таких моделях, должны адекватно отображать поведение моделируемых объектов: если события в реальной системе совпадают, то они должны совпадать и в модели, если реальные события следуют в определенном порядке, то он не должен нарушаться и в модели. Можно допустить (и это действительно имеет дело на практике) проведение имитационных экспериментов в реальном масштабе времени, однако чаще процессы в имитационных моделях развиваются в некотором другом искусственном времени. Оно называется системным или модельным временем и обозначается через tm. Это время существует только в ходе экспериментов с имитационной моделью, то есть при ее прогонах. В отличие от реального модельным временем можно управлять: его легко остановить, вернуть на начальное значение, пройти некоторые отрезки времени многократно, двигаясь при этом равномерно или скачками разной длины. Понятно, что для адекватного моделирования между реальным и модельным временем должно быть установлено определенное соотношение - масштаб Mt. Это постоянное число, которое может принимать значения как меньше, так и больше единицы. При Mt = 1 моделирование выполняется в реальном масштабе времени. При Mt < 1 моделирование выполняется в замедленном, а при Mt > 1 - ускоренном темпе. Итак, между названными временами существует пропорциональная зависимость: tm = Mt * tp. В аналоговых вычислительных машинах (теперь это музейная редкость) природа переменных t p и tm одинаковая - обе переменные непрерывные. В цифровых ЭВМ переменная tm может быть представлена только как дискретная величина. В этом случае необходимо выбрать единицу дискретного времени. Ее обозначают через Dt и называют квантом времени (временным шагом). Фактически это разрешающая способность по времени при моделировании: последовательные события, "расстояние" между которыми меньше Dt, будут восприниматься как одновременные. Не следует путать (или отождествлять) модельное время tm с машинным tэвм. Машинное (процессорное) время - это реальное физическое время, которое требуется на прогон имитационной модели. Можно промоделировать поведение какой либо динамической системы в течение нескольких лет (модельное время) всего за несколько секунд (машинное время). Чаще, правда, ситуация оказывается противоположной, например на моделирование работы микропроцессора i8086 на интервале в 100нс требуется более одной секунды машинного времени. Замедление модельного эксперимента относительно реального времени объясняется тем, что чаще всего в качестве инструментальной ЭВМ выступает однопроцессорная система. Это означает, что в любой момент машинного времени может обрабатываться только одно событие. Если в моделируемом объекте развиваются параллельные процессы, то их приходится обрабатывать по очереди. И чем больше одновременных (кратных) событий, тем медленнее выполняется моделирование. Чтобы не нарушалась хронологическая последовательность событий в моделируемом объекте, надо иметь какой-нибудь механизм имитации параллельных процессов. Обычно это делается так: модельное время останавливается ("замораживается") до тех пор, пока одно за другим не будут обработаны все кратные события. Такой механизм называют псевдо-параллельной обработкой, потому что процессы протекают параллельно в модельном времени (оно остановлено) и обрабатываются последовательно в машинном времени. При этом события в модельном времени отображаются как мгновенные (они обозначаются точкой на оси времени tm), тогда как в машинном времени они конечны (моделирование реакции системы на событие требует определенного процессорного времени). Допустим, в реальной динамической системе развиваются два параллельно протекающих процесса. Один процесс может останавливать или активизировать другой. Причинно-следственные связи между событиями показаны пунктирными стрелками. Прежде всего, составляется календарь (очередь) будущих событий, в котором все события сортируются в хронологическом порядке. Счетчик модельного времени (модельные часы) устанавливается в "0" и запускается моделятор. Он выбирает из очереди будущих событий ближайшее (на рис.3 это событие D1) и устанавливает модельные часы на время свершения выбранного события (tm := tD1). Моделируется реакция системы на событие D1. При этом могут появиться новые события, которые моделятор должен включить в календарь событий, соблюдая хронологический порядок. На обработку события D1 будет затрачено определенное машинное время. Таким образом, при обработке события D1 модельное время фиксировано (событие в модельном времени мгновенно), а по координате t эвм рабочая точка непрерывно перемещается, пока не закончится обработка события D1. После этого модельное время "оживает" ("размораживается") и моделятор передвигает стрелку модельных часов на ближайшее следующее событие (на рис.3 это событие C1): tm := tC1. VHDL Сразу отметим, что VHDL - это не САПР и не АСМ, а язык описания аппаратуры, который поддерживается в настоящее время многими системами моделирования, такими как GMVHDL, Active VHDL, Accolade Peak VHDL, OrCAD и др. История появления и развития этого языка во многих отношениях показательна. Язык VHDL появился не на пустом месте. Можно привести довольно длинный список языков описания и моделирования цифровых устройств, например ФОРОС, ОСС-2, DDL, HSL и т.п., которые вроде бы предназначались для тех же целей. Однако все они страдали одним недостатком - моделируя функцию объекта, они не имели развитых средств для описания и контроля временных соотношений в цифровой аппаратуре (ЦА). Особенно остро это ощущалось при разработке сверхскоростных интегральных схем (VHSIC - Very High Speed Integrated Circuits). Схема правильно работает на умеренных частотах. Но на высоких частотах синхрони-зации появляются сбои, и работоспособность ЦУ нарушается. Моделированием на существующих до сих пор языках обнаружить эти предельные для аппаратуры частоты не удавалось. Военное ведомство США, которое финансировало программу VHSIC по разработке сверхскоростных ИМС, решилось выступить в 1983 году в роли спонсора при разработке такого языка. Он получил название VHDL (Vhsic Hardware Description Language) - язык описания аппаратуры на базе сверхскоростных интегральных схем. Разработку языка VHDL поддержал институт инженеров по электротехнике и радиоэлектронике (IEEE), и в конце 1987 года этот язык был принят в качестве стандарта (стандарт IEEE 1076). В окончательную редакцию языка VHDL (1993 год) вошли предложения и рекомендации многих известных специалистов в области вычислительной техники и ведущих фирм, занятых разработкой САПР электронной аппаратуры. Поэтому можно говорить, что язык VHDL отражает общее мнение о том, какими характеристиками должен обладать эффективный стандартный язык описания аппаратуры. Язык VHDL имеет развитую обще алгоритмическую базу, заимствованную от языка программирования PASCAL. Он содержит тщательно проработанные конструкции для поведенческого (функционального) и структурного представления, а также средства для документирования проектов. Высокоуровневые описания могут комбинироваться с низкоуровневыми принципиальными схемами. Другими словами, это многоуровневый язык, поддерживающий иерархическое проектирование. Язык имеет средства для описания протекающих во времени процессов, для задания временных задержек на элементах. С его помощью можно описать временные диаграммы на входах моделируемой схемы и взаимодействия между отдельными устройствами через системную шину. Министерство обороны США обязало своих поставщиков ИМС представлять в составе документации на новые изделия VHDL-модели и тестирующие их VHDL-векторы. Интерес к языку VHDL огромен. В США создана VHDL Users Group, в Европе - VHDL FORUM группы, которые занимаются внедрением этого языка. В бывшем СССР также существовала подобная ассоциация. С внедрением языка VHDL разработчики аппаратуры могут "экспериментально" прорабатывать на своих компьютерах идеи по проектированию цифровой аппаратуры на архитектурном уровне и немедленно видеть результаты своих экспериментов. Им больше не придется ждать детализации своих проектов вплоть до уровня логических вентилей, чтобы получить возможность практической оценки своих идей. Им больше не придется ждать момента, когда будет уже слишком поздно возвращаться назад, чтобы внести фундаментальные изменения в общую архитектуру проекта без громадных потерь времени и средств. Теперь внесение даже серьезных изменений в проект в малой степени повлияют на его стоимость и сроки подготовки производства. В отличие от других языков описания и моделирования аппаратуры, язык VHDL не навязывает разработчику конкретный метод проектирования. Он волен выбрать любой способ проектирования с использованием как поведенческих, так и структурных представлений компонентов, можно применить как восходящее так и нисходящее проектирование или комбинировать их. Язык VHDL позволяет сначала создать абстрактное описание функций, а затем (по мере проработки проекта) осуществлять их детализацию, вплоть до того момента, когда для них станут ясными структурные решения. Другие языки не могут похвастаться столь широкими возможностями. Системы моделирования, поддерживающие язык VHDL, обычно включают в себя компилятор языка VHDL, отладчик исходного кода и интерактивную подсистему цифрового моделирования. Некоторые АСМ дополнительно включают схемный редактор или интегрируются с другими САПР, имеющими такой редактор. Например, можно создать принципиальную схему в пакете OrCAD и специальная программа конвертирует графическое описание в VHDL-код. Одна из самых современных систем моделирования на языке VHDL, разработанная корпорацией ALDEC, носит название Active VHDL 3.3. Для первоначального знакомства с языком VHDL можно рекомендовать "игрушечную" АСМ, созданную фирмой Green Mountain Computing Systems. Она называется GMVHDL, работает под DOS и занимает всего около 1Mb дисковой памяти.