«Бог не меняет того, что (происходит) с людьми, пока они сами не изменят своих помыслов.» Коран, Сура 12:13

Проектирование цифровых систем на языках описания аппаратуры/Лекция 7

Материал из Wiki
Перейти к: навигация, поиск
Лекции ПЦСЯОА

Лекции

Практические

Доп. материалы

Заголовок
Описание поведения и структур цифровых схем. Многозначная логика. Разрешающие функции.
Автор
Ланкевич Ю.Ю.
Нижний колонтитул
Проектирование цифровых систем на языках описания аппаратуры/Лекция 7
Дополнительный нижний колонтитул
Ланкевич Ю.Ю., 12:32, 5 октября 2020


Слайд:Многозначная логика

Когда сигнал имеет один драйвер (иногда драйвер называют контейнером), то значение сигнала легко определить, потому что, когда процесс приостанавливается, значение сигнала из драйвера передается сигналу. Однако во многих практических ситуациях один и тот же сигнал может назначаться в различных (нескольких) процессах. Например, шина данных в персональном компьютере может получать данные из процессора, памяти (ОЗУ), жесткого диска и других устройств. Сигнал от многих источников называется в языке VHDL разрешаемым (resolved), для таких сигналов требуется написание функции разрешения (разрешающей функции). Разрешающая функция – это функция определения значения сигнала по его значениям из различных источников. Далее будем рассматривать два источника и для этого случая изучать функции разрешения в электронных схемах. Для моделирования процессов прохождения сигналов в реальных электронных схемах используется многозначная логика. Тип bit обобщается на случай девяти значений сигнала

'U' -- не инициализировано;
'X' -- неизвестное значение (сильный источник сигнала);
'0' -- логический 0 (сильный источник сигнала);
'1' -- логическая 1 (сильный источник сигнала);
'Z' -- высокий импеданс (цепь не подключена к источнику);
'W' -- неизвестное значение (слабый источник сигнала);
'L' -- логический 0 (слабый источник сигнала);
'H' -- логическая 1 (слабый источник сигнала);
'-' -- безразличное значение (don't care).

Заметим, что неизвестное значение 'X' не эквивалентно неопределенному значению '-'. Безразличное значение эффективно используется при логическом синтезе схемы и логической оптимизации. Человек, знакомый, например, с методами минимизации не полностью определенных булевых функций, может вспомнить о том, что некоторые безразличные значения '-' функции заменяются при минимизации определенными (0,1) с целью получения лучшего результата. Расширение типа bit на случай девяти значений сигнала привело к понятию типа std_logic. Основное назначение типа std_logic – это повысить точность моделирования и дать "легальную" возможность разработчику делать многократные присваивания одному и тому же сигналу.

Library IEEE;
use IEEE.std_logic_1164.all;
entity test_flag is
end;
architecture beh of test_flag is
    Signal FlagC : std_logic := 'Z'; signal Carry : boolean;
    begin
        ALU: process (carry)
        begin
            if Carry then
                FlagC <= '1';
            end if;
        end process ALU;
        COMM: process (carry)
        begin
            FlagC <= 'Z';
        end process COMM;
        Carry <= true,
                 false after 100 ns,
                 true after 200 ns;
end beh;