ЛЕКЦИЯ 14 18.05.09 Тема 3. Языки и системы моделирования Языки логического моделирования (ЯЛМ) Отличия ЯЛМ от языков программирования Языки описания аппаратуры.

Презентация:



Advertisements
Похожие презентации
ЛЕКЦИЯ Языки описания аппаратуры. Детерминистский и системный подходы к описанию объекта Мы уже знаем (лекция 2), что существуют два подхода.
Advertisements

ЛЕКЦИЯ Языки описания аппаратуры. Детерминистский и системный подходы к описанию объекта Мы уже знаем (лекция 2), что существуют два подхода.
ЛЕКЦИЯ Тема 3. Языки и системы моделирования Языки логического моделирования (ЯЛМ) Отличия ЯЛМ от языков программирования Краткий обзор ЯЛМ.
Что такое программирование? Совокупность процессов, связанных с разработкой программ и их реализацией. В широком смысле к указанным процессам относят все.
Реклама дисциплины «Моделирование» Единство и борьба противоположностей Единство и борьба противоположностей Материя первична, сознание вторично Материя.
Языки программирования.. Этапы создания программы. Для представления алгоритма в виде, понятном компьютеру, служат языки программирования. Сначала разрабатывается.
ЛЕКЦИЯ Экскурс в язык описания аппаратуры VHDL.
Тема 8 Мультиплексоры и демультиплексоры. Универсальные логические модули на основе мультиплексоров. Компараторы.
Тема урока: Классификация языков программирования.
1 Диаграммы реализации (implementation diagrams).
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ СТАВРОПОЛЬСКИЙ ГОСУДАРСТВЕННЫЙ АГРАРНЫЙ УНИВЕРСИТЕТ.
Языки и методы программирования Преподаватель – доцент каф. ИТиМПИ Кузнецова Е.М. Лекция 7.
Одномерный массив. Цель урока: познакомить учащихся с понятием одномерный массив Задачи: дать определение массива дать представление: об описании массива.
ПРОЕКТИРОВАНИЕРучноеАвтоматическое Автоматизированное (САПР) ЧеловекМашинаЧеловек + Машина.
Уважаемые одиннадцатиклассники! Пока есть время и вы, надеюсь, не болеете, предлагаю повторить курс информатики и выполнить тест. Ответы присылайте на.
Моделирование и исследование мехатронных систем Курс лекций.
ЛЕКЦИЯ Язык описания аппаратуры VHDL.
Тема: «Архитектура и основные составные части интеллектуальных Систем»
Кодирование информации. Кодирование и декодирование Для обмена информацией с другими людьми человек использует естественные языки. Наряду с естественными.
FBD В cреде CoDeSys Язык FBD Язык FBD (Functional Block Diagram, Диаграмма Функциональных Блоков) является языком графического программирования,
Транксрипт:

ЛЕКЦИЯ Тема 3. Языки и системы моделирования Языки логического моделирования (ЯЛМ) Отличия ЯЛМ от языков программирования Языки описания аппаратуры Языки проектирования

Что мы знаем о современных языках программирования По словам известного математика-программиста Б. Хигмана понятие языка и его составляющих не поддаётся точному определению. Языки проектирования являются подмножеством языков программирования. К ним относятся языки моделирования и языки описания аппаратуры Язык (в широком понимании этого слова) – любое средство общения между людьми, средство выражения их мыслей. Все языки делятся на естественные (неформальные) и искусственные (формальные). Языки программирования относятся к искусственным, формальным языкам

Иерархия языков программирования и проектирования Макроязыки Автокоды Ассемблер Машинные языки Процедурно-ориентированные Проблемно- ориентированные Языки описания аппаратуры Языки программирования Языки проектирования Языки проектирования являются подмножеством языков программирования. К ним относятся языки моделирования и языки описания аппаратуры Языки описания Дескрипторные Языки действий Алгоритмические Языки низкого уровня ЯОО Handel_C Языки моделирования PML Языки реализации Таблицы соединений Карты прошивки ABEL Xilinx AHDL Altera CUPL Atmel PLDASM Машинно – зависимые языки Языки команд Языки нулей и единиц Макроассемблер ЯСК – языки символического кодирования (мнемокоды) Технологически – зависимые языки DSLVHDLVerilog ЯОАHDL SystemC System Verilog VHDL Verilog

