PARBIT Partial Bitfile Configuration Tool
description
Transcript of PARBIT Partial Bitfile Configuration Tool
![Page 1: PARBIT Partial Bitfile Configuration Tool](https://reader034.fdocuments.in/reader034/viewer/2022050802/5681582b550346895dc58ffe/html5/thumbnails/1.jpg)
PARBIT Tool 1
PARBITPartial Bitfile Configuration Tool
Edson L. Horta
Washington University, Applied Research Lab
August 15, 2001
Supported by: NSF ANI-0096052;Xilinx Inc. and CNPq (Brazil)
![Page 2: PARBIT Partial Bitfile Configuration Tool](https://reader034.fdocuments.in/reader034/viewer/2022050802/5681582b550346895dc58ffe/html5/thumbnails/2.jpg)
PARBIT Tool 2
Single chip ATM SwitchVIRTEX FPGAPartial Reconfigurablewww.lsi.usp.br/~recats
VIRTEX FPGAPartial ReconfigurableDynamic Hardware Pluginhttp://www.arl.wustl.edu/arl/projects/fpx
Motivation
RECATS
Mutual Need: tool to generate partial configuration files for
VIRTEX FPGA
FPX
PARBIT
![Page 3: PARBIT Partial Bitfile Configuration Tool](https://reader034.fdocuments.in/reader034/viewer/2022050802/5681582b550346895dc58ffe/html5/thumbnails/3.jpg)
PARBIT Tool 3
VIRTEX Architecture
• Resources– CLBs– IOBs– Block SelectRAMs– Clocks
• Configuration– bitstream: configuration bitfile– configuration columns
• Center• CLB• IOB• Block SelectRAM Interconnect• Block SelectRAM Content
![Page 4: PARBIT Partial Bitfile Configuration Tool](https://reader034.fdocuments.in/reader034/viewer/2022050802/5681582b550346895dc58ffe/html5/thumbnails/4.jpg)
PARBIT Tool 4
VIRTEX Architecture
• Configuration ColumnsLe
ft IO
B Co
lum
n
Bloc
k Se
lect
RAM
Inte
rcon
nect
Bloc
k Se
lect
RAM
Con
tent
2IOBs
2GCLKs
2IOBs
2IOBs
2IOBs
2IOBs
2IOBs
2IOBs
2GCLKs
CLB
Colu
mn
CLB
Colu
mn
Cent
er C
olum
n
CLB
Colu
mn
CLB
Colu
mn
Righ
t IO
B Co
lum
n
2IOBs
Bloc
k Se
lect
RAM
Con
tent
Bloc
k Se
lect
RAM
Inte
rcon
nect
![Page 5: PARBIT Partial Bitfile Configuration Tool](https://reader034.fdocuments.in/reader034/viewer/2022050802/5681582b550346895dc58ffe/html5/thumbnails/5.jpg)
PARBIT Tool 5
PARBIT Tool - Introdution
• A Tool that transforms configuration bitfiles to generate partial configuration bitfiles with hardware realocation
• Command-line interface• Environment
– Windows (Cygwin)– Unix
• Devices supported:– XCV50E, XCV100E, XCV200E, XCV300E, XCV400E,
XCV405E, XCV600E, XCV812E, XCV1000E, XCV1600E, XCV2000E,XCV2600E, XCV3200E.
• http://www.arl.wustl.edu/arl/projects/fpx/parbit/
![Page 6: PARBIT Partial Bitfile Configuration Tool](https://reader034.fdocuments.in/reader034/viewer/2022050802/5681582b550346895dc58ffe/html5/thumbnails/6.jpg)
PARBIT Tool 6
PARBIT Tool - Introdution
ENDN
Error MessageParametersOK ?
Write Trailer
Y
Write Header
User Parameters
Copy Config. Bits
END
FPGA TypeCoordinatesShutdownConfiguration Port
![Page 7: PARBIT Partial Bitfile Configuration Tool](https://reader034.fdocuments.in/reader034/viewer/2022050802/5681582b550346895dc58ffe/html5/thumbnails/7.jpg)
PARBIT Tool 7
PARBIT Tool - Introdution
• Utilization– parbit option original partial target
• Input Files– option: user parameters– original: Dynamic Hardware Plugin (DHP)
bitstream – target: infrastructure bitstream
• Output File– partial: generated partial bitstream
• Generating the input bitstream files– Xilinx Tools– Constraints commands in the UCF file
![Page 8: PARBIT Partial Bitfile Configuration Tool](https://reader034.fdocuments.in/reader034/viewer/2022050802/5681582b550346895dc58ffe/html5/thumbnails/8.jpg)
PARBIT Tool 8
PARBIT Tool - Introdution
• Original Bitstream File– DHP User Module – Locks the interface signals to the infrastrucuture– Locks the area of user logic
• Target Bitstream File– Infrastructure Logic– Locks the interface signals to the DHP User
Module– Allocate blank areas (targets) to download new
DHP Modules
![Page 9: PARBIT Partial Bitfile Configuration Tool](https://reader034.fdocuments.in/reader034/viewer/2022050802/5681582b550346895dc58ffe/html5/thumbnails/9.jpg)
PARBIT Tool 9
PARBIT Tool – Original Bitstream
– Dynamic Hardware Plugin (DHP) confined in a rectangular region
– PARBIT parameters
• Start Row and Start Col
• End Row and End Col
Left
IOBs
RAM
RAM
RAM
RAM
RAM
RAM
Right IOBs
RAM
RAM
Bottom IOBs
Top IOBs
Start Column = 8
End Column = 17
DHP
End Row = 74
Start Row = 7
![Page 10: PARBIT Partial Bitfile Configuration Tool](https://reader034.fdocuments.in/reader034/viewer/2022050802/5681582b550346895dc58ffe/html5/thumbnails/10.jpg)
PARBIT Tool 10
FD
FD
FD
FD FD
FD
FD
FDdout din
dout
dout
dout
din
din
din
gask_out[0]
gask_out[1]
gask_out[2]
gask_out[3]
gask_in[0]
gask_in[1]
gask_in[2]
gask_in[3]
INGASK
DHP
COL8COL5
gask_clk
GASK_DHP
OUTGASK
OUTGASK
OUTGASK
OUTGASK INGASK
INGASK
INGASK
• Interface signals and flops
Original Bitstream - DHP Module
• DHP User Module
![Page 11: PARBIT Partial Bitfile Configuration Tool](https://reader034.fdocuments.in/reader034/viewer/2022050802/5681582b550346895dc58ffe/html5/thumbnails/11.jpg)
PARBIT Tool 11
DHP User Module - Example
• 8 stages of combinatorial function, with registered outputs• Connects to gas_dhp entity buses (din, dout)• Consumes 32 CLBs
Func
tion
Func
tion
Func
tion
din[1]
din[0]
din[2]
din[3]
dout[0]
dout[1]
dout[2]
dout[3]
clk
Stage 1Stage 7 Stage 0
USER_DHP_V101
CK
DQ
CK
DQ
CK
DQ
CK
DQ
CK
DQ
CK
DQ
CK
DQ
CK
DQ
CK
DQ
CK
DQ
CK
DQ
CK
DQ
![Page 12: PARBIT Partial Bitfile Configuration Tool](https://reader034.fdocuments.in/reader034/viewer/2022050802/5681582b550346895dc58ffe/html5/thumbnails/12.jpg)
PARBIT Tool 12
DHP Module - VHDLlibrary IEEE; use IEEE.std_logic_1164.all;
-- Top Level Entity of DHP also specifies -- pins so that a FPGA can be routed and placedentity gask_dhp is port( gask_in: in std_logic_vector(3 downto 0); gask_clk: in std_logic; gask_out: out std_logic_vector(3 downto 0)); end gask_dhp;
library IEEE; use IEEE.std_logic_1164.all; USE ieee.std_logic_arith.ALL;
-- Entity of a Dynamic Hardware Pluginentity dhp is port( din: in std_logic_vector(3 downto 0); clk: in std_logic; dout: out std_logic_vector(3 downto 0)); end dhp;
architecture dhp_arch of dhp is -- The User's Module Logic goes HERE
signal stage0_sig: std_logic_vector (3 downto 0);signal stage1_sig: std_logic_vector (3 downto 0);signal stage2_sig: std_logic_vector (3 downto 0);signal stage3_sig: std_logic_vector (3 downto 0);signal stage4_sig: std_logic_vector (3 downto 0);signal stage5_sig: std_logic_vector (3 downto 0);signal stage6_sig: std_logic_vector (3 downto 0);
begin
Stage0: process (clk) begin if(clk'event AND clk = '1') then stage0_sig(0) <= NOT din(0) OR din(1); stage0_sig(1) <= din(2) XOR din(0); stage0_sig(2) <= NOT din(3) NOR din(2); stage0_sig(3) <= din(1) AND din(0); end if; end process;
![Page 13: PARBIT Partial Bitfile Configuration Tool](https://reader034.fdocuments.in/reader034/viewer/2022050802/5681582b550346895dc58ffe/html5/thumbnails/13.jpg)
PARBIT Tool 13
DHP Module - VHDL-- The User's Module is the Main Component of
the Module design component dhp is port( din: in std_logic_vector(3 downto 0); clk: in std_logic; dout: out std_logic_vector(3 downto 0)); end component;
signal ding,doutg:std_logic_vector(3 downto 0);
begin
D: dhp port map(ding,gask_clk,doutg);
-- Specifies the same Flops in the same locationG: for i in 0 to 3 generate
INGASK : FD port map( gask_in(i), gask_clk, ding(i));
Stage1: process (clk)……………………………………………………………………Stage7: process (clk) begin if(clk'event AND clk = '1') then dout(0) <= stage6_sig(2) NAND stage6_sig(0); dout(1) <= NOT stage6_sig(3) NAND
stage6_sig(3); dout(2) <= NOT stage6_sig(0) XOR
stage6_sig(2); dout(3) <= stage6_sig(1) NAND stage6_sig(1); end if; end process;
end dhp_arch;
architecture gask_dhp_arch of gask_dhp is component FD port( D: in std_logic; C: in std_logic; Q: out std_logic); end component;
![Page 14: PARBIT Partial Bitfile Configuration Tool](https://reader034.fdocuments.in/reader034/viewer/2022050802/5681582b550346895dc58ffe/html5/thumbnails/14.jpg)
PARBIT Tool 14
DHP Module - VHDL and UCF File
# Include Region for DHP User ModuleINST /D* LOC=clb_r3c6:clb_r6c7; # FLOPSINST /OUTGASK_0* LOC=clb_r3c5.s0;INST /OUTGASK_1* LOC=clb_r4c5.s0;INST /OUTGASK_2* LOC=clb_r5c5.s0;INST /OUTGASK_3* LOC=clb_r6c5.s0;
INST /INGASK_0* LOC=clb_r3c8.s1;INST /INGASK_1* LOC=clb_r4c8.s1;INST /INGASK_2* LOC=clb_r5c8.s1;INST /INGASK_3* LOC=clb_r6c8.s1;
# gask_dhp.ucf# PINSNET gask_clk LOC=B8;NET gask_in<0> LOC=C8;NET gask_in<1> LOC=B7;NET gask_in<2> LOC=A6;NET gask_in<3> LOC=D8;NET gask_out<0> LOC=F3;NET gask_out<1> LOC=D1;NET gask_out<2> LOC=G3;NET gask_out<3> LOC=F5;
OUTGASK : FD port map( doutg(i), gask_clk, gask_out(i));
end generate;
end gask_dhp_arch;
![Page 15: PARBIT Partial Bitfile Configuration Tool](https://reader034.fdocuments.in/reader034/viewer/2022050802/5681582b550346895dc58ffe/html5/thumbnails/15.jpg)
PARBIT Tool 15
DHP Module – FPGA Editor (XCV50E)
![Page 16: PARBIT Partial Bitfile Configuration Tool](https://reader034.fdocuments.in/reader034/viewer/2022050802/5681582b550346895dc58ffe/html5/thumbnails/16.jpg)
PARBIT Tool 16
ROW 6
ROW 4
ROW 5
ROW 3
COL 5 COL 6 COL 7 COL 8
DHP Module – FPGA Editor (XCV50E)
DHP User
Module
![Page 17: PARBIT Partial Bitfile Configuration Tool](https://reader034.fdocuments.in/reader034/viewer/2022050802/5681582b550346895dc58ffe/html5/thumbnails/17.jpg)
PARBIT Tool 17
PARBIT Tool – Target Bitstream
– Infrastructure with target regions reserved for DHP modules insertions
– PARBIT parameters
• Target Locations (Row, Col)
Right IO
BsL
eft I
OB
s
Top IOBs
RA
M
RA
M
RA
M
RA
M
RA
M
RA
M
TARGET 1 TARGET 2 TARGET 3 TARGET 4T1 (7,8) T2 (7,20) T3 (7,68) T4 (7,80)
Bottom IOBs
INFRASTRUCTURE
![Page 18: PARBIT Partial Bitfile Configuration Tool](https://reader034.fdocuments.in/reader034/viewer/2022050802/5681582b550346895dc58ffe/html5/thumbnails/18.jpg)
PARBIT Tool 18
Target Bitstream - Infrastructure Module
FD FD
FD FDgask_out[1]
GASKOUT GASKIN
FD FDgask_out[2]
GASKOUT GASKIN
FD FDgask_out[3]
GASKOUT GASKIN
gask_out[0]
gask_in[0]
gask_in[1]
gask_in[2]
gask_in[3]
GASKIN
GASK_INF
GASKOUT
GASK_IO[0]
GASK_IO[1]
GASK_IO[2]
GASK_IO[3]
COL5 COL8
gask_clk
• On-chip system logic
• Interface signals and flops
• I/O Pads
![Page 19: PARBIT Partial Bitfile Configuration Tool](https://reader034.fdocuments.in/reader034/viewer/2022050802/5681582b550346895dc58ffe/html5/thumbnails/19.jpg)
PARBIT Tool 19
Infrastructure Module - VHDLlibrary IEEE; use IEEE.std_logic_1164.all;
-- Top Level Entity of Infrastructureentity gask_inf is port( gask_in: in std_logic_vector(3 downto 0); gask_clk: in std_logic; gask_out: out std_logic_vector(3 downto 0)); end gask_inf;
library IEEE; use IEEE.std_logic_1164.all;
-- Each gask_io module provides an input/ouput-- interface between the infrastructure and
moduleentity gask_io is port( di: in std_logic; clk: in std_logic; qo: out std_logic); end gask_io;
architecture gask_io_arch of gask_io is component FD port( D: in std_logic; C: in std_logic; Q: out std_logic); end component;
signal q0 : std_logic;
-- Each gas_io module has two Flops, one-- on each edge of DHPbegin GASKIN : FD port map(D => di, C => clk, Q => q0);
GASKOUT: FD port map(D => q0, C => clk, Q => qo);
end gask_io_arch;
![Page 20: PARBIT Partial Bitfile Configuration Tool](https://reader034.fdocuments.in/reader034/viewer/2022050802/5681582b550346895dc58ffe/html5/thumbnails/20.jpg)
PARBIT Tool 20
Infrastructure Module - VHDL and UCF Filearchitecture gask_inf_arch of gask_inf is component gask_io port( di: in std_logic; clk: in std_logic; qo: out std_logic); end component;
begin G: for i in 0 to 3 generate
-- Bus contains an array of gask_io modules GASK : gask_io port map( gask_in(i), gask_clk, gask_out(i));
end generate;
end gask_inf_arch;
# Exclude Region for DHP User ModuleCONFIG PROHIBIT=CLB_R3C6:CLB_R6C7;
# FLOPSINST /GASK_0/GASKOUT* LOC=clb_r3c5.s0;INST /GASK_1/GASKOUT* LOC=clb_r4c5.s0;INST /GASK_2/GASKOUT* LOC=clb_r5c5.s0;INST /GASK_3/GASKOUT* LOC=clb_r6c5.s0;
INST /GASK_0/GASKIN* LOC=clb_r3c8.s1;INST /GASK_1/GASKIN* LOC=clb_r4c8.s1;INST /GASK_2/GASKIN* LOC=clb_r5c8.s1;INST /GASK_3/GASKIN* LOC=clb_r6c8.s1;
# gask_inf.ucf# PINSNET gask_clk LOC=B8;NET gask_in<0> LOC=C8;NET gask_in<1> LOC=B7;NET gask_in<2> LOC=A6;NET gask_in<3> LOC=D8;NET gask_out<0> LOC=F3;NET gask_out<1> LOC=D1;NET gask_out<2> LOC=G3;NET gask_out<3> LOC=F5;
![Page 21: PARBIT Partial Bitfile Configuration Tool](https://reader034.fdocuments.in/reader034/viewer/2022050802/5681582b550346895dc58ffe/html5/thumbnails/21.jpg)
PARBIT Tool 21
Infrastructure – FPGA Editor (XCV50E)
![Page 22: PARBIT Partial Bitfile Configuration Tool](https://reader034.fdocuments.in/reader034/viewer/2022050802/5681582b550346895dc58ffe/html5/thumbnails/22.jpg)
PARBIT Tool 22
COL 5 COL 7COL 6 COL 8
ROW 3
ROW 4
ROW 5
ROW 6
Infrastructure – FPGA Editor (XCV50E)
Reserved Area
(Target) for DHP Module
Flops and Interconnect Signals(Same location as in DHP Module)
![Page 23: PARBIT Partial Bitfile Configuration Tool](https://reader034.fdocuments.in/reader034/viewer/2022050802/5681582b550346895dc58ffe/html5/thumbnails/23.jpg)
PARBIT Tool 23
PARBIT Tool - Example
• Utilization– parbit option original partial target
• Example– Visit:
http://www.arl.wustl.edu/arl/projects/fpx/parbit– In the Download Section, right click on
parbit-expl.tar
![Page 24: PARBIT Partial Bitfile Configuration Tool](https://reader034.fdocuments.in/reader034/viewer/2022050802/5681582b550346895dc58ffe/html5/thumbnails/24.jpg)
PARBIT Tool 24
PARBIT Tool - Downloading
![Page 25: PARBIT Partial Bitfile Configuration Tool](https://reader034.fdocuments.in/reader034/viewer/2022050802/5681582b550346895dc58ffe/html5/thumbnails/25.jpg)
PARBIT Tool 25
PARBIT Tool - Downloading
![Page 26: PARBIT Partial Bitfile Configuration Tool](https://reader034.fdocuments.in/reader034/viewer/2022050802/5681582b550346895dc58ffe/html5/thumbnails/26.jpg)
PARBIT Tool 26
PARBIT Tool - Downloading
![Page 27: PARBIT Partial Bitfile Configuration Tool](https://reader034.fdocuments.in/reader034/viewer/2022050802/5681582b550346895dc58ffe/html5/thumbnails/27.jpg)
PARBIT Tool 27
PARBIT Tool - Downloading
![Page 28: PARBIT Partial Bitfile Configuration Tool](https://reader034.fdocuments.in/reader034/viewer/2022050802/5681582b550346895dc58ffe/html5/thumbnails/28.jpg)
PARBIT Tool 28
PARBIT Tool - Downloading
![Page 29: PARBIT Partial Bitfile Configuration Tool](https://reader034.fdocuments.in/reader034/viewer/2022050802/5681582b550346895dc58ffe/html5/thumbnails/29.jpg)
PARBIT Tool 29
PARBIT Tool - Downloading
![Page 30: PARBIT Partial Bitfile Configuration Tool](https://reader034.fdocuments.in/reader034/viewer/2022050802/5681582b550346895dc58ffe/html5/thumbnails/30.jpg)
PARBIT Tool 30
PARBIT Tool - Downloading
![Page 31: PARBIT Partial Bitfile Configuration Tool](https://reader034.fdocuments.in/reader034/viewer/2022050802/5681582b550346895dc58ffe/html5/thumbnails/31.jpg)
PARBIT Tool 31
PARBIT Tool - Demonstration
![Page 32: PARBIT Partial Bitfile Configuration Tool](https://reader034.fdocuments.in/reader034/viewer/2022050802/5681582b550346895dc58ffe/html5/thumbnails/32.jpg)
PARBIT Tool 32
PARBIT Tool - Demonstration
• Example (Cygwin Window)– Run parbit
• parbit parbit-gask.opt gask_dhp.bit gask-part.bit gask_inf.bit• Compare the sizes of gask_dhp.bit and gask-part.bit
![Page 33: PARBIT Partial Bitfile Configuration Tool](https://reader034.fdocuments.in/reader034/viewer/2022050802/5681582b550346895dc58ffe/html5/thumbnails/33.jpg)
PARBIT Tool 33
PARBIT Tool - Exercises
Exercise 1 Change the user parameters and generate a new partial
configuration bitstream (gask-part2.bit) for one user module confined in a rectangular area with:
– Start row = 2– Start col = 5– Height = 3 rows– Width = 4 columns– Target location = Row 10, Col 15
![Page 34: PARBIT Partial Bitfile Configuration Tool](https://reader034.fdocuments.in/reader034/viewer/2022050802/5681582b550346895dc58ffe/html5/thumbnails/34.jpg)
PARBIT Tool 34
PARBIT Tool - Exercises
Exercise 2• Go to the PARBIT web page and get the project files for
the gasket example (gask-design.tar)• Modify the UCF files in order to change the location of
the DHP user module two rows down• Compile each project:
– xflow –p xcv50e-8-fg256 –implement gask-i gask_dhp
• Open each project with the FPGA Editor:– fpga_editor gask_dhp.ncd
• Check the new logic locations• Edit the file gask_dhp.ucf
– Add 2 to the row numbers (rX)
![Page 35: PARBIT Partial Bitfile Configuration Tool](https://reader034.fdocuments.in/reader034/viewer/2022050802/5681582b550346895dc58ffe/html5/thumbnails/35.jpg)
PARBIT Tool 35
ORIGINAL BITS
Configuration Frames - Full Slice
TARGET BITS
TARGET BITS