CPLD Family
FLASH370™
4
Of the 86 product terms, 80 are for general-purpose use for the
16 macrocells in the logic block. Four of the remaining six prod-
uct terms in the logic block are output enable (OE) product
terms. Each of the OE prod uct terms contr ols up to eigh t of the
16 ma crocel ls and i s se lecta ble o n an i ndivi dual macr ocell ba-
sis . In ot her words , each I/ O cell c an select bet ween one of tw o
OE product terms to control the output buffer. The first two of
these four OE product terms are avail able to the upper half of
the I/O macrocel ls in a logic block. The other two OE product
terms are available to the lower half of the I/ O macrocells in a
logi c b loc k. The fi nal tw o product terms in each l ogic b l ock ar e
dedicated asynchronous set and asynchronous reset product
terms.
Product Term Allocator
Through the product term allocator, software automatically dis-
tributes product terms among the 16 macrocells in the logic
bl ock as needed. A total of 80 product terms ar e avai labl e from
the local product term array. The product term allocator pro-
vide s two imp ortant capabilit ies with out aff ecting perf ormance:
product term steeri ng and product term sharing.
Product Term Steeri ng
Product term steering is the process of assigning product
terms to macroc ell s as needed. F or example, if one m acrocell
requires ten product terms while another needs just three , the
product term allocator will “steer” ten product terms to one
macr ocell and three to the other . On FLASH370 dev ices, prod-
uct ter ms are steered on an individual basis. Any number be-
tween 0 and 16 product terms can be steered to any macrocell.
Note t hat 0 pr oduc t terms is usef ul in case s where a pa rticular
macr ocell is unused or used as an input regist er.
Product Term Sharing
Produc t term sharing is the p rocess of us ing t he sam e prod uct
term among multiple macrocells. For example, if more than
one output has one or more product terms in i ts e quation that
are common to other outputs, those product terms are only
programmed once. The FLASH370 product term allocator al-
lows s haring acr oss groups o f f our output macro cells in a v ari-
able fashion. The software automatically takes advantage of
this capa bility —t he user does not have to intervene. Note that
greater usable density can often be achieved if the user “floats”
the pin assignment. This allows the compiler to group macro-
cell s that hav e com m on product terms adjacently.
Note that neit her produ ct term sharing nor pr oduct te rm st eer-
ing ha v e any ef f ect on the spee d of t he pr oduct. All worst -case
steeri ng and s haring conf igur ation s h av e b een incorpor ated i n
the ti ming specificat ions fo r the FLASH370 devices.
FLASH370 Macrocell
I/O Macrocell
Within each logic block there are 8 or 16 I/O macrocells de-
pending on the device used. Figure 4 illust rates the architec-
ture of the I/O macrocell. The macrocell features a register that
can be configured as combinatorial, a D flip-flop, a T flip-flop,
or a level-t riggered latch .
The regi ster c an be a synchron ousl y set o r asynchr onou sly re -
set at th e logic b lock l evel with t he separ ate set and res et prod-
uct ter ms. Each of these product terms features programm a-
ble polar ity. This allows the regist ers to be set or reset based
on an AND expression or an OR e xpression.
Clocking of the register is very flexible. Depending on the de-
vice , either two or f our glo bal synchron ous clock s are av ailab le
to clock the register. Furthermore, each clock features pro-
gramm able pol arity so t hat regi ste rs c an be triggered on f alling
as wel l as rising edges (see the Dedicated/Clock Inputs sec-
tion) . Cl ock polarity i s chosen a t the logi c bloc k level.
Notes:
1. C1 is not used on the CY7C371 and CY7C372.
Figure 4. I/O Macrocell
flash370–4
0
1
2
3Q
C5 C6
“0”
“1”
0
1Q
D/T/L Q
C2 C3
P
0
1
2
3Q
S1 S0
C0
0
1Q
C4
FEEDBACK TO PIM
FEEDBACK TO PIM
2 BANK OE TERMS
4 SYSTEM CLOCKS (CY7C373 - CY7C375)
BL OCK RESET
BL OCK PRESE T
0−16
TERMS
I/O MACROCELL
I/O CELL
R
DECODE
ASYNCHRONOUS
ASYNCHRONOUS 2 SYSTEM CLOCKS (CY7C371 - CY7C372)
C1[1]
PRODUCT