Getting Started with Reconfigurable Logic

Transcription

Getting Started with Reconfigurable Logic
Getting Started with Reconfigurable
Logic
(CPLDs and FPGAs)
Prepared By Dr. Hossam Eldin Mostafa
Alexandria University, Faculty of Engineering, Alexandria, Egypt
www.cs.ucf.edu/~ahossam/
Main
CPLD Starter Kit
Hardware
Software
Examples
Documentation
Block diagram of XC9500 series
Pin diagrams XC9536-PC44
XC9536 Datasheet
PLCC Socket
This page is last updated on 1st December 2003
Getting Started with Reconfigurable
Logic
(CPLDs and FPGAs)
What is CPLD
A lot of logic devices are housed in CPLD and those connections can be specified by the program. For example, in case of the 7400 IC, 4 circuits
of 2 input NAND gate are housed. In case of 7404, 6 circuits of inverter are housed. These are separate IC. Therefore, to compose a circuit, it is
necessary to do each wiring among the pins using the printed board. In case of CPLD, it has wiring among the logic in the IC. So, the wiring on
the printed board can be made little.
The capacity of CPLD is limited. There is limitation on the number of the pins, too. So, don't do excessive expectations. The outline
specification of the part of the XC9500 series of Xilinx Inc. is shown below.
Parts name
XC9536-15PC44C
XC9572-15PC44C
XC9572-15PC84C
XC95108-15PC84C
Number of pins
44pin PLCC
44pin PLCC
84pin PLCC
84pin PLCC
Specification
2FB/36macrocells/800gates
4FB/72macrocells/1600gates
4FB/72macrocells/1600gates
6FB/108macrocells/2400gates
The point which CPLD is convenient for is the thing about which it is possible to rewrite many time because it is recording the
contents of the circuit to the flash memory. In the XC9500 series, rewriting in about 10,000 times is said to be possible. Also, because
the pin for the rewriting is preparatory, the contents can be rewritten in the condition to have mounted to the actual circuit if there is
wiring (In Circuit Programming).
Complex Programmable Logic Devices (CPLD) are another way to extend the density of the simple PLDs. The concept is to have a
few PLD blocks or macrocells on a single device with general purpose interconnect in between. Simple logic paths can be
implemented within a single block. More sophisticated logic will require multiple blocks and use the general purpose interconnect in
between to make these connections.
CPLDs are great at handling wide and complex gating at speeds e.g. 5ns which is equivalent to 200MHz. The timing model for
CPLDs is easy to calculate so before you even start your design you can calculate your in to output speeds.
Why use a CPLD
1- Ease of Design:
CPLDs offer the simplest way to implement design. Once a design has been described, by schematic and/or HDL entry, a designer
simply uses CPLD development tools to optimise, fit, and simulate the design. The development tools create a file, which is then used
to customise (program) a standard off-the-shelf CPLD with the desired functionality. This provides an instant hardware prototype and
allows the debugging process to begin. If modifications are needed, design changes are just entered into the CPLD development tool,
and the design can be re-implemented and tested immediately.
2- Lower Development Costs:
CPLDs offer very low development costs. Ease of design, as described above, allows for shorter development cycles. Because CPLDs
are re-programmable, designers can easily and very inexpensively change their designs. This allows them to optimise their designs
and continues to add new features to continue to enhance their products. CPLD development tools are relatively inexpensive and in
the case of Xilinx, are free. Traditionally, designers have had to face large cost penalties such as re-work, scrap, and development
time. With CPLDs, designers have flexible solutions thus avoiding many traditional design pitfalls.
3- More Product Revenue:
CPLDs offer very short development cycles, which means your products get to market quicker and begin generating revenue
sooner. Because CPLDs are re-programmable, products can be easily modified using ISP over the Internet. This in turn allows you to
easily introduce additional features and quickly generate new revenue from them. (This results in an expanded time for revenue).
Thousands of designers are already using CPLDs to get to market quicker and then stay in the market longer by continuing to
enhance their products even after they have been
introduced into the field. CPLDs decrease Time To Market (TTM) and extend Time In Market (TIM).
4- Reduced Board Area:
CPLDs offer a high level of integration (large number of system gates per area) and are available in very small form factor packages.
This provides the perfect solution for designers of products which must fit into small enclosures or who have a limited amount of
circuit board space to implement the logic design. The CoolRunner? CPLDs are available in the latest chip scale packages, e.g. CP56
which has a pin pitch of 0.5mm and is a mere 6mm by 6mm in size so are ideal for small, low power end products.
5- Cost of Ownership:
Cost of Ownership can be defined as the amount it costs to maintain, fix, or warranty a product. For instance, if a design change
requiring hardware rework must be made to a few prototypes, the cost might be relatively small. However, as the number of units
that must be changed increases, the cost can become enormous. Because CPLDs are re-programmable, requiring no hardware
rework, it costs much less to make changes to designs implemented using them. Therefore cost of ownership is dramatically
reduced. And don't forget the ease or difficulty of design changes can also affect opportunity costs. Engineers who are spending a lot
of time fixing old designs could be working on introducing new products and features - ahead of the competition. There are also
costs associated with inventory and reliability. PLDs can reduce inventory costs by replacing standard discrete logic devices.
Standard logic has a predefined function and in a typical design lots of different types have to be purchased and stocked. If the
design is changed then there may be excess stock of superfluous devices. This issue can be alleviated by using PLDs i.e. you only
need to stock one device and if your design changes you simply reprogram. By utilising one device instead of many your board
reliability will increase by only picking and placing one device instead of many. Reliability can also be increased by using the ultra
low power CoolRunner CPLDs i.e. lower heat dissipation and lower power operation leads to decreased Failures In Time (FIT).
In 1985, a company called Xilinx introduced a completely new idea. The concept was to combine the user control and time to market
of PLDs with the densities and cost benefits of gate arrays. A lot of customers liked it - and the FPGA was born. Today Xilinx is still
the number one FPGA vendor in the world! An FPGA is a regular structure of logic cells? or modules and interconnect which is
under the designer’s complete control. This means the user can design, program and make changes to his circuit whenever he
wants. And with FPGAs now exceeding the 10 million gate limit (Xilinx Virtex? II is the current record holder), the designer can
dream big!
CPLD Starter Kit
What is included
The components listed in the following table are included with the starter kit (The images of the components are shown in the
above image)
Download the above table in PDF format (kit_components.pdf) or in Exel format (kit_components.xls)
What is NOT included
The following components are NOT included with the starter kit.
1- +5v Power Supply
2- Parallel Port Adaptor
OR
Parallel Port Male Connector
4- DB25 Male -Female Cable
5- Bread Boards
6- Connecting Wires
HARDWARE
JTAG Parallel Port Programmer
To download the the schematic in PDF format click here jtag.pdf
(All the components are included with the starter kit)
CPLD Board
To download the the schematic in PDF format click here xc9536.pdf
(All the components are included with the starter kit)
Application Board
To download the the schematic in PDF format click here application.pdf
(Components are NOT included with the starter kit)
Whole System
D
VCC SENSE
DONE
PROG
DIN
CTRL
CLK
TMS_IN
4
3
C3
100p
C4
100p
D3
LED
R1
1K
120
R10
120
R9
120
R8
120
R7
C1
22n
2
D1
9
U1C
3
U2A
6
U2B
11
U5D
8
U2C
C2
100p
D2
2
5
12
9
C5
100p
U1D
U1B
6
R4
R2
1K
5
1N4004
R5
120
R6
120
R11
330
R12
330
R13
330
R14
330
R15
330
3
U1A
R3
5.6K
11
1N4004
8
12
120
2
4
5
15(S3)
13(S4)
6(D4)
2(D0)
5(D3)
3(D1)
4(D2)
8(D6)
11(*S7)
12(S6)
DB-25 PARALLEL PORT CONNECTOR
25(GND)
10
1
4
13
10
5
4
3
2
VCC
GND
VCC
1
GND
TDI
TDO
DIN
TCK
D/P
CCLK
TMS
VCC pin14
GND pin 7
74LS125
74HC125
CPLD
HEADER
*PROG
FPGA
HEADER
Notes:
U1
U2
U1 and U2 power:
1
Dr. Hossam Eldin Mostafa (www.cs.ucf.edu/~ahossam)
Alexandria University, Faculty of Engineering, Alexandria, Egypt
jtag.opj
November 2003
Xilinx CPLD & FPGA Parallel Port Programmer
13
C
B
A
1
D
C
B
A
D
5
4
TDO
TDI
TCK
3
VCC
32
XC9536 CPLD
30
15
17
TMS
VCCIO
U1
VCC = 5VDC
Programmer_TDO
Programmer_TDI
Programmer__TCK
16
GND
5
4
GTS1(I/O)
GTS2(I/O)
GCK1(I/O)
GCK2(I/O)
GCK3(I/O)
3
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
U1
13
14
18
19
20
22
24
25
1
2
3
4
8
9
11
12
PC0
PC1
PC2
PC3
PC4
PC5
PC6
PC7
PB0
PB1
PB2
PB3
PB4
PB5
PB6
PB7
PA0
PA1
PA2
PA3
PA4
PA5
PA6
PA7
PD0
PD1
PD2
PD3
26
27
28
29
33
34
35
36
37
38
43
44
2
2
VCC
R1
1K
D1
LED
1
1
Dr. Hossam Eldin Mostafa (www.cs.ucf.edu/~ahossam)
Alexandria University, Faculty of Engineering, Alexandria, Egypt
xc9536.opj
November 2003
Programmer_TMS
39
41
GSR(I/O)
VCC
31
42
40
GND
23
XC9536 CPLD BOARD
5
6
7
21
GND
C
B
A
VCC
10
D
C
B
A
VCC
5
R20
1K
D9
LED
R19
6.8k
5
12
13
C2
33p
11
U1D
Y1 12M
R18
3.3K
e
4
f
c
b
R9
330
a
VCC
g
d
VCC
gf e dc ba
9
10
U1C
8
7 SEGMENT MODULE
C1
33p
CLOCK GENERATOR MODULE
4
CLK_OUT
3
R17
10K
D1
2
D2
LED
L0
D3
LED
L1
D4
LED
L2
D5
LED
L3
D6
LED
R1
330
L4
D7
LED
R2
330
L5
D8
LED
R3
330
L6
LED
R4
330
VCC
R12
10K
R10
10K
DIP SWITCHES MODULE
SW DIP-4
SW1
R11
10K
R5
330
LED MODULE
P3 P2 P1 P0
R13
10K
R6
330
R14
10K
R7
330
R15
10K
R8
330
L7
VCC
R16
10K
PUSH BUTTONS MODULE
3
2
1
S3 S2 S1 S0
1
Dr. Hossam Eldin Mostafa (www.cs.ucf.edu/~ahossam)
Alexandria University, Faculty of Engineering, Alexandria, Egypt
November 2003
application.opj
APPLICATION BOARD
8
7
6
5
1
2
3
4
D
C
B
A
14
7
D
C
B
A
XILINX WebPACK Tutorial
Prepared by Dr. Hossam Eldin Mostafa
Faculty of Engineering, Alexandria University, Alexandria, Egypt.
(www.cs.ucf.edu/~ahossam/)
The Xilinx Inc. is providing the software tools to design CPLDs and FPGAs.This software is called WebPACK.
WebPACK is available free-of-charge by registering. You can download them from the XILINX site www.xilinx.com.
As for the WebPACK tool, a new type is released in order. Therefore, the operation is may be a little bit different from the tool which
is introduced on this webpage.
This section is a step by step approach to your first simple design. The following pages are intended to demonstrate the basic PLD
design entry and implementation process. In this example tutorial a simple HEX to seven segment decoder is designed in VHDL.
The design is initially targeted at a XC9536 CPLD.
Example Project
In this example(see the left image), we will design a Hex to seven segment decoder. The circuit accepts 4 binary bits as inputs (I3 I2 I1
I0) and produces 7 binary bits as outputs (O6 O5 O4 O3 O2 O1 O0). It is directed to derive a common anode seven segment display.
The right image shows the test circuit for this design using XC9536, DIP switches modules to generate the inputs and the seven
segment module to see the outputs. The pin out os the CPLD is illustrated and will be defined in the VHDL program. You can
download the above image in PDF format from decoder.pdf
The VHDL file that will be writtrn can be downloaded here decoder.vhd.
The whole Webpack project can be downloaded from here decoder.zip
Developing the project using WebPACK
Start WebPACK ISE Software
Select Start > Programs > Xilinx WebPACK > WebPACK Project Navigator. The following window will be displayed.
Sources in Project is the window to display a device name, a source module name and so on. Processes for Current Source is
the window to display a various function menu. The window on the right( HDL Editor workspace window ) is the window to
display a source code. The window most below( Transcript window ) is the window to display the log of the processing elapse
Creat a New Project
It is recommended that you create the folder which stores files of the project before beginning work. I made a folder which stores the
related files of the test project as C:\CPLD_projects\. Select File -> New Project… the dialog of the project creation of file is
displayed.
A Project Name, the place which saves a project, the kind of the device and the language to use and so on are set by this dialog.
Click Value of the device and the language to use and choose the contents which fit in from the displayed pull-down menu. Sources
in Project of Project Navigator changes when the registration of the project is done.
Other device families can be chosen here including FPGAs. Even if the flow is intended to be purely schematic, the schematic
diagram will be converted into HDL and synthesised through the chosen synthesis tool.
You can change the title of the project by choosing Source -> Properties or double-clicking
Making of a source file
A source type selection dialog is displayed when choosing Project -> New Source or clicking the
Select "VHDL Module" from the displayed item. When using a language except VHDL, select a corresponding language. Type "File
Name", and confirm the file saving path of "Location" and click "Next".
Type "Entity Name" and "Architecture Name". The ports can be specified by this dialog. However, in this example we specifie
them by the description of VHDL from behind. Click "Next" without assigning the ports. This table automatically generates the entity
in the decoder VHDL module. Following confirmation screen is displayed. Click "Finish" if there is not mistake in the contents.
The window (HDL Editor window) of the source code is displayed in HDL Editor workspace window of Project Navigator
Display or non-display of each window can be controlled with the View menu.
To spread a source code window, click Project Workspace of the View menu and removes checking. You can expand by clicking
, too. To make display a source code window in whole HDL Editor workspace window, click the window maximization
button in the upper right like usual window control. The basic part of the format of VHDL is already written in the displayed source
code window.
This time, you adde the following to entity and architecture to implement the decoder.
You can download the VHDL file from decoder.vhd
After doing the above-mentioned change, save a file by File -> Save or by the
the input and output pins of the CPLD inside the VHDL file.
button. The attribute keyword is used to define
Syntax check
By the following operation, the grammar of the made source file is confirmed. Double-click "Check Syntax" which is displayed in the
Process for Current Source window. This has the checking of format (Syntax). If the checking result is to be OK, Check Syntax
has a green checking mark. Also, "Done: completed successfully." is displayed in the end of the situation display window.
When checking a format without saving a file, the following dialog which shows that a file isn't saved is displayed. It is saved if you
click "Yes".
I attempt to make an intentional error occur as the example. I delete the last semicolon(;) of the port declaration of entity and I attempt
to execute Check Syntax
Check Syntax has a red X mark. Also, "Done: failed with exit code: 0001." is displayed in the end of the situation display window.
The position of the error can be known with the situation display window.
ERROR : (VHP__0162). C:\CPLD_projects\decoder\decodr.vhd Line 11. Read symbol ATTRIBUTE, expecting ';'.
An error is detected at the 11th line. When double-clicking , the mark which shows an error on the left side of the source code is
displayed. Because the mark shows the line which detected an error. So, check previous lines and so on.
Fitting
the file which will be written to the CPLD is generated fron the VHDL file using this process. Double-click "Fitter" which is displayed
at the Process for Current Source window. The fitting processing begins with this operation.
Fit Design has a green checking mark if the fitting result is to be OK. Also, "Done: completed successfully" is displayed in the end
of the situation display window.
The Confirmation of the Fitting Result
In case of complicated circuits, the various data must be confirmed. This time, we confirm the situation of the assigned pin.
Double-click Fitter Report which is displayed in the Process for Current Source window. A report window is displayed. There is
following figure in it. This figure shows the assignment of the pins.
If we did not predefine the inputs and output pins (using the attribute keyword), the tool will selecting pins automatically. So, the
design may not look neat.
In the Fitter report, the usage of the CPLD resources are listed as shown below
Invoking the Programmer
Note that the JTAG Parallel Port programmer will work directly on Windows 98. On Windows XP, 200, NT, some drivers may be
needed so try to use the programmer on Win98 Operating System.
The operation after this is the work to do after connecting a personal computer and CPLD device with the JTAG programmer (You
will build this programmer using the components supplied with the kit). Double-click Configure Device (iMPACT) which is
displayed at the Process for Current Source window.
The window of JTAG Programmer is shown below.
When using the parallel port of the PC, it specifies Parallel by Output -> Cable Setup -> Cable Communication Setup. Data is
transferred to CPLD if pushing the OK button. When a cable isn't connected, it becomes an error.
Select the CPLD (using the left mouse button) and right click the mouse to choose the operation or select Operations from the main
menu
The first operation is to erase the CPLD
It will ask you if you want to override the write protect. Select OK
Sometimes due to the parallel cable exessive length or another unknown reasons, the program hangs and does not say that it
completes the erasure successfully. Actually, it erases the CPLD successfully. But you should press CTRL + ALT + DEL and end the
programmer task and invoks it again by clicking on the iMPACT in the WebPACK project navigator.
Select the CPLD and with the mouse right button, choose Blank Check to check if the device has been erased successfully
If the devie has been erased, the Device is Blank message will be displayed
To program the device, select it with the left mouse button and with the right mouse button, choose Program
Unckeck the Erase Before Programmin box(Because we have already erased the device). Make sure that Verify box is checked.
When you do so, the following dialog will appear informing you that programming the device before erasing it may harm the
device. Discard this message and press OK and then press OK on the Programming window.
A progress bar appears indicating the progress of the programming.
When programming is OK, a Programming Succeded message appears.
Now, you can try the program you have just downloaded if you connect the CPLD inputs to the DIP switched and the CPLD outputs
to the seven segment,
Block diagram of XC9500 series
You can jump to the page of the explanation when you click the part where the pointer become the hand.
If you want to know more detailed specification, refer to the following PFD file.
I/O Blocks
An I/O block is composed of input buffer, output buffer,
multiplexer for the output control and grounding control and so on.
Multiplexer for the output control(OE MUX) controls an output
enable or stop. It is controlled by the signal from the macrocell or the
signal of the GTS(Global Three-State control) pin. It can always
make output '1' or '0', too. There are four GTS in XC95216 and
XC95288 and in case of the other device, they are two.
A slew rate control is the one to make the rising and the falling of
the output pulse smooth. It is used when suppressing the occurrence
of the noise.
A grounding control is used when making input/output pin (I/O)
an earth terminal. In case of the circuit where much noise occurs, it
isn't sometimes possible to do noise reducing by the standard earth
terminal.
At the actual circuit, a pull-up resistor is more connected with the
input/output pin. This circuit makes an input/output pin '1'
condition compulsorily during programming of CPLD to make an
influence by the condition of the I/O pin little. This circuit is detached
in usual operation
in usual operation.
Each input/output pin can handle a 24-mA current.
FastCONNECT Switch Matrix
FastCONNECT Switch Matrix controls the input signals to the
Function Block.
All the signals from the input-output port and the signals of the
Function Block are connected with FastCONNECT Switch
Matrix. The signals which are specified by the program out of
these signals are applied to the Function Block. The output
signals from the Function Block are applied to the Function
Block through the wired AND buffer. This provides additional
logic capability and increases the effective logic fan-in of the
destination Function Block without any additional timing delay.
It is automatically invoked by the development software where
applicable.
Function Block
Function block is composed of the programmable AND
array, product term allocator and macrocell.
36 pieces of signals inputted to the Function Block are
divided into the true and complement signals by the
programmable AND array and become 72 kinds of
signals.
In Product Term Allocator, it applys the signal with
combination of them to the macrocell.
A macrocell is composed of one D/T type flip-flop. The
signals of set/reset/clock to this flip-flop are supplied by
the Product Term Allocator.
The output of the logic circuit can be connected with the
pin without using a flip-flop, too.
need.
There are 18 independent macrocells in one Function
Block.
There are 18 pieces of output in the Function Block and
they are connected with FastCONNECT Switch Matrix
and I/O blocks. Also, the set/reset signal(GSR : Global
Set/Reset) and the clock signal(GCK : Global Clocks) are
inputted to the Function Block and are used for the
condition of the operation of the flip-flop according to
PTOE(Product Term Output Enable) signal is output to I/O block from Product Term Allocator.
The number of the Function Blocks depends on the device. As for XC9536, 2 blocks are mounted, as for XC9572, 4 blocks are mounted and as for XC95108, 6
blocks are mounted.
It isn't sometimes possible to use all macrocells by the limitation on the number of the pins. For details, confirm pin diagrams. There are few cases which connect all
macrocells with the pin actually. Generally, there are macrocells to use only in the logic inside.
In-System Programming
XC9500 devices are programmed in-system via a standard 4-pin
JTAG(Joint Test Action Group) protocol. The devices fully support
IEEE 1149.1 boundary-scan(JTAG).
Because it is equipped with the pin for independent JTAG, the
program can be changed as it mounted CPLD on the printed
board.
While programing, all input ports in the I/O block are set to the 'H'
level.
The wires to use in JTAG are the following four. Each use is shown
below.
TMS(Test Mode Select):
This signal is decoded by the TAP controller to control test
operations.
TCK(Test Clock):
This clock drives the test logic for all devices on
boundary-scan chain.
TDI(Test Data In):
This signal is used to transmit serial test instructions and
data.
TDO(Read Data):
Read back data from the target system is read at this pin.
Pin diagrams ( XC9536-PC44/XC9572-PC44 )
The figure on the left is the top view of CPLD of 44 pins.
The following item is used to know the position of the pin.
*The direction of the printed name.
*A corner in the upper left is shaved.
A pin numbering is counterclockwise given from the center of the line in the topside.
Note is necessary to the pin arrangement by the Function Block and the macrocell
because it a little irregular-ly.
In case of XC9536-PC44, the macrocells which corresponds to the input/output pins are
34 macrocells in the 36 macrocells.
In case of XC9572-PC44, they are 34 macrocells in the 72 macrocells.
The macrocells which don't correspond to the input/output pins can be used only in the
logic circuits inside.
The pins colored purple are pins for JTAG.
Pin Diagram of XC9536-15PC44C
FB : Function Block number
Pin
number
FB Macrocell
Pin
number
FB Macrocell
1
2
1
23
GND
2
1
1
24
1
17
3
1
2
25
2
17
4
1
4
26
2
16
1
3
27
2
15
28
2
14
29
2
13
5
GCK1
6
1
5
GCK2
7
1
7
GCK3
8
1
6
30
TDO
9
1
8
31
GND
10
GND
32
VccIO 3.3V/5V
11
1
9
33
2
12
12
1
10
34
2
11
13
1
11
35
2
10
14
1
12
36
2
9
15
TDI
37
2
8
16
TMS
38
2
7
17
TCK
39
2
6
GSR
18
1
13
40
2
5
GTS2
19
1
14
41
20
1
15
42
VccINT 5V
2
3
GTS1
21
VccINT 5V
43
2
4
22
1
44
2
2
16
Pin Diagram of XC9572-15PC44C
FB : Function Block number
Pin
number
FB Macrocell
Pin
number
FB Macrocell
1
1
2
23
GND
2
1
5
24
4
2
3
1
6
25
4
5
4
1
8
26
4
8
1
9
27
4
9
28
4
11
29
4
14
5
GCK1
6
1
11
GCK2
7
1
14
GCK3
8
1
15
30
TDO
9
1
17
31
GND
10
GND
32
VccIO 3.3V/5V
11
3
2
33
4
15
12
3
5
34
4
17
13
3
8
35
2
2
14
3
9
36
2
5
15
TDI
37
2
6
16
TMS
38
2
8
17
TCK
39
2
9
GSR
18
3
11
40
2
11
GTS2
19
3
14
41
20
3
15
42
VccINT 5V
2
14
GTS1
21
VccINT 5V
43
2
15
22
3
44
2
17
17
9
1
XC9536 In-System Programmable
CPLD

