Ad24.ru - Advertising Network



Я:
Результат
Архив

МЕТА - Украина. Рейтинг сайтов



Союз образовательных сайтов
Главная / Предметы / Экономико-математическое моделирование / Математические модели в программе логического проектирования


Математические модели в программе логического проектирования - Экономико-математическое моделирование - Скачать бесплатно


помощью  многократного  применения  законов   инверсии
снимаются общие  и  групповые  отрицания  так,  чтобы  отрицания  оставались
только у одиночных переменных .
      2-й шаг - с помощью распределительных законов производится  переход  к
одной из нормальных форм функции.
      3-й  шаг  -  производится  преобразование  членов  ДНФ   или   КНФ   в
соответствующие конституенты с помощью правила развёртывания .
      Пользуясь сформулированными правилами и таблицей 1.1 для полусумматора
записываем :
                                 p(x1,x2) = x1x2
                                        s(x1,x2)=         x1x2         +x1x2
                      СДНФ     (1.3)
                                 p(x1,x2) = (x1+ x2) (x1 +x2) (x1+x2)
                                   s(x1,x2)   =   (x1+    x2)    (x1    +x2)
               СКНФ     (1.4)
      3-й этап синтеза  -  анализ  и  оптимизация  (минимизация)  логических
функций являются весьма важными компонентами синтеза цифровых автоматов  без
памяти.  Поэтому методы анализа и оптимизации будут рассмотрены отдельно .
      4-й этап синтеза - к построению  функциональной  схемы  синтезируемого
узла в принципе можно переходить сразу же, как только  становится  известным
аналитическое описание его работы.   Построение  схемы  основано  на  прямом
замещении  элементарных  произведений,  сумм  и   отрицаний   соответственно
конъюнкторами, дизъюнкторами и инверторами. Пользуясь  соотношениями  (1.3),
(1.4) можем построить для полусумматора две функциональные схемы .



                             [pic]а) СДНФ
      [pic]б) СКНФ
           Рис. 1.1 Функциональная схема полусумматора .
      С функциональной точки зрения обе схемы полностью  тождественны,  хотя
по структурной сложности они значительно различаются .

             1.2. Общие сведения о минимизации логических функций
      Однозначность  соответствия  формы  логической  функции  и  параметров
реальной электронной схемы приводит  к  необходимости  оптимизации  функции,
т.е. к необходимости получения наилучшего её вида по выбранному критерию.  В
общем случае речь должна идти об оптимизации функции по  таким  показателям,
как  быстродействие,  надежность  (достижение  их   максимума),   количество
потребного  оборудования,  вес,   габариты,   энергопотребление,   стоимость
(достижение их минимума) и т.п. Однако решение этой  задачи  в  общем  виде-
достаточно трудное дело, тем более что некоторые  из  указанных  показателей
находятся в известном  противоречии.  Например,  увеличение  быстродействия,
как правило, достигается за счет  параллельной  организации  работы  данного
устройства, но это ведёт к увеличению оборудования, а значит,  к  уменьшению
надежности и увеличению  стоимости.  Поэтому  на  практике  обычно  решается
частная задача оптимизации по одному из критериев. Чаще всего  это  делается
по  минимуму  потребного  оборудования,  так  как  при  этом   автоматически
решаются задачи получения минимальных  габаритов,  веса,  энергопотребления,
стоимости.  Такая  частная  задача  оптимизации  логической  функции   носит
название минимизации.
      Таким образом, возникает задача  нахождения  из  всех  возможных  форм
логической функции  её  так  называемой  минимальной  формы,  обеспечивающей
минимум  затрат  оборудования  при  построении  синтезируемого  узла,   если
имеется заданный набор логических элементов (НЕ,  И,  ИЛИ)  с  определенными
техническими характеристиками (например, максимально возможное число  входов
у элементов И,  ИЛИ и др.). Нетрудно заметить, что в рамках нормальных  форм
минимальной  будет  такая  разновидность   функции,   которая   состоит   из
наименьшего количества членов при наименьшем, по  возможности,  общем  числе
символов переменных.
      Из большего числа различных приемов и методов  минимизации  рассмотрим
три наиболее показательных, типовых:
      расчетный метод ( метод непосредственных преобразований);
      2 расчётно-табличный метод (метод Квайна-Мак-Класки);
       табличный метод (метод Вейча-Карно).
        Исходной  формой  для  любого  из  этих  методов  является  одна  из
