KEEPER applies a weak driver on a tri-stateable output or bidirectional port to preserve its value when not being driven. The KEEPER property retains the value of the output net to which the port is attached.
For example, if logic 1 is being driven through the specified port, KEEPER drives a weak or resistive 1 through the port. If the net driver is then tri-stated, KEEPER continues to drive a weak or resistive 1 onto the net, through the connected port, to preserve that value.
Input buffers (for example., IBUF), 3-state output buffers (for example., OBUFT), and bidirectional buffers (for example, IOBUF) can have a weak pull-up resistor, a weak pull-down resistor, or a weak “keeper” circuit. This feature can be invoked by adding the PULLTYPE property with one of the following values to the port object connected to the buffer:
- PULLUP
- PULLDOWN
- KEEPER
- Architecture Support
- All architectures.
- Applicable Objects
- Ports (
get_ports
): Apply to any top-level port - Values
-
-
TRUE
|YES
: Use a keeper circuit to preserve the value on the net connected to the specified port. -
FALSE
|NO
: Do not use a keeper circuit (default).
-
Syntax
- Verilog Syntax
-
Place the Verilog constraint immediately before port definition. Specify the Verilog constraint as follows:
(* KEEPER = " {YES|NO|TRUE|FALSE}" *)
- VHDL Syntax
-
Declare and specify the VHDL constraint as follows:
attribute keeper: string; attribute keeper of signal_name : signal is “{YES|NO|TRUE|FALSE}”;
- XDC Syntax
-
set_property KEEPER {TRUE|FALSE} [get_ports port_name]
Where
port_name
is the name of an input, output, or inout port.XDC Syntax Example:
# Use a keeper circuit to preserve the value on the specified port set_property KEEPER TRUE [get_ports wbWriteOut]
Affected Steps
- Logical to Physical Mapping