You are on page 1of 35

7 Series CLB Architecture

Part 1
Objectives

After completing this module, you will be able to:


 Describe the CLB arrangement and routing resources available in 7 series
FPGAs
 Describe the CLB and slice resources available

CLB Architecture - 2 © Copyright 2011 Xilinx


Lessons

 CLB Structure and Routing


 Slice Resources
 Distributed RAM/SRL
 Using Slice Resources
 Summary

CLB Architecture - 3 © Copyright 2011 Xilinx


CLB in the 7 Series FPGAs

COUT COUT
 Primary resource for design
– Combinatorial functions
– Flip-flops
 CLB contains two slices

Switch
Matrix
 Connected to switch
matrix for routing to other
FPGA resources
 Carry chain runs
vertically in a column from CIN CIN

one slice to the one


above

CLB Architecture - 4 © Copyright 2011 Xilinx


Symmetrical Layout

 Pairs of CLBs are arranged symmetrically


– Improves density
– Saves metal by sharing clock lines
 Improves routability

Clocks
Slice

Slice
Switch Matrix

Switch Matrix
Slice

Slice
Data Data

CLB Architecture - 5 © Copyright 2011 Xilinx


Fabric Routing

 Connections between CLBs and other resources use the fabric routing
resources
– Routing lines connect to the switch
matrixes adjacent to the resources
 Routes connect resources vertically,
horizontally, and diagonally
 Routes have different spans
– Horizontal: Single, Dual, Quad, Long (12)
– Vertical: Single, Dual, Hex, Long (18)
– Diagonal: Single, Dual, Hex

CLB Architecture - 6 © Copyright 2011 Xilinx


Lessons

 CLB Structure and Routing


 Slice Resources
 Distributed RAM/SRL
 Using Slice Resources
 Summary

CLB Architecture - 7 © Copyright 2011 Xilinx


FPGA Slice Resources

 Four six-input Look Up Tables (LUT)


 Wide multiplexers
 Carry chain LUT/RAM/SRL

 Four flip-flop/latches
 Four additional flip-flops LUT/RAM/SRL

 The implementation tools (MAP)


are responsible for packing slice LUT/RAM/SRL

resources into the slice

LUT/RAM/SRL

01

CLB Architecture - 8 © Copyright 2011 Xilinx


6-Input LUT with Dual Output

 6-input LUT can be two 5-input LUTs with common inputs


– Minimal speed impact to
a 6-input LUT
– One or two outputs 6-LUT
A6
– Any function of six variables or
A5 A5
two independent functions of A4 A4 D
five variables A3 A3 5-LUT
A2 A2
A1 A1
O6

A5
A4 D O5
A3 5-LUT
A2
A1

CLB Architecture - 9 © Copyright 2011 Xilinx


Wide Multiplexers

 Each F7MUX combines the outputs of two


LUTs together
– Can implement an arbitrary 7-input function
LUT/RAM/SRL

– Can implement an 8-1 multiplexer


 The F8MUX combines the outputs of the
two F7MUXes LUT/RAM/SRL

– Can implement an arbitrary 8-input function


– Can implement a 16-1 multiplexer
 MUX is controlled by the BX/CX/DX slice LUT/RAM/SRL

input
 MUX output can drive out combinatorially
or to the flip-flop/latch LUT/RAM/SRL

01

CLB Architecture - 10 © Copyright 2011 Xilinx


Carry Chain

 Carry chain can implement fast


arithmetic addition and subtraction
– Carry out is propagated vertically LUT/RAM/SRL

through the four LUTs in a slice


– The carry chain propagates from one
slice to the slice in the same column in LUT/RAM/SRL

the CLB above


 Carry look-ahead
– Combinatorial carry look-ahead over the LUT/RAM/SRL

four LUTs in a slice


– Implements faster carry cascading from
LUT/RAM/SRL
slice to slice 01

CLB Architecture - 11 © Copyright 2011 Xilinx


Slice Flip-Flops and Flip-Flop/Latches

FF FF/L

 Each slice has four flip-flop/latches (FF/L)


– Can be configured as either flip-flops or
latches
– The D input can come from the O6 LUT LUT/RAM/SRL

output, the carry chain, the wide multiplexer,


or the AX/BX/CX/DX slice input
 Each slice also has four flip-flops (FF) LUT/RAM/SRL

