Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АВМиС - бывшее АПЭВМ / АПЭВМ - конспект.doc
Скачиваний:
37
Добавлен:
15.09.2014
Размер:
599.55 Кб
Скачать

Примитивы триггеров.

Триггеры задаются описанием прототипа. В этом описании указываются имя триггера, имена входов и выходов, а также порядок следования имен входящих триггеров.

  1. D-триггер: FUNCTION DFF (D, CLK, CLRN, PRN);

RETURNS (Q)

FUNCTION DFF (D, CLK, CLRN, PRN, ENA);

RETURNS (Q)

  1. T-триггер: FUNCTION TFF (T, CLK, CLRN, PRN);

RETURNS (Q)

FUNCTION TFF (T, CLK, CLRN, PRN, ENA);

RETURNS (Q)

  1. JK-триггер: FUNCTION JKFF (J, K, CLK, CLRN, PRN);

RETURNS (Q)

FUNCTION JKFF (J, K, CLK, CLRN, PRN, ENA);

RETURNS (Q)

  1. SR-триггер: FUNCTION SRFF (S, R, CLK, CLRN, PRN);

RETURNS (Q)

FUNCTION SRFF (S, R, CLK, CLRN, PRN, ENA);

RETURNS (Q)

  1. Триггер отсечки LATCH: FUNCTION LANCH (D, ENA);

RETURNS (Q)

Выводы триггеров:

D,T,J,K,S,R– информационные

CLK– синхронизация по переднему фронту Ø 1

CLRN– вход асинхронного сброса. Активен когда Ø

PRN– вход асинхронной установки. Активен когда Ø

ENA – активный вход 1

Q – выход

Триггер отсечки:

ENA

D

Q

0

X

Q*

1

0

0

1

1

1

Q* - значение входаDна момент времени последнего переходаENA1Ø (отсечка происходит)

Структура программы языка ahdl

Текстовое описание на языке AHDLделится на три части:

  1. Вводная

  2. Описание интерфейса (Subdesign Section)

  3. Описание логики (Logic Section)

  1. Вводная часть состоит из 8 операторов. Все они не являются обязательными. В простейшем случае вводная часть может отсутствовать.

    1. оператор заголовка (Title Statement)

Он позволяет задать название для файла отчета (*.RPL)

TITLE “Binary COUNTER”;

    1. оператор включения (Include Statement)

Он включает содержание файла указанного в нем в текущее текстовое описание.

INCLUDE “low_project.inc”;

INCLUDE “const”;

Если имя файла задано без расширения, то по умолчанию ставиться расширение inc. Имя файла не должно содержать пути. Поиск файла включает осуществление компилятором в следующей последовательности:

      1. Директория проекта

      2. Библиотека пользователя

      3. Директории системы

Файл включения может создавать следующие операторы:

  1. Описание прототипа

  2. Обозначения

  3. Объявления параметра

  4. Задание константы

    1. оператор задания константы (ConstantStatement)

Этот оператор присваивает символическому имени числовое значение, либо значение, заданное арифметическим выражением.

CONSTANT UP = H ”140”;

CONSTANT BAR = 3*UP + 256;

Имя константы уникально и не должно содержать пробелов. Оператор может использоваться протокольно.

    1. оператор обозначения (Define Statement)

Он позволяет обозначать арифметическое выражение символическим именем.

DEFINE AB (a,b) = (a+b)*(a-b);

Пример использования:

SUB DESIGN DEF

(data_a[AB(5,1)..0] :INPUT;

data_b[AB(4,2)..0] :OUTPUT;)

Арифметическое выражение может создавать символические имена, определенные ранее.

    1. оператор объявления параметров (ParametrsStatement)

Он позволяет объявить параметры, управляющие реализацией параметризованных модулей. Параметр в языке AHDL- это символическое имя строки символов, заключенное в двойные кавычки или числа, заданного явно или арифметическим выражением. Имя параметра уникально и не содержит пробелов.

PARAMETRS

(FILENAME = “myfile.mit”, WIDTH = 8, NUMWORDS = 2^WIDTH);

