d ] } À v } u ^ ] u } u µ ] } v ] W / v ( µ µ , Á µ o ì ï · Title: Microsoft PowerPoint -...
Transcript of d ] } À v } u ^ ] u } u µ ] } v ] W / v ( µ µ , Á µ o ì ï · Title: Microsoft PowerPoint -...
![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](https://reader036.fdocumentos.tips/reader036/viewer/2022062317/5f1c1b1ac3527a12fc08cbaa/html5/thumbnails/1.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022062317/5f1c1b1ac3527a12fc08cbaa/html5/thumbnails/2.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022062317/5f1c1b1ac3527a12fc08cbaa/html5/thumbnails/3.jpg)
• 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](https://reader036.fdocumentos.tips/reader036/viewer/2022062317/5f1c1b1ac3527a12fc08cbaa/html5/thumbnails/4.jpg)
• 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](https://reader036.fdocumentos.tips/reader036/viewer/2022062317/5f1c1b1ac3527a12fc08cbaa/html5/thumbnails/5.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022062317/5f1c1b1ac3527a12fc08cbaa/html5/thumbnails/6.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022062317/5f1c1b1ac3527a12fc08cbaa/html5/thumbnails/7.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022062317/5f1c1b1ac3527a12fc08cbaa/html5/thumbnails/8.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022062317/5f1c1b1ac3527a12fc08cbaa/html5/thumbnails/9.jpg)
• 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](https://reader036.fdocumentos.tips/reader036/viewer/2022062317/5f1c1b1ac3527a12fc08cbaa/html5/thumbnails/10.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022062317/5f1c1b1ac3527a12fc08cbaa/html5/thumbnails/11.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022062317/5f1c1b1ac3527a12fc08cbaa/html5/thumbnails/12.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022062317/5f1c1b1ac3527a12fc08cbaa/html5/thumbnails/13.jpg)
• 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](https://reader036.fdocumentos.tips/reader036/viewer/2022062317/5f1c1b1ac3527a12fc08cbaa/html5/thumbnails/14.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022062317/5f1c1b1ac3527a12fc08cbaa/html5/thumbnails/15.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022062317/5f1c1b1ac3527a12fc08cbaa/html5/thumbnails/16.jpg)
• 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](https://reader036.fdocumentos.tips/reader036/viewer/2022062317/5f1c1b1ac3527a12fc08cbaa/html5/thumbnails/17.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022062317/5f1c1b1ac3527a12fc08cbaa/html5/thumbnails/18.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022062317/5f1c1b1ac3527a12fc08cbaa/html5/thumbnails/19.jpg)
• 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](https://reader036.fdocumentos.tips/reader036/viewer/2022062317/5f1c1b1ac3527a12fc08cbaa/html5/thumbnails/20.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022062317/5f1c1b1ac3527a12fc08cbaa/html5/thumbnails/21.jpg)
• 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](https://reader036.fdocumentos.tips/reader036/viewer/2022062317/5f1c1b1ac3527a12fc08cbaa/html5/thumbnails/22.jpg)
• 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](https://reader036.fdocumentos.tips/reader036/viewer/2022062317/5f1c1b1ac3527a12fc08cbaa/html5/thumbnails/23.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022062317/5f1c1b1ac3527a12fc08cbaa/html5/thumbnails/24.jpg)
• 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