Главная страница

Учебник по языку ahdl оглавление Введение 2 Элементы языка ahdl 3 Структура описания проекта на языке ahdl 25


Скачать 0.61 Mb.
НазваниеУчебник по языку ahdl оглавление Введение 2 Элементы языка ahdl 3 Структура описания проекта на языке ahdl 25
Дата28.04.2019
Размер0.61 Mb.
Формат файлаdoc
Имя файлаahdl.doc
ТипУчебник
#75494
страница3 из 18
1   2   3   4   5   6   7   8   9   ...   18

1.6.Строковые и символьные имена


В AHDL существует три типа имен:

    1. Символьные имена являются идентификаторами, описываемыми пользователем. Они используются для объявления следующих частей TDF:




      1. Внутренних и внешних узлов и шин

      2. Констант

      3. Переменных конечных автоматов, битов состояний и имен состояний

      4. Экземпляров

      5. Параметров

      6. Сегментов памяти

      7. Оценочных функций

      8. Именованных операторов




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

    2. Имена портов - это символьные имена, идентифицирующие входы или выходы логической функции.

Компилятор генерирует имена содержащие символ тильда (), которые могут появляться в файле подгонки (Fit File) проекта. При использовании обратной аннотации эти имена появятся и в ACF файле проекта. Символ тильда зарезервирован только для имен, генерируемых компилятором и Вы не можете использовать его в Ваших собственных именах выводов, узлов и шин.

Для трех типов имен доступны два вида представления: с использованием кавычек и без них. Строковые имена заключаются в одиночные кавычки ('), а символьные имена без них.

Когда Вы создаете символ представления TDF файла, который содержит строковые имена портов, кавычки не включаются в его символ представления входов и выходов (pinstub).

1.7.Шины


Символьные имена и порты одного и того же типа можно объявить и использовать как шины в булевых выражениях и уравнениях.

Шина, которая может содержать до 256 членов (или битов), рассматривается как коллекция узлов и действует как одно целое.

Одиночные узлы и константы GND и VCC можно дублировать для создания шин.

1.7.1.Способы объявления шин


Шины можно объявить с помощью следующих трех способов:

  1. Имя шины состоит из символьного имени или имени порта, за которым следует указание поддиапазона, заключенного в скобки, т.е. a[4..1]. Имя вместе с самым длинным числом в диапазоне может содержать до 32 символов. Например,

Имя q[MAX..0] правильно, если константа MAX была описана выше в операторе Constant.

После определения шины скобки [] являются коротким способом описания всего диапазона. Например,

a [4..1] можно указать как a[].

b [6..0][3..2] можно указать как b[][].

  1. Имя шины состоит из символьного имени или имени порта, за которым следует указание поддиапазонов, заключенных в скобки, т.е. d[6..0][2..0]. Имя вместе с самым длинным числом в диапазоне может содержать до 32 символов. К индивидуальному узлу в шине можно обратиться как name[y][z] или namey_z, где y и z числа в диапазоне шины.

  2. Последовательное имя шины состоит из списка символьных имен, портов или чисел, разделенных запятыми и заключенных в скобки, например, (a, b, c).

Эта нотация полезна для определения имен портов. Например,

Входные порты переменной reg типа DFF можно записать как reg.(d, clk, clrn, prn).
Ниже приведены две совокупности примеров, демонстрирующие две шины, описанные с помощью различной нотации:
b[5..0]

(b5, b4, b3, b2, b1, b0)

b[]
b[log2(256)..1+2-1]

b[2^8..3 mod 1]

b[2*8..8 div 2]

1.7.2.Диапазоны и поддиапазоны шин


Диапазоны в именах шин могут состоять из чисел или арифметических выражений, разделенных двумя точками (..) и заключенных в скобки []. Например,

a[4..1] шина с членами a4, a3, a2, и a1.

d[B"10"..B"00"] шина с членами d2, d1, и d0.

b[2*2..2-1] шина с членами b4, b3, b2, и b1. Ограничителями диапазона являются арифметические выражения.

q[MAX..0] допустимая шина, если константа MAX была описана в операторе Constant.

c[MIN(a,b)..0] допустимая шина, если оцениваемая функция MIN была описана в операторе Define.

t[WIDTH-1..0] допустимая шина, если параметр WIDTH был описан в операторе Parameters.
Не зависимо от того является ли ограничитель диапазона числом или арифметическим выражением компилятор разделяет и интерпретирует ограничители как десятичные значения (целые числа).

Поддиапазоны содержат подмножество узлов, определенных в объявлении шины и могут описываться рядом способов. Запятые можно использовать как заменители только в шинах с левой стороны булева уравнения или подставляемой ссылки. Например,
Если Вы объявили шину c[5..1], то Вы можете использовать следующие поддиапазоны этой шины:

c[3..1]

c[4..2]

c4

c[5]

(c2, , c4)

В поддиапазоне (c2, , c4), запятая используется для сохранения места не назначенному члену шины.

Диапазоны обычно приводятся в убывающем порядке. Для указания диапазонов в возрастающем порядке или как в убывающем так и в возрастающем порядке Вы должны определить опцию BIT0 с помощью оператора Options для предотвращения выдачи предупреждающих сообщений компилятором. В шинах с двумя диапазонами эта опция воздействует на оба диапазона.
1   2   3   4   5   6   7   8   9   ...   18


написать администратору сайта