Смекни!
smekni.com

Микропрограммирование операций ЭВМ (стр. 7 из 7)

Объекты данных являются хранилищами для значений определённого типа. Следует заметить, что все типы в языке 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).


Рис.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;

typeletis (‘i’, ‘j’, ‘k’); - перечислимый тип lеt; принимающий три значения;

variable Z, Х: temр; variable Y: let:

Х : = 10; — присваивание верно;

Х: = 1000; — неверно, выход из допустимого для Х диапазона;

Y : = 'i'; - - верно;

Y:='0'; — неверно.

Помимо скалярных типов данных можно объявлять и использовать агрегаты - составные типы данных: массивы (аггау), в том числе битовые векторы (bitvector) и символьные строки (string), а также записи (гесогd) и файлы (file).

Например:

tуре МЕМОRY is аггау (0 to 1000) оfbit; - массив из 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 (0 to 2): = '111'.

1.4.2.2. Переменные

Значения переменных могут изменяться. При описании переменных можно указать их начальное значение:

variable Х: integer:=0;

variable Y: геаl;

variableZ:let;

X:= 10; -oператор присваивания переменной Х значения 10.


1.4.2.3. Сигналы

Сигналы - это объекты, которые имеют временные параметры и могут изменяться:

signа1 ВВ1: integer;

signа1 СС1:1et; - оператор назначения сигналу с задержкой

ВВ1 <= 10 аftег 20 ns; - СС1 <= 'i’ аfteг 5 ns;.

1.4.2.4. Операторы

Последовательно выполняемые (последовательные) операторы языка VHDL могут использоваться в описаниях процессов, процедур и функций.

Их состав включает:

оператор ожидания wait;

оператор присваивания переменной (: =);

последовательный оператор утверждения (аssert);

условный оператор (if);

оператор выбора (саsе);

оператор цикла (1оор):

пустой оператор (null);

оператор возврата из процедуры-функции (геturn);

оператор выхода (ехit);

оператор перехода (nехt).

Язык поддерживает концепции модульного и структурного программирования.

Сложные операторы заключены в операторные скобки: if-endif; ргоcеss -end ргосеss; саsе - еnd саsе, 1оор - еnd 1оор и т. д. Поэтому отпадает необходимость в специальных операторных скобках для отображения составных операторов и, например, запись

ifХ>Ythеn А : = В, С : == D; еndif;

означает совместное выполнение двух присваивании при истинности условия Х>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 с.