MO801: Tópicos em Arquitetura e Hardware 1 Tópicos em System-Level Design Sandro Rigo 2 o Semestre.

Slides:



Advertisements
Apresentações semelhantes
TIPOS ABSTRATOS DE DADOS
Advertisements

Tópicos em System-Level
ABSTRAÇÃO processo de representar um grupo de entidades através de seus atributos comuns feita a abstração, cada entidade particular (instância) do grupo.
Introdução à Ciência da Computação Linguagens de Programação.
Paulo Marques Hernâni Pedroso
UML Modelando um sistema.
UML Visões – Parte 2.
UML – Visões Parte 1 Modelando um sistema.
(Unified Modeling Language)
Engenharia de Software
Fernando Moraes e Ney Laert Vilar Calazans
GAPH - PPGCC - FACIN - PUCRS
Ney Laert Vilar Calazans
VHDL Linguagem de Descrição e Síntese de Circuitos Digitais
Sistemas Digitais Projeto RTL – Unidade de Execução
Unidades de Execução e de Controle Sistemas Digitais.
VHDL AULA - 2.
Maurício Edgar Stivanello
Sistemas Operacionais
Tiago Salmito SystemC Tiago Salmito
Descrição de hardware em SystemC
Universidade Federal do Rio Grande do Sul Programa de Pós-Graduação em Computação Exploração do espaço de projeto para uma arquitetura de processamento.
Co-simulação Régio Michelin.
FLI – ModelSim Pedro Velho.
VERILOG HDL (HARDWARE DESCRIPTION LANGUAGE)
Hardware Description Language (HDL)
Análise e Projeto de Sistemas
TIPOS DE TESTES APLICÁVEIS E NÃO APLICÁVEIS AO PROJETO
Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos
Threads.
Classes e objetos P. O. O. Prof. Grace.
DIAGRAMA DE COMPONENTES
Análise de Sistemas Análise e Projeto Prof. Jeime Nunes Site:
Concorrência em Java Threads em Java.
Engenharia de Software para Computação Embarcada
Web Services Uninorte Semana de Tecnologia da Informação
BRAZIL IP The BrazilIP Network Verilog Curso do Brazil-IP Elmar Melcher UFCG
Tipos Abstratos de Dados
MO801 - Tópicos em Arquitetura e Hardware Michele Tamberlini 05/2006
Projeto de Banco de Dados
Algoritmos - Profa. Alciléia1 Profa. Maria Alciléia Alves Rocha Funções em C 2011.
Banco de Dados Aplicado ao Desenvolvimento de Software
Introdução a Banco de Dados Aula 04
RUP - Cap. 4 – Processo Centrado na Arquitetura
OMNeT++.
MO801: Tópicos em Arquitetura e Hardware 1 Tópicos em System-Level Design Tecnologia de Projeto Sandro Rigo
BRAZIL IP The BrazilIP Network SystemVerilog para Verificação funcional com OVM Curso do Brazil-IP Elmar Melcher UFCG
Fluxos secundários Só devem ser analisados e descritos após a descrição dos fluxos básicos. Fluxos alternativos situações especiais (desconto para um cliente)
Introdução à Linguagem VHDL
A Linguagem Formal de Especificação VDM-SL
Tópicos em System-Level
VERILOG.
EDA – Electronic Design Assistant
MO801: Tópicos em Arquitetura e Hardware 1 Tópicos em System-Level Design Sandro Rigo 2 o Semestre.
MO801: Tópicos em Arquitetura e Hardware 1 Tópicos em System-Level Design Sandro Rigo 2 o Semestre.
MO801: Tópicos em Arquitetura e Hardware 1 Tópicos em System-Level Design Sandro Rigo 2 o Semestre.
MO801: Tópicos em Arquitetura e Hardware 1 Tópicos em System-Level Design Sandro Rigo 2 o Semestre.
Engenharia de Sistemas Embarcados Aula 5: Um Conjunto Básico de Ferramentas.
Análise e Projeto de Sistemas Unified Modeling Language Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores.
Análise e Projeto de Sistemas
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Aula /08/2012 Professor Leomir J. Borba-
PROGRAMAÇÃO II – PARTE 1 Profa. Maria Augusta Constante Puget.
Módulo II Capítulo 1: Orientação a Objetos
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
Introdução ao SCS Tecgraf PUC-Rio Setembro de 2013.
ARQUITETURA DE COMPUTADORES Nível do Conjunto de Instruções
Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Introdução ao OpenBus.
1 Especificação de Sistemas de Software e a UML. 2 Modelagem de sistema A modelagem de sistema auxilia o analista a entender a funcionalidade do sistema.
Modelagem de Banco de Dados: Conceitos
Transcrição da apresentação:

