• Nenhum resultado encontrado

Catapult Synthesis

N/A
N/A
Protected

Academic year: 2022

Share "Catapult Synthesis"

Copied!
37
0
0

Texto

(1)

Catapult Synthesis

Tópicos Avançados em Arquitetura de Computadores

(2)

CatpulC

(3)

Introdução

• Primeira Geração de Síntese Comportamental – Não teve sucesso

– Informação de temporização – Informação de interface

– Informação de hierarquia

• Projetos de baixa qualidade

• Poucos ganhos de produtividade

• Pouca flexibilidade

(4)

Nova Abordagem Baseada em ANSI C++

• VHDL, (System)Verilog, SystemC

– Não familiares para desenvolvedores de algoritmos – Não aumentam de forma suficiente o nível de

abstração

– Difícil de escrever

• Uso de ANSI C++

– Uma das mais utilizadas linguagens de programação – Reuso de ferramentas de desenvolvimento e

depuração existentes

• Catapult

(5)

Data Path vs Controle

• Primeira geração de ferramentas de síntese comportamental

– Foco em síntese de data path

• Ferramentas atuais

– Bom desempenho em aplicação orientadas tanto a fluxo de dados quanto controle

(6)

Requisitos Industriais para Ferramentas Modernas de Síntese de Alto Nível

• Ganho com síntese de alto nível – Tempo até o RTL mais rápido

• Risco da síntese de alto nível – Mudança no fluxo de projeto

– Empresas são avessas a riscos no projeto

(7)

Lições Importantes do Mercado

• Melhorias localizadas não são aceitas caso:

– Rompimento com métodos existentes – Imposição de novas restrições

– Uso de novas linguagens

• Tecnologias intrusivas são dificilmente adotadas – Projetistas modelam usando C++

• Linguagens não padronizadas ou extensões são um fator de risco

• Ferramentas de síntese de alto nível devem se integrar ao fluxo e ferramentas existentes

• Certificadas por vendors de silício (ASIC e FPGA)

(8)

Workflow da Síntese de Catapult

(9)

Escrevendo e Testando Código C

• Código ANSI C++ puro

• Modelo do código

inteiro Ponto fixo

Ponto flutuante

• Foco do engenheiro

algoritmo

• Simulação do algoritmo em ANSI C++

Várias ordens de magnitude mais rápida

(10)

Ajustando Restrições de Síntese

Restrições Gerais

Tecnologia alvo Freqüência de clock

(11)

Ajustando Restrições de Síntese

Restrições Gerais

Tecnologia alvo Freqüência de clock

Objetivo: escalonamento otimizado

(12)

Ajustando Restrições de Síntese

Restrições Gerais

Tecnologia alvo Freqüência de clock

Objetivo: escalonamento otimizado

Restrições específicas

I/Os Laços

Armazenamento Recursos de projeto

(13)

Ajustando Restrições de Síntese

Restrições Gerais

Tecnologia alvo Freqüência de clock

Objetivo: escalonamento otimizado

Restrições específicas

I/Os Laços

Armazenamento Recursos de projeto

Objetivo: Exploração de arquitetura

(14)

Ajustando Restrições de Síntese

• Síntese de Interface

– Uso de diretivas que definem como será implementada a movimentação de dados para dentro e fora do hardware

• Síntese de laços

– Adicionam paralelismo

– Negociam área, consumo e desempenho

• Síntese de Memória

– Restringem os tipos de memória – Definem a arquitetura de memória

(15)

Exemplo de Janela de Restrição de Arquitetura

loop

Iterações

Forma de implementação

(16)

Analisando Par Algoritmo/Arquitetura

(17)

Geração e Verificação de RTL

• Código gerado em minutos

• VHDL, Verilog e SystemC

• Relatórios

– Voltados para o hardware – Voltados para o algoritmo

• Fluxo de verificação integrado

– Comparação do HDL com ANSI C++ original

(18)

Fluxo de Verificação

(19)

Codificação de C++ para Síntese

• Restrições

– Código deve ser determinado estaticamente

Definido em tempo de compilação

Estruturas dinâmicas não são permitidas

– Malloc – Free – New – delete

(20)

Codificação de C++ para Síntese

• Ponteiros

– Sintetizáveis se apontam para estruturas estáticas

Convertidos para índices de matrizes

Suporte a templates

(21)

Tipos de Dados com Precisão de Bits (Bit Accurate)

• Uso de tipos de dados “Algorithm C”

parametrizados

Largura

Sinal

Largura

Posição do ponto

Sinal

Quantização

(22)

Vantagens dos Tipos de Dados “Algorithm C”

• Tamanho arbitrário

• Semântica precisa

• Velocidade de simulação

– Otimizados para alto desempenho de simulação quando comparados com tipos de SystemC

• Corretude

• Velocidade de compilação e tamanho pequeno de código

• Consistência

• Suporte a tipos nativos de C++ e SystemC

(23)

Sintetizando a Interface do Design

• Separação de computação e comunicação

• Definição de handshake completo, parcial ou inexistente

• Mapeamento de matrizes para fios, memórias, barramentos ou streams

• Controle da largura em bits das portas

• Uso opcional de sinais de start/done

• Definição de protocolos personalizados

• Sinais padrão (clock, reset, etc) gerados automaticamente

(24)

Controle de Laços: Loop Unrolling

(25)

Loop Merging

(26)

Loop Pipelining

(27)

Síntese de Hierarquia

Generalização de Pipeline para Tarefas

(28)

Escalonamento e Alocação Orientados a Tecnologia

(29)

Estudo de Caso: JPEG

(30)

Código Fonte C++: Top Level

(31)

Código Fonte: rgb2ycbcr

(32)

Mapeamento dos Pixels na Memória

(33)

Bloco DCT: Gantt Chart

(34)

Exploração da Arquitetura: Variação de Throughput

(35)

Reordenador e Bloco de Quantização

Loop Merging

(36)

Blocos com Natureza de Controle

(37)

Integração do Hardware

Estruturas de comunicação

Referências

Documentos relacionados

Este trabalho busca reconhecer as fragilidades e potencialidades do uso de produtos de sensoriamento remoto derivados do Satélite de Recursos Terrestres Sino-Brasileiro

é bastante restrita, visto que tanto suas duas entradas, quanto as galerias e condutos que interligam os pequenos salões são bastante estreitos, e a umidade na maioria dos salões

O tratamento dos animais com extrato de Piper mollicomum não influenciou a inges- tão alimentar dos animais, mas proporcionou um significativo ganho de massa corporal no

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

A assistência da equipe de enfermagem para a pessoa portadora de Diabetes Mellitus deve ser desenvolvida para um processo de educação em saúde que contribua para que a

servidores, software, equipamento de rede, etc, clientes da IaaS essencialmente alugam estes recursos como um serviço terceirizado completo...

O objetivo do presente estudo é apresentar uma revisão integrativa de artigos, teses e dis- sertações, disponíveis na internet, sobre o uso do PCAT como instrumento de avaliação

Os testes de desequilíbrio de resistência DC dentro de um par e de desequilíbrio de resistência DC entre pares se tornarão uma preocupação ainda maior à medida que mais