совершенных  форм-СДНФ  или  СКНФ.   Это   обстоятельство   практически   не
накладывает особых ограничений,  поскольку  переход  от  произвольной  формы
функции  к  её  совершенным  формам,  как  это  было   показано   выше,   не
представляет  принципиальных  трудностей.  В  общем  случае  при  любом   из
вышеупомянутых методов минимизация производится в три этапа.
      1-й этап- переход от совершенной Д(К)НФ  к  сокращенной  Д(К)НФ  путем
производства всех возможных склеиваний друг с другом  конституент,  а  затем
всех производны членов более низкого ранга. Таким образом,  под  сокращенной
формой будем  понимать  дизъюнктивную  (или  конъюнктивную)  форму  функции,
членами которой служат только изолированные  (несклеивающиеся)  элементарные
конъюнкции (или дизъюнкции).  Члены  сокращенной  Д(К)НФ  в  алгебре  логики
носят название простых импликант  (имплицент).  Не  исключен  случай,  когда
СД(К)НФ тождественно равна сокращенной форме рассматриваемой функции.
      2-й этап- переход от сокращенной  нормальной  к  тупиковой  нормальной
форме.   Тупиковой   будем   называть   такую    нормальную    дизъюнктивную
(конъюнктивную) форму функции, членами которой являются  простые  импликанты
(имплиценты), среди которых нет  ни  одной  лишней.  Термин  “лишний”  здесь
имеет прямое значение. Лишним будем называть такой  член  функции,  удаление
которого не влияет на значение истинности  этой  функции.  Возможны  случаи,
когда в сокращенной форме не оказывается лишних  членов.  Тогда  сокращенная
Д(К)НФ тождественно равна тупиковой форме.  Не  исключены  случаи  появления
нескольких тупиковых форм из одной сокращенной. Название  “тупиковая  форма”
показывает,  что  дальнейшая  минимизация  в  рамках  нормальных  форм   уже
невозможна.
      3-й этап - переход от тупиковой (минимальной  среди  нормальных  форм)
формы  функции  к  её  минимальной  форме.  Этот  этап,  называемый   обычно
факторизацией, уже не является регулярным, как  два  предыдущих,  и  требует
определенной  сноровки,  интуиции  и  опыта.  Здесь  подразумевается   поиск
возможностей упрощения функции методом  проб  и  испытаний.  Для  уменьшения
числа  операций  отрицания  следует  применять  законы   инверсии,   а   для
уменьшения числа конъюнкций и  дизъюнкций  -  распределительные  законы.  На
этом же этапе решается и вторая  задача-  приведение  логических  функций  к
виду, удобному для применения  реальных  логических  элементов,  которые  на
практике имеют определенные ограничения по количеству входов и  по  величине
допустимой нагрузки. Различные методы минимизации отличаются друг  от  друга
путями и средствами  практической  реализации  того  или  иного  этапа.  При
минимизации  сложных  функций  чаще  всего  ограничиваются   двумя   первыми
этапами,  т.е.  получением  самой  простой  среди   тупиковых   ДНФ   (КНФ).
Рассмотрим каждый из вышеназванных методов.

                      1.3. Расчетный метод минимизации
      Пусть   задана   некоторая   функция   в   СДНФ,   которую   требуется
минимизировать:
      fсднф = x1 x2 x3 + x1 x2 x3 + x1 x2 x3      ( 1.5)
      1-й  этап  -  производим  все  возможные  склеивания  членов  заданной
функции. В общем случае эта процедура осуществляется за несколько  шагов,  в
результате каждого из которых происходит понижение ранга склеиваемых  членов
на единицу. На первом шаге склеиваются конституенты:
                   fпр = x1 x3 + x2 x3  + x1x2         (1.6)
      Затем производится второй шаг  испытания  на  склеивание  всех  членов
функции в промежуточной форме. Рассматривая соотношение  (1.6),  убеждаемся,
что все  его  члены  изолированы.  Следовательно,  полученная  промежуточная
форма является сокращенной ДНФ исходной функции  (сДНФ).  Отметим,  что  все
конституенты функции (1.5) участвовали хотя бы в одном  склеивании,  поэтому
ни в сокращенной, ни тем более в тупиковой форме членов максимального  ранга
не будет:
      fсднф = x1x3 + x2x3 + x1x2                (1.7)
      2-й этап - осуществляется проверка каждой простой импликанты в сДНФ  с