– D input can come from O5 output or the


AX/BX/CX/DX input
• These don’t have access to the carry chain,
wide multiplexers, or the slice inputs LUT/RAM/SRL

 If any of the FF/L are configured as latches,


the four FFs are not available
LUT/RAM/SRL

01

CLB Architecture - 12 © Copyright 2011 Xilinx


Slice Flip-Flop Capabilities

 All flip-flops are D type


D Q
 All flip-flops have a single clock input (CLK) CE
CE
CK
CK
 Clock can be inverted at the slice boundary
SRSR
 All flip-flops have an active high chip enable (CE)
 All flip-flops have an active high SR input
 Input can be synchronous or asynchronous, as determined by the
configuration bit stream
 Sets the flip-flop value to a pre-determined state, as determined by the
configuration bit stream

CLB Architecture - 13 © Copyright 2011 Xilinx


Lessons

 CLB Structure and Routing


 Slice Resources
 Distributed RAM/SRL
 Using Slice Resources
 Summary

CLB Architecture - 14 © Copyright 2011 Xilinx


Summary

 All slices contain four 6-input LUTs and eight registers


– LUTs can perform any combinatorial function of up to six inputs or two functions of
five inputs
– Four of the eight registers can be used as flip-flops or latches; the remaining four
can only be used as flip-flops
 Slices also contain carry logic and the MUXF7 and MUXF8 multiplexers
– The MUXF7 multiplexers combine LUT outputs to create 7-input functions or 8-
input multiplexers
– The MUXF8 multiplexers combine the MUXF7 outputs to create 8-input functions
or 16-input multiplexers
– The carry logic can be used to implement fast addition, subtraction, and
comparison operations

CLB Architecture - 15 © Copyright 2011 Xilinx


Where Can I Learn More?

 Software Manuals
– Start  Xilinx ISE Design Suite 13.1  ISE Design Tools  Documentation 
Software Manuals
– Synthesis & Simulation Design Guide
• This guide has example inferences of many architectural resources
– XST User Guide
• HDL language constructs and coding recommendations
– Targeting and Retargeting Guide for 7 Series FPGAs
– 7 Series FPGA User Guides

CLB Architecture - 16 © Copyright 2011 Xilinx


Where Can I Learn More?

 Xilinx Education Services courses www.xilinx.com/training


– Designing with 7-Series Families course
• How to get the most out of both device families
• How to build the best HDL code for your FPGA design
• How to optimize your design for Spartan-6 and/or Virtex-6
• How to take advantage of the newest device features
 Free Video Based Training
– Part 1,2, and 3 of the 7 Series FPGA Overview
– How Do I Plan to Power My FPGA?
– What are the Virtex-6 Power Management Features?
– Virtex-6 and Spartan-6 HDL Coding Techniques, parts 1 and 2

CLB Architecture - 17 © Copyright 2011 Xilinx


Trademark Information

Xilinx is disclosing this Document and Intellectual Propery (hereinafter “the Design”) to you for use in the development of designs to operate on,
or interface with Xilinx FPGAs. Except as stated herein, none of the Design may be copied, reproduced, distributed, republished, downloaded,
displayed, posted, or transmitted in any form or by any means including, but not limited to, electronic, mechanical, photocopying, recording, or
otherwise, without the prior written consent of Xilinx. Any unauthorized use of the Design may violate copyright laws, trademark laws, the laws of
privacy and publicity, and communications regulations and statutes.

Xilinx does not assume any liability arising out of the application or use of the Design; nor does Xilinx convey any license under its patents,
copyrights, or any rights of others. You are responsible for obtaining any rights you may require for your use or implementation of the Design.
Xilinx reserves the right to make changes, at any time, to the Design as deemed desirable in the sole discretion of Xilinx. Xilinx assumes no
obligation to correct any errors contained herein or to advise you of any correction if such be made. Xilinx will not assume any liability for the
accuracy or correctness of any engineering or technical support or assistance provided to you in connection with the Design.

