3rd 3ddresd: sysgen

Post on 28-Jun-2015

496 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

POLITECNICO DI MILANO

SysGen- System Generation in Caronte flow -

DDynamic ynamic RReconfigurability econfigurability inin EEmbeddedmbedded SSystemsystems DDesignesign

Matteo Renesto: matteo.renesto@dresd.org

22

Context of WorkContext of Work

<<Earendil>>

<<Caronte>>

System Generation:

- Low Level Reconfiguration

- Last step of Caronte Flow

33

State of ArtState of Art

At present for system generation there are two different flows, for different cases

-Acheronte, that uses Module-Based Partial reconfiguration.

-Inca, that uses Early Access Partial Reconfiguration.

The problem:To use one or the other flow we need to fulfill some requirements (ISE version and Board), otherwise the process will fail.At present, users must take care of this aspect.

44

Proposed solutionProposed solution

Theoretical AspectWe need a Standard flow for System Generation

that should be:Correct Complete

START

Given a problem P, composed by a Project and HW – SW context.

IF it is possible to solve that problem, that is to realize the project,

THEN use right flow, in order to produce the right result

ELSE

Show why it’s not possible.

END

55

Goal: A Standard FlowGoal: A Standard Flow

System Generator

Reconfigurable Project System Characterization

Acheronte:Module-Based

INCA:EAPR

Other:MB or EAPR or Other

Erroror

Success

66

Key aspectsKey aspects

System Characterization.

Reconfigurable Hardware Design.

Reconfigurable Flow with different ISE version

77

System CharacterizationSystem Characterization

What do we mean with “System Characterization” ?Design possibilites:-Area dimension-Number of modular areas supported-2D placement or 1D placement-2D reconfiguration or 1D reconfiguration-Type of GPP supported (PPC and/or Microblaze)-Dynamic or only static.-Type of dynamic reconfiguration supported (MB–EAPR)-Internal or External reconfiguration.

Tools-ISE version.-Board.

88

System CharacterizationSystem Characterization

To decide if is possibile to realize the project.

To point out the logical error of a project.

To use the right flow.

Why is important to know the characterization?

99

Requirements:a) Your IP Cores. VHDL filesb) Bus HardMacros. NMC files c) Your Application, .c file.

Procedure, in EDK:1) Create a new architecture with EDK, following the wizard.2) Import your IP cores as peripheral (at this point only one for each reconfigurable area)3) Implement your software. 4) Generate Netlist and generate BistreamNow you have a static architecture, you should make it dynamic.

How To Create a Reconfigurable How To Create a Reconfigurable ProjectProject

1010

How To Create a Reconfigurable How To Create a Reconfigurable ProjectProject

Take system.vhd, generated by EDK

Using ArchGen generate top.vhd and fix.vhd

Using the wrapper obtained from EDK project you must generate all modules for all’IP cores.

Syntetize all: top, fix and modules. Only top with I/O buffers.

Take from EDK project the constrains files, edit it adding constrains for Bus Macros, and areas.Mode = “Reconfig”; constrain defines that an area will be reconfigurable.

1111

Matching our flow with Xilinx Matching our flow with Xilinx ISEISE

  ISE 7.1 ISE 8.2 ISE 9.2 ISE 10.1

Module-Based ? ? ? ?

Early Access ? ? ? ?

In order to have a working flow,we have to analyze each case, and what that case allows us to do.

1212

Module Based FlowModule Based Flow

Working only on Virtex II, Virtex II pro, Virtex-E, Virtex 4 Virtex 5.

No signal crossing reconfigurable area allowed.

No 2D reconfiguration. Areas must use all the height.

Reconfigurable area size, multiple of 4 (number of slices)

XC2VP7 is usually too small for our achitecture, generated with EDK.

1313

MB Flow with ISE 7.1: MB Flow with ISE 7.1: AcheronteAcheronte

We can realize an architecture like Yara, with a fix area and some reconfigurable regions.

Following Module Based Flow.

Step 1: Initial BudgetingStep 2: build of Fix areaStep 3: build of each moduleStep 4: MergeStep 5: Generate Bitstream.

