24
Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 03 Prof. Max Santana Rolemberg Farias [email protected] Colegiado de Engenharia de Computação

d ] } À v } u ^ ] u } u µ ] } v ] W / v ( µ µ , Á µ o ì ï · Title: Microsoft PowerPoint - 03-infraHW.pptx Author: max.santana Created Date: 5/2/2016 11:31:46 AM

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: d ] } À v } u ^ ] u } u µ ] } v ] W / v ( µ µ , Á µ o ì ï · Title: Microsoft PowerPoint - 03-infraHW.pptx Author: max.santana Created Date: 5/2/2016 11:31:46 AM

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de HardwareAula 03Prof. Max Santana Rolemberg [email protected] de Engenharia de Computação

Page 2: d ] } À v } u ^ ] u } u µ ] } v ] W / v ( µ µ , Á µ o ì ï · Title: Microsoft PowerPoint - 03-infraHW.pptx Author: max.santana Created Date: 5/2/2016 11:31:46 AM

POR QUÊ USAR SYSTEMC?

Page 3: d ] } À v } u ^ ] u } u µ ] } v ] W / v ( µ µ , Á µ o ì ï · Title: Microsoft PowerPoint - 03-infraHW.pptx Author: max.santana Created Date: 5/2/2016 11:31:46 AM

• HDLs são estáveis e dominadas• Modelagem em C/C++ propensa a erros deinterpretação durante a tradução• SystemC permite reuso de verificação, evitareescrver código de verificação• Produtividade aumentada

– Modificar um projeto, mas rápido do que recodificá-lo– Verificar projeto modificado, mas rápido do rqueverificar modificados

Por quê usar SystemC?

3

Page 4: d ] } À v } u ^ ] u } u µ ] } v ] W / v ( µ µ , Á µ o ì ï · Title: Microsoft PowerPoint - 03-infraHW.pptx Author: max.santana Created Date: 5/2/2016 11:31:46 AM

• SystemC não é uma linguagem– Uma biblioteca de classes e macros para C++

• Primeira versão em 1999 pela Open systemC Initiative• Elimina os erros de conversão C/C++ para HDL• Gera especificações executáveis • Alta velocidade de simulação em nível de sistema• Nem tudo que se escreve em SystemC é transformável em hardware.

– Tudo é simulável– Nem tudo é sintetizável– Nem tudo é prototipável

4

SystemC

Page 5: d ] } À v } u ^ ] u } u µ ] } v ] W / v ( µ µ , Á µ o ì ï · Title: Microsoft PowerPoint - 03-infraHW.pptx Author: max.santana Created Date: 5/2/2016 11:31:46 AM

Características do SystemC

5

Page 6: d ] } À v } u ^ ] u } u µ ] } v ] W / v ( µ µ , Á µ o ì ï · Title: Microsoft PowerPoint - 03-infraHW.pptx Author: max.santana Created Date: 5/2/2016 11:31:46 AM

Metodologia de Projeto SystemC

6

Page 7: d ] } À v } u ^ ] u } u µ ] } v ] W / v ( µ µ , Á µ o ì ï · Title: Microsoft PowerPoint - 03-infraHW.pptx Author: max.santana Created Date: 5/2/2016 11:31:46 AM

Metodologia de ProjetoSystemC

7

Page 8: d ] } À v } u ^ ] u } u µ ] } v ] W / v ( µ µ , Á µ o ì ï · Title: Microsoft PowerPoint - 03-infraHW.pptx Author: max.santana Created Date: 5/2/2016 11:31:46 AM

Ambiente do SystemC

8

Page 9: d ] } À v } u ^ ] u } u µ ] } v ] W / v ( µ µ , Á µ o ì ï · Title: Microsoft PowerPoint - 03-infraHW.pptx Author: max.santana Created Date: 5/2/2016 11:31:46 AM

• Toda a implementação é feita em um ambiente C++. E é composta por:– Módulo

• Bloco básico para a construção de hardware• Equivale a module do verilog e entity/architecture do VHDL• Pode conter:

– Processos– Instâncias de outros módulos– Módulos internos– Processos

• Trecho de código executado sequencialmente• Múltiplos processos paralelos/concorrentes

– Portas• Sinal de entrada ou saída

9

Implementação SystemC

Page 10: d ] } À v } u ^ ] u } u µ ] } v ] W / v ( µ µ , Á µ o ì ï · Title: Microsoft PowerPoint - 03-infraHW.pptx Author: max.santana Created Date: 5/2/2016 11:31:46 AM

Um Sistema em SystemC

10

Page 11: d ] } À v } u ^ ] u } u µ ] } v ] W / v ( µ µ , Á µ o ì ï · Title: Microsoft PowerPoint - 03-infraHW.pptx Author: max.santana Created Date: 5/2/2016 11:31:46 AM

Um Sistema em SystemC

11

Page 12: d ] } À v } u ^ ] u } u µ ] } v ] W / v ( µ µ , Á µ o ì ï · Title: Microsoft PowerPoint - 03-infraHW.pptx Author: max.santana Created Date: 5/2/2016 11:31:46 AM

Exemplo de um SystemC

12

Page 13: d ] } À v } u ^ ] u } u µ ] } v ] W / v ( µ µ , Á µ o ì ï · Title: Microsoft PowerPoint - 03-infraHW.pptx Author: max.santana Created Date: 5/2/2016 11:31:46 AM

• Declaração de módulo• Declaração de processos• Declaração do construtor• Declaração de sinal• Instanciar um módulo• Hierarquia de módulos

13

Estrutura de um SystemC

Page 14: d ] } À v } u ^ ] u } u µ ] } v ] W / v ( µ µ , Á µ o ì ï · Title: Microsoft PowerPoint - 03-infraHW.pptx Author: max.santana Created Date: 5/2/2016 11:31:46 AM

Declaração de Módulo

14

Page 15: d ] } À v } u ^ ] u } u µ ] } v ] W / v ( µ µ , Á µ o ì ï · Title: Microsoft PowerPoint - 03-infraHW.pptx Author: max.santana Created Date: 5/2/2016 11:31:46 AM

Declaração de Processos

15

Page 16: d ] } À v } u ^ ] u } u µ ] } v ] W / v ( µ µ , Á µ o ì ï · Title: Microsoft PowerPoint - 03-infraHW.pptx Author: max.santana Created Date: 5/2/2016 11:31:46 AM

• Os processos são definidos de forma similar a uma função C++• Tipos de processos

– SC_METHOD– SC_THREAD (Proibido em SystemC RTL)

• Se o processo precisa ser instanciado mais de uma vez, deve estar dentro de um módulo.• O disparo de execução de um processo é baseado na definição da lista de sensibilidade

16

Processo

Page 17: d ] } À v } u ^ ] u } u µ ] } v ] W / v ( µ µ , Á µ o ì ï · Title: Microsoft PowerPoint - 03-infraHW.pptx Author: max.santana Created Date: 5/2/2016 11:31:46 AM

Processo SystemCSC_METHOD• Não mantém um estado interno: quando ativado, executa do início ao fim e retorna o controle para o mecanismo de chamada.• Processo mais rápido• São recomendados para síntese

17

Page 18: d ] } À v } u ^ ] u } u µ ] } v ] W / v ( µ µ , Á µ o ì ï · Title: Microsoft PowerPoint - 03-infraHW.pptx Author: max.santana Created Date: 5/2/2016 11:31:46 AM

Processo SystemCSC_THREAD• Pode ser suspenso pela chamada de wait() ou suas variantes• Pode suspender ela mesma e continuar a execução mais tarde do ponto onde parou• Tem sua própria thread de operação• Mais lendo que SC_METHOD• Mais utilizados para simulação em níveis mais abstratos

18

Page 19: d ] } À v } u ^ ] u } u µ ] } v ] W / v ( µ µ , Á µ o ì ï · Title: Microsoft PowerPoint - 03-infraHW.pptx Author: max.santana Created Date: 5/2/2016 11:31:46 AM

• sensitive() ou sensitive_pos() ou sensitive_neg()• Lógica combinacional, incluir todos os sinais de entrada• Lógica sequencial síncrona, incluir só clock e sinais com prioridade sobre este, tais como set/reset assíncronos se existem

19

Lista de Sensibilidade

Page 20: d ] } À v } u ^ ] u } u µ ] } v ] W / v ( µ µ , Á µ o ì ï · Title: Microsoft PowerPoint - 03-infraHW.pptx Author: max.santana Created Date: 5/2/2016 11:31:46 AM

Declaração do Construtor

20

Page 21: d ] } À v } u ^ ] u } u µ ] } v ] W / v ( µ µ , Á µ o ì ï · Title: Microsoft PowerPoint - 03-infraHW.pptx Author: max.santana Created Date: 5/2/2016 11:31:46 AM

• Os sinais são usados para comunicação entre processos e/ou módulos• Sinais não possuem direção

21

Declaração de Sinal

Page 22: d ] } À v } u ^ ] u } u µ ] } v ] W / v ( µ µ , Á µ o ì ï · Title: Microsoft PowerPoint - 03-infraHW.pptx Author: max.santana Created Date: 5/2/2016 11:31:46 AM

• As variáveis devem ser usadas para uso interno do módulo.• Não faça processos se comunicarem via variáveis

22

Declaração de Variáveis

Page 23: d ] } À v } u ^ ] u } u µ ] } v ] W / v ( µ µ , Á µ o ì ï · Title: Microsoft PowerPoint - 03-infraHW.pptx Author: max.santana Created Date: 5/2/2016 11:31:46 AM

Instanciação e Amarração

23

Page 24: d ] } À v } u ^ ] u } u µ ] } v ] W / v ( µ µ , Á µ o ì ï · Title: Microsoft PowerPoint - 03-infraHW.pptx Author: max.santana Created Date: 5/2/2016 11:31:46 AM

• O processo pode ler escrever em:– Portas (sc_in, sc_out, sc_inout)– Sinais internos ao módulo (signal)– Variáveis internas (ao processo)

• Evitar não-determinismo:– Não faça processos se comunicarem via variáveis– Usar sinais (como em VHDL)

24

Leitura e Escrita de Valoresem um Processo