MO801: Tópicos em Arquitetura e Hardware 1 Tópicos em System-Level Design Sandro Rigo 2 o Semestre de 2006 Projeto de Sistemas Usando SystemC

MO801: Tópicos em Arquitetura e Hardware 2 História... SystemC: modelar hardware e software usando C++ Setembro/99: Primeiro release (0.9) público Janeiro/00: Versão 1.0 (Somente RTL) Julho/01: Versão 2.0 (eventos, canais, portas) 2005: Versão : Padrão IEEE 1666

MO801: Tópicos em Arquitetura e Hardware 3 O que é SystemC SystemC: Uma biblioteca de classes C++ e um kernel de simulação Por que C++ é inadequado para modelar hardware? –Não suporta noção de eventos sequenciados no tempo –Não suporta concorrência –Tipos primitivos são inadequados para descrever hardware. Exemplo: tri-state (Z)

MO801: Tópicos em Arquitetura e Hardware 4 O que é SystemC SystemC estende C++ sem alterar a semântica da linguagem Ambiente de programação fica inalterado –Normalmente usa-se GCC para compilar os modelos –O executável gerado é a chamada especificação executável do sistema

MO801: Tópicos em Arquitetura e Hardware 5 O que é SystemC Principal objetivo? Aumento de produtividade. –Desenvolvimento simultâneo de HW/SW em alto nível de abstração usando a mesma linguagem –Exploração de particionamento HW/SW –Verificação funcional desde os primeiros estágios –Reuso de modelos anteriores –Especificação executável do sistema –SystemC não tem o objetivo de substituir HDLs em nível RTL!

MO801: Tópicos em Arquitetura e Hardware 6 Linguagens * Fonte: SystemC from the Ground Up Concorrente Direto

MO801: Tópicos em Arquitetura e Hardware 7 Complexidade X Abstração * Fonte: SystemC from the Ground Up

MO801: Tópicos em Arquitetura e Hardware 8 Arquitetura de SystemC * Fonte: SystemC from the Ground Up

MO801: Tópicos em Arquitetura e Hardware 9 A Linguagem SystemC Adiciona suporte à modelagem de hardware a C++ fornecendo: –Um modelo de tempo –Tipos de dados –Hierarquia de módulos –Gerenciamento de comunicação entre módulos –Modelo de concorrência

MO801: Tópicos em Arquitetura e Hardware 10 Padrão para Diagramas em SystemC * Fonte: SystemC from the Ground Up

MO801: Tópicos em Arquitetura e Hardware 11 Tempo 64 bits de resolução Classe sc_time (SC_FSEC, SC_SEC) Tempo global é avançado pelo kernel sc_clock

MO801: Tópicos em Arquitetura e Hardware 12 Tipos de Dados inteiros (largura em bits): sc_int<> ponto fixo: sc_fixed<> lógica: sc_logic (0,1,X,Z), sc_bit não oferece suporte a modelagem de circuitos analógicos

MO801: Tópicos em Arquitetura e Hardware 13 Que tipo usar? * Fonte: SystemC from the Ground Up Tipos de FP e ponto- fixo não são sintetisáveis ! Ferramentas de síntese normalmente exigem tipos sc_* !

MO801: Tópicos em Arquitetura e Hardware 14 Hierarquia e Estrutura Classe SC_MODULE Contém os processos registrados e chamados pelo kernel Hierarquia se dá pela instanciação de módulos dentro de módulos Equivalente ao “ENTITY” do VHDL

MO801: Tópicos em Arquitetura e Hardware 15 Comunicação Modelada através de canais Canais podem representar mecanismos simples, como um fio ou uma FIFO, ou também implementar esquemas mais complexos Fornecidos: sc_mutex, sc_signal<>, sc_fifo Módulos conectam-se aos canais através das portas: sc_port<> Canais implementam interfaces (sc_interface) Mesmo mecanismo de classes abstratas em C++

MO801: Tópicos em Arquitetura e Hardware 16 Comunicação * Fonte: SystemC from the Ground Up

