SISTEMAS EMBARCADOS
Prof. Alexandre S. Nery
Sistemas Embarcados
Pré-requisitos desejáveis
¨ Linguagem C
¤ programação baremetal (sem SO)
¨ Sistemas Digitais
¤ and, or, xor, decoder, mux, demux, latch, flip-flop,
register, ram, rom, fsm, ALU (adder, multiplier, …) etc.
¨ Arquitetura de computadores
¤ Espera ocupada (pooling), Interrupção, Pipeline,
Dataflow (dependência de dados), Stream Processing,
etc.
Ementa
¨
Fundamentos de lógica reconfiguráel, Fabricação de Circuitos Integrados;
¨
Aplicações, Tecnologias e Arquiteturas;
¨
Arquitetura FPGA (LUT, BlockRAM, Distributed RAM, DSP, FF, ARM Processing System);
¨
RTL e Linguagem de Descrição de Hardware VHDL:
¤ entidade, arquitetura, tipos de dados, atribuição concorrente e sequencial de sinais;
¨
Máquinas de Estado (Mealy vs. Moore);
¨
Microprocessador em VHDL (Memórias, Registradores, Controle, ULA, Micropromogração, etc.);
¨
Controladores (VGA, E/S, Comunicação Serial UART);
¨
Pipelining e Paralelismo;
¨
Síntese de código VHDL com Xilinx Vivado;
¨
Vivado High-Level Synthesis (HLS);
¨
Co-processador/Acelerador + ARM;
¨
Comunicação ARM-FPGA via AXI-Lite, AXI-Full e AXI-Stream;
¨
Partição Hardware/Software;
¨
Instrumentação de código;
¨
Computação de alto desempenho em FPGA.
Bibliografia (1)
¨ Design Recipes for FPGAs (2 nd Edition)
¤ PDF disponível no site
Bibliografia (2)
¨ Designing with Xilinx FPGAs
¤ PDF disponível no site
¨ Outros materiais serão disponibilizados no site também
¤ Manuais e Tutoriais da
própria Xilinx
Avaliação
¨
Hardware-Software Co-Design para HPC
1.
Escolher uma aplicação
2.
Instrumentá-la (descobrir os Hot-Spots)
3.
Migrá-la para ARM (Baremetal, sem SO)
4.
Projetar o acelerador (em VHDL) com comunicação AXI4 entre o ARM e a Lógica Reconfigurável
1.
Simular, Sintetizar e Executar
2.
Medir o desempenho, custo de área do circuito e consumo de energia
5.
Projetar o acelerador (em HLS) com comunicação AXI4 entre o ARM e a Lógica Reconfigurável
1.
Simular, Sintetizar e Executar
2.
Medir o desempenho, custo de área do circuito e consumo de energia
6.
Qual o melhor? VHDL ou HLS?
7.
Apresentação
Software + FPGAs
¨ Software + Licenças
¤ Laboratórios LabCAD e LCC
¨ FPGA Boards (só nos laboratórios)
Digilentinc Zybo Zynq-7010
Parallella
Zynq-7020
Fundamentos de Lógica Reconfigurável Fabricação de Circuitos Integrados Aplicações, Tecnologias e Arquiteturas
Arquitetura FPGA (LUT, BlockRAM, Distributed RAM, DSP, FF, ARM Processing System)
Sistemas Embarcados
Fundamentos de Sistemas Digitais
¨ Sistemas Digitais
¤ Sinais elétricos em dois níveis de corrente
¤ Lógica Binária (0 ou 1)
¤ Constituídos pela associação de portas lógicas
n And, Or, Not, Nand, Nor, Xor, Xnor
n Juntos podem implementar:
n Contadores, Unidades Lógicas e Aritméticas, Multiplexadores,
Decodificadores, etc.
Fundamentos de Sistemas Digitais
A B A and B
0 0 0
0 1 0
1 0 0
1 1 1
Tabela verdade AND
A B A or B
0 0 0
0 1 1
1 0 1
1 1 1
Tabela verdade OR
A B A xor B
0 0 0
0 1 1
1 0 1
1 1 0
Tabela verdade XOR
A not A
0 1
1 0
Tabela verdade NOT
Fundamentos de Sistemas Digitais
¨ Circuitos combinacionais
¤ Implementam funções booleanas
¤ A saída depende somente das combinações das variáveis de entrada
n S = A and B, é um exemplo de circuito combinacional
¤ São incapazes de armazenar valores
Fundamentos de Sistemas Digitais
¨ Circuitos sequenciais
¤ Também têm Entradas
n Usam um clock (relógio)
¤ Armazenam estado (flip-flops)
¤ A saída depende da entrada & do estado armazenado
¤ O estado pode ser atualizado a cada pulso positivo do relógio
¤ Usados para criar Máquinas de Estados e Elementos de
memória (registradores, etc.)
Fundamentos de Sistemas Digitais
¨ Circuitos sequenciais
¤ Síncronos:
n A operação é “ditada” por um clock fornecido a todos os flip-flops (Clock Distribution Networks)
n São simples, mas limitam a velocidade e desperdiçam energia
¤ Assíncronos
n Os flip-flops não são ativados no mesmo ciclo
n São complexos
Fundamentos de Sistemas Digitais
¨ O mundo é analógico
¤ Sinais pertencem a um conjunto infinito
¨ Sistemas digitais
¤ Sinais pertencem a um conjunto discreto de valores
Src: http://technodabbler.com/analog-music-in-a-digital-world/
Fundamentos de Sistemas Digitais
Sinal Analógico
Conversor Analógico
Digital (ADC)
Sinal Digital
Sinal Analógico
Conversor Digital Analógico
(DAC)
Sinal Digital Discretização
Reconstrução
Fabricação de ICs
Fabricação de ICs
Fabricação de ICs
¨ Circuito (Chip) totalmente customizado “in-the-fab”
para uma dada aplicação
¤ Alto desempenho (otimizados a aplicações)
¤ Eficientes (consumo de energia “menor”)
¤ Dimensões otimizadas (posição componentes e “fios”)
¤ $$$$$ (Projeto muito mais complexo)
¤ Longo ciclo de desenvolvimento (“Time-to-market”
demorado)
¤ Alto-Risco: Não-programável
Fabricação de ICs
Field-Programmable Gate Arrays
¨ Também é um IC (Integrated Circuit)
¨ Programação “in-the-field” para cada aplicação
¤ “Menor” desempenho
¤ Eficientes (consumo de energia < GPPs)
¤ Dimensões não-otimizadas (área maior)
¤ $ (muito mais barato)
¤ Projeto mais simplificado
¤ Curto ciclo de desenvolvimento (“Rapid Time-to- market”)
¤ Baixo risco: programável
Field-Programmable Gate Arrays
¨ FPGA (Field-Programmable Gate Array)
¤ Milhares de células lógicas (CLBs) interligadas por conexões reconfiguráveis
Fundamentos de Lógica Reconf.
CLB
3-input
LUT m
u x
a b c
y
Set/Rst Clk
FF d
q
Fundamentos de Lógica Reconf.
IOB
IOB
IOB
IOB
IOB IOB IOB IOB IOB
IOB
IOB
IOB
IOB
IOB
IOB
IOB IOB IOB IOB IOB
CLB
CLB
CLB
CLB
CLB
CLB
BRAM
BRAM
BRAM
CLB
CLB
CLB
CLB
CLB
CLB
CLB
BRAM
BRAM
BRAM
CLB
CLB
CLB
CLB
CLB
CLB
IOB
IOB
IOB
IOB
IOB
IOB
IOB
IOB
IOB
IOB
IOB IOB IOB IOB IOB
IOB IOB IOB IOB IOB
“FPGAs are programmable semiconductor devices that are based around a matrix of
Configurable Logic Blocks (CLBs)
connected through programmable
interconnects.”
Fundamentos de Lógica Reconf.
CLB
3-input
LUT m
u x
a b c
y
Set/Rst Clk
FF d
q
a b c
AND
XOR y
y = (a & b) ^ c
1
1 1
1
1 0
0
1 1
1 0 0 0 1 1 0 0 1 0 0 1
0
0 0
y c b a
1 0
1 1
1
1 0 1
0
1 1 1
1 0 0 0 0 1 1 1
0
0 1 0
0 0 1 1 0
0 0 0
y c b
a m LUT
u x
m u x
m u x
m u x
m u x
m u x
m u x
0/1
y b a
c bitstream
0/1 0/1 0/1 0/1 0/1 0/1 0/1
Fundamentos de Lógica Reconf.
Somador A
B Cin
S Cout
A
B
Cout
Cin S