Ultra37000 CPLD Family
|
|
|
|
| 3 | 2 | 2 |
|
|
|
| 0−16 | MACRO- | I/O |
|
|
|
|
| PRODUCT | CELL | CELL |
|
|
|
|
| 0 | 0 |
| |
|
|
|
| TERMS |
| ||
|
|
|
|
|
|
| |
|
|
| 7 | 0−16 | MACRO- |
|
|
|
|
|
|
|
| ||
|
|
|
|
| CELL | to cells |
|
|
|
|
| PRODUCT | 1 | 2, 4, 6 8, 10, 12 | |
|
|
|
| TERMS |
|
|
|
FROM |
|
|
|
|
|
|
|
PIM | 36 | 72 x 87 | 80 | PRODUCT |
|
|
|
|
| PRODUCT TERM |
| TERM |
|
|
|
|
| ARRAY |
| ALLOCATOR |
|
|
|
|
|
|
| 0−16 | MACRO- | I/O |
|
|
|
|
|
| CELL | CELL |
|
|
|
|
| PRODUCT | 14 | 14 |
|
|
|
|
| TERMS |
|
|
|
|
|
|
| 0−16 | MACRO- |
|
|
TO |
|
|
|
| CELL |
|
|
|
|
| PRODUCT | 15 |
|
| |
PIM |
|
| 16 | TERMS |
|
|
|
|
|
|
|
|
|
| |
|
|
| 8 |
|
|
|
|
Figure 1. Logic Block with 50% Buried Macrocells
Low-Power Option
Each logic block can operate in
Product Term Allocator
Through the product term allocator, software automatically distributes product terms among the 16 macrocells in the logic block as needed. A total of 80 product terms are available from the local product term array. The product term allocator provides two important capabilities without affecting perfor- mance: product term steering and product term sharing.
Product Term Steering
Product term steering is the process of assigning product terms to macrocells as needed. For example, if one macrocell requires ten product terms while another needs just three, the product term allocator will “steer” ten product terms to one macrocell and three to the other. On Ultra37000 devices, product terms are steered on an individual basis. Any number between 0 and 16 product terms can be steered to any macrocell. Note that 0 product terms is useful in cases where a particular macrocell is unused or used as an input register.
Product Term Sharing
Product term sharing is the process of using the same product term among multiple macrocells. For example, if more than one output has one or more product terms in its equation that are common to other outputs, those product terms are only programmed once. The Ultra37000 product term allocator allows sharing across groups of four output macrocells in a
variable fashion. The software automatically takes advantage of this
Note that neither product term sharing nor product term steering have any effect on the speed of the product. All
Ultra37000 Macrocell
Within each logic block there are 16 macrocells. Macrocells can either be I/O Macrocells, which include an I/O Cell which is associated with an I/O pin, or buried Macrocells, which do not connect to an I/O. The combination of I/O Macrocells and buried Macrocells varies from device to device.
Buried Macrocell
Figure 2 displays the architecture of buried macrocells. The buried macrocell features a register that can be configured as combinatorial, a D flip-flop, a T flip-flop, or a level-triggered latch.
The register can be asynchronously set or asynchronously reset at the logic block level with the separate set and reset product terms. Each of these product terms features program- mable polarity. This allows the registers to be set or reset based on an AND expression or an OR expression.
Clocking of the register is very flexible. Four global synchronous clocks and a product term clock are available to clock the register. Furthermore, each clock features program- mable polarity so that registers can be triggered on falling as well as rising edges (see the Clocking section). Clock polarity is chosen at the logic block level.
Document #: | Page 4 of 64 |
[+] Feedback