Я почитал про half latch и понял следующее:
Цитата
When the I/O Cell is configured as an input (or 3-stated output), a half latch feature exists.This half latch pulls the input High (through a weak pull-up) if the input should float and cross the threshold. This protects the input from staying in the linear region and ausing anincreased amount of power consumption
Я понимаю это так:
Когда I/O ячейка сконфигурирована как вход (или выход в 3-ем состоянии) то используется технология half latch. Эта технология привязывает вход к 1 (слабая привязка это 40-80Ом??) в том случаи если вход должен быть не привязан но пересек порог (какой?? ТТЛ??). Таким образом защищая вход от простоя в линейном регионе (что это?? постоянный уровень??) и увеличивая эффект экономии мощности.
Цитата
This weak pull up is automatically turned on when a pin is unused by the design.
Эта слабая привязка к 1 включается автоматически когда ножка не задействована.
Цитата
The half latch is essentially a pull-up that turns on only when the I/O pin voltage is in the linear region (not a 0, not a 1).So, when the voltage at the pin is in the trip-point region or higher, the half latch will be enabled.
half latch это принудительная привязка к 1 которая включается когда напряжение ножки I/O в линейном регионе (не 1 не 0). Итак когда напряжение на ножке в trip-point регеоне или выше, то half latch будет включен.
Цитата
The range of the trip-point is from 0.9V to 1.6V
Размах trip-point от 0,9В до 1,6В.
Цитата
The idea is that it will prevent signals from floating, and therefore, save power.
Идея в том чтоб сигнал не был плавающим и тем самым не расходовал энергию.
Цитата
If you want to pull down the input, a resistor strong enough to overcome the half latch must be used. Xilinx recommends that any pull-down resistor value be 10k Ohms or less.Xilinx does not recommend using CoolRunner XPLA3 devices in any design that requires I/O pins to truly float.
Если же вы хотите притянуть ножку к 0, то тогда нужен резистор достаточно большого наминала чтоб убрать эффект half latch. Xilinx рекомендует использовать резисторы номиналом 10КОм или меньше. Xilinx не рекомендует использовать CoolRunner XPLA3 в проектах где действительно нужны ножки с плавающим состоянием.
Цитата
The presence of a Half Latch means that an XPLA3 I/O pin will never be truly high impedance.
Сама сущность технологии Half Latch подразумевает, что XPLA3 I/O pin никогда не достигнут 3-его состояния.
Из вышеперечисленного я сделал выводы:
- если у нас есть вход или высокоимпедансный выход или незадействованная ножка, то она будет привязана к слабой единице (1,25В??).
- так же если ножка плавающая и напряжение на ней от 0,9В до 1,6В то она так же привязывается к слабой единице (1,25В??). И тем самым не пересекает порог срабатывания некоторых устройств(псевдо плавающая).
- привязывать к нулю нужно через 10Ком чтоб обойти Half Latch.
- не рекомендуется применять эти ПЛМ если нужны сигналы с 3-им состоянием или плавающие, и эту привязку к слабой единице (1,25В??) нельзя отключить!
Я правильно понял??
Цитата(sazh @ Dec 21 2008, 18:19)

Если регистр при инициализации можно в 0 установить должна помочь.
А значит и внутренним ресетом регистрам нужные значения задать.
интересно у xilinx на cpld и fpga это реализуется на ресурсах кристалла и в среде моделирования.
Код
entity reset_power_up is
Port(
clk : in std_logic;
reset_power_up_n : out std_logic
);
end reset_power_up;
architecture Behavioral of reset_power_up is
signal cnt_power_up : std_logic_vector (5 downto 0) := "000000";
signal reset_power_up : std_logic := '0';
begin
reset_power_up_n <= reset_power_up;
process(clk)
begin
if(clk='1' and clk'event) then
if (cnt_power_up = "111111") then reset_power_up <= '1'; end if;
if (reset_power_up = '0') then cnt_power_up <= cnt_power_up + 1; end if;
end if;
end process;
end Behavioral;
Тоесть вы предлагаете использовать обычный счетчик ведь он всеравно когданибудь дойдет до значения "11111" и передернет ресет в противоположное состояние!!Оч хитро!!Надо попробовать!