1.6.Строковые и символьные имена В AHDL существует три типа имен:
Символьные имена являются идентификаторами, описываемыми пользователем. Они используются для объявления следующих частей TDF:
Внутренних и внешних узлов и шин
Констант
Переменных конечных автоматов, битов состояний и имен состояний
Экземпляров
Параметров
Сегментов памяти
Оценочных функций
Именованных операторов
Имена подпроектов - это имена, которые пользователь определил для файлов проекта более низкого уровня. Имя подпроекта должно совпадать с именем TDF файла.
Имена портов - это символьные имена, идентифицирующие входы или выходы логической функции.
Компилятор генерирует имена содержащие символ тильда (), которые могут появляться в файле подгонки (Fit File) проекта. При использовании обратной аннотации эти имена появятся и в ACF файле проекта. Символ тильда зарезервирован только для имен, генерируемых компилятором и Вы не можете использовать его в Ваших собственных именах выводов, узлов и шин.
Для трех типов имен доступны два вида представления: с использованием кавычек и без них. Строковые имена заключаются в одиночные кавычки ('), а символьные имена без них.
Когда Вы создаете символ представления TDF файла, который содержит строковые имена портов, кавычки не включаются в его символ представления входов и выходов (pinstub).
1.7.Шины Символьные имена и порты одного и того же типа можно объявить и использовать как шины в булевых выражениях и уравнениях.
Шина, которая может содержать до 256 членов (или битов), рассматривается как коллекция узлов и действует как одно целое.
Одиночные узлы и константы GND и VCC можно дублировать для создания шин.
1.7.1.Способы объявления шин Шины можно объявить с помощью следующих трех способов:
Имя шины состоит из символьного имени или имени порта, за которым следует указание поддиапазона, заключенного в скобки, т.е. a[4..1]. Имя вместе с самым длинным числом в диапазоне может содержать до 32 символов. Например,
Имя q[MAX..0] правильно, если константа MAX была описана выше в операторе Constant.
После определения шины скобки [] являются коротким способом описания всего диапазона. Например,
a [4..1] можно указать как a[].
b [6..0][3..2] можно указать как b[][].
Имя шины состоит из символьного имени или имени порта, за которым следует указание поддиапазонов, заключенных в скобки, т.е. d[6..0][2..0]. Имя вместе с самым длинным числом в диапазоне может содержать до 32 символов. К индивидуальному узлу в шине можно обратиться как name[y][z] или namey_z, где y и z числа в диапазоне шины.
Последовательное имя шины состоит из списка символьных имен, портов или чисел, разделенных запятыми и заключенных в скобки, например, (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 для предотвращения выдачи предупреждающих сообщений компилятором. В шинах с двумя диапазонами эта опция воздействует на оба диапазона.
|