MO801: Tópicos em Arquitetura e Hardware 17 Concorrência Concorrência na simulação é sempre uma ilusão! Unidades concorrentes são simuladas individualmente –SC_METHOD, SC_THREAD, SC_CTHREAD –São partes de um SC_MODULE e registrados na fase de elaboração pelo kernel A execução de uma unidade é interrompida quando a execução de outra é necessária para o comportamento continuar corretamente alinhado no tempo Eventos são responsáveis por disparar as trocas de contexto

MO801: Tópicos em Arquitetura e Hardware 18 Processos SC_METHOD: –Membro de um SC_MODULE onde o tempo não passa entre sua invocação e retorno –São invocados repetidamente pelo kernel SC_THREAD: –São invocados apenas uma vez, mas podem ser suspensas e permitem que o tempo passe antes de continuarem –Similar a threads de software SC_CTHREAD: –Uma SC_THREAD sensível ao clock

MO801: Tópicos em Arquitetura e Hardware 19 Componentes de SystemC * Fonte: SystemC from the Ground Up

MO801: Tópicos em Arquitetura e Hardware 20 Etapas da Simulação Elaboração: –Instanciação dos componentes –Conexão entre módulos –Registro de processos Simulação –Comportamento é executado Pós-processamento –Opcional –Geração de relatórios, criação de arquivos, etc

MO801: Tópicos em Arquitetura e Hardware 21 Arquivo principal #include ”systemc.h ” #include ”modulo.h” int sc_main(int argc, char *argv[ ]) { //Elaboração sc_start(); //Início e término da Simulação //Pós-processamento return 0; //Exit code }

MO801: Tópicos em Arquitetura e Hardware 22 SC_MODULE #include ”systemc.h” SC_MODULE(Nome){ //Portas //Membros: instância de canais, variáveis e sub-módulos SC_CTOR(Nome){ //Construtor //Alocação de sub-módulos //Conexão de sub-módulos SC_THREAD(Processo) ; //Registra processo sensitive << Clk.pos( ) ; //Registra lista de sensibilidade //Inicializações em geral } //Declaração e/ou implementação de Processos void Processo(void); }; #define SC_MODULE (module_name) \ struct module_name: public sc_module

MO801: Tópicos em Arquitetura e Hardware 23 Construtores Alternativos //FILE: module_name.h SC_MODULE(module_name) { SC_HAS_PROCESS(module_name); module_name(sc_module_name instname[, other_args…]) : sc_module(instname) //Outras inicializações { //Corpo do construtor } }; Útil para ter mais de um parâmetro no construtor

MO801: Tópicos em Arquitetura e Hardware 24 Exemplo

MO801: Tópicos em Arquitetura e Hardware 25 Módulo Maior #include ”systemc.h” SC_MODULE(Maior) { sc_in A, B; sc_out C; void doMaior ( ){ C.write (A.read ( ) > B.read ( ) ? A.read ( ) : B.read ( ) ) ; } SC_CTOR(Maior){ SC_METHOD(doMaior) ; sensitive << A << B; } };

MO801: Tópicos em Arquitetura e Hardware 26 Gerador de estímulos #include ”systemc.h” SC_MODULE(Estimulos){ sc_out A, B; sc_in Clk ; void GeraEstimulos ( ) { A.write(5) ; B.write(7) ; wait() ;... sc_stop ( ) ; } SC_CTOR(Estimulos){ SC_THREAD(GeraEstimulos) ; sensitive << Clk.pos( ) ; } };

MO801: Tópicos em Arquitetura e Hardware 27 Arquivo principal #include ”systemc.h ” #include ”maior.h” #include ”estimulos.h ” int sc_main(int argc, char *argv[ ]) { sc_signal sinalA, sinalB, sinalC; sc_clock clock(”Clock”, 10, SC_NS, 0.5); Estimulos est(”Estimulos”); Maior m(”Maior”); est.A(sinalA); est.B(sinalB); est.Clk(clock); m.A(sinalA); m.B(sinalB); m.C(sinalC); sc_start(); return 0; }

MO801: Tópicos em Arquitetura e Hardware 28 Fluxo de Compilação Arquivos Fontes (*.cpp,*.H) Arquivos Objeto (*.o) G++ Bibs SystemC STL Executável LD

