XC3000 | XC4000E | XC4000X | XC5200 | XC9000 | Spartan | SpartanXL | Spartan2 | Virtex |
---|---|---|---|---|---|---|---|---|
N/A | Macro | Macro | Macro | N/A | Macro | Macro | Macro | Macro |
COMPMC8 is an 8-bit, magnitude comparator that compares two positive binary-weighted words A7 - A0 and B7 - B0, where A7 and B7 are the most significant bits. COMPMC16 is a 16-bit, magnitude comparator that compares two positive binary-weighted words A15 - A0 and B15 - B0, where A15 and B15 are the most significant bits.
These comparators are implemented using carry logic with relative location constraints to ensure efficient logic placement.
The greater-than output (GT) is High when A>B, and the less-than output (LT) is High when A<B. When the two words are equal, both GT and LT are Low. Equality can be flagged with this macro by connecting both outputs to a NOR gate.
Inputs | Outputs | ||||||||
---|---|---|---|---|---|---|---|---|---|
A7, B7 | A6, B6 | A5, B5 | A4, B4 | A3, B3 | A2, B2 | A1, B1 | A0, B0 | GT | LT |
A7>B7 | X | X | X | X | X | X | X | 1 | 0 |
A7<B7 | X | X | X | X | X | X | X | 0 | 1 |
A7=B7 | A6>B6 | X | X | X | X | X | X | 1 | 0 |
A7=B7 | A6<B6 | X | X | X | X | X | X | 0 | 1 |
A7=B7 | A6=B6 | A5>B5 | X | X | X | X | X | 1 | 0 |
A7=B7 | A6=B6 | A5<B5 | X | X | X | X | X | 0 | 1 |
A7=B7 | A6=B6 | A5=B5 | A4>B4 | X | X | X | X | 1 | 0 |
A7=B7 | A6=B6 | A5=B5 | A4<B4 | X | X | X | X | 0 | 1 |
A7=B7 | A6=B6 | A5=B5 | A4=B4 | A3>B3 | X | X | X | 1 | 0 |
A7=B7 | A6=B6 | A5=B5 | A4=B4 | A3<B3 | X | X | X | 0 | 1 |
A7=B7 | A6=B6 | A5=B5 | A4=B4 | A3=B3 | A2>B2 | X | X | 1 | 0 |
A7=B7 | A6=B6 | A5=B5 | A4=B4 | A3=B3 | A2<B2 | X | X | 0 | 1 |
A7=B7 | A6=B6 | A5=B5 | A4=B4 | A3=B3 | A2=B2 | A1>B1 | X | 1 | 0 |
A7=B7 | A6=B6 | A5=B5 | A4=B4 | A3=B3 | A2=B2 | A1<B1 | X | 0 | 1 |
A7=B7 | A6=B6 | A5=B5 | A4=B4 | A3=B3 | A2=B2 | A1=B1 | A0>B0 | 1 | 0 |
A7=B7 | A6=B6 | A5=B5 | A4=B4 | A3=B3 | A2=B2 | A1=B1 | A0<B0 | 0 | 1 |
A7=B7 | A6=B6 | A5=B5 | A4=B4 | A3=B3 | A2=B2 | A1=B1 | A0=B0 | 0 | 0 |
This is the COMPMC8 (8-bit) and COMPMC16 (16-bit) topology for XC4000E, XC4000X, Spartan, and SpartanXL devices.
In the process of combining the logic that loads GT and LT, the place and route software might map the logic that generates GT and LT to different function generators. If this mapping occurs, the GT and LT logic cannot be placed in the uppermost CLB, as indicated in the illustration.