О языках программирования Единственный способ писать эффективные программы – сокращённый метод записи в восьмеричной системе счисления (так считала Грейс Хоппер) год Морис Уилкс заменил двоичные коды команд символическими. Перевод «один в один». Макроязыки. Макрокоманды не имеют прямых аналогов в машинном коде. Перевод «один в несколько» год. Джон Бекус из фирмы IBM разработал первый процедурно- ориентированный язык Фортран. Перевод «несколько в несколько». Непроцедурные, описательные или дескрипторные (от англ. description - описание) языки. Предназначены для разработчика аппаратуры, не являющегося программистом. Главное описать объект, описать условия, в которых он должен работать.

Место языков проектирования Языки программирования Паскаль, 1970 Си, 1972 Ада, 1979 Лингвистический хаос Вавилонское столпотворение Фортран, 1957 Алгол, 1960 Кобол, 1960 Бейсик, 1964 ПЛ/1, 1964 Универсальные (многоцелевые) Специализированные «Монстры» Языки Web - программирования PHPPerlHTMLJava Языки управления Форт Языки искусственного интеллекта ПрологЛисп Языки проектирования ЯОО, ЯОА, HDLЯОЗ Языки структурного описания Языки функционального описания Графические Табличные Текстовые Симула Симскрипт GPSS Форос Языки моделирования ConLan, 1976 VHDL, Verilog PML, DSL, ABEL VHDL, Verilog NetList Что такое SL – Simple Language для УСМ1? TCL

Лингвистическое обеспечение САПР Языки написания системы автоматизированного проектирования – обычные языки программирования (это инструмент разработчика САПР) Языки проектирования – инструмент пользователя САПР, разработчика, проектировщика электронной аппаратуры Любой проект всегда начинается, сопровождается и заканчивается «ворохом» всевозможных описаний. Это ТЗ, уравнения, схемы, временные диаграммы, таблицы, спецификации, карты «прошивки», эскизы печатных плат и прочая техническая документация. Каждое такое описание создаётся по определённым правилам с использованием дозволенных символов и операций. Другими словами, работа выполняется с привлечением конкретного языка описания проекта – языка проектирования.

Детерминистский и системный подходы к описанию объекта Мы уже знаем, что существуют два подхода к моделированию и описанию объекта: детерминистский и системный. Рассмотрим различные подходы и способы описания объекта на примере мультиплексора MUX2 Детерминистский предлагает рассматривать объект как чёрный ящик, и, значит, мы можем описать только его внешний образ, поведение (функцию) и параметры. При системном подходе появляется возможность к названным описаниям добавить ещё и структурное описание.

УГО – условное графическое изображение Описание «картинкой» Графическое описание Блок-схема алгоритма работа Конструкторское описание Детерминистский подход. Описания типа «чёрный ящик» Известны три вида описания: графическое, текстовое и табличное Диаграмма состояний ЦА или граф переходов Временные диаграммы УГО используется при схемном описании проекта Используется при разработке ПП Используется при разработке моделей

Графическое описание R=1 – сброс C=/ – сдвиг или счёт Q3 Q2 Q1 Q0 DL * Сдвиг влево Диаграмма состояний ЦА Временные диаграммы

Аналитическое описание (формула) Текстовое описание словами Детерминистский подход. Описания типа «чёрный ящик» Описываем работу, функционирование, поведение объекта Содержательное описание на естественном языке Для автоматизированного проектирования такое описание не годится Текстовое описание уравнениями Формализованное описание Булевское уравнение Аналитическая модель MUX2, аналог механического переключателя, коммутирует сигнал с одного из двух входов D0 или D1 на выход Y. Конкретный канал выбирается сигналом на селекторном входе A. При A=0 на выход Y передаётся двоичный сигналD0, при A=1 – сигнал D1.

Язык PML Текстовое описание в форме алгоритма Детерминистский подход. Описания типа «чёрный ящик» Язык VHDL Язык DSL

Табличное описание объекта Полная таблица истинности Детерминистский подход. Описания типа «чёрный ящик» A D1 D0D0 Y Сокращённая таблица истинности

Текстовое описание параметров объекта (задержек) Язык PML Язык VHDL Детерминистский подход. Описания типа «чёрный ящик» Кроме описания внешнего вида (схемного или конструкторского) и функции объекта, на языки описания аппаратуры нередко возлагается ещё одна задача – описать выходные параметры объекта, характеризующие его качество. Язык Verilog assign # (3:5:7,4:6:8) Y = A & B;

