Скорость и мощность. Оригинальная ПМЛ на биполярных транзисторах, разработанная на фирме Monolithic Memories (и быстро скопированная National и AMD) потребляла значительный ток — около 200 мА для 16L8/16R8, и имела задержку распространения 40 нс. Последующие биполярные ПМЛ «половинной мощности» были вполне приемлемы — 90 мА и 35 нc. Однако самые быстрые ПМЛ потребуют все еще уйму мощности; например, время распространения ПМЛ 16R8D и 16Р8-7 фирмы AMD составляет соответственно 10 и 7,5 нс, но потребляют они 180 мА. (макс). КМОП-приборы существенно лучше: GAL (GAL20V8-15Q) «1/4 мощности» фирмы Lattice потребляют 45 мА при задержке 15 нс, ЕР320-1 фирмы Altera обладают задержкой 25 нс при токе 5 мА. Но что более важно для маломощных устройств, так это то, что кристаллы фирмы Altera (а также ПМЛ серии Ζ фирмы AMD) могут работать в резервном режиме с «нулевой мощностью». Конструкторы будущих структур программируемой логики, наверняка, сохранят эту здоровую тенденцию к повышению скорости и снижению мощности; современная программируемая логика, этот «пожиратель ватт», начинает уходить в прошлое!
Выбросы. ПЛИС, конечно, удивительная вещь, но вы можете, ненароком, оказаться в затруднительном положении, если не будете помнить о возможности логических состязаний. На рис. 8.85 показан 2-входовый мультиплексор, выполненный самым обычным способом; показаны ПМЛ — реализация и эквивалентная схема.
Рис. 8.85.Исключение глитча в ПМЛ; а — 2-входовый мультиплексор; б — для исключения глитча добавляется избыточный терм произведения; в — карта Карно с избыточным термом.
Здесь все выглядит как-будто прекрасно, но схема имеет один изъян: когда оба входа (А и В) находятся в состоянии высокого уровня, а линия ВЫБОР меняет состояние, на выходе, как показано, возможен выброс. Это объясняется тем, что внутренние задержки по цепям S и S' могут быть не равны, что приведет к появлению переходного состояния, в котором на одном из входов вентилей И будет низкий уровень. Избавиться от этого можно, использовав избыточный терм А*В, который будет гарантировать отсутствие выбросов, в чем вы можете легко убедиться.
Упражнение 8.33. Покажите, что дополнительный терм устраняет все возможности для появления выбросов.
Упражнение 8.34. Какие логические термы следует добавить к 4-входовому мультиплексору (рис. 8.75) для устранения выбросов.
С помощью карт Карно вы можете наглядно убедиться в существовании этих так называемых логических рисков; карта Карно для 2-входового мультиплексора рис. 8.85, а приведена на рис. 8.85, в. Каждая группа на карте представляет один терм произведения, который образует вход вентиля ИЛИ. Истинное значение на выходе ИЛИ появляется в том случае, когда любой из термов произведения имеет истинное значение; но переход между группами произведений может приводить к выбросам, если переменные первой группы снимаются, до того, как будут назначены переменные второй группы.
«Противоядие» (которое мы использовали и ранее) состоит в добавлении избыточных термов, гарантирующих, что любые переходы между логическими «1» будут включены в один терм произведения. Другими словами, любые единицы, которые лежат в соседних рядах или столбцах, будут покрыты группой произведения. Это предписание можно дать в обобщенной форме, связанной непосредственно с булевым логическим выражением, а не с картой Карно. Это удобно для логических функций, зависящих от более, чем 4-х переменных.
В предыдущем примере представлены так называемые статические выбросы, поскольку выход будет оставаться статическим. Существуют также динамические выбросы, проявление которых заключается в том, что выход, который должен сделать один-единственный переход, начинает многократно переходить из состояния в состояние. При использовании программируемой логики можно избежать этих внутренних гоночных условий. В общем средства проектирования такие, как PALASM, ABEL и CUPL не пытаются решать эти проблемы. Если хотите, они делают все, чтобы ухудшить ситуацию, поскольку их логические оптимизаторы усердно работают по исключению таких избыточных термов.
8.28. Разнообразные последовательностные схемы
Появление на рынке большого числа разнообразных БИС и СБИС (имеющих более 1000 вентилей на кристалле) дает возможность использовать достаточно сложные устройства, выполненные на одном кристалле. В этом разделе мы приведем несколько выборочных примеров.