целью выявления и удаления лишних членов. Проверка состоит в  следующим.  На
значение истинности функции влияет только та импликанта, которая сама  равна
1. любая импликанта становится равной 1 лишь на одном,  вполне  определенном
наборе значений истинности своих аргументов. Но если именно на  этом  наборе
суммы остальных членов тоже обращается в 1,  то  рассматриваемая  импликанта
не влияет на значение истинности функции даже в  этом  единственном  случае,
т.е. является лишней. Применим это правило к проверке членов функции в  сДНФ
(1.7):
      1) x1x3 = 1 при x1  = 0, x3  = 1; сумма остальных членов  на  этом  же
наборе равна x21 + 1x2 = 1; следовательно, проверяемый член - лишний;
      2) x2x3 = 1 при x2 = 0, x3 = 1; сумма  остальных  членов  на  этом  же
наборе равна x11 + x10 = x1 ; следовательно, проверяемый  член  не  является
лишним;
      3) x1x2 = 1 при x1 = 0, x2 = 1; сумма  остальных  членов  на  этом  же
наборе равна 1x3 + 0x3 = x3 ; следовательно, проверяемый  член  не  является
лишним.
      Таким образом, отбросив лишний член, получим  тупиковую  дизъюнктивную
нормальную форму (ТДНФ) исходной функции:
      fтднф = x1x2 + x2x3      (1.8)
      Более подробно остановимся на случае, когда лишних членов  оказывается
больше,  например  два.  Это  не  означает,  что  оба  лишних  члена   можно
отбросить, так  как  каждый  из  них  проверялся  при  вхождении  другого  в
оставшуюся сумму. Следовательно, отбросить наверняка можно  только  один  из
них, а затем нужно снова произвести проверку возможности отбросить и  второй
член.
      Следует также остановится подробнее и на случае, когда исходной формой
является СКНФ. Методика проведения первого этапа  при  этом  практически  не
изменяется, но реализация второго этапа имеет свою  специфику.  На  значение
истинности  функции  в  конъюнктивной  нормальной  форме  влияет  только  та
имплицента, которая сама равна  0.  Но  любая  имплицента  становится  нулем
только при одном наборе своих аргументов.  Следовательно,  правило  проверки
сокращенной КНФ на лишние члены  нужно  сформулировать  таким  образом:  для
каждого члена сокращенной КНФ находится такой набор значений истинности  его
переменных, который обращает данный член в 0.  Далее  определяется  значение
истинности  произведения  остальных  членов  на   этом   же   наборе.   Если
произведение также равно 0, то проверяемый член - лишний.
      3-й этап - упрощаем ТДНФ или ТКНФ функции. Применив закон  инверсии  к
первому члену функции в ТКНФ, получим минимальную форму (МФ):
      fмф = x1x2(x2 + x3)
      для  аппаратурной  реализации  которой  нужной  всего   семь   условий
транзисторов.  Интересно,  что  преобразование  в  минимальную  форму   ТДНФ
функции получается более сложным путем:
      fтднф = x1x2 + x2x3 = (x1 + x2)(x2 + x2)(x1 + x3)(x2 +  x3)  =  (x1  +
x2)(x1 + +x3)(x2 + x3) = fскнф
      Переход от сКНФ к МФ нетрудно осуществить через  ТКНФ,  как  это  было
сделано выше.



                  1.4. Расчётно-табличный метод минимизации
      Минимизация этим способом отличается от расчётной  минимизации  только
методикой  выявления  лишних  членов  в  сокращённой  Д(К)НФ.  Данный  метод
предложен американским ученым У.Квайном. Первый и третий  этапы  минимизации
в этом случае будут идентичны соответствующим этапам при  расчетном  методе.
Нахождение тупиковой формы (второй этап) производится с помощью  специальной
таблицы (отсюда название метода), значительно упрощающей обнаружение  лишних
членов.  рассмотрим  методику  расчетно-табличной  минимизации  на  том   же
примере,  который  разбирался  нами  при   расчетном   способе,   что   дает
возможность более четко показать как общие черты обоих  методов,  так  и  их
различия.
      Итак, пусть требуется минимизировать функцию (1.5), заданную в СДНФ:
      fсднф = x1x2x3 + x1x2x3 + x1x2x3 + x1x2x3
      1-й этап - не отличается по содержанию от  1-го  этапа  при  расчетном
