.RU

Subdesign Section - Абак, похожее на русские счеты, было создано около пяти тысяч лет назад в Вавилоне (на территории...


Subdesign Section

. Раздел описания модуля позволяет задать имя мо­дуля и перечислить его выводы. Имя модуля должно совпадать с именем его текстового файла. Если модуль является модулем верхнего уровня ие­рархии, то его имя является одновременно и именем проекта, поэтому это имя будут иметь все вспомогательные файлы. В файле этот раздел может присутствовать только один раз.
Правила синтаксиса:
• Раздел начинается с ключевого слова SUBDESING, за которым следу­ет имя модуля. Максимальная длина имени 32 символа.
• После имени модуля следует заключенный в круглые скобки список его выводов.
• Типы выводов: INPUT - вход, OUTPUT - выход, BIDIR -двунаправленный вывод, MACHINE INPUD - вход импортируемых состоя­ний автомата, MACHINE OUTPUT - выход экспортируемых состоя­ний автомата. Выводы MACHINE INPUT и MACHINE OUTPUT не могут быть использованы в описании модуля верхнего уровня проекта, т.е. модуля, выводы которого являются выводами микросхемы.
• Выводы перечисляются через занятую в одну или несколько строчек. В конце перечня однотипных выводов символ (:), затем ключевое слово, указывающее тип выводов, и далее символ (;).
• После ключевого слова INPUT может быть указано значение по умолчанию (GND, VCC) входного сигнала. Это значение подается на вход в случае, если он окажется неподключенным при использовании данного модуля в иерархическом проекте.

^ Variable Section.

Раздел переменных позволяет задать внутренние переменные модуля, используемые в разделе описания логики (Logic Section). В файле этот раздел может присутствовать только один раз.
Переменные в языке AHDL представляют собой имена цепей; цепей с тремя состояниями; модулей, используемых в описании.
Правила синтаксиса:
• Раздел начинается с ключевого слова WARIABLE. Далее следуют: символическое имя переменной, символ (:), тип переменной, символ (;). Имена однотипных переменных могут быть перечислены через запятую.
• Допустимые типы переменных: NODE - цепь; TRI_STATE_NODE -цепь с тремя состояниями; модуль более низкого уровня иерархии; примитив; конечный автомат; псевдоним конечного автомата.
• Раздел переменных может содержать оператор IF GENERATE, позволяющий, в зависимости от значения оцениваемого в операторе арифметического выражения, управлять заданием переменных.
Logic Section. Раздел описания логики позволяет дать функциональное описание проектируемого модуля. В файле этот раздел должен быть единственным.
Правила синтаксиса:
• Раздел начинается с ключевого слова BEGIN и заканчивается ключевым словом END, за которым следует точка с запятой (;).
• В разделе могут быть использованы:
Defaults Statement (Оператор задания исходных значений);
Вооlеаn Equations (булевы уравнения);
Воо1еап Control Equations (булевы уравнения для описания функционирования);
Case Statement (Оператор CASE);
If Then Statement (Оператор If Then);
If Generate Statement (Оператор IF Generate);
In-line Logic Function reference (непосредственное обращение к функциям);
For Generate Statement (Оператор For Generate);
Truth Table Statement (Таблица истинности);
Assert Statement (Оператор контроля).
Если в разделе логики используется оператор задания значений по умолчанию (Defaults Statement), то он должен находиться сразу после ключевого слова BEGIN. Другие операторы могут следовать в произвольном порядке.

3.2.2. Числа


Язык AHDL поддерживает все комбинации десятичных, двоичных, восьмеричных и шестнадцатеричных чисел.
Таблица 3.1.

Основание

Формат

Десятичное


Двоичное

B

Восьмеричное

O или
Q

Шестнадцатеричное

X или
H

Пример:
SUBDESIGN decode1
(
address[15..0] : INPUT;
chip_enable ; OUTPUT;
)
BEGIN
chip_enable = (address [15..0] == H»0370»)
END;
Это дешифратор адреса, формирующий высокий активный уровень сигнала разрешения доступа к магистрали, если адрес на входе равен шестнадцатеричному числу 370 h. В этом примере десятичные числа использованы для указания размерности массива разрядов шины адреса. Шестнадцатеричное число Н«0370» - это значение адреса, при котором формируется активный разрешающий сигнал.

5.6.3. Имена


Имена могут присваиваться следующим элементам:
• портам, цепям и шинам;
• константам;
• переменным конечных автоматов, битам состояний и именам
состояний;
• экземплярам;
• параметрам;
• оценочным функциям;
• именованным операторам;
• сегментам памяти;
• подпроектам.
Синтаксис имен в языке AHDL подчиняется общепринятым правилам многих других языков:
• Имя может содержать буквы, цифры и символ (_). Прописные и строчные буквы не различаются. Имя не должно быть зарезервирован­ным словом.
• Имя должно начинаться с буквы и не должно заканчиваться символом (_)
• Строковые имена заключаются в одиночные кавычки (‘).
Имена цепей могут содержать до 32 символов. Если имя цепи не присвоено, она получает имя по умолчанию.
В следующих таблицах приведены зарезервированные слова (ключевые слова и служебные имена), а также символы языка AHDL.
Таблица 3.2.
Ключевые слова

AND

FUNCTION

OUTPUT

ASSERT

GENERATE

PARAMETERS

BEGIN

GND

REPORT

BIOIR

HELP_ID

RETURNS

BITS

IF

SEGMENTS

BURIED

INCLUDE

SEVERITY

CASE

INPUT

STATES

CLIQUE

IS

SUBDESIGN

CONECTED_PINS

LOG2

TABLE

CONSTANT

MACHINE

THEN

DEFAULTS

MOD

TITLE

DEFINE

NAND

TO

DESIGN

NODE

TRI_STATE_NODE

DEVICE

NOR

VARIABLE

DIV

NOT

VCC

ELSE

OF

WHEN

ELSIF

OPTIONS

WITH

END

OR

XNOR

FOR

OTHERS

XOR

Таблица 3.3.
Служебные имена

CARRY

JKFFE

SRFFE

CASCADE

JKFF

SRFF

CEIL

LATCH

TFFE

DFFE

LCELL

TFF

OFF

MCELL

TRI

EXP

MEMORY

USED

FLOOR

OPENDRN

WIRE

GLOBAL

SOFT

X


Таблица 3.4.
Символы языка AHDL



Подчёркивание (Underscore)

-

Тире (Dash)

/

Косая черта (Slash)

--

Двойное тире

%

Процент (Percent)

( )

Открывающая и закрывающая скобки (Left and Right Parentheses)

[ ]

Открывающая и закрывающая прямоугольные скобки(Left and Right Brackets)

‘…’

Открывающая и закрывающая кавычки (Quotation marks)

"…"

Двойные кавычки (Double Quotation)

.

Точка (Period)

..

Двойная тока

;

Точка с запятой (Semicolon)

,

Запятая (Comma)

:

Двоеточие (Colon)

=

Равенство (Equals)

=>

Стрелка (Arrow)

+

Плюс (Plus)

-

Минус (Minus)

= =

Двойное равенство

!

Восклицательный знак (Exclamation point)

!=

Восклицательный знак и равенство

>

Больше (Greater than)

>=

Больше или равно

<

Меньше (Less than)

<=

Меньше или равно

&

Амперсанд (Ampersand)

!&

Восклицательный знак и амперсанд

$

Доллар (Dollar sign)

!$

Восклицательный знак и доллар

#

Фунт (Pound sign)

!#

Восклицательный знак и фунт

?

Вопросительный знак (Question mark)

3.2.4. Константы


Константы в NODE можно использовать, давая имя числу или тексто­вой строке. Константы определяются с помощью оператора Constant. В нем константу можно определить с помощью арифметического выражения. Оператора Constant имеет следующие правила синтаксиса и семантики:
• Оператор начинается с ключевого слова CONSTANT, за которым сле­дует символическое имя константы, затем символ '=', затем число или арифметическое выражение. Оператор завершается символом ';'.
• В арифметическое выражение оператора Constant могут входить име­на констант, определенных ранее.
• Компилятор из выражения оператора Constant формирует число, ло­гика для этого выражения не создается.
• Использование циклических ссылок на другие имена констант недо­пустимы.
• Использовать имя константы можно только после ее определения.
Примеры
CONSTANT UPPER_LIMIT = 130;
CONSTANT FOO = 1;
CONSTANT FOO_PLUS_ONE = FOO+1;

3.2.5. Переменные


Переменные описываются в необязательном разделе Variable.
• Раздел начинается с ключевого слова VARIABLE, за которым следу­ют символические имена, разделенные запятыми, далее символ двоето­чия ';' и тип переменной.
« Допустимыми типами переменных являются NODE, TRI_STATE_NODE, имена примитивов, мегафункций, макрофункций, машины состояний.
• Раздел завершается символом ';'.
Объявление переменной типа NODE удобно для хранения значений промежуточных выражений, ей можно присвоить значение по умолчанию.

3.2.6. Порты


Порт - это вход или выход логической функции. Порты могут нахо­диться в двух местах:
• Порт, являющийся входом или выходом текущего файла, объявляется
в разделе Subdesign. Формат объявления следующий:
: [= ]
Имеются следующие типы портов:
Таблица 3.5.

INPUT

MACHINE INPUT

OUTPUT

MACHINE OUTPUT

BIDIR



• Порт, являющийся входом или выходом файла более низкого уровня или примитива, используется в разделе logic.

3.2.7. Цепи


Цепь, объявленная с помощью слова Node в разделе Variable может использоваться для хранения значения промежуточного выражения. Такие объявления полезны при повторном использовании этого выражения. При этом выражение можно заменить именем цепи, которое легче читается.
Цели бывают типа Node и Tri_State_Node. Эти типы отличаются тем, что Node связывают сигналы функцией Проводное - И (значения по умолчанию в операторах Defaults равно VСС) или Проводное - ИЛИ (значения по умолчанию в операторах Defaults равно GND), а Tri_State_Node привязывают сигналы к одной и той же цепи. 2010-07-19 18:44 Читать похожую статью
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • © Помощь студентам
    Образовательные документы для студентов.