Programmable Weak Pull- Up/Down and Bus-Keeper (Hold) Circuits

Both the device families have a programmable weak pull-down (20 KΩ typical), pull-up (20 KΩ typical), and bus-keeper circuit on every I/O pad when in input and output mode. Weak pull-up and pull-down circuits create a default setting for an input when it is not driven. For outputs, the weak pull-up and pull-down can be optionally programmed to set an initial level on the output pad before being actively driven. The bus-keeper circuit is used to weakly hold the signal on an I/O pin at its last driven state, keeping it at a valid level with minimal power dissipation. The bus-keeper circuitry also pulls undriven pins away from the input threshold voltage where noise can cause unintended oscillation. See device/package specific PPAT spreadsheet for default programming of weak pull-up/pull-down for unused pins from Libero SoC.

The following table lists the I/O standards that support weak pull-up/down and bus-keeper control.

Table 1. Weak Pull and Bus-Keeper Control
I/O Standards Supported I/O Types Options
LVTTL

LVCMOS33, LVCMOS25, LVCMOS18, LVCMOS15, and LVCMOS12

PCI

GPIO (input only) OFF

Weak pull-down

Weak pull-up

Bus-keeper

LVCMOS18, LVCMOS15, and LVCMOS12 HSIO (input only) OFF

Weak pull-down

Weak pull-up

Bus-keeper

The programmable weak pull-down, pull-up, and bus-keeper settings are controlled by using the I/O attribute editor in Libero SoC or by using the following PDC command:

set_io –res_pull <value>

The value can be set as up, down, hold, or none.