Configurable System-on

advertisement
Configurable System-on-Chip:
Xilinx EDK
Heiner Giefers
Computer Engineering Group
University of Paderborn
hgiefers@upb.de
1
Outline
 
FPGAs
 
FPGA Tool Flow
 
System on Chip (SoC)
 
SoC Tool Flow
 
Demonstration
FPGAs  FPGA Tool Flow  System on Chip (SoC)  SoC Tool Flow  Demonstration
2
Field-Programmable Gate Arrays (FPGAs)
 
 
Flash PROM
 
Fine-grained reconfigurable hardware
Gate-Array: regular structure of “logic cells”, connected
through an interconnection network
Configuration stored in SRAM, must be loaded on startup
FPGAs  FPGA Tool Flow  System on Chip (SoC)  SoC Tool Flow  Demonstration
3
FPGA toolflow
HDL
 
(VHDL /
Verilog)
 
Synthesize
Hardware design is traditionally done by
modeling the system in a hardware
description language
An FPGA “compiler” (synthesis tool)
generates a netlist,
Netlist
Map
 
Place
 
Route
 
Bitstream
which is then mapped to the FPGA
technology,
the inferred components are placed on the
chip,
and the connecting signals are routed
through the interconnection network.
FPGAs  FPGA Tool Flow  System on Chip (SoC)  SoC Tool Flow  Demonstration
4
HDL Synthesis
process(clk, reset)
HDL
begin
(VHDL /
Verilog)
if reset = ‘1‘ then
output <= ‘0‘;
elsif clk‘event AND clk = ‘1‘ then
output <= a XOR b;
end if;
Synthesize
end process;
Netlist
Map
Register
Place
Route
a
b
D
⊕
clk
Bitstream
Q
output
clear
reset
FPGAs  FPGA Tool Flow  System on Chip (SoC)  SoC Tool Flow  Demonstration
5
Technology Mapping
Register
HDL
a
b
(VHDL /
Verilog)
D
⊕
clk
Synthesize
Q
output
clear
reset
Netlist
Map
Place
Route
a
b
output
FF
Bitstream
FPGAs  FPGA Tool Flow  System on Chip (SoC)  SoC Tool Flow  Demonstration
6
Place & Route
HDL
(VHDL /
Verilog)
Synthesize
Netlist
Map
Place
Route
Bitstream
FPGAs  FPGA Tool Flow  System on Chip (SoC)  SoC Tool Flow  Demonstration
7
Xilinx ISE
FPGAs  FPGA Tool Flow  System on Chip (SoC)  SoC Tool Flow  Demonstration
8
Evolution of FPGA
Virtex-6 ’09
Virtex-5 ’06
 
Glue logic
 
Prototyping
 
Reconfigurable
System-on-Chip
FPGAs  FPGA Tool Flow  System on Chip (SoC)  SoC Tool Flow  Demonstration
9
Traditional Embedded System
Ethernet
MAC
Audio
Codec
Power Supply
CLK
CLK
Interrupt
Controller
GP I/O
Address
Decode
Unit
CLK
SRAM
Memory
Controller
SRAM
SRAM
CPU
UART
(uP / DSP)
SDRAM
Timer
CoProc.
SDRAM
L
C
custom
IF-logic
Display
Controller
Images by H.Walder
FPGAs  FPGA Tool Flow  System on Chip (SoC)  SoC Tool Flow  Demonstration
10
Traditional Embedded System
Ethernet
MAC
Audio
FPGA Codec
Power Supply
CLK
CLK
Interrupt
Controller
GP I/O
Address
Decode
Unit
CLK
SRAM
Memory
Controller
SRAM
SRAM
CPU
UART
(uP / DSP)
SDRAM
Timer
CoProc.
SDRAM
L
C
custom
IF-logic
Display
Controller
Images by H.Walder
FPGAs  FPGA Tool Flow  System on Chip (SoC)  SoC Tool Flow  Demonstration
11
Configurable System on Chip (CSoC)
Audio
Codec
Flash PROM
Power Supply
L
C
SRAM
SRAM
SRAM
SDRAM
SDRAM
Images by H.Walder
FPGAs  FPGA Tool Flow  System on Chip (SoC)  SoC Tool Flow  Demonstration
12
Advantages
 
Fewer physical components
 
Shorter development cycles
 
Field-programmable (updates, new features...)
  Custom
 
co-processors / accelerators
Possibly higher performance through on-chip integration
  Signals
on a chip can typically be clocked higher than signals across
board traces
  Optimization between modules possible
 
Partial reconfigurability
  Exchange
peripherals while the rest of the system keeps running
FPGAs  FPGA Tool Flow  System on Chip (SoC)  SoC Tool Flow  Demonstration
13
Building a SoC
 
HW-Blocks are called IP “cores”
  Buy
them like Software
  Implement own cores
  Usually highly parametrizable
 
Interconnect infrastructure
  Bus
Architectures
  P2P Links
 
Cores implement (standardized)
interfaces
 
Modelling kit determines parameters for
cores and “generates” the system
FPGAs  FPGA Tool Flow  System on Chip (SoC)  SoC Tool Flow  Demonstration
14
CoreConnect Bus Architecture
 
Flexible bus architecture for embedded Systems and SoCs
  Developed
