Проектирование цифровых систем на языках описания аппаратуры/Лекция 8
- Заголовок
- Описание логических элементов, нерегулярных и регулярных логических схем
- Автор
- Ланкевич Ю.Ю.
- Нижний колонтитул
- Проектирование цифровых систем на языках описания аппаратуры/Лекция 8
- Дополнительный нижний колонтитул
- Ланкевич Ю.Ю., 15:49, 6 октября 2020
Слайд:Описание логических элементов, нерегулярных и регулярных логических схем
- Описание систем ДНФ
- Описание программируемой логической матрицы (ПЛМ)
- Многоуровневые и полиномиальные представления
- Описание нерегулярных логических схем
- Описание регулярных схем
- Оператора generate
- Сдвиговый регистр
- Многоразрядный сумматор
Слайд:Описание систем ДНФ
Поведение комбинационных логических элементов описывается булевыми функциями, которые чаще всего представляются в виде таблиц истинности либо ДНФ. Многовыходные логические элементы описываются в виде систем ДНФ. Система ДНФ булевых функций может быть совместно минимизирована в классе ДНФ и логические выражения могут быть упрощены. Минимизированная система ДНФ в матричной форме представлена в таблице. От данной таблицы легко перейти к выражениям на языке VHDL, используя только логические операторы и операторы назначения сигналов.
Tx | Bf | |||||
---|---|---|---|---|---|---|
b1 | b2 | a1 | a2 | c2 | s2 | s1 |
- | - | 1 | 1 | 1 | 0 | 0 |
1 | 1 | - | 1 | 1 | 0 | 0 |
1 | 1 | 1 | - | 1 | 0 | 0 |
1 | 1 | 0 | 0 | 0 | 1 | 0 |
1 | 1 | 1 | 1 | 0 | 1 | 0 |
0 | - | 1 | 0 | 0 | 1 | 0 |
0 | - | 0 | 1 | 0 | 1 | 0 |
- | 0 | 1 | 0 | 0 | 1 | 0 |
- | 0 | 0 | 1 | 0 | 1 | 0 |
1 | 0 | - | - | 0 | 0 | 1 |
1 | 0 | - | - | 0 | 1 | 0 |
entity adder_2 is port ( a1, b1, a2, b2 : in BIT; c2, s2, s1 : out BIT); end adder_2; architecture functional_dnf of adder_2 is begin c2 <= (a1 and a2) or (b1 and b2 and a1) or (b1 and b2 and a2); s2 <= (b1 and b2 and not a1 and not a2) or (b1 and b2 and a1 and a2) or (not b1 and a1 and not a2) or (not b1 and not a1 and a2) or (not b2 and a1 and not a2) or (not b2 and not a1 and a2); s1 <= (b1 and not b2) or (not b1 and b2); end functional_dnf;
Слайд:Описание программируемой логической матрицы
В общем случае ПЛМ предназначена для реализации системы ДНФ булевых функций f(x) = ( f1(x), …, fm(x)), x = (x1, …, xn), заданных на k общих элементарных конъюнкциях, и состоит из двух последовательно соединенных подсхем.
На входные шины ПЛМ подаются сигналы, соответствующие литералам входных переменных xi , i = 1, ..., n.
На матричной подсхеме первого уровня (матрице И) реализуется k элементарных конъюнкций системы ДНФ, матричная подсхема второго уровня (матрица ИЛИ) служит для реализации дизъюнкций элементарных конъюнкций.
ПЛМ, изображенная ниже, реализует следующую систему ДНФ булевых функций:
f1 = x̅1x̅3 ∨ x1x3 = k1∨k3;
f2 = x̅1x̅2x3 = k2;
f3 = x̅1x̅2x3 ∨ x1x3 = k2 ∨ k3.

Слайд:Многоуровневые и полиномиальные представления
f = x̅1x2x3 ∨ x2x3x4 ∨ x1x̅2x̅4∨ x1x̅3x̅4
может быть записана в виде полинома Жегалкина
f = x1⊕x2x3⊕x1x4,
которому соответствует следующее выражение языка VHDL
f <= x1 xor (x2 and x3) xor (x1 and x4);
Слайд:Описание регулярных схем

Слайд:Описание регулярных схем
Ниже приведено описание логической схемы с помощью оператора создания экземпляра компонента. Схема состоит из трех компонент – логических элементов NAO22, NAO2, т.е. используются только два типа элементов.
entity circuit1 is port ( y, c, b, x1 : in bit; a : out bit); end circuit1; architecture struct_1 of circuit1 is component nao22 port ( a, b, c, d : in bit; y : out bit); end component; component nao2 port ( a, b, c : in bit; y : out bit); end component; signal w, d: bit; begin m_3: nao2 port map (b => y, y => A, c => d, a => w); met1: nao22 port map (a => Y, b => C, c => b, D => x1, y => w); met2: NAO22 port map (y, b, c, c, d); end struct_1; |
entity nao2 is port ( a, b, c : in bit; y : out bit); end nao2; architecture beh_1 of nao2 is begin y <=(not a ) or (not b and not c); end beh_1; |
entity nao22 is port ( a, b, c, d : in bit; y : out bit); end nao22; architecture beh_2 of nao22 is begin y <=(not a and not b) or (not c and not d); end beh_2; |
Слайд:Описание регулярных схем
! Каждый оператор создания экземпляра компонента должен иметь метку.
Метки играют роль имен элементов схемы. Карта портов дается в скобках после ключевых слов port map.
Назначение портов компонентов является как позиционным, так и ключевым.
! Для выходных неиспользуемых портов компонентов нужно употребить ключевое слово open.
Следующий фрагмент VHDL-кода показывает, что при создании экземпляра компонента add1 на вход b1 можно подать константу 0 и выход c1 не использовать.
P1: add1 port map (b1 => '0', b2 =>x, s1 => s1, c1 => open);