С последовательным резистором самый правильный вариант но еть проблема корпус BGA, выходов 20, плата маленькая. Оставлю напоследок. Сначала попробую исключить одновременное переключение транзисторов(как времянку), а в дальнейшем переразводку сделаю и дополнительно буфера поставлю. До этого эти функции обработки кнопок и управления транзисторами выполнял процессор через ПЛИС EPM7128. Она настолько дубовая что с транзисторами легко спавлялась. Убрал проц, поставил циклон и наткнулся на сложности, но думаю оно того стоило. При увеличении каоличества входов и выходов получил 5-и кратное сокращение потребляемой мощности на циклоне.
Цитата(R.A.K. @ Apr 10 2012, 20:32)

Вы лучше выложите здесь свой код для одной кнопки.
Chip Planner, я полагаю. Quartus HandBook Vol.2 наверное. ПМСМ, это лишнее, если в схеме затык. А последовательно резистор к затвору пробовали? Открытый коллектор с подтяжкой не спасает при выключении транзистора (т.е. разряде емкости).
Код следующий
------------------------------ Переменные для обработки кнопки 1 --------------------
signal bt1 : std_logic;
signal en_bt1 : std_logic;
signal er_bt1 : std_logic;
signal start_bt1_count : std_logic;
signal bt1_count : integer range 0 to 31 := 0;
signal bt1_er_count : integer range 0 to 15 := 0;
.
.
.
------------------------------ Обработка кнопки 1 --------------------------------------------------------------------
------------------------------ Антидребезг 0.03 сек ---------------------------------
PROCESS (bt1, CLK_610_Hz, bt1_count)
BEGIN
if bt1 = '1' then bt1_count <= 0;
elsif CLK_610_Hz 'EVENT and CLK_610_Hz = '1' and bt1_count < 18 THEN
bt1_count <= bt1_count + 1;
end if;
END PROCESS;
en_bt1 <= '1' when bt1_count = 18 else '0';
----------------------------- Проверка на залипание 5 сек ---------------------------
PROCESS (bt1, CLK_2_Hz, bt1_er_count)
BEGIN
if bt1 = '1' then bt1_er_count <= 0;
elsif CLK_2_Hz 'EVENT and CLK_2_Hz = '1' and bt1_er_count < 13 THEN
bt1_er_count <= bt1_er_count + 1;
end if;
END PROCESS;
er_bt1 <= '1' when bt1_er_count = 13 else '0';