Tópicos Avançados em Arquitetura de Computadores
High Level Synthesis
2011 Prototipação de Circuitos Digitais 1
Ementa
• Introdução a Síntese de Alto Nível
• Estudo do estado da arte em síntese de alto nível
• Estudo de ferramenta de síntese de alto nível
2011.1 Prototipação de Circuitos Digitais 2
Avaliação
• Prova (20%)
• Seminário (20%)
• Projeto (40%)
• Escrita de artigo (20%)
2011.1 Prototipação de Circuitos Digitais 3
Bibliografia
2011.1 Prototipação de Circuitos Digitais 4
Objetivo da Disciplina
2011.1 Prototipação de Circuitos Digitais 5
Entender HLS
Estudar Técnicas
Implementar Ferramenta
Implementar Projeto com Ferramenta
Objetivo da Disciplina
2011.1 Prototipação de Circuitos Digitais 6
Resultado em FPGA
2006.2 Engenharia de Sistemas Embarcados 7
Tecnologia: SoC´s (System on Chip)
2006.2 Engenharia de Sistemas Embarcados 8
Componentes de um Sistema Embarcado
Analógico Digital Analógico
Memória
Coprocessadores
Controladores
Conversores
Processador
Interface
Software
(Aplicação)
ASIC
2006.2 Engenharia de Sistemas Embarcados 9
Circuito Integrado
2006.2 Engenharia de Sistemas Embarcados 10
Fluxo de projeto FPGA/ASIC
11
Structural Behavioral
Physical X’tor
Gate RTL
Block
Boolean FSM
Algorithm
GDSII
Placement
Floorplan
Y-Chart
Dan D Gajski
12
Structural Behavioral
Physical X’tor
Gate RTL
Block
Boolean FSM
Algorithm
GDSII
Placement
Floorplan Layout
Synthesis
13
Structural Behavioral
Physical X’tor
Gate RTL
Block
Boolean FSM
Algorithm
GDSII
Placement
Floorplan Logic
Synthesis
14
Structural Behavioral
Physical X’tor
Gate RTL
Block
Boolean FSM
Algorithm
GDSII
Placement
Floorplan High-Level
Synthesis
15
High Level Synthesis
CDFG Parsing
Transformation
Synthesis
Structural RTL Behavioral
Description
16
Questões Essenciais
• Linguagem de especificação Comportamental
• Arquitetura alvo
• Representação intermediária
• Escalonamento de operações
• Alocação e Biding
• Geração do Controle
17
Linguagens de Descrição Comportamental
• Add hardware-specific constructs to existing languages
– SystemC
• Extensões de Linguagens Populares HDL
– SystemVerilog
18
Arquiteturas Alvo
• Bus-based
• Multiplexer-based
• Register file
• Pipelined
• RISC, VLIW
• Interface Protocol
19
Exploração do Espaço de Projeto
Arch I
Arch II
Arch III
Delay
Area
20
FSM with Data Path (FSMD)
FSM Data
Path
FSM Data
Path FSM Data
Path
Interactive FSMDs
21
Representação Intermediária
* * +
Control Flow Graph
Data Flow Graph
22
Escalonamento
(Temporal Binding)
• Custo/benefício Tempo & recurso
• Restrito no tempo
• Restrito em recursos
• Uso de Eurísticas
– Simulated Annealing, Tabu Search, ...
23
Alocação/Binding
Functional Units Functional Units Operations
Operations
Storage Storage Variables
Signals Variables
Signals
Bus/Wire/Mux Bus/Wire/Mux Data Transfers
Data Transfers
24
RF
FU FU
RF
Variables/Signals Data Transfer
Operations
25
Geração da Especificação do Controlador
Scheduled CDFG Scheduled
CDFG
Allocated Datapath Allocated
Datapath
Micro-Operations for
Every Control Step Micro-Operations
for
Every Control Step
26
Medidas de Qualidade de HLS
• Performance
• Área
• Consumo de energia
• Testabilidade
• Reusabilidade
Parâmetros do Projeto
Exemplo: Solução de Equação Diferencial
• 2 ALU/*
• 1 ALU
• 2 *
Earliest Deadline (ASAP)
ALU/*
*
*
• Another ALU
Hardware Solution number 3
• Slow and cheap
• 1 ALU and 1 multiplier
• 7 time steps
+
<
ALAP
ALU/
*
* ALU
2 ALU/*
2 * 1 ALU
34
Variações de Hardware
• Unidades Funcionais
– Pipelined, Multi-Cycle, Chained, Multi-Function
• Armazenamento
– Register, RF, Multi-Ported, RAM, ROM, FIFO, Distributed
• Interconexão
– Bus, Segmented Bus, Mux, Protocol- Based
35
Variações de Unidades Funcionais
+ * *
*
- * +
Step 1
Step 2
Step 3
Step 4
+
+ +
36
Variações de Interconexão/Armazenamento
RF
FU FU
RF
Segmented Buses
Distributed FIFO
Mux
Chaining Multi-Port
37
Uso de Pipelining
FSM Data
Path