THE DESIGN IS PROVIDED “AS IS" WITH ALL FAULTS, AND THE ENTIRE RISK AS TO ITS FUNCTION AND IMPLEMENTATION IS WITH
YOU. YOU ACKNOWLEDGE AND AGREE THAT YOU HAVE NOT RELIED ON ANY ORAL OR WRITTEN INFORMATION OR ADVICE,
WHETHER GIVEN BY XILINX, OR ITS AGENTS OR EMPLOYEES. XILINX MAKES NO OTHER WARRANTIES, WHETHER EXPRESS,
IMPLIED, OR STATUTORY, REGARDING THE DESIGN, INCLUDING ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE, TITLE, AND NONINFRINGEMENT OF THIRD-PARTY RIGHTS.

IN NO EVENT WILL XILINX BE LIABLE FOR ANY CONSEQUENTIAL, INDIRECT, EXEMPLARY, SPECIAL, OR INCIDENTAL DAMAGES,
INCLUDING ANY LOST DATA AND LOST PROFITS, ARISING FROM OR RELATING TO YOUR USE OF THE DESIGN, EVEN IF YOU HAVE
BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. THE TOTAL CUMULATIVE LIABILITY OF XILINX IN CONNECTION WITH
YOUR USE OF THE DESIGN, WHETHER IN CONTRACT OR TORT OR OTHERWISE, WILL IN NO EVENT EXCEED THE AMOUNT OF
FEES PAID BY YOU TO XILINX HEREUNDER FOR USE OF THE DESIGN. YOU ACKNOWLEDGE THAT THE FEES, IF ANY, REFLECT
THE ALLOCATION OF RISK SET FORTH IN THIS AGREEMENT AND THAT XILINX WOULD NOT MAKE AVAILABLE THE DESIGN TO YOU
WITHOUT THESE LIMITATIONS OF LIABILITY.

The Design is not designed or intended for use in the development of on-line control equipment in hazardous environments requiring fail-safe
controls, such as in the operation of nuclear facilities, aircraft navigation or communications systems, air traffic control, life support, or weapons
systems (“High-Risk Applications”). Xilinx specifically disclaims any express or implied warranties of fitness for such High-Risk Applications. You
represent that use of the Design in such High-Risk Applications is fully at your risk.

© 2009 Xilinx, Inc. All rights reserved. XILINX, the Xilinx logo, and other designated brands included herein are trademarks of Xilinx, Inc. All
other trademarks are the property of their respective owners.

CLB Architecture - 18 © Copyright 2011 Xilinx


7 Series CLB Architecture

Part 2
Objectives

After completing this module, you will be able to:


 Describe the CLB and slice resources available in 7 series FPGAs
 Describe distributed RAM and Shift Register LUT capability

CLB Architecture - 20 © Copyright 2011 Xilinx


Lessons

 CLB Structure and Routing


 Slice Resources
 Distributed RAM/SRL
 Using Slice Resources
 Summary

CLB Architecture - 21 © Copyright 2011 Xilinx


Two Types of Slices

 Two types of slices Slice_L


– SLICEM: Full slice Slice_L
• LUT can be used for logic and
memory/SRL
• Has wide multiplexers and carry chain
– SLICEL: Logic and arithmetic only CLB_LL
• LUT can only be used for logic
Slice_L
(not memory)
Slice_M
• Has wide multiplexers and carry chain

CLB_LM

CLB Architecture - 22 © Copyright 2011 Xilinx


SLICEM Used as Distributed SelectRAM
Memory

 Uses the same storage that is used for the


Single Dual Simple Quad look-up table function
Port Port Dual Port Port
 Synchronous write, asynchronous read
32x2 32x2D 32x6SDP 32x2Q
– Can be converted to synchronous read
32x4 32x4D 64x3SDP 64x1Q
using the flip-flops available in the slice
32x6 64x1D
32x8 64x2D  Various configurations
64x1 128x1D – Single port
64x2 • One LUT6 = 64x1 or 32x2 RAM
64x3 • Cascadable up to 256x1 RAM
64x4 – Dual port (D)
128x1 • 1 read / write port + 1 read-only port
128x2 – Simple dual port (SDP)
256x1 • 1 write-only port + 1 read-only port
Each port has independent – Quad-port (Q)
address inputs • 1 read / write port + 3 read-only ports

CLB Architecture - 23 © Copyright 2011 Xilinx


SLICEM Used as 32-bit Shift Register

 Versatile SRL-type shift registers LUT