by IBM
  Used by Xilinx EDK
 
 
 
Processor Local Bus (PLB)
On-Chip Peripheral Bus (OPB)
Device Control Register Bus
(DCR)
 
Alternatives:
  AMBA
(Altera)
  Wishbone (OpenCores)
  Proprietary bus architectures
FPGAs  FPGA Tool Flow  System on Chip (SoC)  SoC Tool Flow  Demonstration
15
Embedded CPUs
 
PowerPC 440 (hard core)
  32
bit embedded PowerPC RISC
  Up to 550 MHz
  2x 32 kB instruction and data caches
  Memory management unit (MMU)
  Hardware multiply and divide
  Coprocessor interface (APU)
  PLB and DCR bus interfaces
 
Images by Xilinx
MicroBlaze (soft core)
  32
 
bit RISC architecture, up to 235 MHz
  Min. configuration: 1,010 LUTs
[XC5VLX330 FPGA: 207,360 LUTs  .5%]
  Highly configurable
Others
  NIOS
(Altera)
  ARM
  PicoBlaze
(Xilinx), ...
Barrel Shifter
  MMU, 2-64 kB instruction and data caches
  HW Multiplier/Divider, FPU, Debug
 
  PLB,
LMB, FSL bus interfaces
FPGAs  FPGA Tool Flow  System on Chip (SoC)  SoC Tool Flow  Demonstration
16
IXCL_S
Memory Management Unit (MMU)
DXCL_M
ALU
Program
Counter
Shift
Special
Purpose
Registers
IPLB
Barrel Shift
Data-Cache
IXCL_M
Instruction-Cache
Microblaze Configuration
DXCL_S
DPLB
Multiplier
Divider
Bus
IF
ILMB
FPU
Instruction
Buffer
Instruction
Decode
Bus
IF
Register File
32 x 32b
  High
bandwith  Processor Local Bus (PLB)
  Configurable caches  Xilinx Cache Link (XCL)
  Local (BRAM) memory  Local Memory Bus (LMB)
  Co-processor port  Fast Simplex Link (FSL)
FPGAs  FPGA Tool Flow  System on Chip (SoC)  SoC Tool Flow  Demonstration
DLMB
MFS1..16
SFSL1..16
17
CSoC Design Flow (Hardware)
HDL
Platform
(VHDL /
Description
Verilog)
 
 
Higher level of abstraction
Transform platform description into netlist
  Map,
place & route to FPGA, or
  Import in ISE and used in a larger FPGA design
Synthesize
Netlist
Generation
Netlist
Netlist
VHDL
Map
Place
XST
(Map, Place & Route)
Xilinx ISE
(VHDL Edit, Map,
Place & Route)
Route
Bitstream
FPGAs  FPGA Tool Flow  System on Chip (SoC)  SoC Tool Flow  Demonstration
18
CSoC Design Flow (Hardware)
Platform
Description
Netlist
Generation
VHDL
Netlist
XST
(Map, Place & Route)
Xilinx ISE
(VHDL Edit, Map,
Place & Route)
Bitstream
FPGAs  FPGA Tool Flow  System on Chip (SoC)  SoC Tool Flow  Demonstration
19
CSoC Design Flow (Software)
Platform
Description
Library
Generation
Netlist
Generation
*.a
User sources
*.h
*.h
*.c
Compile &
Link
Netlist
Update
Bitstream
*.elf
XST or ISE
(Map, Place & Route)
Bitstream
Bitstream
with
executable
Code
Program
FPGAs  FPGA Tool Flow  System on Chip (SoC)  SoC Tool Flow  Demonstration
20
CSoC Design Flow (Software)
Platform
Description
Library
Generation
Netlist
Generation
*.a
User sources
*.h
*.h
*.c
Compile &
Link
Netlist
Update
Bitstream
*.elf
XST or ISE
(Map, Place & Route)
Bitstream
Bitstream
with
executable
Code
Program
FPGAs  FPGA Tool Flow  System on Chip (SoC)  SoC Tool Flow  Demonstration
21
Demonstration
Spartan III FPGA
50 MHz clock
(back side)
7-segment display
Reset button
FPGAs  FPGA Tool Flow  System on Chip (SoC)  SoC Tool Flow  Demonstration
22
void
void main(){
main(){
c_count
while(1)= 0;
while(c_count<10000)
{
{ while(c<10000)
seven_seg_ctrl(0,
c_count);
GPIO_Write(c,CHANNEL,POS);
wait(1000000);
c++;
}c_count++;
}
Microblaze
CPU
FSL
LED0
LED5
7-seg
ctrl
LED6
LED1
LED2
LED4
LED3
PLB
7
GPIO
LED0
LED1
LED2
LED3
LED4
LED5
LED6
FPGAs  FPGA Tool Flow  System on Chip (SoC)  SoC Tool Flow  Demonstration
23
Questions?
More information on Xilinx FPGAs and design tools
  http://www.xilinx.com
  http://www.xilinx.com/edk
 
Student projects / Theses (BA/MA)
 
Heiner Giefers
P1.7.08.3
hgiefers@upb.de
 
Enno Lübbers
P1.7.08.4
enno.luebbers@upb.de
FPGAs  FPGA Tool Flow  System on Chip (SoC)  SoC Tool Flow  Demonstration
24
Download