методе. Поэтому сразу же запишем исходную функцию в сДНФ:
      fcднф = x1x3 + x2x3 + x1x2
      2-й этап - для выявления возможных лишних  членов  в  сД(К)НФ  функции
построим таблицу, входными величинами в которой будут конституенты  -  члены
СД(К)НФ и импликанты (имплиценты) - члены сокращенной Д(К)НФ.  Поэтому  чаще
всего  такую  таблицу  называют  конституентно-импликантной   (имплицентной)
матрицей; применяются также названия: таблица  Квайна  и  таблица  покрытий.
Она  имеет  число  строк,  равное   количеству   импликант   (имплицент)   в
сокращенной  Д(К)НФ.  Строки  делятся  на  столбцы,  число  которых  берется
равным  количеству  конституент  в   СД(К)НФ.   Поэтому   в   горизонтальные
(строчные) входы таблицы записываются все простые импликанты(имплиценты),  а
в вертикальные входы - все члены совершенной  нормальной  формы  (см.  табл.
1.3).
                                                                 Таблица 1.3
                                                             Таблица Квайна.
|Импли-      |Конституенты                                                 |
|канты       |x1x2x3        |x1x2x3        |x1x2x3        |x1x2x3        |
|x1x3        |(             |              |(             |              |
|x2x3        |(             |              |              |(             |
|x1x2        |              |(             |(             |              |

      Процесс минимизации начинается с последовательного составления  каждой
импликанты со всеми  конституентами.  Если  какая-либо  импликанта  является
собственной  частью  некоторой  конституенты,   то   в   табличной   клетке,
соответствующей обоим членам, проставляется любой условный  значок  (так,  в
табл.1.3 клетка перечеркивается  крест-накрест).  Таким  образом,  значки  в
каждой строке заполненной таблицы показывают, какие члены совершенной  формы
функции  появятся  при   развертывании   данной   импликанты   в   семейство
конституент. В идеальном случае каждая импликанта развертывалась  бы  только
в “свои” конституенты, и в каждом столбце тогда  находился  бы  только  один
условный значок. Практически этого не происходит, и очень часто  одна  и  та
же конституента  покрывается  в  таблице  несколькими  импликантами.  Задача
состоит  в  том,  чтобы  вычеркиванием   некоторых   (лишних!)   импликантов
попытаться оставить в каждой колонке  только  значок  или  по  крайней  мере
минимальное  число  импликант,  покрывающих  все  конституенты.  Практически
обычно по таблице вначале находится так называемое ядро  функции,  состоящее
из трех импликант (имплицент), каждая из которых  осуществляет  единственное
покрытие некоторой конституенты и поэтому никоим образом не может  оказаться
в числе лишних.
      Возвращаясь к рассматриваемому  примеру  (см.табл.1.3),  констатирует.
что в ядро функции входят импликанты x1x2  и x2x3.  Следовательно,  остается
только проверить возможность вычеркивания импликанты x1x3.  Ее  вычеркивание
не нарушает условия о наличии хотя бы одного  покрытия  каждой  конституенты
любой  импликантой.  Следовательно,   импликанта   x1x3   является   лишней.
Тупиковая дизъюнктивная нормальная форма исходной функции
      fтднф = x1x2 + x2x3        (1.8*)
      Сравнение показывает идентичность соотношений (1.8) и  (1.8*),  что  и
должно было получиться.
      3-й этап - по своему  содержанию  не  отличается  от  соответствующего
этапа  при  расчетном  методе,  поэтому  сразу  запишем  минимальную   форму
исходной функции:
      fмф = x1x2(x2+x3)

                      1.5. Табличный метод минимизации
      При относительно небольшом числе переменных (R((6)  весьма  удобным  и
наглядным является графическое представление логических функций в  виде  так
называемых карт минтермов.  Наиболее  распространенной  их  формой  являются
карты Карно. На рис.1.2 показаны карты Карно для функций R=2, 3, 4 и 5.



      Рис.1.2 Карты Карно и расположение в них минтермов  для  функций  двух
(а), трёх (б), четырёх (в) и пяти (г) переменных.
      Карта Карно содержит q=2R  клеток, причем каждой клетке  соответствует
один из q минтермов. Для иллюстрации этого на рис. 1.2 (a-в) в клетках  карт
Карно записаны соответствующие им минтермы. Если  требуется  представить  на
карте Карно логическую функцию, заданную в виде СДНФ, то  в  клетках  карты,
соответствующих минтермам, входящим в СДНФ,  ставятся  1.  Остальные  клетки
остаются   незаполненными   или   заполняются   0.   Примеры    графического
представления функций, заданных в виде СДНФ, показаны на рис.1.3(a-в).



      Рис.1.3  Примеры  графического  представления  логических  функций   с
помощью   карт   Карно:   а)   F=AB+AB;   б)   F=ABC+ABC+ABC+ABC;         в)
F=ABCD+ABCD+ABCD+ABCD.
      Каждой клетке карты поставлен также в  соответствии  один  из  наборов
логических переменных, который определяется номером  столбца  и  строки,  на
пересечении  которых  расположена  клетка.   Например   на   рис.1.3(в)   на
пересечении столбца с номером АВ=01 и строки  с  номером  CD=10  расположена
клетка, соответствующая  набору  переменных  ABCD  =  0110  (минтерм  ABCD).
Благодаря  этому  удобно  представлять  на  карте  Карно  функции,  заданные
таблицами истинности. Если при i-м  наборе  переменных  значение  функции  в
таблице истинности F=fi=1, то в соответствующей клетке карты Карно  ставится
1 (т.е. соответствующий минтерм mi входит в СДНФ функции). Если  же  F=fi=0,
то клетка оставляется пустой либо ставится 0 (т.е.  соответствующий  минтерм
не входит в СДНФ функции). Таким образом,  между  представлением  функции  в
табличной (таблица истинности), алгебраической (в виде сДНФ)  и  графической
(на карте Карно) формах имеется однозначное соответствие.
      Логическая функция  F  на  карте  Карно  представляется  совокупностью
клеток, заполненных  1,  инверсия  функции  F  представляется  совокупностью
пустых клеток (или заполненных 0). На рис.1.3(a) дано представление  в  виде
карты Карно  функции  Исключающее  ИЛИ  F6  в  соответствии  с  её  таблицей
истинности.  Её  инверсия   F6=F9=AB+AB   представляется   на   этой   карте
совокупностью пустых клеток.
      Для логических функций с числом переменных R(6 карты Карно  становятся
громоздкими (число клеток q(64) и не удобными для практического  применения.
Поэтому использование карты Карно можно рекомендовать при  числе  переменных
* R((6.
      Рассмотренные выше логические  функции  были  определены,  т.е.  имели
определённое значение fi=0 или fi=1, при всех возможных  наборах  логических
переменных. Такие логические функции называются полностью определёнными.
      Кроме них имеется большой класс функций, значение  которых  определено
только для части логических наборов  переменных.  Такие  функции  называются
частично определенными. Наборы переменных, для которых  функция  определена,
называются рабочими, а для которых не определена -  безразличными.  Значения
функции, соответствующие безразличным наборам, будем обозначать  в  таблицах
истинности и на картах Карно знаком “Х”. На практике безразличными  являются
такие наборы значений логических  переменных,  которые  при  работе  данного
конкретного  цифрового   устройства   никогда   не   реализуются.   Частично
определённую функцию можно сделать  полностью  определенной  (доопределить),
приписав безразличным наборам  какие-либо  значения  функции:  fi=0  или  1.
Обычно доопределение функции проводится таким образом,  чтобы  упростить  её
алгебраическое выражение и практическую реализацию.
      Логическую функцию большого числа переменных можно представить в  виде
композиции функций меньшего числа переменных
      F(A,B,C,..., N) = AF0(O,B,C,..., N) + AF1(1,B,C,..., N)
      где  А  -  выделяемая   переменная,   функции   F0(0,B,C,...,   N)   и
F1(1,B,C,..., N) получаются из функции F подстановкой значений А=0 и А=1.  В
качестве выделяемой может использоваться любая переменная. Например:
      F = AB+ACD+DE = A(B+DE)+A(CD+DE) = AF1+AF0, F= AB+ACD+DE = D(AB+AC)  +
D(AB+E)              =               DF(1               +               DF(0

      Процесс  выделения  более  простых  составляющих  функции   называется
декомпозицией. Полученные  функции  F0,  F1  могут  подвергаться  дальнейшей
декомпозиции. Таким образом, сложную  логическую  функцию  можно  выполнить,
последовательно реализуя композицию более простых функций, полученных  путем
декомпозиции.



         2. Возможности программы моделирования Electronics Workbench

                 2.1 Общие сведения об Electronics Workbench
      Electronics Workbench канадской фирмы Interactive  Image  Technologies
разработана достаточно давно и в Росси известны версии 3.0, 4.0,  4.1,  5.0,
5.12    Professional    Edition.    Программа    непрерывно     развивается,
совершенствуется.  Растет  библиотека  компонент,  измерительных   приборов,
моделирующих функций. Версии  3.0,  4.0  были  16  разрядные,  а  начиная  с
Electronics  Workbench  4.1  -  32-разрядные.  И  хотя  в  последней  версии
занимаемый объем на диске вырос  с 1.4 Мбайт в версии  3.0  до  16  Мбайт  в
версии 5.12, однако эта программа остается одной из  компактных  программ  (
обычные требования  подобных  программ  80  -150  Мбайт).  Во  всех  версиях
остается неизменным (почти)  дружественный  интуитивный  интерфейс,  простой
мощный графический редактор  электрических  схем,  прекрасная  интеграция  с
Windows системой. Так как функции логического конвертора  поддерживаются  во
всех  версиях  Electronics  Workbench,  поэтому   в   основу   лабораторного
практикума  положена версия  Electronics  Workbench  4.1,  не  предъявляющая
практически никаких требований к компьютеру и прекрасно работающая  даже  на
компьютерах начиная с 386.


      [pic]

      Рис.2.1 Экран Electronics Workbench.

       Экран  программы  Electronics  Workbench,  показанный  на  (рис.2.1),
напоминает рабочий стол регулировщика аппаратуры, что  вполне  соответствует
названию (Electronics Workbench - дословно - рабочий стол  электронщика).  В
отличие  от   других  программ  схемотехнического  моделирования,   на   нем
изображаются  измерительные  приборы  с  органами  управления,   максимально
приближенными  к  реальности.  Пользователю   не   надо   изучать   довольно
абстрактные (хотя  и  не  очень  сложные)  правила  составления  заданий  на
моделирование.
      Достаточно  в  схему  ввести  двухканальный  осциллограф  и  генератор
сигналов – и программа сама сообразит, что  нужно  анализировать  переходные
процессы. Если же на схеме разместить  анализатор  частотных  характеристик,
то  будет  рассчитан  режим  по  постоянному  току,  выполнена  линеаризация
нелинейных  компонентов  и  затем  проведен  расчет  характеристик  схемы  в
частотной области. Диапазон анализируемых  частот,  коэффициент  усиления  и
характер  оцифровки  данных  (в  линейном  или   логарифмическом   масштабе)
устанавливают на лицевой панели с помощью мыши.
      Чтобы начать  моделирование,  достаточно  щелкнуть  на  переключателе,
расположенном в верхнем правом  углу  экрана.  После  этого  на  устройствах
индикации цифровых вольтметров и амперметров  будет  зафиксирован  режим  по
постоянному току, на экране измерителя нарисованы  частотные  характеристики
(амплитудно- или фазочастотные), а на экране осциллографа  будут  непрерывно
изображаться эпюры напряжений  до  тех  пор,  пока  не  заполнится  буферная
память, а  затем  можно  прекратить  моделирование  или  обнулить  память  и
продолжить наблюдения.
      Ниже   приведены   характерные   особенности   программы   Electronics
Workbench.
      1)  Схема  изображается  в  графическом 



Назад


Новые поступления

Украинский Зеленый Портал Рефератик создан с целью поуляризации украинской культуры и облегчения поиска учебных материалов для украинских школьников, а также студентов и аспирантов украинских ВУЗов. Все материалы, опубликованные на сайте взяты из открытых источников. Однако, следует помнить, что тексты, опубликованных работ в первую очередь принадлежат их авторам. Используя материалы, размещенные на сайте, пожалуйста, давайте ссылку на название публикации и ее автора.

281311062 © il.lusion,2007г.
Карта сайта