MO801: Tópicos em Arquitetura e Hardware 29 Importante !!! Se você nunca trabalhou com SystemC antes, ou caso queira relembrar os principais conceitos, faça o tutorial online da Forte !!!

MO801: Tópicos em Arquitetura e Hardware 30 Caracterização de Modelos Untimed (UTF): –Aplica-se tanto a interface (comunicação) quanto a funcionalidade –Tempo não é utilizado na execução, podendo haver apenas uma ordenação de passos –Normalmente utiliza tipos nativos de C++ A implementação do sistema é puramente algorítmica!!!

MO801: Tópicos em Arquitetura e Hardware 31 Caracterização de Modelos Timed Functional (TF): –Aplica-se tanto a interface (comunicação) quanto a funcionalidade –Tempo é utilizado na execução e transporte de dados –Modela latências –Normalmente utiliza tipos nativos de C++ –Pode ser misturado com UTF no mesmo modelo

MO801: Tópicos em Arquitetura e Hardware 32 Caracterização de Modelos Bus Cycle Accurate (BCA): –Aplicado à interface (comunicação) –Tempo é preciso em termos de ciclos, normalmente com a presença de um clock no sistema –Não obriga detalhes em nível de pinos –Normalmente inclui tipos nativos de C++ com tipos de SystemC –Transferências de informação são modeladas como transações

MO801: Tópicos em Arquitetura e Hardware 33 Caracterização de Modelos Pin Cycle Accurate (PCA): –Aplicado à interface (comunicação) –Tempo é preciso em termos de ciclos, com a presença de um clock no sistema –Obriga detalhes em nível de pinos na descrição da interface –Normalmente inclui tipos nativos de C++ com tipos de SystemC

MO801: Tópicos em Arquitetura e Hardware 34 Caracterização de Modelos Register Transfer Accurate (RTA): –Aplicado à funcionalidade –Totalmente temporizado com a presença de um clock no sistema –Interfaces com detalhes em nível de pinos –Descreve as operações para cada registrador, bit e barramento em cada ciclo –Normalmente inclui tipos nativos de C++ com tipos de SystemC –Sinônimo de RTL

MO801: Tópicos em Arquitetura e Hardware 35 Tipos de Modelos System Architectural Model (SAM): –Descrevem tanto componentes de hardware como software –São uma especificação executável do sistema –Úteis para exploração de arquiteturas e algoritmos FuncionalidadeInterface UTF

MO801: Tópicos em Arquitetura e Hardware 36 Tipos de Modelos System Performance Model (SPM): –Descrevem tanto componentes de hardware como software –São uma especificação executável do sistema temporizada –Úteis para determinação de desempenho em alto nível e estimativas de tempo. Não têm precisão de ciclos. FuncionalidadeInterface UTF ou TF

MO801: Tópicos em Arquitetura e Hardware 37 Tipos de Modelos Transaction Level Model (TLM): –Descrevem hardware, sendo uma especificação executável da plataforma –Interface pode ou não ter precisão de ciclos –Funcionalidade não tem precisão de ciclos. FuncionalidadeInterface TF

MO801: Tópicos em Arquitetura e Hardware 38 Tipos de Modelos Behavioral Synthesis Model: –Definição condiz com as necessidades das ferramentas da Forte, padrão em behavioral synthesis para SystemC atualmente –Funcionalidade não tem precisão de ciclos. Comportamentos modelados algoritmicamente FuncionalidadeInterface TFPCA

MO801: Tópicos em Arquitetura e Hardware 39 Tipos de Modelos Bus Functional Model: –Tipicamente usado para simulação, não síntese –Funcionalidade é normalmente descrita por transações FuncionalidadeInterface TransaçõesPCA

MO801: Tópicos em Arquitetura e Hardware 40 Tipos de Modelos Register Transfer Level (RTL): –Descrição detalhada do hardware –Usado para síntese –Modelos escritos em VHDL e Verilog estão normalmente neste nível FuncionalidadeInterface RTAPCA

MO801: Tópicos em Arquitetura e Hardware 41 Referências SystemC from the Ground-up - David C. Black e Jack Donovan, Kluwer Academic Press, 2004 Transaction Level Modeling in SystemC – Adam Rose, Stuart Swan, John Pierce, Jean-Michel Fernandez, OSCI TLM Working Group SystemC Tutorial. Forte Design Systems.