XC3000 | XC4000E | XC4000X | XC5200 | XC9000 | Spartan | SpartanXL | Spartan2 | Virtex |
---|---|---|---|---|---|---|---|---|
N/A | Macro | Macro | Macro | N/A | N/A | N/A | Macro | Macro |
In the XC4000 architectures, decoders are open-drain, wired-AND gates. When one or more of the inputs (A) are Low, output (O) is Low. When all the inputs are High, the output is High or Off. A pull-up resistor must be connected to the output node to achieve a true logic High. A double pull-up resistor can be used to achieve faster performance; however, it uses more power. The software implements these macros using the open-drain AND gates around the periphery of the devices. (Diamonds in library symbols indicate an open-drain output.)
In XC5200, decoders are implemented by cascading CY_MUX elements driven by lookup tables (LUTs). When one or more of the inputs are Low, the output is Low. When all the inputs are High, the output is High. You can decode patterns by adding inverters to inputs. Pull-ups cannot be used on XC5200 longlines.
In Virtex and Spartan2, decoders are implemented using combinations of LUTs and MUXCYs.
Inputs | Outputs* | |||
---|---|---|---|---|
A0 | A1 |
| Az | O |
1 | 1 | 1 | 1 | 1 |
0 | X | X | X | 0 |
X | 0 | X | X | 0 |
X | X | X | 0 | 0 |
z = 3 for DECODE4, z = 7 for DECODE8; z = 15 for DECODE16 *A pull-up resistor must be connected to the output to establish High-level drive current. |