Системный подход Кроме описания внешнего образа, поведения и параметров объекта при системном подходе появляется возможность создать структурное описание объекта Структурное описание тоже может быть представлено в любой из трёх форм: графической, текстовой или табличной Напомним, что под структурой понимается множество элементов, из которых построен объект, и связей между ними. Элементы описываются как чёрные ящики (детерминистский подход) и называются структурными примитивами. СТП или СтП. Всё ранее сказанное об объекте как чёрном ящике при системном подходе можно перенести на его структурные примитивы. Ну а сам объект теперь имеет не одно, а два описания: внешнее – чёрный ящик, и внутреннее - структуру.

Графическое описание структуры объекта Системный подход D0 D1 A F1 F2 F3 Y & & 1 1 DD1 DD3 DD2 DD AND2 OR2 INV AND2 Это структура. В ней есть и элементы и цепи. DD2.3 DD4.1

Графическое описание можно представить списком элементов или списком цепей Системный подход D0 D1 A F1 F2 F3 Y &&11 DD1 DD3 DD2 DD AND2 OR2 INV AND2 F1 F2 F3 Список элементов Элементы являются предметом особого внимания и находятся на переднем плане Соединения имеют второстепенное значение, являются «фоном» и в описании присутствуют неявно. Реально цепи на схеме отсутствуют A

Системный подход Описание структуры, ориентированное на элементы, удобно для имитационного моделирования. Для трассировки печатных плат оно непригодно из-за отсутствия конструкторской информации (не определены типы корпусов, питание и земля, «цоколёвка», упаковочная информация) D0 D1 A F1 F2 F3 Y & DD2 AND DD4 OR2 1 2 DD1 1 INV & DD AND2 DD1.1DD1.2 «имя элемента».«номер вывода» DD2.1 DD2.2 DD2.3 DD3.1 DD3.2 DD3.3 DD4.1 DD4.2 DD4.3 Формат составного имени Этот способ описания структуры базируется на соединениях Основное внимание сосредоточено на цепях. Элементы, соединяемые этими цепями оказываются как бы на заднем плане. Реально элементы на схеме отсутствуют Список цепей

Системный подход Графическое представление схемы списком элементов или списком цепей не является доминирующим Обычно оно конвертируется в текстовое описание Описание схемы, ориентированное на элементы. SPICE – формат пакета DesignLab 8.0 Список элементов. Язык VHDL пакета Orcad 9.1 Описание схемы, ориентированное на соединения. Для трассировщика PCBoard пакета DesignLab 8.0 Примеры:

X_DD4 F2 F3 Y OR2 X_DD2 D0 F1 F2 AND2 X_DD3 D1 A F3 AND2 X_DD1 A F1 INV Системный подход Графическое представление схемы списком элементов или списком цепей не является доминирующим Обычно оно конвертируется в текстовое описание Примеры: Net F2 DD2.3 DD4.1 Net A DD1.1 DD3.2 Net F1 DD1.2 DD2.2 Net F3 DD3.3 DD4.2 DD4 : OR2 PORT MAP (A => F2, B => F3, Y => Y) DD2 : AND2 PORT MAP (A => D0, B => F1, Y => F2) DD3 : AND2 PORT MAP (A => D1, B => A, Y => F3) DD1 : INV PORT MAP (A => A, Y => F1) A B Y Описание схемы, ориентированное на элементы. SPICE – формат пакета DesignLab 8.0 Описание схемы, ориентированное на соединения. Для трассировщика PCBoard пакета DesignLab 8.0 Список элементов. Язык VHDL, Orcad 9.1

Системный подход Список цепей обычно не несёт информации о функциональном назначении соединяемых контактов: мы не знаем, какой вывод элемента является входным, а какой – выходным. Однако в некоторых случаях, например, для контроля схемных ошибок, желательно знать о направлении передачи сигнала по цепи. Некоторые языки описания такую возможность предоставляют (например, язык HSL ). В принципе для трассировки печатных плат такая информация и не требуется. F2 = FROM (DD2.3) TO (DD4.1); D0 = TO (DD2.1); Y = FROM (DD4.3);

Системный подход Табличное описание особенно легко получается из текстового формата, достаточно лишь разбить его на отдельные столбцы и, возможно, перегруппировать их. Преимущества табличного описания проявляются только при использовании в них системы ссылок, благодаря которым появляется возможность осуществлять направленный поиск требуемых в текущий момент данных (например, элементов-приёмников сигнала). Табличное описание объекта

Системный подход Табличное описание особенно легко получается из текстового формата, достаточно лишь разбить его на отдельные столбцы и, возможно, перегруппировать их. Преимущества табличного описания проявляются только при использовании в них системы ссылок, благодаря которым появляется возможность осуществлять направленный поиск требуемых в текущий момент данных (например, элементов-приёмников сигнала). Табличное описание объекта F3D1, AAND2DD3 YF2, F3OR2DD4 F2D0, F1AND2DD2 F1AINVDD1 ВыходыВходыТипИмя

