Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
BRINGING YOU THE NEXT LEVEL IN EMBEDDED DEVELOPMENT _
1BRINGING YOU THE NEXT LEVEL IN EMBEDDED DEVELOPMENT _
Cereslaan 10b5384 VT Heesch
) +31 (0)412 660088* [email protected]
www.core-vision.nl
In and Outs of Partial Reconfiguration with Xilinx FPGAs
Frank de BontDesign Centre Manager
BRINGING YOU THE NEXT LEVEL IN EMBEDDED DEVELOPMENT _
2
v Who is Core|Visionv Why Am I Here ?v What is Partial Reconfiguration ? v Partial Reconfiguration Benefitsv Reconfigurable Elementsv Design Flow and Toolsv Design Requirements, Guidelines and Recommendationsv Reconfiguration Controlv Wrap-up
AgendaAgenda
BRINGING YOU THE NEXT LEVEL IN EMBEDDED DEVELOPMENT _
3
Core|Core|VisionVision
Our competences
Core|Vision has more than 75 man years of design experience in hard- and software development. Our competence areas are:
Ø System DesignØ FPGA DesignØ ConsultancyØ Digital Signal ProcessingØ Embedded Real-time SoftwareØ Data Acquisition, digital and analogØ Modeling & SimulationØ ASIC Conversion & PrototypingØ PCB design & Layout
BRINGING YOU THE NEXT LEVEL IN EMBEDDED DEVELOPMENT _
4
Why Am I Here?Why Am I Here?
vYou may have a design that requires one or more of the followingØ System flexibility
• Functionality of part of the FPGA must change during run time and• Not every functionality is required all the time
Ø BOM reduction• Reduced chip size and count• Smaller footprint
Ø Power reduction: only enable/load tasks when neededØ A large FPGA that must meet PCIe® protocol power-up time requirements
l
BRINGING YOU THE NEXT LEVEL IN EMBEDDED DEVELOPMENT _
5
Configuration Port or ICAP
Configuration Port
What is Partial Reconfiguration?What is Partial Reconfiguration?
v Partial Reconfiguration is the ability to dynamically modify blocks of logic by downloading partial bit files while the remaining logic continues to operate without interruption
FullBit File
PartialBit Files
Function A1
Function B1
Function C1Function C2
Function B2
Function A2Function A3
l
BRINGING YOU THE NEXT LEVEL IN EMBEDDED DEVELOPMENT _
6
Partial Reconfiguration BenefitsPartial Reconfiguration Benefits
vPartial Reconfiguration enablesØ System flexibility
• Perform more functions while maintaining communication links
Ø Size and cost reduction• Time-multiplex the hardware
to require a smaller FPGA
Ø Power reduction• Swap out power-hungry tasks
when not needed
l
BRINGING YOU THE NEXT LEVEL IN EMBEDDED DEVELOPMENT _
7
Reconfigurable ElementsReconfigurable Elements
vWhat is reconfigurable?Ø Slice logic (LUTs, flip-flops, and carry logic, for example)Ø Memories (block RAM, distributed RAM, shift register LUTs)Ø DSP blocksØ I/O components (IOLOGIC, IODELAY, IDELAYCTRL)
vLogic that must remain in static logic includesØ Clock-modifying blocks (MMCM, DCM, PLL, PMCD)Ø Global clock buffers (BUFG)Ø Device feature blocks (BSCAN, ICAP, STARTUP, or PCIE, for example)
vDevice SupportØ Virtex®-4, Virtex-5 and Virtex-6
l
BRINGING YOU THE NEXT LEVEL IN EMBEDDED DEVELOPMENT _
8
Design Flow and ToolsDesign Flow and Tools
vPartial Reconfiguration (PR) uses standard toolsØ Solution is based on the PlanAhead™ software and partitions
• The PR feature is only available if enabled through a separate license
vComplete designs are implemented just like non-PR designsØ Supports full-design timing analysis, simulation, and verification
vHDL is identical to non-PR designØ However, bottom-up synthesis flow is requiredØ No special instantiations are necessary
• However, use of hierarchical design techniques is highly encouraged• No bidirectional interfaces are permitted between static and reconfigurable
regions
l
BRINGING YOU THE NEXT LEVEL IN EMBEDDED DEVELOPMENT _
9
Design FlowDesign Flowl
BRINGING YOU THE NEXT LEVEL IN EMBEDDED DEVELOPMENT _
10
Design Requirements and GuidelinesDesign Requirements and Guidelines
vFloorplanning is required to define reconfigurable regions, per element typeØ For greatest efficiency, align to frame/clock region boundaries when
possible
l
BRINGING YOU THE NEXT LEVEL IN EMBEDDED DEVELOPMENT _
11
Design Requirements and GuidelinesDesign Requirements and Guidelines
vFloorplanning is required to define reconfigurable regions, per element typeØ For greatest efficiency, align to frame/clock region boundaries when
possible
vBottom-up synthesis Ø Create multiple netlist files Ø Synthesis outside the PlanAhead tool
l
BRINGING YOU THE NEXT LEVEL IN EMBEDDED DEVELOPMENT _
12
Design Requirements and GuidelinesDesign Requirements and Guidelines
vFloorplanning is required to define reconfigurable regions, per element typeØ For greatest efficiency, align to frame/clock region boundaries when
possible
vBottom-up synthesis Ø Create multiple netlist files Ø Synthesis outside the PlanAhead tool
vDecoupling logic is highly recommended Ø Disconnect the reconfigurable region from the static portion of the
design during the act of Partial ReconfigurationØ If the reconfigurable element is an output of the FPGA, the decoupling
should be performed off chip
vAdditional Timing constraints are required
l
BRINGING YOU THE NEXT LEVEL IN EMBEDDED DEVELOPMENT _
13
Pin AllocationPin Allocation
vAll partition pins are derived from the:Ø VHDL entity port listØ Verilog module list
vAll Reconfigurable Modules must have identical names and portsØ Regardless of whether all the ports are used or not
BRINGING YOU THE NEXT LEVEL IN EMBEDDED DEVELOPMENT _
14
ConfigurationsConfigurations
vA Reconfiguration Partition (RP) defines the design instance(s) that are reconfigurable
vA Reconfigurable Module (RM) is the swappable logic Ø Resides in the RPØ Normally two or more
vThe static logic remains unchanged and functional Ø When a new RM is
reconfigured
BRINGING YOU THE NEXT LEVEL IN EMBEDDED DEVELOPMENT _
15
Configurations cont.Configurations cont.
vA configuration is a complete FPGA designØ Consists of static logic and one variant for each Reconfigurable Module
vMaximum number of RMs for any RP determines the minimum number of configurations requiredØ Example: possible configurations for this design
• Static logic and repeatedRMs are imported
1.Static + RM1_A + RM2_A + RM3_A2.Static + RM1_B + RM2_B + RM3_B3.Static + RM1_C + RM2_B + RM3_C4.Static + RM1_C + RM2_B + RM3_D
Ø Any combination of RMs can be selected to create unique full bit files
l
BRINGING YOU THE NEXT LEVEL IN EMBEDDED DEVELOPMENT _
16
Design PerformanceDesign Performance
vPerformance metrics will vary from design to designØ Negative effects will be minimized by following the hierarchical design techniques
documented in the Hierarchical Design Methodology Guide (UG748) and Repeatable Results with Design Preservation white paper (WP362)
Ø In general• Expect 10% degradation in clock frequency• Expect to not exceed 80% slices in packing density
vLonger design run times are expected in most cases, as these additional requirements are factored into the overall solution
vRouting challenges can occur if the reconfigurable region is toosmall or is constructed of non-rectangular shapes
l
BRINGING YOU THE NEXT LEVEL IN EMBEDDED DEVELOPMENT _
17
Routing LimitationsRouting Limitations
vRouting is limited in Partial Reconfiguration designsØ Initial routing is done with the first configuration
• Static routing can cross the Reconfigurable Partition• This routing remains consistent when the configuration is promoted
ØReconfigurable routes cannot exit the Reconfigurable Partition
BRINGING YOU THE NEXT LEVEL IN EMBEDDED DEVELOPMENT _
18
vThese design recommendations will help you to manage, enhance, and enable the Partial Reconfiguration flowØ Utilize synchronous design techniques
• Synchronize asynchronous signals to the “single” clock
Ø Use D-type flip-flops with One clock, • one edge (all flip-flops use rising or falling edge)
Ø Use clock enables in place of multiple related clocks or gated clocksØ Follow stringent hierarchy guidelinesØ Control Reconfigurable Module fanout manuallyØ Register inputs and outputs of Reconfigurable Module and BlockØ Use static decoupling logic
• Best practice: Use registers for decoupling logic
Design Recommendations Design Recommendations l
BRINGING YOU THE NEXT LEVEL IN EMBEDDED DEVELOPMENT _
19
Decoupling and Reset ConsiderationsDecoupling and Reset Considerations
vPR control logic can produce enable and reset signals thatØ Clear and disable the incoming buffers from injecting any data into the RPØ Holds the RM in reset until after the RP has been fully configuredØ Enables the outputs of the RM upon release of the reset
RM
RM
RM CE
RM ResetPR Control
Logic
Static Buffer Reset or CE
Static
Decoupling Logic
l
BRINGING YOU THE NEXT LEVEL IN EMBEDDED DEVELOPMENT _
20
Timing Constraints Timing Constraints
vPaths to be constrainedØ A) Static net input to a partition pin Ø B) Reconfigurable net output of a partition pin Ø C) Reconfigurable net input to a partition pin Ø D) Static net output of a partition pin Ø E and F) Ideal paths from static to partition
pin, from partition pin to reconfigurable logic, and vice-versa
Ø X, Y and Z) Register-to-register paths that contain a partition pin in the path
B
D
E F
RM1
RM2
Static
X
Z
Y
A
C
l
BRINGING YOU THE NEXT LEVEL IN EMBEDDED DEVELOPMENT _
21
Reconfiguration ControlReconfiguration Control
v Initiation of reconfiguration is determined by the designerØ On-chip state machine, processor, or other logicØ Off-chip microprocessor or other controller
vDelivery of the partial bit file uses standard interfacesØ FPGA can be partially reconfigured through the SelectMAP, serial, or JTAG
configuration ports or the internal configuration access portFull
ConfigurationRM1
ConfigurationRM2
ConfigurationRM3
Configuration
Off-Chip Memory or SystemACE
ICAP
RM3JTAG
FPGAuPICAP
RM1
Self-ReconfiguringFPGA
uP
l
BRINGING YOU THE NEXT LEVEL IN EMBEDDED DEVELOPMENT _
22
v Partial Reconfiguration is supported for Virtex FPGAsv Use appropriate tooling and use it with carev Use Synchronous Design Techniquesv Knowledge is powerv Use common sence
v Visit our stand for demo
WrapWrap--UpUp
BRINGING YOU THE NEXT LEVEL IN EMBEDDED DEVELOPMENT _
23
?Cereslaan 10b
5384 VT Heesch) +31 (0)412 660088
www.www.corecore--visionvision..nlnl
Email : Email : info@[email protected]
???
BRINGING YOU THE NEXT LEVEL IN EMBEDDED DEVELOPMENT _
24
Training ProgramTraining ProgramØ Essentials of FPGA Design 1 dayØ Designing for Performance 2 daysØ Advanced FPGA Implementation 2 daysØ Design Techniques for Lower Cost 1 dayØ Designing with Spartan-6 and Virtex-6 Family 3 daysØ Essential Design with the PlanAhead Analysis Tool 1 dayØ Advanced Design with the PlanAhead Analysis Tool 2 daysØ Xilinx Partial Reconfiguration Tools and Techniques 2 daysØ Designing with Verilog 3 days
BRINGING YOU THE NEXT LEVEL IN EMBEDDED DEVELOPMENT _
25
Training ProgramTraining ProgramØ Embedded Systems Development 2 daysØ Embedded Systems Software Development 2 daysØ Open-Source Linux Development 2 daysØ Advanced Features and Techniques of EDK 2 daysØ Designing with Multi Gigabit Serial IO 3 daysØ Designing a LogiCORE PCI-e System 2 daysØ DSP Design Using System Generator 2 daysØ Essential DSP Implementation Techniques for
Xilinx FPGAs 3 days
BRINGING YOU THE NEXT LEVEL IN EMBEDDED DEVELOPMENT _
26
Training ProgramTraining Program
Ø VHDL Design for FPGA 3 daysØ Advanced VDHL 2 daysØ Comprehensive VHDL 5 days