– Variable-length shift register
D
– Synchronous FIFOs 32-bit Shift register Q 31
CLK
– Content-Addressable Memory (CAM)
– Pattern generator 32
– Compensate for delay / latency A MUX
5
 Shift register length is determined by the Qn
address
SRL Configurations
– Constant value giving fixed delay line in one Slice (4 LUTs)
– Dynamic addressing for elastic buffer 16x1, 16x2, 16x4, 16x6, 16x8

32x1, 32x2, 32x3, 32x4

 Cascadable up to 128x1 shift register in 64x1, 64x2

one slice 96x1

128x1

CLB Architecture - 24 © Copyright 2011 Xilinx


Shift Register LUT Example

20 Cycles

Operation A Operation B
64
8 Cycles 12 Cycles
64
Operation C Operation D - NOP

3 Cycles 17 Cycles
Paths are Statically
Balanced
20 Cycles

 Operation D - NOP must add 17 pipeline stages of 64 bits each


– 1,088 flip-flops (hence 136 slices) or
– 64 SRLs (hence 16 slices)

CLB Architecture - 25 © Copyright 2011 Xilinx


Lessons

 CLB Structure and Routing


 Slice Resources
 Distributed RAM/SRL
 Using Slice Resources
 Summary

CLB Architecture - 26 © Copyright 2011 Xilinx


Mechanisms for Using Slice Resources

 Three primary mechanisms for using FPGA resources


– Inference
• Describe the behavior of the desired circuit using Register Transfer Language (RTL)
• The synthesis tool will analyze the described behavior and use the required FPGA
resources to implement the equivalent circuit
– Instantiation
• Create an instance of the FPGA resource using the name of the primitive and manually
connecting the ports and setting the attributes
– CORE Generator™ interface and Architecture Wizard
• The CORE Generator interface and Architecture Wizard are graphical tools that allow
you to build and customize modules with specific functionality
• The resulting modules range from simple modules containing few FPGA resources or
highly complex Intellectual Property (IP) cores

CLB Architecture - 27 © Copyright 2011 Xilinx


Inference

 All primary slice resources can be inferred by XST and Synplify


– LUTs
• Most combinatorial functions will map to LUTs
– Flip-flops
• Coding style defines the behavior
– Distributed SelectRAM memory
• Synchronous write, asynchronous read
– SRL
• Non-loadable, serial functionality
– Multiplexers
• Use a CASE statement or other conditional operators
– Carry logic
• Use arithmetic operators (addition, subtraction, comparison)
 Inference should be used wherever possible
– HDL code is portable, compact, and easily understood and maintained

CLB Architecture - 28 © Copyright 2011 Xilinx


Instantiation

 For a list of primitives that can be instantiated, see the HDL library guide
– Provides a list of primitives, their functionality, ports, and attributes
 Use instantiation when it is difficult to infer the exact resource you want

 Help > Software


Manuals > Libraries
Guides

CLB Architecture - 29 © Copyright 2011 Xilinx


CORE Generator Interface and Architecture
Wizard

 The CORE Generator interface and Architecture Wizard can help you create
modules with the required functionality
– Typically used for FPGA-specific resources (like clocking, memory, or I/O), or for
more complex functions (like memory controllers or DSP functions)

CLB Architecture - 30 © Copyright 2011 Xilinx


Lessons

 CLB Structure and Routing


 Slice Resources
 Distributed RAM/SRL
 Using Slice Resources
 Summary

CLB Architecture - 31 © Copyright 2011 Xilinx


Summary

 The LUTs in SLICEM slices can also be used as 32-bit shift registers or 64-bit
memories
 Slice resources are most commonly inferred by synthesis tools, but can be
instantiated or accessed via the CORE Generator, Architecture Wizard, or
System Generator interface

CLB Architecture - 32 © Copyright 2011 Xilinx


Where Can I Learn More?

 Software Manuals
– Start  Xilinx ISE Design Suite 13.1  ISE Design Tools  Documentation 
Software Manuals
– Synthesis & Simulation Design Guide
• This guide has example inferences of many architectural resources
– XST User Guide
• HDL language constructs and coding recommendations
– Targeting and Retargeting Guide for 7 Series FPGAs
– 7 Series FPGA User Guides

CLB Architecture - 33 © Copyright 2011 Xilinx


