книги / Схемотехника
..pdf9.3. МОДЕЛИРОВАНИЕ ЛОГИЧЕСКОГО ЭЛЕМЕНТАДНФ-LUT
9.3.1. Моделирование блока конъюнкцийДНФ-LUT
На рис. 9.7 представлена модель одного разряда S0 блока конъюнкций. Ключи S2, S3 моделируют настройки конфигурации t1, t2. При t1 = 1 – существенная переменная неS0, при t2 = 1 – существенная переменная S0. Ключ S1 формирует значение переменной S0, которое через инверторы (Q2,3,4,5) передаётся на инвертор Q7, Q8. В данном случае существенная переменная не S0, она равна 0, соответственно, она активна и входит в конъюнкцию, которую «набирает» цепочка из передающих транзисторов типа Q12 для вычисления значения конъюнкции на инверторе Q9, Q10 в блоке конъюнкций (рис. 9.7, 9.8).
Рис. 9.7. Моделирование логического элемента ДНФ-LUT
(существенная переменная неS0)
121
Рис. 9.8. Моделирование логического элемента ДНФ-LUT
(переменная S0 = 1 не существенна)
9.3.2. Моделирование блока функций ДНФ-LUT
Выполним моделирование блока функций ДНФ-LUT. На рис. 9.9 равна 0 конъюнкция, не входящая в функцию (t2 = 0).
Выполним моделирование ситуации «все конъюнкции функции не активны (активный уровень k = 0)» (рис. 9.10).
Таким образом, использование ДНФ-LUT позволяет уменьшить сложность реализации функций большого числа переменных. Выигрыш тем больше, чем меньше конъюнкций из два в степени n используется. При этом затраты растут линейно в отличие от известного LUT. Особенно велик выигрыш при n более 7,8. Выполненное функциональное моделирование подтверждает работоспособность предлагаемого технического решения ДНФ – конфигурируемого логического элемента ДНФ-LUT для ПЛИС – FPGA. Получен патент РФ [18].
122
Рис. 9.9. Моделирование блока функций ДНФ-LUT (равна 0 конъюнкция, не входящая в функцию)
Рис. 9.10. Моделирование блока функций ДНФ-LUT (равны 0 конъюнкции, входящие в функцию)
123
10. ЛОГИЧЕСКИЕ ЭЛЕМЕНТЫ С КОНТРОЛЕМ CHLUT
LUT С РАБОЧИМ КОНТРОЛЕМ
В высоконадёжных приложениях требуются цифровые устройства с контролем выполнения операций. В обычных ПЛИС такой контроль не предусмотрен.
Предлагается для контроля активной цепочки дерева передающих транзисторов цепочка в другой половине дерева, которая не активна в данный момент [19]. Эта цепочка тем не менее почти полностью «активная», за исключением последнего, «старшего» транзистора, так для набора 0001 (старшие разряды справа – А, В, С, D) такая, своего рода, альтернативная цепочка 0000. Теперь, если подключить её к настроечному входу, соответствующему набору 0001, то перед последним транзистором можно сравнить логические уровни этих двух цепочек. Нельзя просто так «замыкать» два настроечных входа – выходы SRAM. Однако это можно сделать, отключая выходы SRAM неиспользуемой в данный момент половины дерева дополнительными группами «отключающих» транзисторов, управляемых старшей переменной. Получаем схему (рис. 10.1).
На рис. 10.1 реализован контроль выхода LUT с использованием транзисторов Тс1, Тс2: один из «старших» транзисторов дерева проверяется непосредственно, другой – на соответствующем наборе, активирующем его. На рис. 10.1 схема сложения по модулю два реализована на основе LUT с n = 2, в котором «жёстко» заданы константы 0,1 путём подключения к шине питания
(Vcc) и «ноль вольт» (Ground).
Входные инверторы (NOT) необходимы для восстановления логического уровня сигнала, прошедшего цепочку передающих транзисторов. Два других инвертора обеспечивают инверсирование переменных. С учётом того, что для реализации инверторов (NOT) необходимо дватранзистора, всего требуется 16 транзисторов.
124
Рис. 10.1. Рабочий контроль LUT путём использования второй половины дерева передающих транзисторов
МОДЕЛИРОВАНИЕ ЛОГИЧЕСКИХ ЭЛЕМЕНТОВ С КОНТРОЛЕМ CHLUT-2
Выполним моделирование ЛЭ с контролем ChLUT-2, причём схему сложения по модулю два (рис. 10.1–10.6) представим одним блоком. Введём в схему четыре отключающих настройку транзистора, которые управляются старшей переменной Х2 (не Х2), соединим стоки этих транзисторов: d3 с d1, d2 с d0 для подключения настройки активной цепочки передающих транзисторов также и в альтернативную цепочку. Проверим формирование выходного сигнала и отсутствие сигнала ошибки (Error). Выполним моделирование передачи единицы и нуля со входа 0 (рис. 10.2, 10.3).
125
Рис. 10.2. Передача единицы со входа 0
Рис. 10.3. Передача нуля со входа 0
Схема функционирует верно: формируются 0 и 1. Выполним моделирование передачи единицы и нуля со входа 1 (рис. 10.4, 10.5).
126
Рис. 10.4. Передача нуля со входа 1
Рис. 10.5. Передача единицы со входа 1
Схема функционирует верно: формируются 1 и 0. Выполним моделирование передачи единицы и нуля со входа 2 (рис. 10.6, 10.7).
127
Рис. 10.6. Передача единицы со входа 2
Рис. 10.7. Передача нуля со входа 2
Схема функционирует верно: формируются 0 и 1. Выполним моделирование передачи единицы и нуля со входа 2 (рис. 10.8, 10.9).
128
Рис. 10.8. Передача единицы со входа 3
Рис. 10.9. Передача нуля со входа 3
Схема функционирует верно: формируются 0 и 1. Выполним моделирование обрыва связи d0–d2 при передаче 1 по d2 – формируется сигнал ошибки (рис. 10.10).
Выполним моделирование обрыва связи d0–d2 при передаче 0 по d2 – сигнал ошибки не формируется (рис. 10.11)
129
Рис. 10.10. Ошибка при несравнении информации 1
Рис. 10.11. Отсутствие ошибки, хотя связи нет – обрыв эквивалентен нулю
Следовательно, обрыв будет зафиксирован только при передаче единицы. Соответственно закорачивание связи на шину «ноль вольт» или постоянно закрытый транзистор будет обнаружен при передаче единицы.
130