December 4, 1998 (Version 5.0)
1
1*
Product Specification
Features
Power Management
•
•
5 ns pin-to-pin logic delays on all pins
fCNT to 100 MHz
•
•
•
36 macrocells with 800 usable gates
Up to 34 user I/O pins
5 V in-system programmable (ISP)
- Endurance of 10,000 program/erase cycles
- Program/erase over full commercial voltage and
temperature range
Enhanced pin-locking architecture
Flexible 36V18 Function Block
- 90 product terms drive any or all of 18 macrocells
within Function Block
- Global and product term clocks, output enables, set
and reset signals
Extensive IEEE Std 1149.1 boundary-scan (JTAG)
support
Programmable power reduction mode in each
macrocell
Slew rate control on individual outputs
User programmable ground pin capability
Extended pattern security features for design protection
High-drive 24 mA outputs
3.3 V or 5 V I/O capability
Advanced CMOS 5V FastFLASH technology
Supports parallel programming of more than one
XC9500 concurrently
Available in 44-pin PLCC, 44-pin VQFP, and 48-pin
CSP packages
Power dissipation can be reduced in the XC9536 by configuring macrocells to standard or low-power modes of operation. Unused macrocells are turned off to minimize power
dissipation.
•
•
•
•
•
•
•
•
•
•
ICC (mA) =
MCHP (1.7) + MCLP (0.9) + MC (0.006 mA/MHz) f
Where:
MCHP = Macrocells in high-performance mode
MCLP = Macrocells in low-power mode
MC = Total number of macrocells used
f = Clock frequency (MHz)
Figure 1 shows a typical calculation for the XC9536 device.
(83)
ance
erform
High P
Typical ICC (mA)
•
•
Operating current for each design can be approximated for
specific operating conditions using the following equation:
(50)
(50)
ower
Low P
(30)
Description
The XC9536 is a high-performance CPLD providing
advanced in-system programming and test capabilities for
general purpose logic integration. It is comprised of two
36V18 Function Blocks, providing 800 usable gates with
propagation delays of 5 ns. See Figure 2 for the architecture overview.
December 4, 1998 (Version 5.0)
0
50
Clock Frequency (MHz)
100
X5920
Figure 1: Typical ICC vs. Frequency For XC9536
1
XC9536 In-System Programmable CPLD
3
JTAG Port
1
JTAG
Controller
In-System Programming Controller
36
18
I/O
Function
Block 1
Macrocells
1 to 18
I/O
I/O
I/O
Blocks
I/O
I/O
I/O
FastCONNECT Switch Matrix
I/O
36
18
Function
Block 2
Macrocells
1 to 18
I/O
3
I/O/GCK
1
I/O/GSR
I/O/GTS
2
X5919
Figure 2: XC9536 Architecture
Note: Function Block outputs (indicated by the bold line) drive the I/O Blocks directly
2
December 4, 1998 (Version 5.0)
XC9536 In-System Programmable CPLD
Absolute Maximum Ratings
Symbol
VCC
VIN
VTS
TSTG
TSOL
Warning:
Parameter
Supply voltage relative to GND
DC input voltage relative to GND
Voltage applied to 3-state output with respect to GND
Storage temperature
Max soldering temperature (10 s @ 1/16 in = 1.5 mm)
Value
Units
-0.5 to 7.0
-0.5 to VCC + 0.5
-0.5 to VCC + 0.5
-65 to +150
+260
V
V
V
°C
°C
Stresses beyond those listed under Absolute Maximum Ratings may cause permanent damage to the device. These are
stress ratings only, and functional operation of the device at these or any other conditions beyond those listed under
Recommended Operating Conditions is not implied. Exposure to Absolute Maximum Rating conditions for extended periods
of time may affect device reliability.
Recommended Operating Conditions
Symbol
1
Parameter
VCCINT
Supply voltage for internal logic and input buffer
VCCIO
Supply voltage for output drivers for 5 V operation
Supply voltage for output drivers for 3.3 V operation
Low-level input voltage
High-level input voltage
Output voltage
VIL
VIH
VO
Min
Max
Units
4.75
(4.5)
4.75 (4.5)
3.0
0
2.0
0
5.25
(5.5)
5.25 (5.5)
3.6
0.80
VCCINT +0.5
VCCIO
V
V
V
V
V
V
Note 1. Numbers in parenthesis are for industrial-temperature range versions.
Endurance Characteristics
Symbol
Parameter
tDR
Data Retention
NPE
Program/Erase Cycles
December 4, 1998 (Version 5.0)
Min
Max
Units
20
-
Years
10,000
-
Cycles
3
XC9536 In-System Programmable CPLD
DC Characteristics Over Recommended Operating Conditions
Symbol
VOH
Parameter
Test Conditions
Min
Output high voltage for 5 V operation
IOH = -4.0 mA
VCC = Min
Output high voltage for 3.3 V operation IOH = -3.2 mA
VCC = Min
Output low voltage for 5 V operation
IOL = 24 mA
VCC = Min
Output low voltage for 3.3 V operation IOL = 10 mA
VCC = Min
Input leakage current
VCC = Max
VIN = GND or VCC
I/O high-Z leakage current
VCC = Max
VIN = GND or VCC
I/O capacitance
VIN = GND
f = 1.0 MHz
Operating Supply Current
VI = GND, No load
(low power mode, active)
f = 1.0 MHz
VOL
IIL
IIH
CIN
ICC
Max
Units
2.4
V
2.4
V
0.5
V
0.4
V
±10.0
µA
±10.0
µA
10.0
pF
mA
30 (Typ)
AC Characteristics
Symbol
Parameter
tPD
tSU
tH
tCO
fCNT1
fSYSTEM 2
tPSU
tPH
tPCO
tOE
tOD
tPOE
tPOD
tWLH
I/O to output valid
I/O setup time before GCK
I/O hold time after GCK
GCK to output valid
16-bit counter frequency
Multiple FB internal operating frequency
I/O setup time before p-term clock input
I/O hold time after p-term clock input
P-term clock to output valid
GTS to output valid
GTS to output disable
Product term OE to output enabled
Product term OE to output disabled
GCK pulse width (High or Low)
XC9536-5
XC9536-6
XC9536-7 XC9536-10 XC9536-15
Min Max Min Max Min Max Min Max Min Max
5.0
3.5
0.0
6.0
3.5
0.0
4.0
100.0
100.0
0.5
3.0
4.0
100.0
100.0
0.5
3.0
7.0
5.0
5.0
9.0
9.0
4.0
7.5
4.5
0.0
4.5
83.3
83.3
0.5
4.0
7.0
5.0
5.0
9.0
9.0
4.0
10.0
6.0
0.0
6.0
66.7
66.7
2.0
4.0
8.5
5.5
5.5
9.5
9.5
4.0
15.0
8.0
0.0
8.0
55.6
55.6
4.0
4.0
10.0
6.0
6.0
10.0
10.0
4.5
12.0
11.0
11.0
14.0
14.0
5.5
Units
ns
ns
ns
ns
MHz
MHz
ns
ns
ns
ns
ns
ns
ns
ns
Note: 1. fCNT is the fastest 16-bit counter frequency available.
fCNT is also the Export Control Maximum flip-flop toggle rate, fTOG.
2. fSYSTEM is the internal operating frequency for general purpose system designs spanning multiple FBs.
4
December 4, 1998 (Version 5.0)
XC9536 In-System Programmable CPLD
VTEST
R1
Output Type
Device Output
R2
VCCIO
VTEST
R1
R2
CL
5.0 V
5.0 V
160 Ω
120 Ω
35 pF
3.3 V
3.3 V
260 Ω
360 Ω
35 pF
CL
X5906
Figure 3: AC Load Circuit
Internal Timing Parameters
Symbol
Parameter
Buffer Delays
tIN
Input buffer delay
tGCK
GCK buffer delay
tGSR
GSR buffer delay
tGTS
GTS buffer delay
tOUT
Output buffer delay
tEN
Output buffer enable/disable delay
Product Term Control Delays
tPTCK Product term clock delay
tPTSR Product term set/reset delay
tPTTS Product term 3-state delay
Internal Register and Combinatorial delays
tPDI
Combinatorial logic propagation delay
tSUI
Register setup time
tHI
Register hold time
tCOI
Register clock to output valid time
tAOI
Register async. S/R to output delay
tRAI
Register async. S/R recovery before clock
tLOGI
Internal logic delay
tLOGILP Internal low power logic delay
Feedback Delays
tF
FastCONNECT matrix feeback delay
Time Adders
tPTA3
Incremental Product Term Allocator delay
tSLEW Slew-rate limited delay
XC9536-5 XC9536-6 XC9536-7 XC9536-10 XC9536-15
Min Max Min Max Min Max Min Max Min Max
Units
1.5
1.5
4.0
5.0
2.0
0.0
1.5
1.5
4.0
5.0
2.0
0.0
2.5
1.5
4.5
5.5
2.5
0.0
3.5
2.5
6.0
6.0
3.0
0.0
4.5
3.0
7.5
11.0
4.5
0.0
ns
ns
ns
ns
ns
ns
3.0
1.0
5.5
3.0
1.0
5.5
3.0
2.0
4.5
3.0
2.5
3.5
2.5
3.0
5.0
ns
ns
ns
0.5
1.5
0.5
1.0
3.0
1.0
9.0
1.0
9.0
2.0
10.0
2.5
11.0
3.0
11.5
ns
ns
ns
ns
ns
ns
ns
ns
6.0
6.0
8.0
9.5
11.0
ns
0.8
3.5
0.8
3.5
1.0
4.0
1.0
4.5
1.0
5.0
ns
ns
2.5
1.0
2.5
1.0
0.5
6.0
5.0
1.5
3.0
0.5
6.0
5.0
2.5
3.5
0.5
6.5
7.5
3.5
4.5
0.5
7.0
10.0
0.5
8.0
10.0
Note: 3. tPTA is multiplied by the span of the function as defined in the family data sheet.
December 4, 1998 (Version 5.0)
5
XC9536 In-System Programmable CPLD
XC9536 I/O Pins
Function
Macrocell
Block
PC44
1
1
2
1
2
3
1
3
5
1
4
4
1
5
6
1
6
8
1
7
7
1
8
9
1
9
11
1
10
12
1
11
13
1
12
14
1
13
18
1
14
19
1
15
20
1
16
22
1
17
24
1
18
–
Note: [1] Global control pin
VQ44
CS48
40
41
43
42
44
2
1
3
5
6
7
8
12
13
14
16
18
–
D6
C7
B7
C6
B6
A6
A7
C5
B5
A4
B4
A3
B2
B1
C2
C3
D2
-
BScan
Notes
Order
105
102
99
96
93
90
87
84
81
78
75
72
69
66
63
60
57
54
[1]
[1]
[1]
Function
Macrocell
Block
PC44
2
1
1
2
2
44
2
3
42
2
4
43
2
5
40
2
6
39
2
7
38
2
8
37
2
9
36
2
10
35
2
11
34
2
12
33
2
13
29
2
14
28
2
15
27
2
16
26
2
17
25
2
18
Note: [1] Global control pin
VQ44
CS48
39
38
36
37
34
33
32
31
30
29
28
27
23
22
21
20
19
-
D7
E5
E6
E7
F6
G7
G6
F5
G5
F4
G4
E3
F2
G1
F1
E2
E1
-
BScan
Notes
Order
51
48
45
42
39
36
33
30
27
24
21
18
15
12
9
6
3
0
[1]
[1]
[1]
XC9536 Global, JTAG and Power Pins
6
Pin Type
PC44
VQ44
CS48
I/O/GCK1
I/O/GCK2
I/O/GCK3
I/O/GTS1
I/O/GTS2
I/O/GSR
TCK
TDI
TDO
TMS
VCCINT 5 V
VCCIO 3.3 V/5 V
GND
No Connects
5
6
7
42
40
39
17
15
30
16
21,41
32
23,10,31
—
43
44
1
36
34
33
11
9
24
10
15,35
26
17,4,25
—
B7
B6
A7
E6
F6
G7
A1
B3
G2
A2
C1,F7
G3
A5, D1, F3
C4, D3, D4, E4
December 4, 1998 (Version 5.0)
XC9536 In-System Programmable CPLD
Ordering Information
XC9536 -5 PC 44 C
Device Type
Temperature Range
Number of Pins
Speed
Package Type
Packaging Options
Speed Options
-15
-10
-7
-6
-5
PC44 44-Pin Plastic Leaded Chip Carrier (PLCC)
VQ44 44-Pin Thin Quad Pack (VQFP)
CS48 48-Pin Chip Scale Package (CSP)
15 ns pin-to-pin delay
10 ns pin-to-pin delay
7.5 ns pin-to-pin delay
6 ns pin-to-pin delay
5 ns pin-to-pin delay
Temperature Options
C = Commercial (0°C to +70°C)
I = Industrial (–40°C to +85°C)
Component Availability
Pins
44
Type
Code
XC9536
–15
–10
–7
–6
–5
Plastic
PLCC
PC44
C,I
C,I
C,I
C
C
Plastic
VQFP
VQ44
C,I
C,I
C,I
C
C
48
Plastic
CSP
CS48
C
C
C
C = Commercial (0°C to +70°C), I = Industrial (–40°C to +85°C)
Revision Control
Date
6/3/98
11/2/98
12/04/98
Reason
Revise datasheet to reflect new CSP package pinouts & ordering code.
Revise datasheet to reflect new AC characteristics and Internal Timing Parameters.
Revise datasheet to remove PCI compliancy statement and remove tLF.
December 4, 1998 (Version 5.0)
7
PLCC socket
PLCC socket is used to mount CPLD device on the printed board. PLCC is the abbreviation of "Plastic Leaded Chip Carrier".
There are lead pins to connect a printed board with the bottom of the socket. Because it is 0.1 inches in the pin interval, it is possible to mount on the universal
printed board, too.
To know the direction of the socket, you see from the top and you make a diagonal corner the upper left. The center of the line in the topside is the 1st pin. I
think that you can find the mark of the triangle which shows the 1st pin inside the socket which puts CPLD.
As for the size of the socket, 44 pins are about 23 mm x 23 mm and 84 pins are about 37 mm x 37mm.
The figure on the left shows a pin diagram of the bottom view for 44 pins.
It is necessary to be careful so as not to make a mistake because there are many numbers
of the pins.
The figure below shows a pin diagram of the bottom view for 84 pins.
Method of removing a device
A thin screwdriver can be used to remove CPLD device from the PLCC socket. There are ditches
for removing at the corner of PLCC socket. Put the tip of the screwdriver in the ditch, and make
the top lift a device and remove it. Do alternately with the side of the opposite angle and lift slowly.
Because there is possibility to give the damage to the device when handling violently, remove it
carefully.