Where Can I Learn More?

 Xilinx Education Services courses www.xilinx.com/training


– Designing with 7-Series Families course
• How to get the most out of both device families
• How to build the best HDL code for your FPGA design
• How to optimize your design for Spartan-6 and/or Virtex-6
• How to take advantage of the newest device features
 Free Video Based Training
– Part 1,2, and 3 of the 7 Series FPGA Overview
– How Do I Plan to Power My FPGA?
– What are the Virtex-6 Power Management Features?
– Virtex-6 and Spartan-6 HDL Coding Techniques, parts 1 and 2

CLB Architecture - 34 © Copyright 2011 Xilinx


Trademark Information

Xilinx is disclosing this Document and Intellectual Propery (hereinafter “the Design”) to you for use in the development of designs to operate on,
or interface with Xilinx FPGAs. Except as stated herein, none of the Design may be copied, reproduced, distributed, republished, downloaded,
displayed, posted, or transmitted in any form or by any means including, but not limited to, electronic, mechanical, photocopying, recording, or
otherwise, without the prior written consent of Xilinx. Any unauthorized use of the Design may violate copyright laws, trademark laws, the laws of
privacy and publicity, and communications regulations and statutes.

Xilinx does not assume any liability arising out of the application or use of the Design; nor does Xilinx convey any license under its patents,
copyrights, or any rights of others. You are responsible for obtaining any rights you may require for your use or implementation of the Design.
Xilinx reserves the right to make changes, at any time, to the Design as deemed desirable in the sole discretion of Xilinx. Xilinx assumes no
obligation to correct any errors contained herein or to advise you of any correction if such be made. Xilinx will not assume any liability for the
accuracy or correctness of any engineering or technical support or assistance provided to you in connection with the Design.

THE DESIGN IS PROVIDED “AS IS" WITH ALL FAULTS, AND THE ENTIRE RISK AS TO ITS FUNCTION AND IMPLEMENTATION IS WITH
YOU. YOU ACKNOWLEDGE AND AGREE THAT YOU HAVE NOT RELIED ON ANY ORAL OR WRITTEN INFORMATION OR ADVICE,
WHETHER GIVEN BY XILINX, OR ITS AGENTS OR EMPLOYEES. XILINX MAKES NO OTHER WARRANTIES, WHETHER EXPRESS,
IMPLIED, OR STATUTORY, REGARDING THE DESIGN, INCLUDING ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE, TITLE, AND NONINFRINGEMENT OF THIRD-PARTY RIGHTS.

IN NO EVENT WILL XILINX BE LIABLE FOR ANY CONSEQUENTIAL, INDIRECT, EXEMPLARY, SPECIAL, OR INCIDENTAL DAMAGES,
INCLUDING ANY LOST DATA AND LOST PROFITS, ARISING FROM OR RELATING TO YOUR USE OF THE DESIGN, EVEN IF YOU HAVE
BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. THE TOTAL CUMULATIVE LIABILITY OF XILINX IN CONNECTION WITH
YOUR USE OF THE DESIGN, WHETHER IN CONTRACT OR TORT OR OTHERWISE, WILL IN NO EVENT EXCEED THE AMOUNT OF
FEES PAID BY YOU TO XILINX HEREUNDER FOR USE OF THE DESIGN. YOU ACKNOWLEDGE THAT THE FEES, IF ANY, REFLECT
THE ALLOCATION OF RISK SET FORTH IN THIS AGREEMENT AND THAT XILINX WOULD NOT MAKE AVAILABLE THE DESIGN TO YOU
WITHOUT THESE LIMITATIONS OF LIABILITY.

The Design is not designed or intended for use in the development of on-line control equipment in hazardous environments requiring fail-safe
controls, such as in the operation of nuclear facilities, aircraft navigation or communications systems, air traffic control, life support, or weapons
systems (“High-Risk Applications”). Xilinx specifically disclaims any express or implied warranties of fitness for such High-Risk Applications. You
represent that use of the Design in such High-Risk Applications is fully at your risk.

© 2011 Xilinx, Inc. All rights reserved. XILINX, the Xilinx logo, and other designated brands included herein are trademarks of Xilinx, Inc. All
other trademarks are the property of their respective owners.

CLB Architecture - 35 © Copyright 2011 Xilinx

You might also like