Uploaded by Leandro Martinez

Processadores para Sistemas Embarcados

advertisement
UNIVERSIDADE DE SÃO PAULO
Instituto de Ciências Matemáticas e de Computação
Processadores para Sistemas Embarcados.
Dr. Leandro A Martinez
Apresentação:
Arquitetura de Computadores (SSC-0114)
28/08/2017
Roteiro
Introdução
Desenvolvimento
Resultados
Conclusão
2
Introdução
ADAS Advanced Driver Assistance Systems
Detecção de pedestres por câmera
3
Introdução
ADAS com câmeras
Detecção de pedestres
Fonte: https://www.intel.com/content/dam/www/public/us/en/documents/white-papers/advanced-driver-assistant-system-paper.pdf
4
Introdução
Motivação
“There are many corner cases (like the Tesla case) that are almost impossible
to test. Considering the infinite number of potential scenarios that could lead
to a crash, how does the car industry plan to meet the challenge of
modeling, simulation, test and validation?”
1
Modelar
2
Simular
3
Testar
4
Validar
ADAS-Vison
Framework
5
ADAS + FPGA
Introdução
Computação Reconfigurável
•
•
Até 150K Elementos Lógicos
Memória 5Mbit
• Sistemas para detecção de pedestres
• Desempenho: ∼ 10 a 100 GOPS
• Varia com taxa de pixels e complexidade
• Tempo real
• Baixo consumo de energia
• Flexibilidade
• Adaptação ou evolução das aplicações
• Novas demandas
• Melhor exploração do espaço de projeto
Fonte: https://www.microsemi.com/products/fpga-soc/fpga/igloo2-fpga
•
•
•
•
Dual-core ARM Cortex-A9
925 MHz
85 – 110K Elementos Lógicos
Memória 5.761 Kb
Fonte: https://www.altera.com/products/soc/portfolio/cyclone-v-soc/overview.html
*HPS: Hard Processor System
6
Processador + FPGA
(QPI: Quick Path Interconnect)
7
Introdução
FPGAs atuais
CERN openlab 04/2017
(QPI: Quick Path Interconnect)
71 milhões de
portas lógicas!
https://www.hpcwire.com/2017/04/14/xeon-fpga-processor-tested-at-cern/
8
Introdução
Motivação
FPGA Verification Effort Trends
Bosch to Build $1.1 Billion Chip Plant for Self-Driving Cars
The 2016 Wilson Research Group Functional Verification Study
Profissionais trabalhando com FPGA (2012 a 2014):
-
Engenheiros de projetos: crescimento de 4,9 %.
-
Engenheiros de verificação FPGA aumentou em 20,9 %.
-
“Essa demanda por engenheiros de verificação em projetos FPGA é um
“Auto supplier Robert Bosch GmbH will build a 1
billion-euro ($1.1 billion) semiconductor plant, the
biggest single investment in its history, as the
maker of brakes and engines prepares for a surge
in demand for components used in self-driving
vehicles.”
indicador de crescente complexidade de verificação em projetos FPGA.”
“Talvez um dos maiores desafios em design e
verificação hoje seja a identificação de soluções
para aumentar a produtividade e controlar o
número de funcionários da engenharia.”
Fonte: Mentor Graphics (2016)
Fonte: Bloomberg.com (2017)
9
Introdução
Pesquisa bibliográfica
Ferramentas relacionadas ao projeto ADAS-Vision
• Ferramentas para DSE
• Ferramentas para coprojeto Hw/Sw
• ADAS
• Utiliza FPGA
DSE
Código
Livre
Coprojeto
Hw/Sw
Câmera
ADAS
• Processamento de imagens
• Livre / aberta
FPGA
10
Introdução
Pesquisa bibliográfica
DSE
Código
Livre
Coprojeto
Hw/Sw
Câmera
ADAS
FPGA
Fonte: UML-Based Multiprocessor SoC Design Framework (2006)
Tampere University of Technology; Nokia Research Center; Nokia Technology Platforms
11
Introdução
ADTF
DSE
Código
Livre
Coprojeto
Hw/Sw
Câmera
ADAS
FPGA
Fonte: http://www.comemso.de/index.php/de/dienstleistungen/software-entwicklung
12
Introdução
RTMaps
DSE
Código
Livre
Coprojeto
Hw/Sw
Câmera
ADAS
FPGA
Fonte: https://intempora.com/products/rtmaps.html
13
Introdução
NI Labview
DSE
Código
Livre
Coprojeto
Hw/Sw
Câmera
ADAS
FPGA
Toolsets
LabVIEW FPGA
14
Introdução
MatLab
Importar Verilog + Gerar projetos (FPGA, NIOS, ATOM)
DSE
Código
Livre
Coprojeto
Hw/Sw
Câmera
ADAS
FPGA
Toolsets
HDL Verifier
HDL Coder
Acquisition Toolbox
Embedded Coder
API libs (C,C++) MEX
Cossimulação:
Simulink x Matlab
Fonte: https://www.mathworks.com/products/matlab.html
15
Introdução
Trabalhos relacionados
Ferramenta
Ferramenta de exploração
Kalray’s framework
SDF 3
CASSE
Metropolis
Ptolemy
ImprovCV
GDSE
PREESM
GASPARD
SPRINT
HELP
FAMOUS
Baselabs
Intempora RTMaps
Comemso ADTF
MAMPS
MFSO MDEM
SPADE
ARTEMIS
Algoritmos de agendamento
Algoritmos de agendamento
Simulação SystemC
Verificação formal e analizador de rastramento
Algoritmos de agendamento
Simulação C++, proffiling
Simulações estáticas e dinâmicas
Algoritmos de agendamento
Simulação RTL or TLM
Simulação TLM
Simulação TLM
Simulação RTL
Simulação C++, proffiling
Simulação C++, proffiling
Simulação C++, proffiling
SDF 3
Algoritmo Genético
Cosimulação baseada em rastreamento
Cosimulação baseada em rastreamento
Simulação de conjunto de instruções, cosimulação
precisa de tempo
Ambiente com liberdade de exploração
OBDDs
Algoritmo Evolutivo em ótimo-de-Pareto
Simulação de conjunto de instruções, verificação
formal e profilling estático e dinâmico
Simulação Ptolomy, HLS ESTEREL
Simulação SystemC e e otimização multi-objetivo
Simulações estáticas e dinâmicas
Verificação formal temporal e simulação
Cosimulação baseada em rastreamento e
otimização multi-objetivo
Cosimulação baseada em rastreamento
Cosimulação baseada em rastreamento
Simulação RTL, SystemVerilog, árvore decisão
PeaCE
Mescal
Desert
Explora
SCE
Polis
SystemCoDesigner
Koski 1
MADES
Daedalus
NI LabView
MatLab HDL
ADAS-Vision
Hardware e
Software
FPGA
SoPC
IDE gráfico
Geração de
Proc.Imagem
Back-end
Projetos
ADAS
Código
Fonte
16
Introdução
Coprojeto de Hardware e Software
Paradigma inicial
Paradigma contemporâneo
Início
Início
Especificação
Especificação
Particionamento
Modelagem
Software
Particionamento
Projeto
Hardware
Sintetizar
Compilar
Integração
Avaliação
Avaliação
Modelagem
Software
Modelagem
Hardware
Compilar
Sintetizar
Falha
Ok
Fim
Fim
ADAS-Vison
Framework
17
Introdução
Exploração do Espaço de Projeto (DSE)
Concisão da
Especificação
Concisão: Modelagem
Baseado em Análises
ADAS-Vison
Framework
Acurácia: IPs
Maior Abstração
Baseado em Simulações
Erro
Capacidade de
análise
Complexidade de projeto e
tempo de exploração
Modelo
Sistema
RTL
Acurácia
18
TESE
Fundamentos para realização do projeto
Levando-se em consideração
• Acidentes de trânsito
DSE
• Requisitos para desenvolvimento de ADAS (infinitos cenários)
• Avanço tecnológico dos Sistemas reconfiguráveis
• Estado da Arte das aplicações
Coprojeto
Hw/Sw
ADAS
ADAS-Vision
Framework
Requisitos do projeto
•
•
•
•
•
Exploração de espaço de projetos
Simulação funcional eficiente
Gabaritos prontos para uso
Ferramenta de Pesquisa
Ferramenta Didática
Câmera
FPGA
(PISE, Coprojeto, Intro. Sistemas Embarcados, Robótica, etc)
19
Roteiro
Introdução
Desenvolvimento
Resultados
Conclusão
20
Metodologia
Computação Reconfigurável
Dual Core
150M E.L.
21
Paradigma de Desenvolvimento Sw/Hw
Metodologia
Implementações do Filtro FIR (Resposta de Impulso Finita)
Data In
Data In
C0
Coeficientes
256 Loops necessários para
Processar amostras
Reg
Reg
C1
Reg
Reg
C2
C3
Reg
C4
Reg
C5
Reg
...
C255
256 Operações em
um ciclo de clock
Data Out
Data Out
DESEMPENHO
DSP Convencional
Execução serial
20 linhas de C++
Hardware Customizado
Execução paralela
3500 linhas de HDL
22
Metodologia
Síntese de Alto Nível (HLS)
Vantagens
HLS (High-Level Synthesis)
Bluespec e OpenCL
Código HDL de Alto Nível
SystemVerilog
Simulação rápida
VHDL
Verilog
Circuitos
Lógicos
23
Metodologia
Processamento de Imagem
24
Metodologia
Bibliotecas, Compiladores e Simuladores utilizados
Compiladores
SDKs
https://www.qt.io/
MinGW
https://developer.microsoft.com/pt-br/windows/downloads/windows-10-sdk
IPP (Intel Integrated Performance Primitives)
https://software.intel.com/en-us/intel-ipp
http://www.mingw.org/
TBB (Intel Threading Buinding Blocks)
https://software.intel.com/en-us/intel-tbb
www.microsoft.com/visualstudio
Plataform Toolset (v140)
Qt Visual Studio Add-in
IPP (Intel Integrated Performance Primitives)
https://software.intel.com/en-us/intel-vtune-amplifier-xe
https://cmake.org/
25
Metodologia
Ferramentas para o projeto de Hardware
http://iverilog.icarus.com/
https://www.aldec.com/en/products/fpga_simulation/active-hdl
https://www.altera.com/
http://bluespec.com/
26
Metodologia
Recursos utilizados no projeto
OpenCV (Bibliotecas para processamento de imagens)
http://opencv.org/
NumPy (Pacote para a computação científica com Python)
http://www.numpy.org/
ProtoBuf (Buffers de protocolo Google)
OpenBLAS (Basic Linear Algebra Subprograms)
http://www.openblas.net/
LAPACK (Linear Algebra PACKage)
http://www.netlib.org/lapack/
GFLAGS (Command line flags processing)
https://github.com/google/protobuf
https://github.com/gflags/gflags
VTK (Visualization Toolkit)
GLOG (Google logging module)
http://www.vtk.org/
Doxigen (Ferramenta para documentação de código)
http://www.stack.nl/~dimitri/doxygen/
https://github.com/google/glog
OpenCV Extra Modules
https://github.com/opencv/opencv_contrib
NVIDIA® CUDA® Toolkit (Toolkit para GPU)
Gnuplot (Utilitário para gráficos)
https://developer.nvidia.com/cuda-downloads
http://www.gnuplot.info/
MatLab (Ambiente de desenvolvimento)
https://www.mathworks.com/products/matlab.html
Glib (Bibliotecas usadas pelo openCV)
https://github.com/winlibs/glib
GTK+ (Toolkit para criar interfaces gráficas de usuário)
https://www.gtk.org/download/windows.php
OpenBLAS
FFmpeg (Gravar e converter e vídeos)
https://ffmpeg.org/
Mintty (Terminal emulator for Cygwin, MSYS or Msys2)
https://mintty.github.io/
Repositórios: BitBucket, SourceTree, GitHub
MSYS2 (Interoperabilidade Windows x Linux)
http://www.msys2.org/
27
Metodologia
Datasets
• Dataset Caltech Files
– http://www.vision.caltech.edu/Image_Datasets/CaltechPedestrians/datasets/USA/
• Piotr's Image & Video Matlab Toolbox
– https://github.com/pdollar/toolbox
• Caltech Pedestrian Detection Benchmark
– http://docs.opencv.org/3.0-beta/modules/datasets/doc/datasets/pd_caltech.html
• Do autor
– http://www.leandromartinez.com.br/adas-vision
28
Visão dos módulos do ADAS-Vision Framework
Desenvolvimento
IDE ADAS-Vision
NIOS II
Projeto SoPC
Gabaritos
IPs
Template
Simulador de Coprojeto
IP
IP
Gerador de
projetos
Projeto Hardware
Quartus II
IP
Projeto Software
Bluespec
ADAS-Vision
HARP2
DE2i-150
Simulador
Hardware
Ferramentas externas
Compilador
C++
Intel
Intel
ATOM
Xeon
Placa de desenvolvimento FPGA
FPGA
FPGA
PCI-e
QPI
29
Fluxo de utilização
Requisitos
ADAS-Vision IDE
Modelar o projeto
esquemático
Simulação Funcional
Gerar Códigos
Escolher
FPGA
ADAS-Vision IDE
Desenvolvimento
Escolher
Gabarito
Gabaritos
DSE Coprojeto
Simular
IPs Interface
RAW
Manutenção
Biblioteca de
Vídeos
Compilação C++
Síntese Quartus II
IPS
Gerar
códigos
BSV
C++
IPs
Execução em
Host
Execução em
FPGA
30
Exploração do Espaço de Projetos (DSE)
Desenvolvimento
Eficiência
Configurar IPs
Simular e
Verificar resultados
Modificar
configurações
Estimar recursos
necessários
Versão 3
Versão 2
Encontrada
configuração
melhor?
Não
Sim
Versão 1
Tempo
31
Desenvolvimento
Processo completo
ADAS-Vision IDE
Quartus II
Início
Selecionar
Aplicação
Selecionar
Dispositivo
Place &
Route
Simulação
Análise de
Consumo
Síntese
Análise
Temporal
Debugging
Entrada do
Projeto
Selecionar
Gabarito
Configuração
e Programação
FPGA
NIOS II
IDE
Profiling
NIOS
SIM
NÃO
Atende
Requisitos
Bluespec
Adicionar,
Remover,
Parametrizar
IPs SW e HW
Simulação
Bluesim
Simulação
Funcional
Profiling
Debug
Atende
Requisitos
SIM
Atende
Requisitos
SIM
Profiling
Debug
Fim
NÃO
Cossimulação
Hw e Sw
Compilação
Bluespec
HW
NÃO
Signal Tap
GCC
Compiler
SW
Gerar Scripts
Framework Compiler
32
Desenvolvimento
Bibliotecas de IPs
IDE ADAS-Vision
Biblioteca Software
Biblioteca Hardware
Biblioteca Entrada/Saída
IP Filtro Sobel
IP Filtro Concolução
IP Arquivo MatLab
IP Filtro Canny
IP Fluxo Óptico
IP Câmera USB
IP HOG
IP RGB->Cinza
IP Arquivos de vídeo
IP RGB->Cinza
IP BLOB
IP Arquivos imagem
IP Estabilizador
IP Estabilizador
IP PCI-express
...
...
IP Exportar dados
Simulador de Coprojeto
IP
IP s de Software
IP s Hardware
IP s Entrada / Saída
Sistemas externos
Bibliotecas
OpenCV
IP
IP
Simulador
Hardware
IP
Dispositivos
Externos
33
Desenvolvimento
Visão geral
Conexão
Identificação
Visualização
Portas de
entrada
Parâmetros
Porta de
saída
34
Desenvolvimento
Demonstração da interface
35
ADAS-Vision IDE
1
Escolher o FPGA
2
Modelar o projeto
3
Explorar as
propriedades dos IPs
Mais vídeos em:
www.leandromartinez.com.br/adasvision
36
Desenvolvimento
Simulação e Projeto final
Interconexões (Glue-Box)
Serialização dos dados
Sub-rotinas Driver
IP
Hardware
IP
Hardware
IP
Software
ATOM
IP
Software
NIOS
IP
Software
ATOM
IP
Software
NIOS
Dispositivos
Chamada de sub-rotinas
Conversão do espaço de cores
37
Desenvolvimento
Cossimulação com pré-processamento
38
Cossimulação usando FPGA como dispositivo
Desenvolvimento
Bibliotecas
Dados
Projeto do Usuário
IP
2
7
VGA
Driver
10
IP
Controlador
Controladores
6
de Memória
diversos
11
VGA 1
Bibliotecas
1
FPGA
3
PCIe
Driver
8
Co-Improve IDE
Dados
SDRAM
Intel Atom
(Executando S.O.)
Projeto do Usuário
IP
2
IP
5
Custom
Logic
System Interconect Bus - Avalon
9
IP
IP
4
PCIe
IP
3
PCIe
Driver
8
ADAS-Vision IDE
1
FPGA
Intel Atom
(Executando S.O.)
4
PCIe
IP
5
Custom
Logic
VGA
Out
VGA 2
7
System Interconect Bus - Avalon
IP
9
Controlador
Controladores
6
de Memória
diversos
SDRAM
39
Desenvolvimento
Cossimulação usando barramento AMBA/ARM
40
Desenvolvimento
Cossimulação SoPC + Custom Instruction
Bibliotecas
Dados
Projeto do Usuário
IP
2
IP
NIOS
3
PCIe
Driver
ADAS-Vision IDE
1
FPGA
Intel Atom
(Executando S.O.)
4
PCIe
IP
Software
Hardware IP
5
System Interconect Bus - Avalon
IP
Controlador
de Memória
Controladores
diversos
SDRAM
41
Detalhamento
Cadeia do Sinal Analógico
TRDB-D5M
Parâmetro
Valor
Pixels
2752 x 2004
Transferência
96 Mp/s (a 96 MHz)
Quadros
15 fps (em máx res)
70 fps (640x480 VGA)
Alimentação
3.3V
ADC
12 bits
Ganho
Analógico
Pixel
Voltagem
xx
Caminho do sinal Digital
Offset
Analógico
++
Regula Nível
de preto
ADC
ADC
x
Correção de
Offset Digital
+
D[11:0]
Ganho
Digital
42
Detalhamento
DATA
FVAL
LVAL
Sensor
de
Imagem
CMOS
PCLK
Captura de
Dados do
Sensor CMOS
Conversão
para RGB
de 30 Bits
Controlador LTM
/ Requisição de
Dados
Módulo
LCD
MCLK
DATA
SDAT
SCLK
Configuração
do Sensor (I2C)
Controlador SDRAM
ADDR
CTRL
SDRAM
43
Desenvolvimento
Funcionamento IP Hardware
ADAS-Vision IDE
Componente IP Hardware
Propriedades
de entrada
Agente
Propriedades
de saída
Parâmetros e
Configurações
Sequenciador
Proxi
Monitor
OUT
IN
Simulador Verilog
Processador Virtual Verilog (VVP)
DUT
(Verilog)
IN
Controlador de bancada (Verilog)
OUT
DUT: Device Under Test
44
Gerenciador de bancada
Desenvolvimento
Proxi
Monitor
Arquivo de
entrada
Início
Reset
Inicialização
Ler arquivo
ENABLE
Enviar
dados
Salvar
arquivo
Fim
RDYP
PUT
RESET
CLK
Arquivo de
saída
DUT
GET
Receber
dados
RDYG
Verilog Virtual Processor
Simulador Verilog
45
Desenvolvimento
Construção de IPs
46
Desenvolvimento
Customização em tempo de execução
47
Roteiro
Introdução
Desenvolvimento
Resultados
Conclusão
48
Resultados
Sistemas de Detecção
Estudo de casos
Detecção faixas de trânsito
Data In
Houg
Lines
Lines
Filter
Data
Out
Houg
Circles
Size
Filter
Detecção de rodas
Data In
Emboss
Data
Out
Reconhecimento de placas de trânsito
Data In
HOG
Detector
SVM
Classifier
Data
Out
SVM
Classifier
Data
Out
Threshold
BLOB
Detector
Detecção de pedestres
Data In
HOG
Detector
1
Detecção traseira
Data In
Motion
Detection
BLOB
Classifier
Data
Out
49
Resultados
Estudo de caso
Primeiro estudo de caso: Gabarito para Detecção de Pedestres
Entrada
Dados
Conversor
RGB - Cinza
Estabilizador
Vertical
Detector de
Movimento
Filtro
Erosão
Detector
BLOB
Classificador
Proporção
Saída
Dados
Detalhamento
• Detecção de movimento por diferenciação de quadros
• Detecção de objetos por Blob
• Classificação pelo tamanho dos objetos
50
Aplicação
Resultados
Exemplo de alteração: Detecção com vários classificadores
Entrada
Dados
Conversor
RGB - Cinza
Estabilizador
Vertical
Detector de
Movimento
Filtro
Erosão
Detector
BLOB A
Classificador
A
Entrada
Dados
HOG
Descriptor
SVM
Classifier
Classificador
B
Entrada
Dados
HOG
Descriptor
SVM
Classifier
Classificador
C
Detalhamento
• Detecção de movimento por diferenciação de quadros
• Detecção de objetos por BLOB, HOG, LUV
• Resultado da classificação por votação de três classificadores
Votação
Majoritária
Saída
Dados
Legenda
Bloco fixo
HW ou SW
51
Representação da aplicação gerada
Resultados
Projeto conceitual
Entrada
Dados
Mapeamento
Barramentos
Conversor
RGB - Cinza
Estabilizador
Vertical
Detector de
Movimento
Detector
BLOB A
Classificador
Proporção
Hw
Sw
Hw
Sw
Hw
Saída
Dados
Representação de HW
Blocos HW
Barramento de Controle
NIOS II
I/O
Conversor
Entrada
NIOS II
BLOB
RGB-Gray
Front-End
Detecção
Movimento
Classificador
Conversor
Saída
I/O
Estabilizador
Legenda
Barramento de Dados
Entrada/Saída
Hardware
Software
Controlador de
Memória
FPGA
Processador
Memória
52
Representação da aplicação gerada
Resultados
Projeto conceitual: Totalmente em hardware
Entrada
Dados
Conversor
RGB - Cinza
Estabilizador
Vertical
Mapeamento
Detector de
Movimento
Detector
BLOB A
Classificador
Proporção
Saída
Dados
offset
Interconexões
Glue-Box
Representação de HW
Controlador
Barramento de Controle
I/O
Conversor
Entrada
NIOS II
Front-End
Estabiliza
Blob
RGB-Gray
Detecção
Movimento
Classificador
Conversor
Saída
I/O
Legenda
Barramento de Dados
Entrada/Saída
Hardware
Software
Controlador de
Memória
FPGA
Processador
Memória
53
Resultados
Resultados
Bibliotecas
3
PCIe
Driver
8
ADAS-Vision IDE
1
Dados
Projeto do Usuário
IP
FPGA
Intel Atom
(Executando S.O.)
IP
2
IP
5
Custom
Logic
7
System Interconect Bus - Avalon
9
IP
4
PCIe
IP
VGA
Driver
10
11
VGA 1
Controlador
Controladores
6
de Memória
diversos
SDRAM
54
Experimentos com DSE
Exemplo de avaliação de projetos com dados obtidos pelo simulador ADAS-Vision
Fatores de Influência
Definido pelo
Usuário
Requisitos de projeto
Desempenho
Fator de
influência
Financeiro +
30%
Precisão
25%
+ Velocidade +
15%
Consumo +
20%
Recursos
10%
Cálculo de Pontuação
Velocidade
Potência
Orçamento
Elem.Lóg.
120
300
1200,00
150000
Horas de trabalho: 10h
Valores apurados na simulação
= (Valor apurado proporcional ao requisito) * (fator de influência)
Experimento Pontuação = Financeiro +
Valores
Máximos
Precisão
+ Velocidade +
Consumo
+
Precisão
Desempenho
Financeiro
Recursos
Recursos
Acertos
Velocidade
Consumo
Custo
Elem.Lóg.
250
42,00
0
SW ATOM
A
0,3247
0,0105
0,0225
0,1250
0,1667
0,0000
91%
20
SW NIOS II
B
0,3517
0,0091
0,0750
0,1313
0,1333
0,0030
70%
15
200
36,40
4515
5 x NIOS II
C
0,9102
0,0391
0,0750
0,1125
0,6667
0,0169
70%
30
1000
156,40
25325
NIOS II + C.I.
D
0,3074
0,0091
0,0425
0,1125
0,1400
0,0033
83%
30
210
36,40
4910
NIOS II + C.I. + IP Hw
NIOS II + IP Hw
E
0,3039
0,0207
0,0250
0,1088
0,1433
0,0062
90%
33
215
82,80
9244
F
0,3118
0,0091
0,0450
0,1075
0,1467
0,0035
82%
34
220
36,40
5241
IPs
IPs+DSP
G
0,4983
0,2420
0,0375
0,0438
0,1000
0,0750
85%
85
150
968,00
112548
H
0,3927
0,1997
0,0250
0,0313
0,0733
0,0635
90%
95
110
798,60
95241
Ips + MegaF
I
0,4722
0,2420
0,0425
0,0375
0,0800
0,0702
83%
90
120
968,00
105246
Tamanho do projeto lógico
Legenda
Pontuação calculada
Valor estimado pelo simulador ADAS-Vision
Valor de mercado de um FPGA
Critério definido pelo usuário
55
Experimentos com DSE
A
Velocidade x Precisão x Tamanho
(0,33)
100% Software
H
I
0,33
G
A
B
(0,35)
Velocidade (Quadro/s)
100
0,35
0,3
80
A
E
D
B
(0,31)
C
60
Coprojeto
0,3
D
C
40
F
D
E
E
0,30
F
G
B
20
E
E
E
E
(0,30)
0,3
Melhor Escolha
H
G
(0,50)
100% Hardware
0,39
0
10%
20%
30%
40%
50%
60%
70%
80%
90%
F
(0,31)
I
0%
C
(0,41)
H
H
100%
(0,39)
Precisão na detecção de pedestres
0,39
I
(0,47)
Definir novas métricas
Se não satisfaz os requisitos
Criar mais projetos
56
Resultados
Detecção de pedestres
Resumo
Projeto A:
HOG + SVM
Projeto B:
Motion Detection
Base INRIA Pedestres
Linguagem
Arquivos Linhas de código
C++
123
24499
C/C++ Header
70
2182
C#
22
658
SEM
COM
Total
make
1
393
1217
613
1830
Verilog-SystemVerilog
93
13137
Qt Project
1
137
Acertos
Erros
Taxa
MSBuild script
1
112
1630
200
88%
DOS Batch
7
25
Windows Resource File
1
1
XML
17
1166
Total
336
42310
57
Roteiro
Introdução
Desenvolvimento
Resultados
Conclusão
58
Multidisciplinaridade
Conclusão
Importante área de pesquisa
Didática ++
Proc. de
Imagem
Windows / Linux
Reuso de Sw ++
Hardware
Ensino
++ Reuso Hw
Uso de
HDL
Uso de
HLS
Multiplataforma
SoPC
++ Velocidade novos IPs
Coprojeto
Hw/Sw
ADAS-Vision
Framework
FPGA
Flexibilidade ++
ADAS
Avaliação
DSE
Prévia
Tomada de decisão
Time to Market ++
Geração
de
código
++Projeto ágil
Software
Muitos sistemas
Inúmeros cenários
Cossimulação
Hw/Sw
++ Agiliza testes
59
Trabalhos Futuros
•
Ferramentas de exploração automática
–
•
•
•
•
•
•
Integração com o R-Project
Implementação Hw de novas técnicas de aprendizado de máquina
Técnicas avançadas de profiling
Construção de novos IPs
Modelar novos projetos para ADAS
Integração com ModelSim (Matlab)
–
•
•
•
•
•
•
Simulação do NIOS II (artigo)
Modelagem de interfaces dos IPs Hardware
Modelagem de Glue-box (Hw <-> Hw)
Agrupamento de IPs
Modelagem da geração de código
Versão do framework para Web
Novos compiladores Verilog
–
•
•
Computação evolutiva
(acelerar simulação de Hardware)
Integração com HDL Coder (Matlab) e OpenCL (Intel)
Aplicações para VANTS
60
Agradecimentos
Fim da Apresentação
Muito obrigado pela sua atenção.
61
Download