Область действия параметров текстового описания, в котором он объявлен, может использоваться многократно.

    1. оператор описания прототипа (Function Prototyp Statement)

Он позволяет описать интерфейс модулей или примитивов, которые будут использованы в данном текстовом описании. Он начинается с ключевого слова FUNCTION, за которым следует имя модуля или примитива, за ним в скобках список входов модуля. Если модуль параметризирован, то следует ключевое словоWITHи заключается в скобках список параметров. Затем пишется ключевое словоRETURNSи за ним в круглых скобках выходы модуля. Оператор заканчивается“;”. Оператор может использоваться многократно.

    1. оператор задания опции (Options Statement)

Он позволяет определить в группе элемент с меньшим индексом. Существуют три варианта его использования:

  1. OPTIONSBITO=MSB– мы полагаем что индекс увеличивается слева направо (А[1..5])

  2. OPTIONSBITO=LSB– мы полагаем что индекс растет справа налево (А[4..1])

  3. OPTIONSBITO=ANY– безразлично как растет индекс

По умолчанию работает вариант 2.

Значение опции, заданной в файле верхнего уровня иерархического распределения и на файлы нижних уровней используется один раз.

    1. оператор контроля (Assert Statement)

Он проверяет истинность арифметического выражения. Если выражение ложно, то выдается сообщение и определяется реакция компилятора.

ASSERT (WIDTH>0)

REPORT “Width(%) must be positive integer” WIDTH

SEVERITYERROR

% - заменяется на значение переменной, содержащейся после кавычек.

Оператор может содержать несколько символов “%”. Ключевое слово SEVERITYнеобязательно. По умолчанию реакцияERROR. Также реакция может быть: предупреждение –WARNING; информация –INFO.

  1. Описание интерфейса (Subdesign Section)

Это описание задает имя модуля и имена его выводов. Имя модуля должно совпадать с именем файла, в котором содержится текстовое описание модуля.

SUBDESIGN project_1

(AB[4..0] : INPUT = VCC;

D : INPUT = GND;

C[7..0] : OUTPUT;

E[3..0] : BITDIR;)

Это должно содержаться в файле project_1.tdf

Типы выводов:

  1. INPUT – входы

  2. OUTPUT – выходы

  3. BITDIR – двунаправленный вывод

  4. Вход импортируемый к состоянию автомата – MACHINEINPUT

  5. Выход экспортируемый к состоянию автомата – MACHINEOUTPUT

Выводы 4 и 5 не используются в верхнем уровне иерархии, т.е. не могут быть выводами БИС. После ключевого слова INPUTможет быть указано базовое значение (логический 0 –GND, логическая 1 –VCC). Базовое значение используется, если вход модуля не подключен.

Раздел описания интерфейса может содержать раздел описания переменных (VariableSection).

Переменная – это символическое имя, предназначенное для обозначения линии связи, линии связи с тремя состояниями, модуля, используемое в текстовом описании в качестве компоненты.

VARIABLE

a,b,c:NODE; - именование линии связи

add:M1; - модулю М1 в тексте прочно присваивается имяadd

t1 :TRI_STATE_NODE; - именование линии связи с тремя состояниями

ff[3..1] :DFF; - говорит о том, что хотим работать с тремяD-триггерами

AA : MACHINE OF BITS (Q1, Q2, Q3)

WITH STATE (A0 = B”000”, A1 = B”001”, A2 = B”011”);

- объявляет автомат

Q1

Q2

Q3

A0

0

0

0

A1

0

0

1

A2

0

1

1

  1. В этом разделе описывается алгоритм работы проектируемого устройства. Описание логики заключается в операторные скобки:

BEGIN END;

При описании логики используются следующие языковые конструкции:

  1. Оператор задания базового значения логического уравнения

  2. Оператор CASE

  3. Оператор IF THEN

  4. Оператор IF GENERATE

  5. Оператор FOR

  6. Таблица истинности

  7. Оператор контроля

А также непосредственное обращение к примитивам и модулям нижнего уровня иерархии.

Оператор задания базового значения размещается сразу после BEGIN, а остальные операторы могут следовать в произвольным порядке.