Схемы типа ИЛИ-И, и И-ИЛИ оптимизируются на уровне CMOS транзисторов:
AOI (And-Or Inverted) AOI
Таблица истинности для AOI: ------------------- D C B A CD AB AOI ------------------- 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 1 0 1 0 0 1 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 0 0 0 1 0 1 1 1 0 1 0 1 0 0 0 0 0 1 1 0 0 1 0 0 1 1 0 1 0 0 0 1 1 0 1 1 0 1 0 1 1 0 0 1 0 0 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 1 1 1 1 1 0 ------------------- Пример моделирования CMOS AOI4 на Verilog: module cmos_aoi4(out,a,b,c,d); output out; input a,b,c,d; supply1 pwr; supply0 gnd; wire x,y,z; pmos(x, pwr, a); pmos(x, pwr, b); nmos(y, gnd, a); nmos(z, gnd, c); assign out = 1'bZ; pmos(out, x, c); pmos(out, x, d); nmos(out, y, b); nmos(out, z, d); endmodule
OAI (Or-And-Inverted)
Таблица истинности для OAI: -------------------- D C B A C+D A+B OAI -------------------- 0 0 0 0 0 0 1 0 0 0 1 0 1 1 0 0 1 0 0 1 1 0 0 1 1 0 1 1 0 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 0 0 1 1 1 1 1 0 1 0 0 0 1 0 1 1 0 0 1 1 1 0 1 0 1 0 1 1 0 1 0 1 1 1 1 0 1 1 0 0 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 0 -------------------- Пример моделирования CMOS AOI4 на Verilog: module cmos_oai4(out,a,b,c,d); output out; input a,b,c,d; supply1 pwr; supply0 gnd; wire x,y,z; pmos(y, pwr, a); pmos(z, pwr, c); nmos(x, gnd, a); nmos(x, gnd, b); assign out = 1'bZ; pmos(out, y, b); pmos(out, z, d); nmos(out, x, c); nmos(out, x, d); endmodule
Более сложные функции
Оптимизация сложной функции на уровне транзисторов CMOS:
Как правило ручная топология CMOS имеет вид: +-------------------------------------------------+ | | Vcc BUS +-------------------------------------------------+ +-------+ +--------+ +-------+ +-------+ | P | | P | | P | | P | +-------+ +--------+ +-------+ +-------+ +-------------------------------------------------+ | | Output +-------------------------------------------------+ +-------+ +--------+ +-------+ +-------+ | N | | N | | N | | N | +-------+ +--------+ +-------+ +-------+ +-------------------------------------------------+ | | GND +-------------------------------------------------+ Пускают шины Vcc и GND. Между ними P и N транзисторы. В самой середине межсоединения повышающего/понижающего каскадов. Практически все сложные CMOS структуры имееют такую форму. Разница в соединениях транзисторов и input/output сигналов. Поэтому в микросхемах все расположено в "нитках". Оптимизация топологии (CMOS в линеечку)