Проектирование цифровых устройств с помощью языка описания аппаратуры VHDL. Бобрешов А.М - 43 стр.

UptoLike

Составители: 

43
нескольких параллельных операторах и процессах. Сигналы, значения
которых автоматически определяются исходя из состояний нескольких ис-
точников (драйверов), называют разрешаемыми (resolved). Разрешаемым
может быть объявлен конкретный сигнал или подтип данных, к которому
такой сигнал отнесен при его декларации. Декларация подтипа может
содержать имя функции разрешения (resolution function). Функция
разрешения определяет правило вычисления сигнала, формируемого
несколькими независимыми источниками.
Функция разрешения локализуется в том же программном модуле,
что и декларация подтипа, и вызывается всякий раз, когда меняет
состояние один из драйверов разрешаемого сигнала. Можно сказать, что
по умолчанию предполагается наличие в программном модуле
параллельного вызова этой функции, причем драйверы сигналов являются
ее фактическими параметрами, а возвращаемое значение присваивается
сигналу.
Рассмотрим в качестве примера представление линии, к которой
подключаются элементы с выходами типа "открытый коллектор". Если
хоть один источник выдает на линию уровень логического нуля, то на
линии устанавливается логический нуль. Тип bit не может быть
использован в подобной ситуации, ибо является неразрешаемым. Введем
тип odw, как разрешаемый подтип типа bit, и соответствующую функцию
разрешения:
function RESOLVED_ODW( S:bit_vector) return bit is
variable C: bit:='1';
begin
for I in S'range loop
if S(I)='0' then
C:='0';
exit;
end if;
end loop;
return C;
end RESOLVED_ODW;
subtype ODW is RESOLVED_ODW bit;
При проектировании чаще всего не требуется создание собственных
разрешаемых подтипов данных. В современных системах интерпретации
всегда присутствует пакет std_logic_ll64, в котором, в частности, оп-
ределен подтип std_logic как разрешаемый подтип девятизначного пере-
числимого типа std_ulogic
                                   43
нескольких параллельных операторах и процессах. Сигналы, значения
которых автоматически определяются исходя из состояний нескольких ис-
точников (драйверов), называют разрешаемыми (resolved). Разрешаемым
может быть объявлен конкретный сигнал или подтип данных, к которому
такой сигнал отнесен при его декларации. Декларация подтипа может
содержать имя функции разрешения (resolution function). Функция
разрешения определяет правило вычисления сигнала, формируемого
несколькими независимыми источниками.
      Функция разрешения локализуется в том же программном модуле,
что и декларация подтипа, и вызывается всякий раз, когда меняет
состояние один из драйверов разрешаемого сигнала. Можно сказать, что
по умолчанию предполагается наличие в программном модуле
параллельного вызова этой функции, причем драйверы сигналов являются
ее фактическими параметрами, а возвращаемое значение присваивается
сигналу.
      Рассмотрим в качестве примера представление линии, к которой
подключаются элементы с выходами типа "открытый коллектор". Если
хоть один источник выдает на линию уровень логического нуля, то на
линии устанавливается логический нуль. Тип bit не может быть
использован в подобной ситуации, ибо является неразрешаемым. Введем
тип odw, как разрешаемый подтип типа bit, и соответствующую функцию
разрешения:

function RESOLVED_ODW( S:bit_vector) return bit is
variable C: bit:='1';
  begin
       for I in S'range loop
               if S(I)='0' then
                      C:='0';
                      exit;
               end if;
       end loop;
       return C;
end RESOLVED_ODW;
subtype ODW is RESOLVED_ODW bit;

      При проектировании чаще всего не требуется создание собственных
разрешаемых подтипов данных. В современных системах интерпретации
всегда присутствует пакет std_logic_ll64, в котором, в частности, оп-
ределен подтип std_logic как разрешаемый подтип девятизначного пере-
числимого типа std_ulogic