• No results found

Design methodology for runtime reconfigurable FPGA: From high level specification down to implementation

N/A
N/A
Protected

Academic year: 2021

Share "Design methodology for runtime reconfigurable FPGA: From high level specification down to implementation"

Copied!
7
0
0

Loading.... (view fulltext now)

Full text

(1)

Design methodology for runtime reconfigurable FPGA:

From high level specification down to implementation

Florent Berthelot, Fabienne Nouvel, Dominique Houzet

To cite this version:

Florent Berthelot, Fabienne Nouvel, Dominique Houzet. Design methodology for runtime

re-configurable FPGA: From high level specification down to implementation. 2005, pp.497 - 502,

2005,

<

10.1109/SIPS.2005.1579919

>

.

<

hal-00017881

>

HAL Id: hal-00017881

https://hal.archives-ouvertes.fr/hal-00017881

Submitted on 26 Jan 2006

HAL is a multi-disciplinary open access

archive for the deposit and dissemination of sci-entific research documents, whether they are

pub-lished or not. The documents may come from

teaching and research institutions in France or abroad, or from public or private research centers.

L’archive ouverte pluridisciplinaire HAL, est

destin´ee au d´epˆot et `a la diffusion de documents

scientifiques de niveau recherche, publi´es ou non,

´emanant des ´etablissements d’enseignement et de

recherche fran¸cais ou ´etrangers, des laboratoires

(2)

Design methodology for runtime recon

fi

gurable

FPGA: From high level speci

fi

cation down to

implementation

Florent Berthelot , Fabienne Nouvel , Dominique Houzet CNRS UMR 6164 IETR/INSA

Rennes 20 av des Buttes de Coesmes, 35043 Rennes, France

[email protected],{fabienne.nouvel, dominique.houzet}@insa-rennes.fr

Abstract— In this paper we present an automatic design

gen-eration methodology for heterogeneous architectures composed of processors, DSPs and FPGAs. This methodology is based on an Adequation Algorithm Architecture where application is represented by a control data flow graph and architecture by an architecture graph. We focus on how to take into account specificities of partially reconfigurable components during the adequation process and for the design generation. We present a method which generates automatically the design for both

fixed and partially reconfigurable parts of a FPGA. This method uses prefetching technic to minimize reconfiguration latency of runtime reconfiguration and buffer merging to minimize memory requirements of the generated design.

I. INTRODUCTION

Recent developments in radio technology have introduced

software defined radio paradigm SDR [1]. This evolution has

emerged with the proliferation of wireless standards, including both local area networks 802.11 to 2,5G, 3G, and future 4G telecommunication standards. Future telecommunication sys-tems will be software reprogrammable radios, which could be

reconfigured to adapt for changing communication protocols

and channels.

Such systems require heterogeneous architectures based on digital signal processors (DSPs), general purpose processors

and reconfigurable devices like field programmable gate

ar-rays (FPGAs). The whole application is split between Hard-ware/Software (HW/SW) components during the partitioning process. This step leads to a compromise between system’s

performance of an hardwired solution and flexibility of a

software solution.

These components use different levels of reconfigurations.

Harvard-based architectures (DSPs, general purpose

proces-sors) are reconfigurable at system-level and use a

tempo-ral scheme implementation of operations. Configuration of

the data path requires few data and can be performed at

each cycle. This high flexibility is well adapted to control

based applications but suffers from its power efficiency for

repetitive and high throughput computations. The introduction

of Dynamically Reconfigurable Systems (DRS) can deliver

higher levels of performance, flexibility and power efficiency.

Reconfigurable devices, including FPGAs, can fill the gap

between hardwired and software technology. Recently runtime

reconfiguration (RTR) of partial FPGA parts has led to the

concept of virtual hardware. Its allows to change only a

specified part of the chip while other areas remain operational

and unaffected by the reconfiguration [2]. So RTR allows

more sections of an application to be mapped into hardware, a larger part of the application can be accelerated by contrast with a processor computation. By changing dynamically the functionality performed by the FPGA over the time, we can address SDR constraints and obtain a scalable system which can evolved in agreement with its environment requirements,

and hence using a reconfigurable hardware platform across

multiple standards. However reconfiguration latency is a major

drawback of runtime reconfiguration on commercial devices

and must be considered during HW/SW partitioning process. The objective is to obtain a near optimal scheduling of tasks in time over an heterogeneous architecture [3]. These more and more complex systems must be handled by an appropriate

design flow to reduce development time under strong

time-to-market pressure. These steps can be achieved by modeling

application operations through control dataflow graph (DFG)

and operate an Adequation Algorithm Architecture (AAA) methodology.

In this paper we focus on codesign systems with DSPs and commercial FPGAs for telecommunication applications. The

first section describes the SynDEx tool [4] used for the

appli-cation partitioning stage. We describe the impact of run-time

reconfigurable component utilization on algorithm-architecture

adequation in the second section. Next the way of

model-ing a partially runtime reconfigurable part of a FPGA with

SynDEx is exposed. Then we present the automatic VHDL

design generation for a runtime reconfigurable component. We

discuss how to generate an automatic management of runtime

reconfiguration over the time with SynDEx in section 4. A case

study based on a runtime reconfigurable multicarrier

code-division multiple-access (MC-CDMA) transmitter is presented in section 5 followed by the conclusion.

II. AAAAPPROACH ANDSYNDEX REPRESENTATION

Some partitioning methodologies based on various ap-proaches are reported in the literature [5]. They are character-ized by the granularity level of the partitioning, metrics, target

hardware, support of runtime-reconfiguration,flow automation

(3)

F c t A i o F c t C i o F c t B i o x F c t D i o i o S e l e c t o

Fig. 1. Algorithm graph

d s p 1 ( D S P ) c o m m - A c o m 1 ( C P ) c o m m - B c o m m - C d s p 2 ( D S P ) c o m m - A c o m m - B c o m m - C f p g a ( F P G A ) c o m m - A c o m m - B c o m m - C c o m 2 ( C P )

Fig. 2. Architecture graph

on these partitioning methodologies, provide a seamless flow

from the specification to the implementation.

Choice of candidates for a dynamic hardware implementa-tion can be guided by some metrics: execuimplementa-tion time, memory

constraints, power efficiency, reconfiguration time, confi

gura-tion prefetching capabilities and area constraints.

Among theses methods we have chosen SynDEx already used in [6]. SynDEx is an academic system-level CAD tool which supports AAA methodology. This free tool has been developed by the INRIA Rocquencourt France laboratory and several others laboratories contribute on its development over

different research topics. AAA methodology aims at finding

the best matching between an algorithm and an architecture while satisfying time constraints. SynDEx automatically gen-erates a distributed and optimized synchronized executive.

Application algorithm is represented by a data flow graph

(DFG) to exhibit the potential parallelism between operations as represented by Figure 1. The algorithm model is a direct data dependence graph. An operation is executed as soon as

its input are available, and this DFG is infinitely repeated.

SynDEx includes hierarchical algorithm representation, con-ditional statements and iteration of algorithm parts.

Architecture is also modeled by a graph, which is a directed graph where the vertices are operators (e.g processors, DSP, FPGA) or media (e.g OCB busses, ethernet) and edges are connections between them. Operators have no internal paral-lelism computation available but the architecture exhibits the actual parallelism between operators. An example is shown in Figure 2. In order to perform the adequation between these two graphs, operations and data dependencies have to be characterized (time execution) on each vertices of the architecture graph.

Adequation consists in performing a mapping and a schedul-ing of the operations and data transfers onto the operators and the communication media. It is carried out by a heuristic which takes into account durations of computations and inter-component communications. The result is a synchronized executive represented by a macro-code for each vertices of the architecture. Figure 3 depicts the overall methodology

flow [7]. Each macro-code is then translated toward a high

level language for each HW/SW components. This translation

H e u r i s t i c s A d e q u a c y m a p p i n g a n d s c h e d u l i n g A l g o r i t h m g r a p h A r c h i t e c t u r e g r a p h S y n c h r o n i z e d D i s t r i b u t e d E x e c u t i v e L i b r a r i e s D e s i g n G e n e r a t i o n P e r f o r m a n c e p r e d i c t i o n s R e d e s i g n C o n s t r a i n t s S o f t w a r e c o m p o n e n t H a r d w a r ec o m p o n e n t

Fig. 3. SynDEx methodologyflow

produces an automatic dead-lock free code generation, macro-code directives are replaced by a corresponding macro-code given in libraries (C/C++ for software components, VHDL for hardware components). Many libraries have been developed for heterogeneous platforms. Today this tool is used on het-erogeneous architecture based on DSP and FPGA. Then we

want to extend SynDEx capacities to runtime reconfigurable

components.

III. RUN TIME RECONFIGURATION CONSIDERATIONS FOR

ADEQUACY

A. Minimizing reconfiguration cost

Runtime partially reconfigurable components must be

han-dled with a special processing during the adequation step.

A major drawback of using runtime reconfiguration is the

significant delay of hardware configuration. The total runtime

of an application includes execution delay of each task on the hardware along with the total time spent for hardware

recon-figuration between computations. The length of the sequence

of reconfiguration is proportional to the reprogrammed area on

the chip. Partial reconfiguration allows to change only a

spec-ified part of the design hence decreasing the reconfiguration

time. An efficient way to minimize reconfiguration overhead is

to overlap it as much as possible with the execution of others operations executed on others components. It is known as

con-figuration prefetching [8]. Figure 4 illustrates our purpose. In

this example we want to map and schedule an algorithm graph onto an architecture composed of two resources, one of them is

dynamically reconfigurable. The algorithm, composed of six

functions, is split into two branches. Function D needs the

results ofCandY functions. Operations{X, Y}are assumed

to be executed by the dynamic reconfigurable component of

the architecture successively. Operations{A, B, C, D}are

im-plemented on the non-reconfigurable component. According to

this algorithm, among all operations scheduling possibilities, one potential selection is:

S1:{A,X,B,Y,Y,C,D}

which is infinitively repeated. With this scheduling two

reconfigurations are needed: one after computation of X

(4)

A Y X B Y D C n o n r e c o n f i g u r a b l e c o m p o n e n t m e d i a r e c o n f i g u r a b l ec o m p o n e n t Fig. 4. Algorithm and architecture example

D 1 ( D y n ) c o m m - A F 1 ( F i x ) c o m m - A c o m m - B D 2 ( D y n ) c o m m - A I L 1 ( I L ) I L 2 ( I L ) D 1 F 1 D 2

Fig. 5. Model of runtime reconfigurable parts of a FPGA with SynDEx

implement X again. We have to define the following terms:

• Ck:Computation cost of operation k.

• Tj,k:Cost of data transmission between operations j and

k through the media.

• Rk: The reconfiguration delay of operation k.

• Dj,k: The time between the end of an operation j to

the beginning of the operation k, both executed on the

reconfigurable component.

• Pk: Prefetching cost of operation k.

The prefetching cost of operationkis Pk =Rk-Dj,k, with

j a previous different operation. So considering scheduling

S1, we have to add the following prefetching cost to thefirst

operation Y:

Py =Ry-Dx,y

withDx,y=Tx,b+Cb+Tb,y

In order to improve Py, Ry must be similar to the

de-lay between two reconfigurable operations. Hence a way to

minimize prefetching overhead is to overlap a maximum of

computations or communications with reconfigurations of the

dynamic part. The heuristic of SynDEx has to be improved to

take into account this overhead on reconfigurable operations.

B. Architecture graph modeling of runtime reconfigurable

components

Runtime reconfigurable parts of an component must be

considered as vertices in the architecture graph. As shown

in the example in Figure 5, runtime reconfigurable parts of a

FPGA (D1 and D2) and fixed parts (F1) can be represented

as hardware operators of the architecture. An internal media (IL) allows data exchanges between them. (D1 and D2) will integrate the dynamic operator and the control to manage it.

IV. AUTOMATIC DESIGN GENERATION

A. General FPGA synthesis scheme

Once mapping and scheduling of the algorithm are performed, macro-code is automatically generated and each one must be translated. The translation generates the VHDL code, both for the static and dynamic parts of a FPGA. We use the GNU macro processor M4 and macros embedded in libraries. Different kinds of macro are developed for communications, memory allocations, operator instantiations

and synchronization. The final FPGA design is based on

several dedicated processes to control: - communication sequencings, - computation sequencings, - operator behaviour,

- activation of reading and writing phases of buffers, A same operator can be used at different time in the

data flow, only one instantiation of each kind of operator

is done in VHDL. We have defined an uniform interface

for each operator through encapsulation. As described in the next section, we use global buffers which allow us to merge

different kinds of buffer (depth and data width) filled by

operators to store computation results. These two points lead to build complex data paths automatically. Our libraries are able to perform these constructions by using conditional VHDL signal assignment. In next section, we deal with two important points: optimization of memory for exchanged data and control

of reconfigurations.

B. Macro-code preprocessing for memory minimization The goal is to merge as much as possible independant buffers to minimize the total memory requirement, this is known as buffer merging technics [9]. We operate a macro-code preprocessing which analyzes data life of variables stored in these buffers and results in a list of buffers which must be merged into a global one. Buffers can be different as they must store computation results of operations working on various depth and data width (we consider only 8,16 or 32 bits width). Hence global buffers are automatically generated in agreement with operators data type computation results associated. We denote by:

• L:{b1, b2, ..bn}:A list of n buffers which can be merged,

whereL(k)=bk.

• Dk :The depth of buffer k.

• Wk :The data width of buffer k.

Hence the total amount of memory needed is:

• Without buffer merging: Mbm =Pni=1DL(i)∗WL(i)

• With buffer merging: Mbm =max(DL(i)∗WL(i))

for 1in.

So the saved memory is:

(5)

C o n t r o l o p e r a t o r j C o n t r o l o p e r a t o r k O p e r a t o r k O p e r a t o r j B u f f e r k B u f f e r j C o m p u t a t i o n c o n t r o l O p e r a t i o n s c o m p l e t e S t a r t o p e r a t i o n e n a b l e e n a b l e r e a d y r e a d y c o n f i g u r a t i o n r e q u e s t s a c k n o w l e d g e m e n t s S t a t e r e c o n f i g u r a b l e b i t s t r e a m C o n t r o l o p e r a t o r d y n O p e r a t o r d y n R e c o n f i g u r a b l e p a r t C o m p u t a t i o n c o n t r o l e n a b l e r e a d y S t a r t o p e r a t i o n O p e r a t i o n c o m p l e t e C o n f i g u r a t i o n m a n a g e r B i s t r e a m m e m o r y P r o t o c o l c o n f i g u r a t i o n b u i l d e r a ) N o n - r e c o n f i g u r a b l e a r c h i t e c t u r e b ) D y n a m i c a l l y r e c o n f i g u r a b l e a r c h i t e c t u r e B u f f e r k B u f f e r j M P

Fig. 6. Architecture comparison betweenfixed/runtime reconfigurable solutions

C. Design generation for runtime reconfigurable components

In order to perform reconfiguration of the dynamic part

we have chosen to divide this process into two sub-parts: a

configuration manager and a protocol configuration builder.

Figure 6 shows a simple example based on two operations

(j and k) which are executed successively. Case a) shows

the design generated for a non-reconfigurable component, the

two operators are physically implemented. Case b) is based

on a dynamically reconfigurable component which implement

successively the two operations. A configuration manager is

in charge of the bitstream which must be loaded on the

reconfigurable part by sending configuration requests. These

requests are sent only when an operation has completed its computation and if a different operation has to be loaded

after. So reconfigurations are performed as soon as the current

operation is complete to enable configuration prefetching as

described before. This functionality provides also information

on the current state of the reconfigurable part, this is useful to

start operator computations (with signal ’enable’) only when

the reconfiguration process is ended. Configuration requests

are sent to the protocol configuration builder which is in

charge to construct a valid reconfiguration stream in agreement

with the used protocol mode (e.g selectmap). Encapsulation of

operators with a standard interface allows to reconfigure only

the area containing the operator without altering the design around. Functionalities involved in the general control of the dynamic area and the operator remain on a static part of the circuit with buffers. That allows to reduce the size of the bitstream which must be loaded and decrease the time needed

to reconfigure.

Now this way to proceed must be adapted with architecture

considerations. There are many ways to reconfigure partially

a FPGA, Figure 7 shows three solutions of architectures for

this purpose. Case a) shows a standalone self reconfiguration

where the fixed part of the FPGA reconfigures the dynamic

area. This case can be adapted for small amounts of bitstream data which can be stored by on-chip FPGA memory. However

bitstreams which contain partial configurations require often

a lot of memory and can’t fit within the limited embedded

memory provided by FPGAs, so bitstreams are stored by an external memory as depicted in the case b). The last case c),

shows the used of a processor to perform the reconfiguration.

In this case the FPGA sends reconfiguration requests to the

processor through hardware interruptions for example. This processor can be viewed as a slave for the FPGA. Either it

can act as a master by reconfiguring directly the dynamic

area of the FPGA. The CPLD is used to interface these two components.

LabelsM andP show where functionalities’Configuration

manager’and’Protocol configuration builder’respectively are

implemented. Locations of these functionalities have a direct

impact on the reconfiguration latency. Case c) has the

high-est reconfiguration latency since the ’protocol configuration

builder’ is a task of the processor which can be activated through an hardware interruption. Moreover external memory accesses are often costing. Macro-codes generated for runtime

reconfigurable components are handled by a special library.

The ’Configuration manager’ is automatically generated by

our libraries in agreement with the sequencing of operations

expressed in the macro-code. The reconfigurable part provides

a virtual hardware, so at some time only one operator is physically implemented on this dynamic part.

Operations of the DFG implemented on this reconfigurable

part are viewed as a global operation from the point of view of the control computation process. Computation invocations of these operations are renamed with a generic name in the macro-code. This renaming is feasible because there is no ambiguity on which operator is addressed when signal

’enable’ is driven (see Figure 6). That allows to have only

one control functionality for managing tasks implemented by

the dynamically reconfigurable part.

F P G A R e c o n f i g u r a b l e p a r t F i x e d p a r t B i t s t e a m M em or y a ) S t a n d a l o n e s e l f r e c o n f i g u r a t i o n w i t h o n - c h i p b i t s t r e a m m e m o r y b ) S t a n d a l o n e s e l f r e c o n f i g u r a t i o n w i t h o f f - c h i p b i t s t r e a m m e m o r y M ic ro pr oc es so r F P G A C P L D D a t a A d d r e s s M e m o r y B i t s t e a m c o n f i g u r a t i o n r e q u e s t s R e c o n f i g u r a b l e p a r t F i x e d p a r t c ) R e c o n f i g u r a t i o n t h r o u g h a m i c r o p r o c e s s o r M e m o r y F i x e d p a r t B i t s t e a m A d d r e s s D a t a F P G A a c k n o w l e d g e m e n t s M P M P M P P R e c o n f i g u r a b l e p a r t

(6)

V. IMPLEMENTATION EXAMPLE

Our implementation application is a transmitter system for future wireless networks for 4G air interface [10]. This transmitter is based on CDMA modulation scheme. MC-CDMA combines Orthogonal Frequency Division Multiplex-ing (OFDM) with spreadMultiplex-ing. SynDex algorithm graph, de-picted by Figure 8, shows the basic numeric computation

blocks of this transmitter. Block modulation performs either

a QPSK or QAM-16 modulation. This adaptive modulation

is selected by the conditional entry Select which defines the

modulation of each OFDM symbol according to the signal

to noise ratio. Spreadingblock implements a Fast Hadamard

Transform (FHT). Next a frequency interleaving is done in order to take into account the frequency diversity offered by OFDM modulation. The OFDM modulation is performed by

an Inverse Fast Fourier Transform thanks toIFFTblock which

also implements zero-padding process. As this paper focus on

dynamic reconfiguration we consider blocks Spreading,

Inter-leaving and IFFT as a unique global block not reconfigurable.

We have to implement this transmitter over a prototyping board from Sundance technology [11]. This board is composed of one DSP C6201 from Texas Instrument and one FPGA Xilinx

Xc2v2000 partially reconfigurable. Its model with SynDEx is

represented by Figure 9. Mapping of functionalities over the architecture gives the following results. The DSP is in charge

of data generation and modulation selection. BlockModulation

is constrained to be executed on the dynamic part of the FPGA

(fpga dyn). Spreading, Interleaving and IFFT are executed

on the fixed part of the FPGA. Table I sums-up the most

significant parameters of this transmitter.

A. Design generation

Figure 10 represents the computation sequencing for the

partially reconfigurable part as expressed by the macro-code.

This computation sequencing has to be implemented on the

reconfigurable part of the FPGA, hence some transformations

must be made. We merge buffers {B, C, D} and operations

{QP SK, M AQ16}to generate operationOp Dynbefore the

VHDL synthesis.

B. Implementation results

1) Xilinx design flow for partial reconfiguration: This

ap-plication has been implemented on a Virtex II FPGA from

Xilinx. The code, both for fixed and dynamic part has been

automatically generated with SynDEx, thanks to the libraries.

S a m p l i n g f r e q u e n c y : 2 0 M H z T o t a l / U s e d s u b c a r r i e r s : 2 5 6 / 1 9 2 N u m b e r s o f u s e r s ( f u l l - l o a d s y s t e m ) : 3 2 G u a r d i n t e r v a l : 0 . 4 µ s F r a m e d u r a t i o n : 1 . 3 2 m s M o d u l a t i o n : Q P S K : M A Q 1 6 N e t b i t r a t e p e r u s e r ( s t r e a m i n g m o d e ) : 0 . 9 0 9 M b i t s / s : 1 . 8 1 8 M b i t s / s TABLE I

MC-CDMATRANSMITTER PARAMETERS- INDOOR SCHEME

Fig. 8. Algorithm graph of a MC-CDMA transmitter

Fig. 9. Architecture graph

However, the generation of bitstreams needs a specific flow

called modular design. This design flow is broken down

into three main phases: creating the floorplan and constraints

for the overall design, implementing each module through the place and route process, assembling individual modules

together into a complete design. Reconfigurable modules

com-municate with other modules, both fixed and reconfigurable,

by using a special bus macro (3-state buffers) and must be top-level modules.

2) Numerical results of implementation: Virtex II integrates

an internal reconfiguration access port (ICAP) for partial

reconfiguration. Scheme bof Figure 7 is applied.

Figure 11 shows the resulting design of the reconfigurable

transmitter. The FPGA is divided in two parts. The first

one is static and implements non reconfigurable logic, the

second one takes 8% of the FPGA and is dedicated to the dynamic operator. The design automatically generated in agreement with SynDEx macro-code is framed by a gray rectangle. We can distinguish blocks executed by the part

fpgafix of Figure 9 such as Spreading, Interleaving, IFFT

and communications process (Interface IN OUT). This

non-reconfigurable part also integrates the design automatically

generated for block modulation. As modulation functionality

is runtime reconfigurable, design generated by SynDEx for

this block doesn’t integrate the main functionality which is

implemented by operatorOp Dyn.

The DSP can select modulation performed by the dynamic

part by sending this value to moduleInterface IN OUT. Next

this value is send to block modulation through communication

link LIO.Interface IN OUT module receives DSP data from

SHB bus. Receiving process can be locked-up during partial

reconfigurations thanks to signal In Reconf. If Select register

(7)

R e c v / L I 0 B u f f e r _ A Q P S K B u f f e r m e r g i n g : B u f f e r { A } = > B u f f e r _ I N B u f f e r { B , C , D } = > B u f f e r _ O u t O p e r a t o r m e r g i n g : { Q P S K , M A Q 1 6 } = > O p _ D y n M A Q 1 6 S e n d / L I 1 B u f f e r _ B B u f f e r _ C B u f f e r _ D S e l e c t

Fig. 10. Representation of macro-code computation sequencing for the

partially reconfigurable part of the FPGA

D S P T I C 6 7 0 1 B i t s t r e a m Q P S K : 8 0 K B B i t s t r e a m Q A M 1 6 : 8 0 K B m e m o r y F u l l b i t s t r e a m : 9 1 5 K B O p _ D y n B u s m a c r o D a t a _ o u t D a t a _ i n D yn am ic p ar t 8 % o f F P G A F ix ed p ar t 92 % o f F P G A X i l i n x X c 2 v 2 0 0 0 P r o t o c o l b u i l d e r I C A P C P S H B R e g i s t e r S e l e c t B u f f e r _ I N B u f f e r _ O U T R e a d y E n a b l e In te rf ac e_ IN _O U T Sp re ad in g In te rle av in g IF FT L I 0 L I 1 M od ul at io n (D yn am ic p ar t c on tro l) A C K c o n f i g r e q u e s t s I n _ R e c o n f R e s e t B i t s t r e a m H e a d e r C o n f i g u r a t i o n M a n a g e r C P : L o w s p e e d d i g i t a l c o m m u n i c a t i o n b u s f o r t r a n s m i t t e r c o n f i g u r a t i o n S H B : H i g h s p e e d d i g i t a l c o m m u n i c a t i o n b u s f o r d a t a t r a n s m i s s i o n I C A P : I n t e r n a l C o n f i g u r a t i o n A c c e s s P o r t

Fig. 11. Reconfigurable MC-CDMA transmitter architecture

request to the protocol builder component which is next in charge to address external memory and drive ICAP. This self

reconfiguration operates at 50Mhz, one bistream byte is loaded

each cycle by the ICAP. So the reconfiguration time needed to

reconfigureOp Dyntakes about 4ms. As noted by Table I the

maximum net bit rate per user in streaming mode is about of 0.909Mbits/s with QPSK modulation. Our Xilinx IFFT core implementation allows us to reach a maximum bit rate per

user of 0.296 Mbits/s. Time to reconfigure the modulation is

of the order of some data frames, hence this system is enough reactive to allow fast adaptations with time-varying channels.

Other computation blocks such as spreading or interleaving

can be implemented using this method to obtain a full scalable system.

As shown in Table II, FPGA resources utilization needed to implement QPSK and QAM-16 modulations are more

impor-tant with a dynamic reconfiguration scheme. This overhead is

due to the generic VHDL structure generation, based on the macro code description, which is more adapted for medium-complex data path control. However this gap is decreasing

with the number of different reconfigurations needed and the

ability of runtime reconfiguration to provide virtual hardware.

However the flexibility given by this methodology and the

automatic VHDL generation can overcome hardware resource overhead. For instance we can easily add a Forward Error Correction (FEC) process, such as Reed-Solomon encoder, in addition with modulation process. So we obtain a new

configuration for the dynamic part. Since the size of the

reconfigurable part is fixed by the designer, any design able

to meet this area constraint can be implemented.

M o d u l a t i o n F i x D y n a m i c i m p l e m e n t a t i o n ( Q P S K + Q A M 1 6 ) D y n a m i c P a r t c o n t r o l P r o t o c o l B u i l d e r R e c o n f i g u r a b l e a r e a c a p a c i t y C L B S l i c e s : 1 7 6 0 0 1 0 7 8 7 0 D f f L a t c h e s : 3 2 3 0 0 1 2 3 F c t g e n e r a t o r : 3 3 2 7 4 2 1 3 -B l o c k R A M ( 1 8 K b i t s ) : 0 2 0 1 4 F P G A a r e a : - - - 8 % S w i t c h i n g l a t e n c y : - - - 4 m s TABLE II

FIX-DYNAMIC MODULATION IMPLEMENTATION COMPARISON

VI. CONCLUSION

We have described a methodologyflow to manage

automati-cally partially reconfigurable parts of a FPGA. It allows to map

applications over heterogeneous architectures and fully exploit

advantages given by partially reconfigurable components. The

AAA methodology and associated tool SynDEx have been

used to perform mapping and code generation for fixed and

dynamic parts of FPGA. Either, SynDEx’s heuristic needs

additional developments to optimize time reconfiguration.

Furthermore, complex design and architecture can support

more than one dynamic part. This design flow has the main

advantage to target as well as software components as hard-ware components to implement complex applications from a high level functional description. This methodology can easily

be used to introduce dynamic reconfiguration over already

developedfixed design. As well as for fast IP block integration

onfixed or reconfigurable architectures.

REFERENCES

[1] J. Mitola, “Software radio architecture evolution: Foundations,

technol-ogy tradeoffs, and architecture implications,”IEICE Trans. Commn., vol.

E83-B, no. 6, pp. 1165–1172, June 2000.

[2] E. L. Horta, J. W. Lockwood, D. E. Taylor, and D. Parlour, “Dynamic

hardware plugins in an fpga with partial runtime reconfiguration,”

Design Automation Conference (DAC), 2002.

[3] J. Noguera and R. Badia, “A hw/sw partitioning algorithm for

dynam-ically reconfigurable architectures,”Proc. Design Automation and Test

in Europe, vol. pp. 72934, 200t, 2001.

[4] C. Sorel and Y. Lavarenne, “From algorithm and architecture specifi

-cations to automatic generation of distributed real-time executives: a

seamlessflow of graphs transformations,”Formal Methods and Models

for Codesign Conference, France, pp. 123– 132, June 2003.

[5] J. Harkin, T. McGinnity, and L. Maguire, “Partitioning methodology

for dynamically reconfigurable embedded systems,”IEE Proc-Comput.

Digit. Tech, vol. 147, November 2000.

[6] V. Fresse, O. Deforges, and J.-F. Nezan, “Avsyndex: A rapid prototyping process dedicated to the implementation of digital image processing

applications on multi-dsps and fpga architectures,”EURASIP JASP, pp.

990–1002, september 2002.

[7] F. Berthelot, F. Nouvel, and D. Houzet, “Design methodology for

dynamically reconfigurable systems,”JFAAA , Dijon France, pp. 47–

52, January 2005.

[8] S. Hauck, “Configuration prefetch for single context reconfigurable

coprocessors,” ACM/SIGDA International Symposium on FPGAs, vol.

E83-B, no. 6, p. 6574, June 1998.

[9] P. K. Murthy, S. S. Bhattacharyya, and E. A. Lee, “Minimizing memory

requirements for chain-structured sdf graphs,” Proc. of ICASSP,

Aus-tralia, vol. E83-B, no. 6, p. 6574, June 1994.

[10] S. Lenours, F. Nouvel, and J.-F. Helard, “Design and implementation

of mc-cdma systems for future wireless networks,”EURASIP JASP, pp.

1604–1615, August 2004.

References

Related documents

The comprehensive program for energy efficiency in industry has been gradually wound down starting in 2012. Currently, the most important policy instrument targeting energy

majority of the learners acknowledged having learned in various ways from both group work and individual work methods of English language learning and teaching

Based on a proportional and integral controller, the custom-made control software corrects errors caused by physiological changes within stored commodities.. Control parameters

a study assessing sleep and PA using actigraphic (activity monitor) measures in 8-year-old children, a bidirectional inverse relationship was found, showing that

With the concept of photovoice [9] and the social-ecological model of health [2], the project team developed a health promotion programme titled ‘Make a Change through

Vol 13, Issue 3, 2020 Online 2455 3891 Print 0974 2441 EVALUATION OF THE PROTECTIVE EFFECT OF GALLIC ACID AGAINST ARSENIC INDUCED GENOTOXICITY IN HEPG2 CELL LINE NIDHYA TERESA

Use of Evaluation Results: The purchasing of equipment for the Fitness Center and the provision of additional workers enhanced opportunities for students, faculty, and