Потоковый стиль описания объекта Знание структуры объекта открывает перед разработчиком ещё одну возможность – описать его функцию на основании структурных данных (data flow) Значения сигналов определяются из логических выражений и передаются от одного компонента другому, образуя «поток данных» Эта уникальная возможность порождает так называемое потоковое описание, при котором структура представляется не списком элементов и цепей, а функциями этих элементов. На следующем слайде будет показана потоковая модель мультиплексора, записанная в формате языка DSL пакета DesignLab 8.0 На языке VHDL эта передача данных реализуется операторами назначения сигналов

PROCEDURE Mux2 (INPUT D0, D1, A; OUTPUT Y;); NODE F1, F2, F3; F1 = /A;функция ЛЭ DD1 F2 = D0*F1;функция ЛЭ DD2 F3 = D1*A;функция ЛЭ DD3 Y = F2+F3;функция ЛЭ DD4 END Mux2; PROCEDURE Mux2 (INPUT D0, D1, A; OUTPUT Y;); NODE F1, F2, F3; DD1: INV (A, F1); DD2: AND2 (D0, F1, F2); DD3: AND2 (D1, A, F3); DD4: OR2 (F2, F3, Y); END Mux2; Потоковый стиль описания объекта При потоковом описании на переднем плане оказываются функции, выполняемые элементами, а не сами элементы. Структурные связи задаются неявно, не «афишируются», хотя и присутствуют в описании. Структурное описание мультиплексора в формате языка DSL Потоковое описание мультиплексора в формате языка DSL

Потоковый стиль описания объекта Язык PML пакета PCAD 4.5 вообще не поддерживает структурное описание проекта, а потоковое описание возможно При этом ненужные детали структурного описания опускаются, например мы можем не знать, что в нашей схеме четыре элемента и что их имена DD1…DD4. При потоковом описании мы наблюдаем попытку, задать структуру функциями, точнее использовать структурные данные не по прямому назначению, а косвенно - для описания функции объекта. Для функционального моделирования такая информация и не требуется.

Потоковый стиль описания объекта При потоковом описании допускаются логические преобразования и подстановки, которые в конечном итоге превращают систему уравнений в одно булевское уравнение: Некоторые языки, например VHDL или DSL допускают смешанное структурно- потоковое описание объекта Таким образом, потоковое описание занимает промежуточную нишу между строго функциональным (аналитическим) и чисто структурным описаниями объекта. Различные стили описания проекта При этом потоковая модель трансформируется в аналитическую (строго функциональную) модель. Y = D0*/A+D1*A; -- функция мультиплексора

Потоковый стиль описания объекта Границы между стилями размыты – порой бывает трудно отнести написанный код к тому или иному стилю. Тогда, скорее всего, это смешанный стиль. Забегая вперёд, заметим, что стиль описания существенно влияет на порождаемую системой проектирования реализацию. Например, потоковый стиль описаний наиболее целесообразно использовать при автоматическом синтезе проекта

Пример. Потоковый стиль описания объекта Делитель на шесть

library IEEE; use IEEE.STD_LOGIC_1164.all; entity delitel_6 is port( R : in STD_LOGIC; C : in STD_LOGIC; Y : out STD_LOGIC); end delitel_6; architecture delitel_6 of delitel_6 is signal Q0, Q1, Q2 : std_logic := 'X'; signal NQ0, NQ1, NQ2 : std_logic := 'X'; signal F : std_logic; begin Q2

Языки описания аппаратуры Первые языки описания аппаратуры (тогда их называли языками моделирования) появились в начале 60-х годов, и к настоящему времени их насчитывается несколько сотен. Однако всерьёз можно говорить лишь о нескольких десятках более или менее удачных ЯОА, для которых были разработаны компиляторы и которые поддерживались в прошлом или поддерживаются сейчас соответствующими системами моделирования или САПР. В этот перечень можно включить такие языки: CDL, DDL, HSL, AHDL (Altera HDL), PML, ABEL (XABEL – Xilinx ABEL), DSL, Verilog, Digital SimCode, VHDL. О некоторых из них и пойдёт дальнейший разговор. Но прежде разберёмся, чем же отличаются языки моделирования от классических языков программирования

