Язык AHDL


Использование для переменных значений по умолчанию


Вы можете определить значение по умолчанию для узла или шины, который используете, когда его величина не указана где-нибудь в другом месте файла. AHDL позволяет Вам также присваивать значение узлу или шине более одного раза в одном файле. Если эти присваивания конфликтуют, то значение по умолчанию используется для разрешения конфликтов. При отсутствии определения значения по умолчанию ему присваивается значение GND.

Значение по умолчанию определяется  с помощью оператора Defaults для переменных, использующихся в операторах Truth Table, If Then, и Case.

Вы не должны путать значения по умолчанию для переменных со значениями по умолчанию для портов, которые присваиваются в разделе Subdesign.

Файл default1.tdf, приведенный ниже, оценивает входы и выбирает один из пяти ASCII кодов, основываясь на входах.

 

SUBDESIGN default1

(

   i[3..0]             : INPUT;

   ascii_code[7..0] : OUTPUT;

)

BEGIN

   DEFAULTS

ascii_code[] = B"00111111"; % ASCII  код "?" %

   END DEFAULTS;

 

   TABLE

      i[3..0]    => ascii_code[];

      B"1000" => B"01100001"; % "a" %

      B"0100" => B"01100010"; % "b" %

      B"0010" => B"01100011"; % "c" %

      B"0001" => B"01100100"; % "d" %

   END TABLE;

END;

 

Когда входной набор совпадает с одним из наборов, приведенным с левой стороны оператора Truth Table, выходы устанавливаются в соответствии с комбинацией справа. Если совпадения не происходит, выходы принимают значения по умолчанию B"00111111".

Файл default2.tdf, приведенный ниже, иллюстрирует как возникают конфликты, когда одному узлу присваивается более одного значения и как эти конфликты разрешаются языком AHDL.

 

SUBDESIGN default2

(

a, b, c                           : INPUT;

select_a, select_b, select_c : INPUT;

wire_or, wire_and            : OUTPUT;

)

BEGIN

   DEFAULTS




Начало  Назад  Вперед



Книжный магазин