Министерство образования Российской Федерации
Томский политехнический университет
Факультет автоматики и вычислительной техники
Кафедра ВТ
РЕФЕРАТ
по дисциплине «Теория автоматов»на тему:
"Микропрограммирование операций ЭВМ "
Выполнила студентка Погребная М.В.
Руководитель Триханов А.В.
Томск 2008
Оглавление
ВВЕДЕНИЕ… 3
1. Язык микропрограммирования(Ф-язык) 4
1.1. Общие сведения о языке. 4
1.2. Элементарные конструкции языка. 5
1.3. Конструкции средней сложности. 6
1.3.1. Микрооперации. 6
1.3.2. Двоичные выражения. 11
1.3.2.1. Двоичные простые выражения. 12
1.3.2.2. Двоичные условныевыражения. 13
1.3.3. Сложные конструкции. 15
1.3.3.1. Графические схемыалгоритма. 15
1.3.3.2. Матричные схемы алгоритма. 17
1.3.3.3. Системы формул переходов. 19
1.3.3.4. Функциональныемикропрограммы… 19
1.4. Язык описания цифровойаппаратуры VHDL… 20
1.4.1. Общие сведения об языке. 20
1.4.2. Конструкции языка. 24
1.4.2.1. Константы… 29
1.4.2.2. Переменные. 29
1.4.2.3. Сигналы… 30
1.4.2.4. Операторы… 30
1.4.2.5. Пакеты… 30
ЗАКЛЮЧЕНИЕ… 31
ЛИТЕРАТУРА… 32
ВВЕДЕНИЕ
Современныеперсональные компьютеры работают по принципу микропрограммного управления и кнастоящему времени большинство операций над дискретными объектами ужеалгоритмизированы (с использованием языка микропрограммирования).
Данный реферат посвящен основам языкамикропрограммирования (Ф-языка) и языка описания цифровой аппаратуры VHDL, средства которых используются приалгоритмизации и микропрограммировании операций над дискретными объектами. Приведенныесредства описания цифровых автоматов (ГСА, матричные схемы алгоритмов (МСА),системы формул переходов (СФП)), к средствам Ф-языка не относятся, однакорассмотрение микропрограммирования сопровождается использованием указанныхспособов описания алгоритмов.
Всоответствие с принципом микропрограммного управления каждая операция(действие) разбивается на элементарные действия (микрооперации). К такиммикрооперациям относятся инверсия, конъюнкция, дизъюнкция, передачи и др.
Для преобразования информации вкомпьютере предназначено устройство обработки цифровой информации, в настоящеевремя его принято называть процессором.
В.М.Глушков [1] предложил егоизображать так, как показано на рис.1. Как видно, процессор включает в себяоперационный (ОА) и управляющий (УА) автоматы.
/>/>/>D R/> /> /> /> /> /> /> /> />
Y Х/> /> /> /> /> /> /> /> />
F
Рис.1. Структурная схема процессорапо В.М.Глушкову
ОА предназначен для преобразованияоперандов D в результат R. Этот автомат работает под действием управляющихсигналов, множество которых обозначено через Y.
УАпредназначен для формирования подмножеств управляющих сигналов для операций Fi,множество которых обозначено через F. Указанныеподмножества управляющих сигналов формируются на основе кодов операций Fi и осведомительных сигналов, множество которыхобозначено через X.
Осведомительныесигналы характеризуют получаемые результаты с качественной стороны. Любоедействие в компьютере выполняется на основе функциональной микропрограммы,которая представляет собой программу, составленную в терминах микроопераций и осведомительныхсигналов.
Таким образом, принципмикропрограммного управления можно сформулировать следующим образом:
1) любое действиеделится на совокупность элементарных действий (микроопераций);
2) ни одно действиене является элементарным;
3) для измененияпорядка следования микроопераций вводятся осведомительные сигналы;
4) для каждогодействия составляется микропрограмма в терминах микроопераций (МО) и осведомительныхсигналов.
Микропрограммы всех операций хранятся в специальном(управляющем) запоминающем устройстве.
1.Язык микропрограммирования (Ф-язык)
1.1. Общие сведения о языке
Длясоставления микропрограмм используется какой-либо язык микропрограммирования, вучебном процессе вузов нашел наибольшее применение язык микропрограммирования,предложенный Г.И.Новиковым [2]. Этот язык называется Ф-языком в соответствие стем, что он предназначен для описания работы функционирования схем, выполняющихоперации по преобразованию дискретных объектов. Для составления программрешения математических, физических, экономических и других задач его применятьнецелесообразно из-за элементарности его действий.
ОсобенностямиФ-языка являются двоичный характер операндов, результатов и наличие средствописания работы типовых узлов (регистров, счетчиков, сумматоров и др.) ипамяти.
Ф-языквключает в свой состав разнообразные, как сейчас принято говорить, конструкции.Все они делятся на элементарные конструкции, конструкции средней сложности исложные конструкции.
Кэлементарным конструкциям относятся константы, слова, массивы и поля.
Как влюбом современном языке, в Ф-языке имеется возможность работы со словамипеременной длины. Микрооперации и двоичные выражения составляют группуконструкций средней сложности. Наконец, сложными конструкциями являются функциональныемикропрограммы (ФМП).1.2. Элементарные конструкции языка
Вышебыло указано, что к элементарным конструкциям относятся константы, слова,массивы и поля.
Константыв Ф-языке используются в качестве сомножителей, слагаемых, составных частейслов, параметров сдвига. Константа является базовой единицей языка.
Константызадаются в двоичной системе как положительные числа; допускается задаватьконстанту в десятичной и восьмеричной системах счисления. В этих случаях правеезначения константы приписывается строчная буква Д или В.
Пусть,например, требуется константа со значением 1010, в восьмеричной системесчисления это будет соответствовать записи 12В, в десятичной – 10Д.
Словоявляется основной информационной единицей языка, оно представляет собойупорядоченное сочетание двоичных разрядов. Слово вводится в употребление своимописанием, которое начинается с имени. После имени в круглых скобкахуказываются номера разрядов. Левый (старший) разряд обычно имеет номер 1. Междуномерами разрядов ставится разделитель типа «:». Имя должно начинаться спрописной буквы латинского или русского алфавитов.
Например,записи А(1:32), В1(1:16) вводят в употребление 32-разрядное слово А и16-разрядное слово В1.
Если вскобках будет стоять только один номер, то это будет соответствовать разряду сиспользуемым номером. Например, записи А(1), В1(16) вводят в употребление 1-ыйразряд слова А и 16-ый разряд слова В1.
Массивпредставляет собой упорядоченную совокупность слов равной длины, имеющиходинаковый смысл.
Массиввводится в употребление своим описанием, которое начинается также с имени,далее следуют квадратные скобки с номерами крайних слов и круглые скобки сномерами разрядов слов.
Например,запись ЗУ[1:1024](1:37) вводит в употребление массив из 1024 37-разрядных слов.Очевидно, что речь идет о запоминающем устройстве.
Полеявляется каким — либо “срезом” массива. Например, полем кодов операций команд,хранящихся в памяти компьютера будет, видимо, “срез” ЗУ[1:1024](1:7). 1.3. Конструкции средней сложности
Какзамечено выше, микрооперации и двоичные выражения составляют группу конструкцийсредней сложности.1.3.1. Микрооперации
ВФ-языке используется десять типов микроопераций. К первому типу
относитсямикрооперация установки, она предназначена для задания начального значенияслову, части слова, отдельному разряду.
Структураэтой и всех других операций включает в себя три части: левую (ЛЧ), среднюю иправую (ПЧ) части. Структуру можно показать следующим образом:
ЛЧ: =ПЧ.
Средняячасть является знаком присваивания, левая часть есть та информационная единица(слово, фрагмент слова, отдельный разряд), которой и надлежит присвоитьпервоначальное значение.
Естественно,что правая часть должна представлять собой какую-либо константу.
Особенностьюрассматриваемой операции является то, что правая часть есть константа.
Например,записи
А(1:3):=000,
В1(1:32):=10101010101010101010101010101010,
В(5):=1
являютсявыражениями микроопераций установки в 1, 2 и 3 разрядах слова А нулевыхзначений, во всех разрядах слова В1 значения 1010…1010, в 5-м разряде слова В единичногозначения.
Еслиустановка касается какого-либо типового узла с памятью, то нулевая константа вправой части означает обнуление или «сброс» содержимого узла.
Неследует путать запись микрооперации с записью того, что слово, часть слова,разряд слова имеют конкретное значение.
Например,запись А (1:3) = 101 не является микрооперацией, она означает, что у первыхтрех разрядов слова А имеется значение 101.
Напервоначальных этапах освоения микроопераций следует отражать первоначальноезначение (до выполнения микрооперации) и значение после выполнениямикрооперации. Применительно к слову А выполнение микрооперации установки можноотразить следующим образом:
до: А(1:3) = 101, после: А (1:3) = 000.
Ковторому типу относится микрооперация передачи, особенностью этой микрооперацииявляется то, что и правая часть есть слово. Данная микрооперация обеспечиваетзамену значения левого слова на значение правого слова.
Левоеи правое слова могут иметь разные длины (nl,np), через nl,np обозначены количества разрядов в левом иправом словах соответственно.
Возможнытри случая отношения между nl, np:
nl = np,
nl
3)nl > np.
Впервом случае проблем по согласованию длин нет, значение правого словаоказывается в левом слове.
Вовтором случае у правого слова имеются лишние разряды, требуется
отбрасываниеопределенных разрядов правого слова, в Ф-языке установлено, что отбрасыватьнужно с левой стороны.
Пусть,например, имеются микрооперация А(1:3):= В(1:6), а также А(1:3) = 110, В(1:6) =101001, тогда после выполнения данной микрооперации будет А(1:3) = 001.Значение 101 в старших разрядах слова В отброшено.
Втретьем случае у левого слова имеются лишние разряды, требуется доопределитьлишние разряды указанного слова. Доопределяются левые лишние разряды нулями.
Пусть,например, имеются микрооперация В(1:6):= А(1:3), а также А(1:3) = 110, В(1:6) =101001, тогда после выполнения данной микрооперации будет В(1:6) = 000110.Видно, что левые три разряда левого слова имеют значение 0.
Микрооперацияпередачи описывает работу цепей связи между узлами компьютера.
Микрооперациятретьего типа – это микрооперация инверсии, особенностью этой микрооперацииявляется то, что в обеих частях используется одно и тоже слово. Даннаямикрооперация обеспечивает замену значения левого слова на инверсное значениеэтого слова.
Прирассматриваемой микрооперации проблем по согласованию длин нет.
Пусть,например, имеются микрооперация В (1:6):= ù В (1:6), кстати, при записи микрооперацииинверсии необязательно указывать разряды слова. Также пусть В (1:6) = 101001,тогда после выполнения данной микрооперации будет В (1:6) = 010110. Видно, чтовсе первоначальные значения разрядов слова В приняли инверсные значения.
Важностьиспользования данной микрооперации очевидна, без нее не обойтись при получениимашинных кодов, машинной реализации операций над двоичными числами.
Кчетвертому типу микроопераций относится группа микроопераций, включающая в себяконъюнкцию и дизъюнкцию. Данные микрооперации требуют одинаковой длины всехслов, задействованных в микрооперациях.
Пусть,например, имеются микрооперации
С(1:6):=А(1:6) /\ В (1:6),
D(1:6):=А(1:6) \/ В(1:6)
и А =100110, В = 000111, С = 010101, D = 101010, тогда послевыполнения данных микроопераций будет C(1:6) = 000110, D = 100111.
Посколькув компьютерах арифметические операции выполняются на основе логических микроопераций,то важность использования рассматриваемых микроопераций очевидна, без нихпрактически ничего реализовать не удается.
Микрооперацияпятого типа – микрооперация составления, она предназначена для формирования такназываемого составного слова на основе других слов, их фрагментов и констант.
Например,результирующее слово, соответствующее результату любой операции с«плавающей» точкой, как раз и получается на основе составления словаиз слов, представляющих мантиссу и порядок.
Знакоммикрооперации составления является знак ".".
Очевидно,что при составлении возникает проблема согласования длин левой и правой частеймикрооперации. Разрешается она точно также, как и при передачах.
Пусть,например, имеются микрооперации
С(1:6):=А(1:3). В (1:3),
D(1:6):=А(1:3). Е(1:4),
F(1:8):= B(1:3). A(1:3),
G(1:5):= А(1:3). 010,
и А =100, В = 011, E = 1101, С = 010101, D= 101010, F =00110011, G = 10001, тогда послевыполнения данных микроопераций будет C(1:6) = 100011, D = 001101, F= 00011100 и G = 00010.
Кшестому типу относятся группа микроопераций счета, они описывают работусчетчиков прямого и обратного счета. При прямом счете содержимое счетчика увеличиваетсяна единицу, а при обратном – уменьшается на единицу.
Особенностьюэтой микрооперации является то, что в обеих частях используется одно и тожеслово. Обычно его имя начинается с ключевого слова СТ. Кроме того, в правойчасти применяется константа, равная 1.
Никакихпроблем при счете не возникает, так как счетчик прямого счета после достижениямаксимального значения и подачи единицы переходит в нулевое состояние, асчетчик обратного счета при достижении нулевого состояния и подачи единицы – вмаксимальное состояние.
Пусть,например, имеются микрооперации
СТА(1: 6):= СТА(1: 6) + 1,
СТВ(1: 6):= СТВ(1: 6) — 1
и СТА= 100100, СТВ = 011011, тогда после выполнения данных микроопераций будет CТА(1: 6) = 100101, СТВ = 011010.
Особойнеобходимости при микрооперации счета указывать длину слова нет.
Седьмуюгруппу микроопераций составляют микрооперации сдвигов. Особенностью этихмикроопераций является то, что в обеих частях используется одно и тоже слово.
Сдвигиделятся на логические и арифметические.
Логическийсдвиг выполняется над логической комбинацией, в которой нет знака. Значениявсех разрядов комбинации перемещаются вправо либо влево на указанное количестворазрядов. «Выталкиваемые» разряды теряются, а оказавшиеся свободнымиразряды доопределяются. При отсутствии особых указаний доопределениеосуществляется нулями. Возможен так называемый циклический сдвиг, когда«выталкиваемые» значения разрядов фиксируются в освобождающихся разрядах.
Приарифметическом сдвиге знак остается на своем месте, перемещаются значениятолько значащих разрядов.
Видсдвига оформляется нужной записью микрооперации.
Ключевоеслово R(k) соответствует сдвигувправо на k разрядов, ключевое слово L(k) – сдвигу влево на k разрядов.
Пусть,например, имеются микрооперации
А(1:6):= R(2)А(1: 6),
В(1:6):= L(2)В(1: 6)
и А =100101, В = 011011, тогда после выполнения данных микроопераций сдвига на дваразряда слова А вправо и слова В влево будет А(1: 6) = 001001, В = 101100.Видно, что освобождающиеся разряды доопределены нулями.
Циклическийсдвиг дополнительно оформляется на основе составления,«выталкиваемые» разряды слева добавляются справа, а«выталкиваемые» разряды справа добавляются слева.
Вышерассмотренные примеры сдвигов слов А и В при циклических сдвигах будут записаныследующим образом:
А(1:6):= А(5: 6). (R(2)А(1: 6)),
В(1:6):= (L(2)В(1: 6)).В(1: 2).
Пусть,как и прежде А = 100101, В = 011011, тогда после выполнения микрооперацийциклического сдвига будет А(1: 6) = 011001, В = 101101. Видно, что освобождающиесяразряды доопределены значениями «вытолкнутых » разрядов.
Арифметическиесдвиги имеют определенные особенности в зависимости от применяемых специальныхмашинных кодов. При сдвиге вправо свободные разряды слева доопределяютсязначениями знакового разряда независимо от применяемого кода, при сдвиге влево– нулями для дополнительного кода и значениями знакового разряда для обратногокода. Это рассматривается в курсе «Дискретная математика».
Например,арифметический сдвиг слова С(1: 8) = 10011001 вправо на 3 разряда в любом кодедолжен быть записан так:
С(1:8):= С(1). С(1). С(1). С(1). (R(3)С(2: 8)).
Видно,что знак у слова является отрицательным. После сдвига слова С будет С =11110011.
Присдвиге влево на один разряд для обратного кода микрооперация будет иметь вид:
С(1:8):= С(1).((L(1)С(3: 8)).С(1)).
Есликак и прежде С = 10011001, то после сдвига будет С = 10110011.
Присдвиге влево на один разряд для дополнительного кода микрооперация будет иметьвид:
С(1:8):= С(1).((L(1)С(3: 8)).0).
В дополнительномкоде С = 10011010 (имеется лишняя единица для младшего разряда), тогда послеуказанного сдвига будет С =10110100. Видно, что дополнительный код отличаетсяот обратного кода лишней единицей для младшего разряда.
Квосьмому типу микроопераций относится микрооперация сравнения (на самом делеэта микрооперация является микрооперацией несравнения). В отличие от всех предыдущихмикроопераций она имеет два вида результата.
Первыйиз них представляет собой сложение по модулю два исходных слов. Посколькумикрооперация сравнения – логическая микрооперация, то длины слов должны бытьодинаковыми. Если хотя бы в одном разряде получится единица, то тогда это будетозначать несравнение слов, в противном случае исходные слова совпадают.
Пусть,например, имеется микрооперация
С(1:6):=А(1:6) Å В (1:6)
и А =100110, В = 000111, С= 010101, тогда после выполнения данной микрооперациибудет C(1:6) = 100001, это говорит о несравнении слов Аи В.
Еслибудет А = 100110, В = 100110, С= 010101, тогда после выполнения
данноймикрооперации будет C(1:6) = 000000, что говорит осравнении слов А и В.
Второйвид результата является однобитовым, он представляет собой логическую суммуразрядов результата первого вида. Ясно, что при нулевом результате первого видаоднобитовый результат также будет равен 0, в противном случае – 1.
Дляранее получающегося результата C(1:6) = 100001однобитовый результат С(1) = 1 (не путать с первым разрядом слова С), а для — результата C(1:6) = 000000 однобитовый результат С(1) =0.
Девятыйтип микроопераций составляет группу микроопераций сложения (сложения, вычитанияи циклического сложения).
Микрооперацииданной группы предназначены для описания работы сумматора при сложении,вычитании и циклическом сложении.
Последняямикрооперация требует равенства исходных слов. Единица переноса из старшегоразряда передается для сложения в младший разряд. Вне Ф-языка такаямикрооперация называется операцией контрольного сложения. Для контроляправильности записи и считывания слов файла применительно к дискам все словаскладываются по правилу контрольного сложения, получающаяся контрольная суммадобавляется в конце файла. При считывании снова подсчитывается контрольнаясумма, которая сравнивается с имеющейся такой суммой в конце файла. Если суммысовпадают, то ошибок при считывании нет, в противном случае считываниеповторяется установленное число раз до совпадения сумм.
Пусть,например, имеется микрооперация
G(1:6):= А(1:6) + В(1:6)
и А =100110, В = 100111, G= 010101, тогда после выполнения данной микро-операциибудет G(1:6) = 001110.
Дляпервых двух микроопераций левое слово должно иметь лишний разряд по сравнению снаиболее длинным словом правой части.
ВФ–языке принято применять дополнительные коды для сложения и вычитания.
Приполучении кода слова слева у слова добавляется знаковый разряд, кодывыравниваются по длине за счет доопределения значениями знаковых разрядов.
Пусть,например, имеются микрооперации
С(1:7):=А(1:6) + В (1:6),
D(1:7):=А(1:6) — В(1:6),
E(1:7):= В(1:6) — А(1:6)
и А =100110, В = 100111, С= 010101, D= 101010, E= 1010101, тогда после выполнения данных микроопераций будетC(1:7) = 1001101, D(1:7) =1111111, E(1:7)= 0000001.
Наконец,к десятой группе относятся так называемые комбинированные микрооперации. Вправой части таких микроопераций разрешается иметь две, три обычныемикрооперации.
Например,получение обратного кода отрицательного слова В описывается именно комбинированноймикрооперацией:
В(1:6):= В(1).ù В(2:6),
Видно,что знаковый разряд слова остается без изменения, а значащая частьпроинвертирована.
Нетруднозаметить, что выше уже имелись комбинированные микрооперации.1.3.2. Двоичные выражения
ВФ-языке имеются двоичные выражения, которые относятся к конструкциям среднейсложности.
Двоичныевыражения отличаются от микроопераций тем, что в правой части у нихзадействовано более трех микроопераций и могут использоваться так называемыеусловные выражения, основанные чаще всего на проверке отношений.
Двоичныевыражения делятся на двоичные простые (неусловные) и двоичные условныевыражения. Из последующего будет ясно, что двоичные условные выражения неследует отождествлять с чисто условными выражениями.1.3.2.1. Двоичные простые выражения
Двоичноепростое выражение имеет такую же структуру, что и микрооперация. Обычно праваячасть данного выражения является словом, которому надлежит передать значение,полученное при вычислении правой части. В последней задаются микрооперации,количество которых должно быть больше трех.
Применительнок двоичным простым выражениям установлена очередность выполнения микроопераций,в определенной степени совпадающая с очередностью выполнения логическихопераций:
инверсия,
составление,
логическое умножение,
логическое сложение,
сложение по модулю два,
микрооперации группы сложения.
Естественно,что при наличии скобок вычисления должны вначале выполняться в них.
Чтокасается микроопераций группы сложения, то надо иметь в виду их однотипность.Подобные микрооперации (в других алгебрах операций) должны выполняться в тойпоследовательности, в которой они записываются в выражениях.
Запомнитьуказанную очередность нелегко, этому может помочь искусственное ключевое слово,составленное из начальных букв микроопераций, ИСУС2С.
Изочередности видно, что в двоичное простое выражение можно включать не всемикрооперации. Запрещается включать микрооперации передачи, счета, сравнения исдвига.
Вкачестве примера двоичного простого выражения рассматривается следующеевыражение:
А :=В.ùС ) + D.Е/\ F \/ F1 – G Å H + D.
Для В=11, С = 1101, D = 01, E = 1001, F = 111001, F1 = 010101, G = 110, H = 101, А = 010000 будет новое А = 010001.
Первойвыполняется инверсия, получается С = 0010. Далее имеется две микрооперациисоставления, получаются значения 110010 и 011001.
Конъюнкциядает значение 011001, дизъюнкция – 011101, сложение по модулю два – 011.
Осталисьмикрооперации группы сложения. Первой должна выполняться микрооперацияциклического сложения. Она дает значение 010000.
Вычитаниехарактеризуется значением 001101. Наконец, сложение приводит к значению 001110.
Следовательно,после вычисления микроопераций правой части указанного двоичного простоговыражения и передачи его слову правой части получится А = 001110.
Рекомендуетсяпод выражением с помощью фигурных скобок, развернутых острой частью вниз иразмещаемых сверху вниз на разных уровнях, записывать получающиеся значениярезультатов микроопераций.
Длярассматриваемого примера это будет выглядеть следующим образом:
/>А := В.ùС D.Е/\ F \/ F1 – G Å H + D.
Значениепоследней микрооперации и есть значение слова левой части.
Есливыполнять микрооперации в сторонке и записывать значения в виде столбика, топрактика показывает, что почти всегда допускаются неверные результаты какихлибо микроопераций из-за ошибок списывания предыдущих результатов и др.1.3.2.2. Двоичные условные выражения
Праваячасть двоичных условных выражений включает в свой состав несколько двоичныхпростых выражений. Расчеты производятся по одному из них в зависимости отзначения логического выражения.
Придвух простых выражениях V1, V2и логическом выражении B структура двоичного условноговыражения для слова V имеетследующий вид:
V:= ЕСЛИ В ТО V1 ИНАЧЕ V2.
Расчеты производятся повыражению V1 при В = 1 и по выражению V2 при В = 0.
В качестве выражения V2 может использоваться двоичноеусловное выражение. Тогда будет три варианта расчетов.
Чтокасается условного выражения В, то оно похоже на двоичное простое выражение.Однако при вычислении оно может быть равно 0 или 1. Это достигается за счетвключения отношений, в том числе равенства. В отличие от простого выражениядополнительно не разрешается использовать микрооперации группы сложения и составления.
Для условного выраженияустановлена следующая очередность выполнения отношений и микроопераций:
отношение за исключением равенства
инверсия,
логическое умножение,
логическое сложение,
сложение по модулю два,
равенство.
Естественно,что при наличии скобок вычисления должны вначале выполняться в них.
Запомнитьуказанную очередность также нелегко, этому может помочь искусственное ключевоеслово, составленное из начальных букв отношений и микроопераций, ОИУС2Р.
Вкачестве примера двоичного условного выражения рассматривается следующеевыражение:
В := ùD/\ Е \/ F = G > H Å I.
Для В=1, D = 0101, E= 1100, F = 0110, G = 0101, H = 111, I = 1 будет новое B = 0.
Следовательно,расчеты требуется проводить по выражению V2.
Прирасчетах условного выражения первой выполняется проверка отношения ">",результату проверки присваивается значение 0, так как отношение неверно.
Второйпо очереди выполняется микрооперация инверсии, получается значение 1010.
Третьейреализуется микрооперация конъюнкции, имеет место значение 1000.
Четвертаяочередь касается микрооперации дизъюнкции, она дает значение 1110.
Пятойвыполняется микрооперация сложения по модулю два, получается значение 1.
Наконец,последняя проверка равенства дает В = 0. Следовательно, расчеты требуетсяпроводить по выражению V2.
Послевычисления микроопераций правой части указанного двоичного простого выражения(пусть V2 = А) и передачи его слову правой части получитсяА = 001110.
Рекомендуетсяпод выражением с помощью фигурных скобок, развернутых острой частью вниз иразмещаемых сверху вниз на разных уровнях, записывать получающиеся значениярезультатов микроопераций, отношений.
Длярассматриваемого примера это будет выглядеть следующим образом:
/>В:= ùD /\ Е \/ F = G > H Å I.
Значениепоследней проверки (проверки равенства) и есть значение слова В левой части.
Есливыполнять проверки отношений и микрооперации в сторонке и записывать значения ввиде столбика, то эта практика также показывает, что почти всегда допускаютсяневерные результаты каких, либо микроопераций из-за ошибок списыванияпредыдущих результатов и др.1.3.3. Сложные конструкции
Сложными конструкциями Ф-языкаявляются функциональные микропрограммы (ФМП). Их рассмотрение не обходится безиспользования схем алгоритмов (СА), графических схем алгоритма (ГСА), матричныхсхем алгоритма (МСА), систем формул перехода (СФП), которые к средствам Ф-языкане относятся и СА, ГСА, МСА, ФМП и СФП подробно описаны в [3]. 1.3.3.1. Графические схемы алгоритма
Графическая схема алгоритма илиграф-схема алгоритма является аналогом схемы алгоритма, отличается от последнейбольшей формализацией, несколько другим изображением блоков начала и конца.
Поскольку ГСА предложена дляалгоритмов операций ЭВМ, то в ней нет средств для отражения ввода-вывода.
Вместо блоков в ГСА используются вершины:начальные Y0, конечные Yк, операторные вершины Y1,Y2,…, условные вершины X1,X2, ….На рис.2 показана СА классического алгоритманахождения наибольшего общего делителя (ННОД),
где: Аи С — исходные числа,
НОД — наибольший общийделитель.
Видно, что заданные числапри АС, то число Азаменяется на значение
А — С. Подобные циклы повторяются дополучения А= С (блоки 3¸8), число А и будет требуемым результатом (блок 9).
Имеются отличия применительно кусловным вершинам. Прежде всего,
условие (чаще всего отношение) записываетсяв закодированном виде.
Если оно выполняется, то результатуприсваивается единичное значение, в противном случае — нулевое значение. Сучетом этого выходы вершины отмечаются указанными значениями вместо “да” и“нет”.
Содержательная изакодированная граф-схемы алгоритмов представлены на рис. 2 и 3 соответственно,коды микроопераций уi,микрокоманд Yi и условий XI — в табл.1.
/>1
/>
/>/>/>/>2
8/> /> /> /> /> /> /> />
A:=A-С /> /> /> /> /> />
/>/>3
/>/>/>/> =
/>
НОД:=А 9
/> ¹
/>/>4 >
/>10
/>
/>/>5 >
НОД:=А />
/>11
/>
6/>
A:=С
/>7/>
С:=НОД
Рис. 2. СА ННОД чисел A и С
Условия корректности ГСА похожи наусловия корректности схемы алгоритма [4]:
1) у ГСА должна бытьодна начальная и одна конечная вершины;
2) каждый выходсоединен только с одним входом операторных вершин;
3) каждый входсоединен, по крайней мере, с одним выходом;
4) выходы условныхвершин помечаются с помощью цифр “0” и “1”;
5) из начальнойвершины должен быть путь к любой вершине;
6) из любой вершиныдолжен быть путь в конечную вершину;
7) для любых наборовлогических условий должен быть путь из начальной вершины в конечную вершину.1.3.3.2. Матричные схемы алгоритма
Матричная схема алгоритма представляетсобой квадратную матрицу,
строки которой соответствуют вершинамс выходами, столбцы – вершинам с входами. На пересечениях строк и столбцовзаписываются функции перехода. Такая функция представляет собой конъюнкциюкодов логических условий (логических переменных), переменная пишется безинверсии, если выход осуществляется по 1, в противном случае переменная пишетсяс инверсией. Функция перехода, равная 1, соответствует безусловному переходу.
Для указанного выше алгоритма МСА(МСА ННОД) представлена в табл.2
Таблица 1
Коды микроопераций,микрокоманд и условийКоды
Микрооперация,
условие Коды
Микро-
операция,
условие
микро- операции,
условия микро- команды
микро- операции,
условия микро- команды
y1
y2
y3
Y1
Y2
Y3
НОД:=А
А:=С
С:=НОД
y4
X1
X2
Y4
A:=A-C
A=C
A>C
Таблица 2МСА ННОД
Y1
Y2
Y3
Y4
Y5
YK
Y0, 4
__ __
Х1Х2
__
Х1Х2 Х1
Y1 1
Y2 1
Y3 1
Y5 1
/>/>/>/>/>/>
y3
С: =НОД /> Y3
Y0/> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> />
/>/>/>/>/>/>/>/>
A:=A-С />
Начало
y4 /> 1 1 Y4/> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> />
/>/>/>/>/>/>
НОД:=A 0 0
y1 />/>/>/> Y5
/>/>/> 1 1
/>
/>/>/> 0 0/> /> /> /> />
НОД:=A
Конец />
y1 Y1 YK /> /> /> /> /> /> /> /> />
Y2
y2 /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> />
A:=С />
Рис.3. ГСА ННОД Рис.4. Закодированная ГСА ННОД
Для МСА можно сформировать условия корректности:
1) в МСА не должнобыть строки Yk;
2) в МСА не должнобыть столбца Y0;
3) должны бытьстолбец Yk и строка Y0;
4) не должно бытьпустых строк и столбцов;
5) на строке недолжно быть одинаковых функций перехода;
6) на строке недолжно быть сочетаний 1 и функций перехода через логические переменные;
7) в столбце могутбыть одинаковые функции перехода;
8) на строке можетбыть только одна 1;
9) дизъюнкция всехфункций переходов на строке должна быть равна единице;
10) разные строки с одинаковымифункциями переходов разрешается оформлять в одной строке с указанием всехиндексов вершин старта.
По МСА можно упрощать алгоритмы и,следовательно, автоматы.1.3.3.3. Системы формул переходов
Все переходы, соответствующие строкеМСА, можно отразить в формуле переходов. Формул будет столько, сколько имеетсястрок в МСА. Получается система формул перехода (СФП).
Каждая формула переходов начинается свершины, из которой рассматриваются переходы, в правой части формулы пишетсядизъюнкция логических произведений вершин захода с соответствующими функциямиперехода.
Между левой и правой частями формулыставиться стрелка ®, которая отражает переходы от вершины левой части к одной из вершинправой части.
Переход совершается к той вершине,соответствующая функция перехода которой становится равной единице.
Для рассматриваемогоалгоритма СФП включает в себя:
Y0,4 ® Х1Х2Y1+Х1Х2Y4+Х1Y5;
Y1 ® Y2;
Y2 ® Y3;
Y3 ® Y4;
Y5 ® YK.
Применительно к СФП можносформулировать условия корректности:
1) не должно бытьформулы перехода для Yк;
2) в правой частилюбой формулы не должно быть вершины Y0;
3) логическая суммавсех функций перехода любой формулы должна быть равна единице;
4) конъюнкция любойпары функций перехода формулы должна быть равна нулю;
5) в формуле неможет быть одинаковых функций перехода;
6) у даннойоператорной вершины формул переходов может быть одинаковая функция перехода.
СФП позволяет производить формальныепреобразования, упрощать алгоритм, следовательно, и автомат. 1.3.3.4. Функциональные микропрограммы
Функциональная микропрограмма операциипредставляет собой программу в терминах микроопераций и осведомительных сигналов.
Применительно к Ф — языку [1] ФМПимеет следующую структуру:
1) заголовок сключевым словом “АЛГОРИТМ”;
2) совокупностьописаний с ключевыми словами “ВХОДНЫЕ”, ”ВНУТРЕННИЕ”, ”ВЫХОДНЫЕ”;
3) НАЧАЛО;
4) тело;
5) окончание сключевым словом “КОНЕЦ”.
ФМП алгоритма ННОД можнопредставить в следующем виде:
АЛГОРИТМ ННОД;
ВХОДНЫЕ А(1:32), С(1:32);
ВНУТРЕННИЕ:А(1:32), С(1:32), НОД(1:32);
ВЫХОДНЫЕ:НОД(1:32);
НАЧАЛО
М3: ПЕРЕЙТИ ЕСЛИХ1 ТО М1;
ПЕРЕЙТИ ЕСЛИХ2 ТО М2;
Y1;
Y2;
Y3;
М2: Y4;
ПЕРЕЙТИ М3;
М1: Y5;
КОНЕЦ.
Для ФМП существуют и условиякорректности:
1) должен бытьзаголовок;
2) данной меткойможет быть помечен только один оператор (одна строка);
3) в операторахперехода могут использоваться одинаковые метки;
4) строка послеоператора безусловного перехода должна иметь метку;
5) на строке можетбыть записана только одна микрокоманда или один оператор перехода. 1.4. Язык описания цифровой аппаратуры VHDL1.4.1. Общие сведения об языке
Сначала 70-х годов стала актуальной проблема создания стандартного средствадокументации схем и алгоритмов цифровой аппаратуры (ЦА), одинаково пригодногокак для восприятия человеком, так и для обработки в ЭВМ.
Этим средством явилсяязык VHDL [5,6,7]. Он был разработан в рамкахпрограммы создания суперскоростных интегральных схем (VHSIC) в 1970-х -1980-х годах.
Первоначально языкразрабатывался в качестве стандарта для обеспечения возможности передачидокументации, описывающей сложную систему, разработанную одним подрядчикомдругим подрядчикам. Этот язык был также предназначен для использования вкачестве языка моделирования.
Концепция стандартногоязыка описания аппаратуры для проектирования в электронике была определена насеминаре по языкам описания аппаратуры, который проходил в июне 1981 года. Наэтом семинаре примерно 20 человек из промышленности и академических круговсобрались вместе, чтобы разработать требования к языку описания аппаратуры дляиспользования в программе по сверхбольшим и высокоскоростным БИС министерстваобороны США.
После рассмотренияразличных существующих языков, включая Аdа, группа специалистов пришла к выводу, что ни один изсуществующих языков описания аппаратуры или языков программирования не подходитдля этой программы, потому что ни один из них не удовлетворяет всемпредъявленным требованиям.
Вместо этого группарекомендовала создать новый язык. В течение 1981 года требования былиобъединены с требованиями документа Аdа Steelman, полученный в результате документполучил название «Требования министерства обороны к языкам описанияаппаратуры». Этот документ с требованиями стал основой для первоначальнойразработки языка VHDL.
Разработка первоначальнойверсии языка заняла почти год и началась с октября 1983 года. В августе 1984года первоначальная разработка была представлена на смотре проектов в г. Ороно,штат Мэн.
Представителипромышленности, академических кругов и министерства обороны сделали многозамечаний команде разработчиков, для доработки версии с учетом этих замечанийпотребовалось дополнительных 4 месяца работы, после окончания которых быларазработана версия VHDL 7.2.
Для доказательстваправильности определения языка были разработаны инструментальные средства,чтобы обеспечить анализ и моделирование описаний на языке VHDL. Был также создан набор тестов,чтобы помочь оценить возможности языка для документирования аппаратуры.
Кроме того, министерствопотребовало использовать VHDL 7.2 для документирования несколькихпроектов, разработанных в рамках программы VHSIС.
Второй цикл в разработке VHDL начался в 1986 году с созданиягруппы анализа и стандартизации VHDL (VASC) в рамках подкомитета по стандартамСАПР технического комитета IЕЕЕпо автоматизации проектирования.
Эта группа отвечала заразработку языка VHDL 7.2, определенного в такой форме, которая была быприемлема для промышленности, коммерческих приложений, а также дляиспользования в военных заказах.
И снова работа сприложениями VHDL 7.2 выявила ряд дополнительных требований, и егодоработка с их учетом заняла примерно год.
Исправленное описаниеязыка было выпущено в нескольких черновых вариантах и рассматривалось вкачестве стандарта IЕЕЕ летом 1987года.
Окончательное признаниекак стандартного языка пришло с положительным голосованием на коллегии постандартам 10 декабря 1987 года. Таким образом, был создан стандарт IЕЕЕ VHDL 1076-1987.
В 1993-м году стандарт IЕЕЕ 1076 модифицировался и был принятдополнительный стандарт IЕЕЕ 1164.
В 1996-м году принят VHDL стандарт синтеза IЕЕЕ 1076.3.
Работу надусовершенствованием стандарта ведет группа VASC. Срок регулярного пересмотра стандарта — пять лет.
Ведутся также работы порасширению языка VHDL в областьописания аналоговой аппаратуры — VHDL-А, стандартизации внутренней формы представления VHDL — описаний в ЭВМ и формы задания тестов для VHDL –моделей.
В нашей стране созданаРоссийская ассоциация пользователей (РАЯПС) языка VHDL, призванная координировать работы в областистандартизации САПР на его базе, разработки VHDL — анализаторов, верификаторов, систем синтеза, системмоделирования, библиотек моделей интегральных микросхем, учебных курсов,пособий и т.п.
Разработчик цифровойаппаратуры может уточнить в VHDL-описанияхинтересующие его детали поведения используемых микросхем или, имея их на машинномносителе, приложенном к справочнику по электро-радиоэлементам, проверить модельна ЭВМ и изучить ее работу.
Проектировщик БИС можетсоставить формализованное задание на проектирование кристалла, включив в негоописание алгоритма и внешних характеристик БИС с тем, чтобы конструкторы итехнологи могли использовать верифицированное VHDL-описание для получения масок и фотошаблонов.
Эксплуатанционщикрадиоэлектронной аппаратуры, имея в комплекте документации VHDL-описание устройства, на его баземожет осуществлять модернизацию схем, может использовать VHDL-модели при поиске неисправностей всхеме и доработке контрольных тестов.
С помощью VHDL — приложений к учебникам и автоматизированным обучающим курсамболее эффективно решаются задачи обучения и тренинга в сфере проектирования иэксплуатации радиоэлектронной аппаратуры.
Стандартизация входныхязыков и внутренних интерфейсов подсистем САПР, в том числе и на базе VHDL, создает общую коммуникационную средудля САПР, позволяет упростить стыковку продуктов различных фирм, обменбиблиотеками моделей компонент и проектов, модернизацию отдельных подсистемСАПР.
Язык VHDL особенно хорошо подходит дляпроектирования с программируемыми логическими устройствами, и это получаетраспространение.
При проектировании логическихпрограммируемых приборов (ПЛИС) и (программируемых пользователем вентильныхматриц с большей емкостью от 500 до более 100000 вентилей, для быстрого иэффективного завершения проекта инженеры не могут использовать булевы уравненияили описания на уровне вентилей. Язык VHDL обеспечивает конструкции языка высокого уровня, которые дают возможностьразработчикам описывать большие схемы и быстро готовить изделия для реализации.
Этот язык поддерживаетсоздание библиотек проектов, чтобы сохранить компоненты для многократногоиспользования в последующих проектах. Так как язык VHDL является стандартным языком, он обеспечивает переносимостькода между инструментальными средствами синтеза и моделирования и машинонезависимоепроектирование.
Язык VHDL также облегчает преобразованиепроекта от программируемой логики к реализации специализированных интегральныхсхем.
Программируемыелогические устройства высокой плотности, включая логические программируемыеприборы и программируемые пользователем вентильные матрицы, могутиспользоваться для интеграции большого количества логики в одной интегральнойсхеме.
Заказные и полузаказныеспециализированные интегральные схемы устройства также используются дляинтегрирования большого количества цифровой логики, но и обеспечиваютдополнительную гибкость: они могут использоваться с более жесткими календарнымипланами, для изделий с малым тиражом и для опытных экземпляров серийныхизделий. Они также привлекательны для проектов, требующих низкие издержки длянеповторяемого проектирования.
Языки описания аппаратуры(Hardware Description Language) обеспечивают формальную запись, которая можетбыть использована на всех этапах разработки цифровых электронных систем. Этостановится возможным вследствие того, что язык легко воспринимается какмашиной, так и человеком. Он может использоваться на этапах проектирования,верификации, синтеза и тестирования аппаратуры также, как и для передачи данныхо проекте, для модификации и сопровождения.
Существует несколькоразновидностей этих языков: AHDL, VHDL, VerilogHDL, Abel и др. Известны такжеслучаи использования стандартных языков программирования, например Си, дляописания структуры БИС.
Ряд языков описанияаппаратуры (AHDL, Abel) предназначены для описания систем на ПЛИС, другиепоявились изначально как средство моделирования цифровых систем, а затем сталиприменяться для их описания.
На языке VHDL возможны как поведенческое, так иструктурное, а также потоковое описания цифровых схем. Это означает, что языкVHDL поддерживает три различных стиля описания аппаратных архитектур.
Первый стиль из них — структурное описание, в котором архитектура представляется в виде иерархиисвязанных компонентов.
Второй стиль — потоковоеописание (описание данных), в котором архитектура представляется в виде множествапараллельных регистровых операций, каждая из которых управляется вентильнымисигналами. Потоковое описание соответствует стилю описания, используемому вязыках регистровых передач.
И, наконец, третий стиль- поведенческое описание, в котором преобразование описываетсяпоследовательными программными предложениями, похожими на имеющиеся в любомсовременном языке программирования высокого уровня предложениями. Все три стилямогут совместно использоваться в одной архитектуре.
Структурное и потоковоеописания используются в основном для проектирования цифровых схем,поведенческое — только для моделирования этих схем, так как содержитконструкции, которые невозможно реализовать в виде схемы.
Наиболее важными в языкеVHDL являются понятия параллелизма и иерархии.1.4.2. Конструкции языка
В VHDL описании, как и в любой модели,отражаются только некоторые аспекты (характеристики) реальной системы.
Цифровую аппаратурухарактеризуют, например, такие аспекты, как
1) функциональный (реализуемаяфункция);
2) временной (задержки,производительность, время отклика);
3) структурный (схемы, типы и связикомпонент);
4) надежностный (время наработки наотказ);
5) конструктивный (вес, габариты);
6) стоимостной и т. д.
Язык VHDL содержит средства, позволяющиеотобразить только первые
три аспекта:функциональный, временной и структурный (рис. 5).
Функция (поведение)аппаратуры может детализироваться от уровня системы команд и алгоритмовустройств до булевых функций, структура — от уровня устройств типа процессор — память до уровня вентилей и переключающих элементов, время — от задержекфронтов сигналов (нано — и фемто-секунды) до тактов и задержекэлектромеханических устройств (секунды и часы).
Поведение(алгоритм)
/>команды
/>алгоритмустройства
/>микрооперации
/>булевы функции Структура
/>/>/>/>/>/>вентили регистры устройства
/>переключателибазовые элементы микросхемы ЭВМ и ВС
/>фронты сигналов
/>микротакты
/>такты
Время
Рис. 5. Возможности VHDL в области отображений характеристик (аспектов) аппаратуры
Степеньдетализации аспектов, отображаемых в описаниях аппаратуры, определяетсяконкретными задачами. Например, описание некоторой микропроцессорной системыможет строиться как описание структуры, состоящей из микросхем БИС и СИС, аописание самих микросхем строиться как поведенческое, так как их описание навентильном уровне либо отсутствует, либо слишком громоздко.
Любой язык базируется наразнообразных конструкциях (словах, массивах, переменных, константах,выражениях и т.д.).
В языке VHDL в качествеконструкций выступают объекты, проекты, иерархии, архитектурные тела, пакеты,тела пакетов и др.
Объект проектапредставляет собой описание компоненты проекта, имеющей чётко заданные входы ивыходы и выполняющей чётко определённую функцию.
Объект проекта можетпредставлять всю проектируемую систему, некоторую подсистему, устройство, узел,стойку, плату, кристалл, макроячейку, логический элемент и т. п.
В описании объектапроекта можно использовать компоненты, которые, в свою очередь, могут бытьописаны как самостоятельные объекты проекта более низкого уровня.
Таким образом, каждыйкомпонент объекта проекта может быть связан с объектом проекта более низкогоуровня. В результате такой декомпозиции пользователь строит иерархию объектовпроекта, представляющих весь проект в целом. Естественно, что вся иерархиябудет состоять из нескольких уровней абстракций. Такая совокупность объектовпроекта называется иерархией проекта.
Каждый объект проектасостоит, как минимум, из двух различных типов описаний: описания интерфейса иописания одного или более архитектурных тел.
Интерфейс описывается вобъявлении объекта проекта и определяет только входы и выходы объекта проекта.
Для описания поведенияобъекта или его структуры служит архитектурное тело.
Чтобы задать, какиеобъекты проекта использованы для создания полного проекта, используетсяобъявление конфигурации.
В языке VHDL предусмотренмеханизм пакетов для часто используемых описаний, констант, типов, сигналов.Эти описания помещаются в объявлении пакета.
Если пользовательиспользует нестандартные операции или функции, их интерфейсы описываются вобъявлении пакета, а тела содержатся в теле пакета.
Таким образом, приописании цифровых схем на языке VHDL возможно использование пяти различныхтипов описаний:
1) объявление объектапроекта,
2) объявлениеархитектурного тела,
3) объявлениеконфигурации,
4) объявление пакета и
5) объявление телапакета.
Каждое из описанийявляется самостоятельной конструкцией языка VHDL, любая конструкция может бытьнезависимо проанализирована анализатором и поэтому получило название “модульпроекта”.
Модули проекта, в своюочередь, можно разбить на две категории:
1) первичные модули и
2) вторичные модули.
К первичным модулямотносятся различного типа объявления, к вторичным — отдельно анализируемые телапервичных модулей.
Один или несколькомодулей проекта могут быть помещены в один файл, называемый файлом проекта.
Каждый проанализированныймодуль проекта помещается в библиотеку проекта и становится библиотечныммодулем.
Данная реализацияпозволяет создать любое число библиотек проекта. Каждая библиотека проекта вязыке VHDL имеет логическое имя (идентификатор). Фактическое имя файла,содержащего эту библиотеку, может совпадать или не совпадать с логическимименем библиотеки проекта.
Для ассоциированиялогического имени библиотеки с соответствующим ей фактическим именемпредусмотрен специальный механизм установки внешних ссылок.
Объекты данных являютсяхранилищами для значений определённого типа. Следует заметить, что все типы вязыке VHDL конструируются из элементов, представляющих собой скалярные типы.
Значения всех объектов всоздаваемой модели, взятые все вместе, отражают текущее состояниемоделирования. Описание на языке VHDL содержит объявления, которые создаютобъекты данных четырёх классов: константы, переменные, сигналы и файлы.
Константы и переменныесодержат одно значение данного типа. Значения переменных могут быть измененыназначением нового значения в предложении назначения переменной.
Значение константыустанавливается до начала моделирования и не может после этого изменяться.
Сигнал имеет текущеезначение подобно переменной. Он также имеет прошлую историю значений, накоторые разработчик может пожелать сослаться, а также множество будущих значений,которые будут получены от формирователей сигналов.
Новые значения длясигналов создаются предложениями назначения сигналов. Каждый объект в описаниидолжен ассоциироваться с одним и только одним типом. Тип состоит из множествавозможных значений и множества операций.
Имеютсяоперации двух видов. Некоторые операции являются предопределёнными, к ним,например, относятся операторы “+”, “-“ для значений типа integer.
Другие операции явнокодируются в языке VHDL; например, может быть написана функция-подпрограммаMax, которая возвращает наибольший из двух целых аргументов.
Тип объекта представляетинформацию, которая окончательно определяется в момент записи модели. Этаинформация способствует обнаружению несоответствий в тексте без обращения к моделированию.Например, легко обнаружить и отметить попытку назначения булевого значения (true или false) целой переменной.
Новоезначение, которое должно быть создано предложением назначения, определяетсявыражением в правой части. Выражения используются также и в других контекстах:например, как условие в предложении if. В состав выражения могут входитьконстанты, переменные, сигналы, операторы и указатели функций.
Когда имя объектаиспользуется в выражении, при расчёте значения выражения учитывается его текущеезначение.
Примером описанияцифрового автомата является преобразователь параллельного кода впоследовательный.
Преобразователь кодапредставляет собой устройство, на вход которого подается n-битное число впараллельном коде “d”, сигнал загрузки “load” и синхроимпульсы “clk”. Посигналу загрузки происходит запись входного слова во внутренний регистр ипоследовательная выдача в течении n тактов этого входного слова впоследовательном коде на выходе “о” синхроимпульсами “oclk”.
Послеокончания преобразования на выходе “e” появляется высокий уровень сигнала втечение одного такта.
Известно большое числоотечественных и зарубежных языков описания цифровой аппаратуры: МОДИС.МОДИС-В78, Автокод-М, МРL,ОСС-2, Форос, Алгоритм, СDL, DDL, VЕRILОG, ISPS, CONLAN, HILО,АВЕL, AHDL, РП8 и др.
В настоящее время толькодва языка удовлетворяют требованиям для цифрового логического проектирования: VHDL и VerilogНDL.
Язык VHDL отлично подходит для различных целей — для документации, синтеза и моделирования устройств и систем. Он отличаетсяболее мощной общеалгоритмической базой, более развитыми средствами отображенийвременных соотношений и используемых алфавитов моделирования, большимдиапазоном охватываемых систем и уровней их описаний, а главное – стандартностью(т. е признаваемостью мировым сообществом).
Если посмотреть на язык VHDL глазами программиста, то можносказать, что он состоит как бы из двух компонент — общеалгоритмической и проблемно-ориентированной(рис.6)./> /> /> /> /> /> /> /> /> /> /> /> /> /> /> ЯзыкVHDL /> /> /> /> /> /> /> /> Общеалгоритмическая
компонента /> Проблемно-
ориентированная компонента /> /> /> /> /> />
Рис.6. Две компоненты языка VHDL
Общеалгоритмическаякомпонента языка VHDL — это язык, близкий по синтаксису исемантике к современным языкам программирования типа Паскаль, Си, МОДУЛА-2,АДА.
Язык VHDL относится к классу строготипизированных, что означает, например, переменной типа целый (integег) нельзя присвоить значениевещественной (геа1) переменной:
variable Х integег; Y variable геа1;
Х: = Y; — ошибочная запись.
Помимо встроенных (пакет STANDARD) простых (скалярных) типов данных:целый (integег), вещественный (геа1), булевский (bоо1еаn), битовый (bit),данных физического типа — время (time),данных типа ссылка (указатель), пользователь может вводить и использовать своитипы данных (перечислимые, физические, целые и плавающие).
Например:
type temp is range 0 to 42;— объявлен диапазонный целый тип temp;
type let is (‘i’, ‘j’, ‘k’); — перечислимый тип lеt; принимающий тризначения;
variable Z, Х: temр; variable Y: let:
Х: = 10; — присваиваниеверно;
Х: = 1000; — неверно,выход из допустимого для Х диапазона;
Y: = 'i'; — — верно;
Y:='0'; — неверно.
Помимо скалярных типовданных можно объявлять и использовать агрегаты — составные типы данных: массивы(аггау), в том числе битовые векторы (bit vector) исимвольные строки (string), а такжезаписи (гесогd) и файлы (file).
Например:
tуре МЕМОRY isаггау (0 to 1000) оf bit; — массив из 1001 бита;
variable М: МЕМОRY;
М(i.):=М(j+1); — присваивание в элемент массива.
В языке VHDL имеются три класса объектов:константы, переменные и сигналы.1.4.2.1. Константы
Константа — это объект,значение которого неизменно.
Примерыописаний констант:
соnstant Рi: геаl: =3.14; — вещественная константа Pi;
соnstant D1: let: = 'k';
соnstant ALL1: bit vector (0to 2): = '111'.1.4.2.2. Переменные
Значения переменных могутизменяться. При описании переменных можно указать их начальное значение:
variable Х: integer:=0;
variable Y: геаl;
variable Z: let;
X:= 10; -oператор присваивания переменной Х значения 10.
1.4.2.3. Сигналы
Сигналы — это объекты,которые имеют временные параметры и могут изменяться:
signа1 ВВ1: integer;
signа1 СС1:1et; — оператор назначения сигналу с задержкой
ВВ1 1.4.2.4. Операторы
Последовательновыполняемые (последовательные) операторы языка VHDL могут использоваться в описаниях процессов, процедури функций.
Их состав включает:
оператор ожидания wait;
оператор присваиванияпеременной (: =);
последовательный операторутверждения (аssert);
условный оператор (if);
оператор выбора (саsе);
оператор цикла (1оор):
пустой оператор (null);
оператор возврата изпроцедуры-функции (геturn);
оператор выхода (ехit);
оператор перехода (nехt).
Язык поддерживает концепции модульного и структурного программирования.
Сложные операторызаключены в операторные скобки: if-end if; ргоcеss — end ргосеss; саsе — еnd саsе,1оор — еnd 1оор и т. д. Поэтому отпадает необходимость в специальныхоператорных скобках для отображения составных операторов и, например, запись
if Х>Y thеn А: = В, С: == D; еnd if;
означает совместноевыполнение двух присваивании при истинности условия Х>Y.1.4.2.5. Пакеты
Пакеты, как и в обычныхалгоритмических языках — это средство выделения из ряда программ и подпрограммобщих типов данных, переменных, процедур и функций, позволяющее упростить, вчастности, процесс их замены. В языке VHDL у пакета разделяются описание интерфейса пакета (рас-kаgе) и описание тела пакета (расkаgе bоdy).
По умолчаниюпредусмотрено подключение стандартного пакета
SТАNDАRD. Этот пакет, вчастности, содержит, как уже отмечалось, описание стандартных типов данных – integer, геа1, bоо1еаn, bitи др.
Пакет ТЕХТIO содержит стандартные операторы ввода-вывода.Нестандартные пакеты реализуются пользователями, желающими более точноотобразить свойства описываемых ими объектов. Например, можно в пользовательскомпакете переопределить стандартные логические операции И (аnd), ИЛИ (ог) и НЕ (nоt) и перейти от булевского (0,1) к многозначному (1, О, X, ,Z)алфавиту моделирования.
Пример пользовательскогопакета:
расkаgе РА is — интерфейс пакета РА.;
tуре Т1 is ('М','N'); — объявлен тип T1; — функция F;
еnd;
расkаgе bоdу РА is- тело пакета;
function F (Х:= Т1) return Т1 is;
bеgin
if Х= 'М' then геturn 'N’; — функция F;
еlse геturn 'М'; — заменяет'M' на 'N';
еnd;
еnd;
ЗАКЛЮЧЕНИЕ
В данном рефератеприведены краткие сведения по основам языка микропрограммирования (Ф-языку),средства которого необходимы при микропрограммировании и алгоритмизацииопераций над дискретными объектами.
Изложены основныесведения об языке описания цифровой аппаратуры VHDL для будущего использования.
Содержатся сведения посредствам описания (задания) цифровых автоматов (ГСА, МСА, СФП), используемыхпри проектировании.
Необходимо заметить, чток ранее разработанным алгоритмам операций над дискретными объектамиприбавляются алгоритмы новых операции, а предыдущие постоянно совершенствуются.
ЛИТЕРАТУРА
1. Триханов А.В. Основы прикладнойтеории алгоритмов. Учебное пособие. -Томск: Ротапринт ТПИ, 1991.- 96 c.
2. Майоров С.А., Новиков Г.И.Принципы организации цифровых вычислительных машин. –М.: Высшая школа, 1975. –311 с.
3. Триханов А.В. Теория автоматов.Учебное пособие. — Томск: Изд. ТПУ, 1999. — 104 с.
4. Триханов А.В. Дискретнаяматематика. Учебное пособие.–Томск: Изд. ТПУ, 1999. — 136 с.
5. Александрович М.В., ГригоркинП.Г., Ознобихин И.В., Пеженков А.В., Поляков А.К., Сохацкий А.А.Учебно-методический комплекс ’Моделирование цифровых систем на языке VHDL’. Книга 1. Методические рекомендациидля преподавателя. — М.: Типография МЭИ, 1995.- 73 с.
6. Александрович М.В., ГригоркинП.Г., Дронова А.Ю., Ознобихин И.В., Пеженков А.В., Поляков А.К., Сазонова Н.Б.,Сохацкий А.А. Учебно-методический комплекс ’Моделирование цифровых систем наязыке VHDL’. Книга 3. Методические рекомендациидля обучаемого. — М.: Типография МЭИ, 1995.- 155 с.
7. Поляков А.К. Моделирование ЭВМ наязыке VHDL. Учебное пособие. Книга 2. Учебно-методическийкомплекс ’Моделирование цифровых систем на языке VHDL.’ — М.: Типография МЭИ, 1995.- 128 с.
8. Савельев А.Я. Прикладная теорияцифровых автоматов. — М.: Высшая школа, 1987. — 272 с.
9. Чередов А.Д. Проектирование дискретныхустройств. Учебное пособие. –Томск: Изд. ТПУ, 1994. — 96 с.