Язык AHDL

Определение шин


Шина, которая может включать до 256 членов (битов), трактуется как коллекция узлов и работает как одно целое. Имя шины можно определить с помощью имени с одним диапазоном, имени с двумя  диапазонами или именем в последовательном формате.

В булевых уравнениях шина может приравниваться булеву выражению, другой шине, единственному узлу, VCC, GND, 1 или 0. В каждом из этих случаев  значение шины различно. Оператор Options

можно использовать для определения того, каким будет самый младший бит: наиболее значимым битом(MSB) или наименее значимым битом(LSB) или каким-либо другим.

Как только шина определена, скобки [ ] являются коротким способом определения всего диапазона. Например, a[4..1] можно также указать как a[]; b[5..4][3..2] можно представить  как b[][].

Файл group1.tdf,  приведенный ниже, демонстрирует булевы выражения, которые определяют несколько шин.

OPTIONS BIT0 = MSB;

CONSTANT MAX_WIDTH = 1+2+3-3-1;

% MAX_WIDTH = 2 %

SUBDESIGN group1

(

a[1..2], use_exp_in[1+2-2..MAX_WIDTH] : INPUT;

d[1..2],use_exp_out[1+2*2-4..MAX_WIDTH] : OUTPUT;

dual_range[5..4][3..2] : OUTPUT;



)

BEGIN

   d[] = a[] + B"10";

   use_exp_out[] = use_exp_in[];

   dual_range[][] = VCC;

END;

В этом примере оператор Options

используется для определения того, что самый правый бит шины будет MSB, а десятичная 1 прибавляется к шине a[]. Если ко входу a[] прикладывается 00, то результатом этой программы будет d[] == 1. Шины use_exp_in[] и use_exp_out[] показывают как константы и арифметические выражения можно использовать для ограничения диапазонов шин.

Следующие примеры иллюстрируют использование шин:

¨    Когда шина приравнивается к другой шине того же самого размера, то каждый член справа приравнивается каждому члену слева в соответствующей позиции.

¨    Когда шина приравнивается к VCC или GND, все биты шины соединяются с этим значением.

¨    Когда шина приравнивается к 1, только наименее значимый бит шины соединяется со значением VCC. Остальные биты шины соединяются с GND.

¨    Когда приравниваются шины не одинакового размера, количество битов шины с левой стороны уравнения должно точно делиться на количество битов шины с правой стороны уравнения. Например, уравнение

a[4..1] = b[2..1] правильно.

В этом уравнении биты отображаются следующим образом:

a4 = b2

a3 = b1

a2 = b2

a1 = b1



Содержание раздела