descrição de hardware em systemc gustavo girão [email protected] emicro 2009 pelotas - rs...
TRANSCRIPT
![Page 1: Descrição de hardware em SystemC Gustavo Girão ggbsilva@inf.ufrgs.br EMICRO 2009 Pelotas - RS Baseado no mini-curso de Bruno Zatt (EMICRO 2009)](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc10b497959413d8c294b/html5/thumbnails/1.jpg)
Descrição de hardware em SystemC
Gustavo Girã[email protected].
br
EMICRO 2009Pelotas - RS
Baseado no mini-curso de Bruno Zatt (EMICRO 2009)
![Page 2: Descrição de hardware em SystemC Gustavo Girão ggbsilva@inf.ufrgs.br EMICRO 2009 Pelotas - RS Baseado no mini-curso de Bruno Zatt (EMICRO 2009)](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc10b497959413d8c294b/html5/thumbnails/2.jpg)
FEDERAL UNIVERSITYOF RIO GRANDE DO SUL
Sumário
2
Introdução O que é SystemC Estruturas, primitivas e tipos de dados Exemplo
Níveis de abstração Modelagem de Sistemas Níveis de Abstração
Compilação
![Page 3: Descrição de hardware em SystemC Gustavo Girão ggbsilva@inf.ufrgs.br EMICRO 2009 Pelotas - RS Baseado no mini-curso de Bruno Zatt (EMICRO 2009)](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc10b497959413d8c294b/html5/thumbnails/3.jpg)
FEDERAL UNIVERSITYOF RIO GRANDE DO SUL
SystemC
3
SystemC NÃO é um linguagem Uma biblioteca de classes e macros para C++ Primeira versão em 1999 pela OSCI (Open SystemC
Initiative) V 0.9 – 1999 V 1.0 – 2000 V 2.0 - 2001
Conectar linguagem de descrição de sistema com HDL (C++ -> HDL)
Eliminar erros de conversão C++ -> HDL Refinamento e não conversão
Especificação executável arquitetura e implementação Alta velocidade de simulação em níveis mais altos de
abstração
![Page 4: Descrição de hardware em SystemC Gustavo Girão ggbsilva@inf.ufrgs.br EMICRO 2009 Pelotas - RS Baseado no mini-curso de Bruno Zatt (EMICRO 2009)](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc10b497959413d8c294b/html5/thumbnails/4.jpg)
FEDERAL UNIVERSITYOF RIO GRANDE DO SUL
C++/HDL vs. SystemC
4
![Page 5: Descrição de hardware em SystemC Gustavo Girão ggbsilva@inf.ufrgs.br EMICRO 2009 Pelotas - RS Baseado no mini-curso de Bruno Zatt (EMICRO 2009)](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc10b497959413d8c294b/html5/thumbnails/5.jpg)
FEDERAL UNIVERSITYOF RIO GRANDE DO SUL
Características do SystemC
5
Comunicação de HW Sinais, protocolos..
Noção de Tempo Concorrência
Módulos de HW operam em paralelo Reatividade
HW é reativo, responde a estímulos e está em constante iteração com o sistema
Tipos de dados específicos p/ HW sc_logic, sc_lv...
![Page 6: Descrição de hardware em SystemC Gustavo Girão ggbsilva@inf.ufrgs.br EMICRO 2009 Pelotas - RS Baseado no mini-curso de Bruno Zatt (EMICRO 2009)](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc10b497959413d8c294b/html5/thumbnails/6.jpg)
FEDERAL UNIVERSITYOF RIO GRANDE DO SUL
Características do SystemC
6
![Page 7: Descrição de hardware em SystemC Gustavo Girão ggbsilva@inf.ufrgs.br EMICRO 2009 Pelotas - RS Baseado no mini-curso de Bruno Zatt (EMICRO 2009)](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc10b497959413d8c294b/html5/thumbnails/7.jpg)
FEDERAL UNIVERSITYOF RIO GRANDE DO SUL
Exemplo de SystemC
7
![Page 8: Descrição de hardware em SystemC Gustavo Girão ggbsilva@inf.ufrgs.br EMICRO 2009 Pelotas - RS Baseado no mini-curso de Bruno Zatt (EMICRO 2009)](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc10b497959413d8c294b/html5/thumbnails/8.jpg)
FEDERAL UNIVERSITYOF RIO GRANDE DO SUL
Estrutura
8
Declaração de módulo Declaração de sinal Instanciar um módulo Hierarquia de módulos
![Page 9: Descrição de hardware em SystemC Gustavo Girão ggbsilva@inf.ufrgs.br EMICRO 2009 Pelotas - RS Baseado no mini-curso de Bruno Zatt (EMICRO 2009)](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc10b497959413d8c294b/html5/thumbnails/9.jpg)
FEDERAL UNIVERSITYOF RIO GRANDE DO SUL
Declaração de Módulo
9
![Page 10: Descrição de hardware em SystemC Gustavo Girão ggbsilva@inf.ufrgs.br EMICRO 2009 Pelotas - RS Baseado no mini-curso de Bruno Zatt (EMICRO 2009)](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc10b497959413d8c294b/html5/thumbnails/10.jpg)
FEDERAL UNIVERSITYOF RIO GRANDE DO SUL
Declaração de Processos
10
![Page 11: Descrição de hardware em SystemC Gustavo Girão ggbsilva@inf.ufrgs.br EMICRO 2009 Pelotas - RS Baseado no mini-curso de Bruno Zatt (EMICRO 2009)](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc10b497959413d8c294b/html5/thumbnails/11.jpg)
FEDERAL UNIVERSITYOF RIO GRANDE DO SUL
Declaração do Construtor
11
![Page 12: Descrição de hardware em SystemC Gustavo Girão ggbsilva@inf.ufrgs.br EMICRO 2009 Pelotas - RS Baseado no mini-curso de Bruno Zatt (EMICRO 2009)](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc10b497959413d8c294b/html5/thumbnails/12.jpg)
FEDERAL UNIVERSITYOF RIO GRANDE DO SUL
Declaração de Sinal
12
![Page 13: Descrição de hardware em SystemC Gustavo Girão ggbsilva@inf.ufrgs.br EMICRO 2009 Pelotas - RS Baseado no mini-curso de Bruno Zatt (EMICRO 2009)](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc10b497959413d8c294b/html5/thumbnails/13.jpg)
FEDERAL UNIVERSITYOF RIO GRANDE DO SUL
Instanciação e Amarração
13
-Instanciação
-Amarração (binding)
![Page 14: Descrição de hardware em SystemC Gustavo Girão ggbsilva@inf.ufrgs.br EMICRO 2009 Pelotas - RS Baseado no mini-curso de Bruno Zatt (EMICRO 2009)](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc10b497959413d8c294b/html5/thumbnails/14.jpg)
FEDERAL UNIVERSITYOF RIO GRANDE DO SUL
Tipos de Dados
14
![Page 15: Descrição de hardware em SystemC Gustavo Girão ggbsilva@inf.ufrgs.br EMICRO 2009 Pelotas - RS Baseado no mini-curso de Bruno Zatt (EMICRO 2009)](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc10b497959413d8c294b/html5/thumbnails/15.jpg)
FEDERAL UNIVERSITYOF RIO GRANDE DO SUL
Tipos de Dados
15
![Page 16: Descrição de hardware em SystemC Gustavo Girão ggbsilva@inf.ufrgs.br EMICRO 2009 Pelotas - RS Baseado no mini-curso de Bruno Zatt (EMICRO 2009)](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc10b497959413d8c294b/html5/thumbnails/16.jpg)
FEDERAL UNIVERSITYOF RIO GRANDE DO SUL
Operadores p/ Tipos de Dados
16
![Page 17: Descrição de hardware em SystemC Gustavo Girão ggbsilva@inf.ufrgs.br EMICRO 2009 Pelotas - RS Baseado no mini-curso de Bruno Zatt (EMICRO 2009)](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc10b497959413d8c294b/html5/thumbnails/17.jpg)
FEDERAL UNIVERSITYOF RIO GRANDE DO SUL
Funções p/ Tipos de Dados
17
- and_reduce() = e lógico bit a bit- or_reduce() = ou lógico bit a bit- xor_reduce() = ou exclusivo bit a bit
![Page 18: Descrição de hardware em SystemC Gustavo Girão ggbsilva@inf.ufrgs.br EMICRO 2009 Pelotas - RS Baseado no mini-curso de Bruno Zatt (EMICRO 2009)](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc10b497959413d8c294b/html5/thumbnails/18.jpg)
FEDERAL UNIVERSITYOF RIO GRANDE DO SUL
Usando Sinais
18
![Page 19: Descrição de hardware em SystemC Gustavo Girão ggbsilva@inf.ufrgs.br EMICRO 2009 Pelotas - RS Baseado no mini-curso de Bruno Zatt (EMICRO 2009)](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc10b497959413d8c294b/html5/thumbnails/19.jpg)
FEDERAL UNIVERSITYOF RIO GRANDE DO SUL
Sinais de Clock
19
![Page 20: Descrição de hardware em SystemC Gustavo Girão ggbsilva@inf.ufrgs.br EMICRO 2009 Pelotas - RS Baseado no mini-curso de Bruno Zatt (EMICRO 2009)](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc10b497959413d8c294b/html5/thumbnails/20.jpg)
FEDERAL UNIVERSITYOF RIO GRANDE DO SUL
Processos
20
Um processo é a unidade funcional básica de SystemC
Apenas os métodos registrados junto ao Kernel são tratados como processos SystemC
SystemC tem dois tipos básicos de processos: SC_METHOD SC_THREAD
![Page 21: Descrição de hardware em SystemC Gustavo Girão ggbsilva@inf.ufrgs.br EMICRO 2009 Pelotas - RS Baseado no mini-curso de Bruno Zatt (EMICRO 2009)](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc10b497959413d8c294b/html5/thumbnails/21.jpg)
FEDERAL UNIVERSITYOF RIO GRANDE DO SUL
Processos
21
SC_METHOD: não mantém um estado interno: quando ativado,
executa do início ao fim e retornam o controle para o mecanismo de chamada
processo mais rápido são recomendados para síntese
SC_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 lentos que SC_METHOD mais utilizados para simulação em níveis mais
abstratos
![Page 22: Descrição de hardware em SystemC Gustavo Girão ggbsilva@inf.ufrgs.br EMICRO 2009 Pelotas - RS Baseado no mini-curso de Bruno Zatt (EMICRO 2009)](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc10b497959413d8c294b/html5/thumbnails/22.jpg)
FEDERAL UNIVERSITYOF RIO GRANDE DO SUL
SC_METHOD
22
![Page 23: Descrição de hardware em SystemC Gustavo Girão ggbsilva@inf.ufrgs.br EMICRO 2009 Pelotas - RS Baseado no mini-curso de Bruno Zatt (EMICRO 2009)](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc10b497959413d8c294b/html5/thumbnails/23.jpg)
FEDERAL UNIVERSITYOF RIO GRANDE DO SUL
SC_THREAD
23
![Page 24: Descrição de hardware em SystemC Gustavo Girão ggbsilva@inf.ufrgs.br EMICRO 2009 Pelotas - RS Baseado no mini-curso de Bruno Zatt (EMICRO 2009)](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc10b497959413d8c294b/html5/thumbnails/24.jpg)
FEDERAL UNIVERSITYOF RIO GRANDE DO SUL
Entidade Topo - SC_MAIN
24
int sc_main(){ sc_signal<bool> a,b,s,c; half_add half_inst("Adder"); half_inst.a(a); half_inst.b(b); half_inst.c(c); half_inst.s(s); sc_start(500000, SC_NS);
return 0;}
![Page 25: Descrição de hardware em SystemC Gustavo Girão ggbsilva@inf.ufrgs.br EMICRO 2009 Pelotas - RS Baseado no mini-curso de Bruno Zatt (EMICRO 2009)](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc10b497959413d8c294b/html5/thumbnails/25.jpg)
FEDERAL UNIVERSITYOF RIO GRANDE DO SUL
Eventos
25
Elemento básico de sincronização: Criação Notificação Sensitividade
![Page 26: Descrição de hardware em SystemC Gustavo Girão ggbsilva@inf.ufrgs.br EMICRO 2009 Pelotas - RS Baseado no mini-curso de Bruno Zatt (EMICRO 2009)](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc10b497959413d8c294b/html5/thumbnails/26.jpg)
FEDERAL UNIVERSITYOF RIO GRANDE DO SUL
Comunicação: interfaces, canais, portas
26
São estruturas de comunicação entre módulos: Interface:
Define um conjunto de métodos Não implementa os métodos Ex: read(), write()
Canais: Implementa os métodos da interface Container com funcionalidades de comunicação Ex: sc_signal<T>
Portas Objeto pelo qual modulos podem acessar a interface de
um canal Definido como um tipo de interface Ex: sc_in<T>, sc_out<T>, sc_inout<T>
![Page 27: Descrição de hardware em SystemC Gustavo Girão ggbsilva@inf.ufrgs.br EMICRO 2009 Pelotas - RS Baseado no mini-curso de Bruno Zatt (EMICRO 2009)](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc10b497959413d8c294b/html5/thumbnails/27.jpg)
FEDERAL UNIVERSITYOF RIO GRANDE DO SUL
Modelos de Abstração do SystemC
27
UTF Untimed Functional Level
TF Timed Functional Level
BCA Bus Cycle Accurate Level
RT Register Transfer Level
![Page 28: Descrição de hardware em SystemC Gustavo Girão ggbsilva@inf.ufrgs.br EMICRO 2009 Pelotas - RS Baseado no mini-curso de Bruno Zatt (EMICRO 2009)](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc10b497959413d8c294b/html5/thumbnails/28.jpg)
FEDERAL UNIVERSITYOF RIO GRANDE DO SUL
UTF – Untimed Functional Level
28
Especificação Arquitetura Componentes
Modela comportamento algorítmo Utiliza uma forma “sequencial” do
comportamento (sem tempo) Processo executa em tempo zero Comunicação por canais abstratos
![Page 29: Descrição de hardware em SystemC Gustavo Girão ggbsilva@inf.ufrgs.br EMICRO 2009 Pelotas - RS Baseado no mini-curso de Bruno Zatt (EMICRO 2009)](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc10b497959413d8c294b/html5/thumbnails/29.jpg)
FEDERAL UNIVERSITYOF RIO GRANDE DO SUL
UTF – Untimed Functional Level
29
![Page 30: Descrição de hardware em SystemC Gustavo Girão ggbsilva@inf.ufrgs.br EMICRO 2009 Pelotas - RS Baseado no mini-curso de Bruno Zatt (EMICRO 2009)](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc10b497959413d8c294b/html5/thumbnails/30.jpg)
FEDERAL UNIVERSITYOF RIO GRANDE DO SUL
TF – Timed Functional Level
30
Insere tempo ao modelo UTF Clock pode ser utilizado para ter noção
de duração, não sincronização.
![Page 31: Descrição de hardware em SystemC Gustavo Girão ggbsilva@inf.ufrgs.br EMICRO 2009 Pelotas - RS Baseado no mini-curso de Bruno Zatt (EMICRO 2009)](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc10b497959413d8c294b/html5/thumbnails/31.jpg)
FEDERAL UNIVERSITYOF RIO GRANDE DO SUL
TF – Timed Functional Level
31
![Page 32: Descrição de hardware em SystemC Gustavo Girão ggbsilva@inf.ufrgs.br EMICRO 2009 Pelotas - RS Baseado no mini-curso de Bruno Zatt (EMICRO 2009)](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc10b497959413d8c294b/html5/thumbnails/32.jpg)
FEDERAL UNIVERSITYOF RIO GRANDE DO SUL
BCA – Bus Cycle Accurate Level
32
Comportamento preciso Precisão de ciclo nas interfaces dos
módulos Canais abstratos refinados Funcionalidade do sistema deve ser
descrita utilizando UTF, TF ou BCA Latência modelada Internamente sem precisão de ciclo Clock utilizado para sincronização
![Page 33: Descrição de hardware em SystemC Gustavo Girão ggbsilva@inf.ufrgs.br EMICRO 2009 Pelotas - RS Baseado no mini-curso de Bruno Zatt (EMICRO 2009)](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc10b497959413d8c294b/html5/thumbnails/33.jpg)
FEDERAL UNIVERSITYOF RIO GRANDE DO SUL
BCA – Bus Cycle Accurate Level
33
![Page 34: Descrição de hardware em SystemC Gustavo Girão ggbsilva@inf.ufrgs.br EMICRO 2009 Pelotas - RS Baseado no mini-curso de Bruno Zatt (EMICRO 2009)](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc10b497959413d8c294b/html5/thumbnails/34.jpg)
FEDERAL UNIVERSITYOF RIO GRANDE DO SUL
RT – Register Tranfer Level
34
Descrição funcional completa do sistema Utilizada por ferramentas de síntese Completamente orientada pelo clock Precisão de ciclo tanto interna como
externamente
![Page 35: Descrição de hardware em SystemC Gustavo Girão ggbsilva@inf.ufrgs.br EMICRO 2009 Pelotas - RS Baseado no mini-curso de Bruno Zatt (EMICRO 2009)](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc10b497959413d8c294b/html5/thumbnails/35.jpg)
FEDERAL UNIVERSITYOF RIO GRANDE DO SUL
RT – Register Tranfer Level
35
![Page 36: Descrição de hardware em SystemC Gustavo Girão ggbsilva@inf.ufrgs.br EMICRO 2009 Pelotas - RS Baseado no mini-curso de Bruno Zatt (EMICRO 2009)](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc10b497959413d8c294b/html5/thumbnails/36.jpg)
FEDERAL UNIVERSITYOF RIO GRANDE DO SUL
TLM – Transaction Level Modeling
36
Separa computação de comunicação Comunica através de transações Em SystemC, transações são definidas
como métodos declarados em interfaces e implementados nos canais de comunicação
Abstrai-se o handshaking detalhado dos sinais, sincronizando-se as operações através de operações de E/S bloqueantes e não-bloqueantes
![Page 37: Descrição de hardware em SystemC Gustavo Girão ggbsilva@inf.ufrgs.br EMICRO 2009 Pelotas - RS Baseado no mini-curso de Bruno Zatt (EMICRO 2009)](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc10b497959413d8c294b/html5/thumbnails/37.jpg)
FEDERAL UNIVERSITYOF RIO GRANDE DO SUL
TLM - Níveis de Abstração
37
A. Specification Model
B. Component Assembly Model
C. Bus-Arbitration Model
D. Bus-functional Model
E. Cycle Accurate computation Model
F. Implementation Model
* CAI, L., GAJSKI, D. Transaction Level Modeling: An Overview