Professional Documents
Culture Documents
Reconfigurable Computing
mp3
PS2 VHDL
MPEG2
Time
Reconfigurable Computing
Video out
2
MPEG
Control
MPEG
MP3
MP3
The full designs as well as the partial modules are available as full (partial) bitstream used to configure the device The partially reconfigurable modules are use to move the system from one configuration to the next one
Reconfigurable Computing
Netlist
Full Bitstream
Reconfigurable Computing
Reconfigurable Computing
SystemC
Basic constraints
HandelC
Basic constraints
Placement Constraints
(block positions and area)
Run-time Relocation
Placement constraints
Reconfigurable Computing
Create a bitstream database for full and partial modules to be used at run-time for device reconfiguration
Reconfigurable Computing
Top1 mod 3
Each module is assigned a given position and area on the device by means of area constraints
Reconfigurable Computing
10
Static module is fixed for all times Only partial module can be reconfigured
t1
t2
Static Module
t4
t3
Partial Module
y
Reconfigurable Computing
11
Reconfigurable Computing
12
Macro component s provided by Xilinx and must be inserted in the TOP level for the communication with partial modules Static and partial modules do not require any additional changes
Reconfigurable Computing
13
14
Reconfigurable Computing
15
Reconfigurable Computing
16
Top/Initial Built top level context Static Built static modules ReconfigModules Built reconfigurable modules Merges Contains assembled bitstreams
Reconfigurable Computing
17
Reconfigurable Computing
18
Reconfigurable Computing
19
Par generates a file called "dynamic.used" which is a list of routing resources it utilizes in the Reconfig Area. Map, place and route the dynamic modules:
cp Static/static.used ReconfigModules/ModN/arcs.exclude cd ReconfigModules/ModN ngdbuild -modular module -active rmodule ../../Top/Initial/top.ngo map top.ngd par -w top.ncd top_routed.ncd
Reconfigurable Computing
20
Reconfigurable Computing
21
Instance name of the module in the top-level Bounding Box of the module on the chip State that the module can be reconfigured
Reconfigurable Computing
22
Reconfigurable Computing
23
Reconfigurable Computing
24
Reconfigurable Computing
25
Reconfigurable Computing
26
Some modifications:
AND_F[] = Expr.F_LUT("F1 & F2 & F3 & F4") LUTContents = Util.InvertIntArray(AND_F) jbits.setCLBBits( clbRow, clbCol, BX0.BX0, BX0.BY0 )
. . .
Reconfigurable Computing
27
Reconfigurable Computing
28
Reconfigurable Computing
29
Things to know
A frame is the smallest unit of configuration. Spans the height of the FPGA Configuration is glitcheless. If you reconfigure a frame with the same data, no glitches appear. Reconfiguration reinitializes SRL16s and LutRAM, not BlockRam
Reconfigurable Computing
30
Case study
Two Independent Systems on same FPGA : Embedded Linux (PPC+Logic) Audio filter application (Logic) Under OS control able to reconfigure the audio filters Modified partial flow to create the filters
Reconfigurable Computing
31
XC2VP50
MP3 Player AC97 Core & Filter Speaker s
Reconfiguration
Telnet Login
Linux System
FPGA VFS
FS on Compact Flash
Reconfigurable Computing
32
Reconfigurable Computing
33
Physical Structure
Linux System: Ethernet LCD RAM-Controller ICAP SystemACE UART16550 JTAG GPIO PLB2OPB Prohibit Area: only OPB Routing
Reconfigurable Computing
34
Initial Budgeting
Design split into two parts, the Linux system and the reconfigurable DSP region. The Reconfigurable region is above and between the two PowerPCs. Does not span whole height of device. Linux system - lower half of FPGA. Linux system partitioned into a left and right half to avoid SRL16s under reconfigurable region Only OPB routing between left and right half. No bus macros were used.
Reconfigurable Computing
35
Static Module
Highpass filter
Lowpass filter
Reconfigurable Computing
36
37
Merging Designs
The XDL Tool is used in this modified partial flow xdl -ncd2xdl {static.ncd, lowpass.ncd} -> {static.xdl, lowpass.xdl} cat static.xdl lowpass.xdl > merged_lowpass.xdl Resolve conflicts in merged_lowpass.xdl All nets and instances need to be unique or merged GLOBAL_LOGIC*, PWR_VCC*, PWR_GND* external io, clk net, and other shared nets needs to be merged xdl -xdl2ncd merged_lowpass.xdl -> merged_lowpass.ncd
Reconfigurable Computing
38
Reconfigurable Computing
39