Отличительные черты языков моделирования от языков программирования (на примере VHDL) Первое отличие Язык моделирования – это обычный процедурный язык программирования, преобразованный в «нечто большее и лучшее» (Б. Хигман) В языки моделирования вводится предопределённый физический тип – время TIME Это позволяет объявить константу или переменную типа time Языки моделирования поддерживают встроенную функцию now, возвращающую текущее время (now – теперь, сейчас) variable TT : time; constant TPLH : time := 15ns; TT := now;

library IEEE; use IEEE.STD_LOGIC_1164.all; entity buffer_my is port (A : in STD_LOGIC; Y : out STD_LOGIC); end buffer_my; architecture model of buffer_my is begin PROCESS (A) variable t_event : time :=0ns; --переменная t_event инициализируется нулём begin if now > 8ns then -- вызывается встроенная функция времени assert (now - t_event >= 8ns) -- оператор контроля мин. длительности A report violation minimum A" severity ERROR; -- фиксируется нарушение end if; t_event:=now; -- функция now возвращает текущее время end process; Y

Результаты моделирования буфера buffer_my 8ns ? 37ns

Второе отличие Языки моделирования содержат операторы, обслуживающие время Относительное время Абсолютное время

Третье отличие Языки моделирования позволяют описывать задержки распространения сигналов в цифровых объектах

Четвёртое отличие в языки моделирования добавляется ещё один класс – signal для имитации реальных сигналов Кроме традиционных объектов языка - констант constant и переменных variable

Дельта - циклы tp=1nstp=0ns

Пятое отличие Имитация параллельных процессов & & C D F Y При переключении сигнала C оба элемента срабатывают одновременно (параллельно)

Шестое отличие В языках моделирования имеются операторы для контроля временных соотношений: assert – оператор контроля, report – оператор сообщения DFF D C Атрибут сигнала Dlast_event вычисляет время с момента последнего переключения сигнала D до текущего момента времени. Атрибут сигнала Dlast_event

Шестое отличие. Пример X

If C=0 and CEVENT then Q

Восьмое отличие. Примеры Языки моделирования, предназначенные для имитации вероятностных процессов (например GPSS), имеют: Например, язык Verilog имеет встроенный датчик псевдослучайных чисел ДПСЧ – системную функцию $random В пакете Active-HDL тоже имеется стимулятор типа Random, генерирующий случайные числа с различными законами распределения, в частности можно устанавливать равномерный, нормальный, экспоненциальный и некоторые другие законы распределений (всего 8 распределений) встроенные датчики случайных чисел1 генераторы типовых воздействий 2 средства для статистической обработки результатов экспериментов3

Способы разработки языков моделирования Справедливости ради заметим, что в некоторых языках программирования, например ПЛ/1 или Алгол-68 реализованы отдельные из перечисленных выше особенностей, в частности, возможность описания параллельных процессов. Процедурная ориентация языков моделирования наводит на мысль о том, что их можно строить на основе какого-либо многоцелевого языка программирования, используя последний в качестве базового. При этом ЯМ может быть построен как: подмножество базового языка 1 расширение базового языка2 автономный язык моделирования 3

Способы разработки языков моделирования. Примеры Если ЯМ вложен в базовый язык, то в простейшем случае он включает обращения к подпрограммам, входящим в систему моделирования и написанным на базовом языке. Хорошим примером сказанному является ЯМ ГАСП-4, который полностью вложен в универсальный язык программирования Фортран Здесь можно также назвать язык процессов SIMULATION, определённый как класс универсального языка программирования СИМУЛА-67. Достоинство рассмотренного подхода в том, что он не требует разрабатывать собственный транслятор с языка моделирования.

Способы разработки языков моделирования. Примеры Если к базовому языку добавляется некоторое число новых конструкций, необходимых для моделирования, то такой приём называют расширением языка. Теперь уже без препроцессора моделирования не обойтись. Исходное описание на ЯМ придётся сначала транслировать на уровень базового языка, а уже затем с помощью стандартных средств базовой системы программирования – в объектный код. Примером такого подхода является язык СИМПЛ/1, являющийся расширением многоцелевого языка ПЛ/1. Он относится к языкам процессов и используется для цифрового моделирования.

Способы разработки языков моделирования. Примеры Именно этот путь был выбран при создании наиболее мощного, эффективного и универсального языка моделирования и описания аппаратуры VHDL, принятого ныне в качестве мирового стандарта. Третий путь – создание автономного ЯМ самый трудоёмкий, так как требует разработки собственного компилятора. Однако он и самый перспективный, потому что не ограничивает разработчика рамками уже существующего базового языка.