ВУЗ:
Составители:
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
Страницы
- « первая
- ‹ предыдущая
- …
- 41
- 42
- 43
- 44
- 45
- …
- следующая ›
- последняя »