Important: Use the last ISE’s service pack!

1414

First ResultFirst Result

Early Access Flow is not yet supported for ISE 7.1.

  ISE 7.1 ISE 8.2 ISE 9.2 ISE 10.1

Module-Based V

Early Access X

1515

Module Based with ISE 8Module Based with ISE 8

Theoretically, following Xilinx user guide, there are no differences form Module Based with ISE 7.1

Pratically, Module Based partial reconfiguration with ISE 8.1 or 8.2 DOESN’T WORK!

During Merge Phase, PAR fail to route some signal.

If we remove the constrains “MODE = RECONFIG” we meet no error.

Let’s analyze the problem…

1616

The problem of ISE 8The problem of ISE 8

During MAP phase Xilinx tool introduces the power lines to the design. In order to supply power to SLICES, BRAM etc..

During Route phase the tool should route two signals that drive power.

GLOBAL_LOGIC0 and GLOBAL_LOGIC1 (they are GND and VCC)

But PAR, when doesn’t crash throwing exception, fails.

1717

The problem of ISE 8The problem of ISE 8

All other unrouted signals can be routed by FPGA Editor. Problems come from the first unrouted…

Little changes in the design, may remove other unrouted signals, but not GLOBAL_LOGIC0 (or 1)

1818

The problem of ISE 8The problem of ISE 8

1919

The problem of ISE 8The problem of ISE 8

Other solutions proposed by Xilinx, like “reentrant route”, produce no different result.If we try to route manually that signal…… FPGA Editor Crash!

Let’s us setup EPAR patch… to solve this problem too…

2020

Early Access Partial Early Access Partial ReconfigurationReconfiguration

EAPR flow have no big differences from Module Based, but gives us some good features

Manage arch.exclude file, which provides a description of busy logic, this allows us to cross reconfigurable region with signals without big troubles.

Manage 2D placement, and 2D reconfiguration, if the device allows it, like Virtex 4 and 5 do.

2121

EAPR on ISE 8.2: INCA FlowEAPR on ISE 8.2: INCA Flow

ISE 8.2 is required, EAPR patch doesn’t work correctly with previous version like 8.1

Inca is an automated flow that follows similar steps like Acheronte, but using EAPR patch.

2222

Second ResultSecond Result

With ISE 8.2, Module Based doesn’t work correctly

EAPR fixes the problem and offers new features.

  ISE 7.1 ISE 8.2 ISE 9.2 ISE 10.1

Module-Based V X

Early Access X V

2323

ISE 9.2ISE 9.2

No significant differences, for us, from ISE 8.2

  ISE 7.1 ISE 8.2 ISE 9.2 ISE 10.1

Module-Based V X X

Early Access X V V

2424

ISE 10.1ISE 10.1

Module Based was removed from the last update of Xapp290

EAPR patch hasn’t been still relased for ISE 10.1.

  ISE 7.1 ISE 8.2 ISE 9.2 ISE 10.1

Module-Based V X X X

Early Access X V V ?

2525

ConclusionConclusion

Now we have a full coverage of all cases, and we know, in every case, if Dynamic Partial Reconfiguration does work or not.Unfortunately EAPR project, often aren’t compatible with old Module Based.With this know-how we could build automated tools for:

A) Create a System Characterization that could give guidelines to all the design procedure, signalling to the user all the errors and conflicts as output.

B) Implement our design with only one tool that follows the right flow in each situation.

2626

Future WorksFuture Works

Create only one tool for Low Level Reconfiguration, that in autonomus way, once launched, starts creating context charachterization, and follows all the steps, without user’s intervention until final result.

2727

Future WorksFuture Works

Xilinx is developing a new flow for Dynamic Partial Reconfiguration, so we will need to update our classification and tools.

  ISE 7.1 ISE 8.2 ISE 9.2 ISE 10.1 ISE X.Y

Module-Based V X X X X

Early Access X V V ? X

New Flow X X X X V

28

Questions?Questions?

28

?

top related