Включение новой модели сопровождается появлением новых фазовых переменных. Очевидно, что для продолжения анализа должны быть определены значения этих переменных в момент t вкл включения модели. Расчет этих значений целесообразно выполнять повторным интегрированием подсистемы дифференциальных уравнений включаемой модели на интервале [0, t вкл].
8.6. Методы анализа логических и функциональных схем консультируемых проблем
Методы решения логических уравнений. Анализ переходных процессов в логических схемах консультируемых проблем выполняют с помощью асинхронных моделей (6.93), т. е. на основе асинхронного моделирования. К началу очередного такта ti известны значения векторов внутренних Vi=(v1i, v2i, ..., vni) и входных Ui переменных. Подставляя Vi и Ui в правую часть выражений (6.94), получаем новые значения v'ki, которые примут внутренние переменные в моменты времени ti+τk, где τk — внутренняя задержка распространения сигнала vk в соответствующем элементе схемы. Далее переходим к следующему такту, в котором вычисления по (6.94) повторяются со значениями векторов V и U, соответствующими новому моменту времени ti+1=t1+1 (напомним, что время измеряется в количестве тактов). Асинхронное моделирование называют потактовым.
Если длительность такта превышает задержку в некоторых элементах, т. е. для некоторых k имеем τk≈0, то в модели (6.94) последовательностной схемы появляются отдельные неявные относительно vk выражения, а это приводит к необходимости решать подсистемы логических уравнений в пределах каждого такта. Если задержки не учитывать во всех элементах, то имеем синхронную модель (6.93), с помощью которой анализируются установившиеся состояния в схеме и могут определяться статические и динамические риски сбоя. Синхронная модель — это система логических уравнений
V=F(V,U). (8.103)
Для синхронного моделирования (решения систем логических уравнений) используются итерационные методы простой итерации и Зейделя.
Алгоритм метода простой итерации при решении (8.103) совпадает с алгоритмом асинхронного моделирования при τk = 1. На первой итерации (такте) выбирается начальное приближение V0 и подставляется в правую часть (8.103), при этом определяется новое приближение V1. На второй итерации рассчитывается V2 при подстановке V1 в правую часть (8.103) и т. д. Условием прекращения итераций является или совпадение результатов двух последних итераций Vi = Vi-1, где i — номер итерации, или выполнение равенства i= imаx, где imаx — предельно допустимое число итераций. В последнем случае делается заключение о несходимости вычислительного процесса из-за генерирования колебаний в моделируемой схеме.
Итерации по методу Зейделя отличаются от простых итераций тем, что новое значение k-гo элемента вектора Vi сразу же после его вычисления на i-й итерации заменяет старое значение и используется для вычисления новых значений следующих элементов вектора Vi на той же i-й итерации, т. е.
vk, i = F(v1i, v2i..... vk-1,i, vk, i-1 ,..., vn. i-1).
В правильно составленной комбинационной схеме каждому входному вектору U соответствует одно определенное решение V* системы логических уравнений (8.103). Корень V* может быть найден при произвольном начальном приближении как методом простой итерации, так и методом Зейделя. Однако в последовательностной схеме система уравнений (8.103) имеет несколько решений, соответствующих различным устойчивым состояниям схемы. Обычно требуется найти то состояние, в которое переходит схема из заданного исходного состояния при заданном входном воздействии. Пусть заданному исходному состоянию соответствует значение Vисх вектора V. Тогда для решения сформулированной задачи рекомендуется выбрать начальное приближение V0 = Vисх и, кроме того, в методе Зейделя необходимо привести в соответствие последовательности вычислений по уравнениям модели и прохождения сигналов в схеме. Последнее условие выполняется с помощью алгоритмов ранжирования, что способствует определению искомого корня за малое число итераций. Например, для комбинационной схемы решение получается за одну итерацию.
Ранжирование логических схем и уравнений. Алгоритмы ранжирования комбинационных схем аналогичны алгоритмам ранжирования электронных схем в методе однонаправленных моделей. Ранг 0 присваивается входным цепям, по которым поступают сигналы на схему извне. Ранг r присваивается элементам, все входы которых ранжированы и старший из рангов равен r —1. Ранг r присваивается также выходам элементов ранга r. После этого логические уравнения упорядочиваются по значениям рангов соответствующих элементов схемы.
В последовательностных схемах ранжирование может быть выполнено таким же образом после преобразования схемы в комбинационную с помощью разрывов обратных связей. Ранжирование последовательностей схемы начинается так же, как и комбинационной, но проранжировать таким образом удается только часть элементов. Далее нужно выполнить разрывы контуров обратной связи. Контуры обратной связи ищутся среди элементов, которые проранжировать не удалось. Выбирается любой из этих элементов, например А, к нему добавляется элемент В, выход которого связан с не имеющим ранга входом элемента А. Очевидно, что такой элемент В имеется, иначе элемент А был бы проранжирован. Далее таким же образом присоединяется элемент С к элементу В и т. д., пока в цепочке из элементов А, В, С... не встретится повторно какой-либо из элементов, уже включенных в цепочку. Эта ситуация означает обнаружение контура обратной связи. Далее одна из связей в контуре обратной связи обрывается. Входы элементов от разорванных связей, называемые псевдовходами, получают ранг 0. После этого ранжирование возобновляется. Операции выделения контуров и ранжирования повторяются до тех пор, пока в схеме не останется непроранжированных элементов.
Повышение эффективности моделирования логических и функциональных схем. Для повышения эффективности решения уравнений методом Зейделя целесообразно использовать диакоптический подход, в рамках которого итерации выполняются отдельно по фрагментам логической схемы. Введем следующие понятия: составной элемент — множество контуров обратной связи, имеющих попарно общие связи; фрагмент логической схемы — составной элемент или комбинационная схема, состоящая из взаимосвязанных логических элементов, не вошедших в составные элементы.
Очевидно, что после, обнаружения контуров обратной связи нетрудно найти составные элементы и, следовательно, представить моделируемую схему, состоящую из фрагментов. В такой схеме нет межфрагментных обратных связей и, следовательно, система логических уравнений может быть решена путем однократного обращения к проранжированным подсистемам уравнений. При этом решение подсистем комбинационных фрагментов будет выполнено за одну итерацию Зейделя, а решение подсистем составных элементов — за число итераций, определяемое особенностями данного составного элемента и способом разрыва в нем обратных связей. Это число итераций можно уменьшить, если осуществить разрывы всех контуров обратной связи в минимальном количестве межэлементных связей. Пофрагментное выполнение итераций существенно сокращает общие затраты машинного времени.
Другим способом повышения эффективности является параллельное моделирование, основанное на том, что для представления логической переменной достаточно k разрядов, где k=1 в двузначном алфавите и k =2 в трехзначном. Тогда моделирование одной и той же схемы можно выполнять одновременно для т=s/k различных наборов входных сигналов, где s — количество разрядов в разрядной сетке ЭВМ. Подобное параллельное моделирование эффективно используется при синтезе тестов для проверки логических схем, где требуется определить реакцию схемы на большое количество входных тестовых наборов.
Наиболее общим направлением повышения эффективности математического обеспечения как синхронного, так и асинхронного моделирования является учет событийности.
При анализе логических и функциональных схем событием называют изменение состояния любого элемента или, что то же самое, изменение значения любой переменной состояния.
В процессе событийного моделирования вычисления производят только по уравнениям активных элементов, т. е. таких элементов, на входах которых на данном такте или итерации произошли события.
Рассмотрим алгоритм асинхронного событийного моделирования. В алгоритме используются списки текущих и будущих событий. Все события привязаны к моментам дискретного модельного времени. Ссылки на события, происходящие в текущий момент, находятся в списке текущих событий, а ссылки на те события, наступление которых можно предвидеть, помещаются в список будущих событий. Моделирование текущих событий означает обращение к моделям соответствующих элементов, после чего становятся известными изменяющиеся выходные переменные и задержки в их изменении по отношению к текущему моменту модельного времени. Эти изменения суть события, и сведения о них заносятся в список будущих событий. После того как список текущих событий полностью отработан, модельное время увеличивается и соответствующая часть списка будущих событий становится списком текущих событий. Так как в сложных схемах на каждом такте активными являются не более нескольких процентов элементов, то учет событийности позволяет существенно уменьшить затраты машинного времени.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |


