electronic system level curso pdesigner. 2 agenda introdução principais desafios para o projeto de...

95
Electronic System Level Curso PDesigner

Upload: heitor-salvado-lombardi

Post on 07-Apr-2016

216 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

Electronic System LevelCurso PDesigner

Page 2: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

2

Agenda

• Introdução• Principais desafios para o projeto de SoCs• IP Cores• Electronic System Level (ESL)

– Projeto Baseado em Plataforma• SystemC TLM• SPIRIT Consortium• PDesigner

– Visão geral– Arquitetura– Tutorial– exercícios

Page 3: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

3

Cenário

Design House Oportunidade Especificação Circuito Integrado

Page 4: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

4

Cenário

Especificação Circuito Integrado

Page 5: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

5

Erros de Projeto

Page 6: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

6

Janela de Mercado

Page 7: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

Platforms + Electronic System Level (ESL)

Page 8: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

8

Plataformas MPSoC

• Utilização de múltiplos processadores SoCs

• Alta performance

• Baixa potência

• Baixa frequência de clock

• Utilização de processadores heterogêneos

Interconnection network

CPU CPU CPU CPU

Memory Device (IP)

Device (IP)

Page 9: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

9

Linguagens de Projeto & Tarefas

LanguageLanguageTaskTask

RequirementsRequirements

AlgorithmAlgorithmExplorationExploration

Architecture Architecture AnalysisAnalysis

VerificationVerification

RTL DesignRTL Design

Text / UMLText / UML

TransactionTransactionLevelLevel

SystemCSystemC

VHDLVHDLVerilogVerilog

HVLs extend & accelerate theRTL design process and enable RTL designers to cross

the chasm to system level design

AssertionsAssertionsPSL/SVAPSL/SVA

SystemSystemVerilogVerilog

C/C++C/C++UntimedUntimedSystemCSystemC

Page 10: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

10

What is ESL?

SoC TechnologySystem specification

Processor core

Bus core

memory

IP (Devices)

Page 11: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

11

What is ESL?

SoC Technology

FUNC

BEH

RTL

GATE

System specification

Abstraction Levels

Page 12: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

12

What is ESL?

SoC Technology

FUNC

BEH

RTL

GATE

System specification

System

Abstraction Levels

Page 13: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

13

What is ESL?

UML SysML Matlab

SystemC SystemVerilog

SW HW

SW HW Synthesizable

Simulation

Modeling Languages

ESL

Page 14: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

14

Problems

UML SysML Matlab

SystemC SystemVerilog

SW HW

SW HW Synthesizable

Simulation

Modeling Languages

ESL

Methodologies&

Tools

Page 15: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

SystemC TLM

Page 16: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

16

SystemC TLM – Arquitetura Básica

InitiatorTarget

sc_portsc_port sc_exportsc_exporttlm_transport_iftlm_transport_if

transport(.)transport(.)

transport()

tlm_transport_ifvirtual RSP transport( const REQ & ) = 0;

transport(.)

• sc_export exports tlm_transport_if for use by outside world

• RSP transport( const REQ & ) is implemented in the slave

• tlm_transport_if is the tlm bidirectional blocking interface

template < typename REQ , typename RSP >class tlm_transport_if : public virtual sc_interface{public: virtual RSP transport( const REQ & ) = 0;

Page 17: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

17

SystemC TLM (Transaction Level Modeling)

• Comunicação utilizando chamada de funções• Pontos Fortes:

– Simplicidade– Rápido e compacto– Integração de modelos de hardware e software – Suporte a reuso de design e verificação de IP– Usabilidade– Transparente a:

• Nível de Abstração• Diferentes arquiteturas de comunicação (barramento, NOC, ...)• Diferentes protocolos

• Principais conceitos:– Fluxo de dados Unidirecional x Bidirecional– Requisições e respostas separadas– Blocking x Nonblocking– Uso de sc_port e sc_export

Page 18: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

SPIRIT Consortium

Page 19: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

19

SPIRIT Consortium

Page 20: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

20

SPIRIT

• Padrão definido por um consórcio de empresas para distribuição de IPs

• Baseado em XML

• Descrição de IPs independente de linguagem

Page 21: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

21

SPIRIT

Page 22: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

22

SPIRIT Consortium

Page 23: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

23

SoC Design Tool

Page 24: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

24

Geradores/Configuradores

Page 25: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

25

Interações de Objetos IP-XACT

Page 26: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

26

• Bus definition: é um objeto que descreve uma interface interface de barramento (nomes de sinais, direção, largura, uso) e as restrições que se aplicam a estes sinais.

• Meta Data: é um modo que pode ser interpretado por ferramentas para se descrever diversos aspectos do projeto

Page 27: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

27

• Design: descreve as instâncias de um componente e as interconexões entre as instâncias. As interconexões definem as conexões ponto-a-ponto entre interfaces dos componentes.

• Gerador/Configurador: são objetos executáveis utilizados para gerar os componentes ou configurá-los.

Page 28: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

28

Exemplo Simples de um SoC

Page 29: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

29

Exemplo Simples de um SoC: Design File

Identificador da versão

Nome do SoCNome da Biblioteca

Page 30: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

30

Exemplo Simples de um SoC: Design File

Page 31: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

31

Exemplo Simples de um SoC: Design File

Page 32: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

PDesigner

Page 33: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

33

FrameworkMPSoC ModelingMPSoC SimulationArchitecture ExplorationProcessor Modeling and Integration

Page 34: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

34

Framework

SPIRIT 1.2

web page

Page 35: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

35

Modelagem de Plataformas

• Modelagem gráfica de plataformas

• Framework baseado no Eclipse

• Ambiente Gráfico• SPIRIT 1.2• SystemC 2.1

Page 36: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

36

Simulação de Plataformas

• Tela de Console com resultados da simulação

• Controle de Simulação– Parar simulação

MPSoC

execute

EXE

Page 37: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

37

Exploração de Arquiteturas

• Simulação em um único passo

• Integrado ao Ambiente de modelagem de plataformas (PBuilder)

Model the Platfom(Including cache analyzer component)

Platfom Simulation

Trace of referenced addresses

Single-PassCache Analysis

Cache Configuration Space

Cache miss rate reportfor the entire Configuration space

Configure cache devices

Final Platform Simulation

Page 38: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

38

Modelagem de Processadores

• Modelagem de Processadores

• ArchC 2.0• Exporta componentes para

o PBuilder

Export to Library

ISAproc.

Structure

ISS

component Library

Generate Simulator

DescriçãoProcessador

GeraçãoProcessador

Page 39: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

39

Modelagem de Plataformas: PBuilder

Graphical Editor

Properties View

Platform View

Palette

Page 40: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

40

PDBuilder - Views

• PEditor– Editor que possibilita a modelagem de plataformas

graficamente– Componentes da biblioteca distribuídos na paleta de

componentes

Page 41: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

41

Conexão de Componentes

Mips Simple Bus

ArchC (TLM)

Simple Bus FastMem

SimpleBus (TLM) SimpleBus (TLM)

SimpleBus (TLM)Wrapper

ArchC - SimpleBus

Page 42: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

42

PDBuilder - Views

• Platform View– Miniatura da plataforma

modelada

• Outline– Lista de componentes

instanciados

Page 43: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

43

PDBuilder - Views

• Properties– Tabela editável

com as propriedades do componente/plataforma selecionada

• Console– Mostra

resultado de compilação, simulação e análise

Page 44: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

44

Biblioteca de Componentes: PDLibrary

Biblioteca de Componentes•Wrappers

•Adicionar Componente•Remover Componente

SystemC TLM

Page 45: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

45

Distribuição de IP: IPZip

Descrição do IP

TLM

IPZip (Wizards) Biblioteca de Componentes

Descrição do IP

TLM

IPZip (Wizards)

Page 46: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

46

Plugin IPZip

• Wizard de geração de distribuição de componente

• Gera pacote de distribuição com arquivos de configuração SPIRIT a partir da descrição alto nível do componente

Page 47: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

47

Fluxo de Distribuição do IPZip

/******************************************************************//* The ArchC MIPS-I functional model.

*//* Author: Sandro Rigo and Marcus Bartholomeu

*//*

*//* ... *//*

*//* The ArchC Team *//* Computer Systems Laboratory (LSC)

*//* IC-UNICAMP *//* http://www.lsc.ic.unicamp.br

*//* Version: 0.75 *//*****************************************************************/

#include "mips1_arch.H"

mips1_arch::mips1_arch() : ac_arch_dec_if<mips1_parms::ac_word, mips1_parms::ac_Hword>(mips1_parms::AC_MAX_BUFFER), ac_pc("ac_pc", 0, time_step), DM_port("DM_port", 5242880), DM(*this, DM_port), RB("RB", time_step) {

ac_mt_endian = mips1_parms::AC_MATCH_ENDIAN; ac_tgt_endian = mips1_parms::AC_PROC_ENDIAN;

IM = &DM; APP_MEM = &DM;

}

class simple_bus_fast_mem : public simple_bus_slave_if , public sc_module{public: // constructor simple_bus_fast_mem(sc_module_name name_ , unsigned int start_address , unsigned int end_address) : sc_module(name_) , m_start_address(start_address) , m_end_address(end_address) {... private: char * MEM; unsigned int m_start_address; unsigned int m_end_address;}

• Cycle Accurate• Timing Estimated• Untimed• RTL• Verilog

#include "mips1.H"...

const char *project_name="mips1";const char *project_file="mips1.ac";...int sc_main(int ac, char *av[]){

//Platform Componentssimple_bus_fast_mem

mem("fast_mem",0x00,0x9fffff);mips1 p1("p1");...//Platform Conenctions p1.DM_port(DM_wrapper1.target_export);...

p1.init();...cerr << endl;

sc_start(-1);

p1.PrintStat();...cerr << endl;return p1.ac_exit_status&& p2.ac_exit_status;

}

Page 48: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

48

Modelagem de Processador: ArchC

Page 49: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

49

Elementos da linguagem ArchC

Descrição ArchCDescrição dos Recursos (AC_ARCH)

Descrição do ISA (AC_ISA)

Descrição do formato, tipo e codificação/decodifiçãodas instruções

Descrição do comportamento das instruções(C++/SystemC)

. Registradores

. Memória

. Estrutura de Pipeline

Page 50: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

50

AC_ISA(submips) {

ac_format Type_R = "%op:6 %rs:5 %rt:5 %rd:5 0x00:5 %func:6"; ac_format Type_I = "%op:6 %rs:5 %rt:5 %imm:16";

ac_instr<Type_R> add, mul; ac_instr<Type_I> lw, bne, addi; ISA_CTOR(submips) {

add.set_asm("add %reg, %reg, %reg“, rd,rs,rt); add.set_decoder(op=0x00, func=0x20);

lw.set_asm("lw %reg, %imm(%reg)“, rt,imm,rs); lw.set_decoder(op=0x23); ... };};

Declaração de Instruções

Declaração de

instruções

Seqüência de decodificação

Page 51: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

51

Descrição do Comportamento

void ac_behavior( add ){ RB[rd] = RB[rs] + RB[rt];}

Acesso a dispositivo de

armazenamento

Acesso a campo de instrução

Page 52: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

52

Descrevendo Comportamentos

void ac_behavior( instruction ){

ac_pc = ac_pc + 4;

}

void ac_behavior( add ){

RB[rd] = RB[rs] + RB[rt];

}

Page 53: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

53

Modelagem de Processador: PArchC

Page 54: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

54

Modelagem de Processador: PArchC• Plugin focado na construção de Processadores

• Ambiente gráfico para edição de código– Inclusão do destaque para palavras reservadas do ArchC

• Compilação e Simulação do processador– Possibilita ao usuário verificar o comportamento do componente

• Distribuição de Componente– Gera automaticamente um pacote de distribuição do componente baseado no padrão SPIRIT

Biblioteca de Componentes

Descrição do Processador

Page 55: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

55

Análise de Cache: PCacheAnalyzer• Análise preliminar de cache

• Análise de diversas configurações de caches (+ de 50) com apenas uma simulação

• Geração de relatório, identificando:– Configuração da cache

(tamanho de palavra e associatividade)

– Hit Rate– Miss Rate

• Relatório mostrado em formato HTML

Model the Platfom(Including cache analyzer component)

Platfom Simulation

Trace of referenced addresses

Single-PassCache Analysis

Cache Configuration Space

Cache miss rate reportfor the entire Configuration space

Configure cache devices

Final Platform Simulation

Page 56: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

56

Plugin PCacheAnalyzer

Page 57: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

57

Documentação: Plugin do Help

Page 58: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

58

Documentação: Site

SITE

Page 59: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

59

Arquitetura

Arquitetura Extensível

Arquitetura Modular

Page 60: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

Modelando Plataformas PBuilder Tutorial

Page 62: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

62

Configurar Ambiente

• Configurar variáveis do sistema– ArchC– SystemC– TLM

• Deve ser configurado para cada workspace novo!

Page 63: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

63

Selecionar Biblioteca

1. Selecionar biblioteca de componentes– Apenas uma

biblioteca por workspace

2. Editar biblioteca– Importar

componente– Remover

componente

Page 64: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

64

Fluxo de Projeto

Page 65: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

65

Passo 1 : Criar Projeto

1. Selecionar a opção File > New > Project

2. Definir o nome do projeto

4. Projeto criado no workspace

3. Dados do projeto

Page 66: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

66

Passo 2 : Adicionar Componentes

1. Selecionar tipo do componente na paleta

2. Escolher posição no editor

3. Inserir componente

Page 67: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

67

Passo 3 : Editar Componentes

1. Tipo do componente

2. Nível de Abstração

3. Parâmetros

Page 68: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

68

Passo 4 : Conectar Componentes

1. Selecionar origem (porta mestre)

2. Selecionar destino (porta escrava)

4. Ver / Editar propriedades da conexão e/ou wrappers

3. Criação automática de wrappers

Page 69: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

69

Passo 5 : Carregar Aplicação para o Processador

1. O que significa?• Carregar na memória

uma aplicação binária compilada pelo crosscompiler do processador. O processador busca o código da aplicação na memória e a executa.2. Selecionar a opção Load

Application File no menu de contexto

3. Selecionar a aplicação (arquivo executável)

5. Definir o endereço

4. Selecionar Memória

Page 70: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

70

Passo 6 : Compilar Plataforma

1. O que significa?• Na compilação é

gerado o código systemc da plataforma, que é compilado gerando um arquivo executável da plataforma.2. Selecionar PDesigner >

Compile Platform

3. Resultados e Logs da compilação são mostrados na view Console

Page 71: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

71

Passo 7 : Simular

1. Selecionar a opção Run PDesigner no menu de contexto do projeto

2. Resultado da simulação é mostrado na view Console

Page 72: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

Exercício PBuilder

Page 73: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

73

Exercício 1

1. Modelar no PDesigner a plataforma ao lado.

2. Mapear as aplicações FFT na plataforma acima.1. FFT – iniciando na posição 0x002. FFT inversa - – iniciando na posição

0x500000

3. Adicionar uma cache no nível de abstração untimed para cada processador, utilizando os seus valores default.

4. Modifique o tipo do barramento para Amba e compare a velocidade de processamento (instruções/seg) com a do exercício 2 e 3.

P1(mips

)

P2(mips

)

Bus

Page 74: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

IPZip

Page 75: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

75

Fluxo

Page 76: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

76

Passo 1 : Criar Projeto IPZip

1. Selecionar a opção File > New > Project

2. IPZip > IPZip Project

3. Selecionar diretório onde o arquivo zip será criado

Page 77: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

77

Passo 2 : Informações do Componente

1. Name– Nome do componente

2. Type– Tipo do componente :

processador, barramento, memória, ...

3. Owner– Desenvolvedor (es)

4. Vendor– Empresa ou grupo responsável

pelo desenvolvimento5. Library

– Nome da biblioteca que ele deveria estar inserido

6. Description– Breve descrição do

componente

Page 78: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

78

Passo 3 : Configurar Interfaces1. Name

– nome da interface2. Protocol Direction

– direção da comunicação da interface (master, slave, system)

3. Protocol Name – nome do protocolo de comunicação:

• Amba, ArchC, Avalon, OCP, ...4. Connection

– Define se a interface deve estar conectada

5. Address Space Size– Tamanho de endereçamento da

interface.6. Multiplicity

– Single : há apenas uma interface– Multiple Dynamic : há várias

interfaces iguais podendo existir de 0 a N (número máximo) instanciadas

– Multiple Static : há exatamente N interfaces iguais instanciadas

#include "mips1_arch.H"

mips1_arch::mips1_arch() : ac_arch_dec_if<mips1_parms::ac_word, mips1_parms::ac_Hword>(mips1_parms::AC_MAX_BUFFER), ac_pc("ac_pc", 0, time_step), DM_port("DM_port", 5242880), DM(*this, DM_port), RB("RB", time_step) {

ac_mt_endian = mips1_parms::AC_MATCH_ENDIAN; ac_tgt_endian = mips1_parms::AC_PROC_ENDIAN;

IM = &DM; APP_MEM = &DM;

}

Page 79: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

79

Passo 4 : Configurar Parâmetros1. Name

– Nome do parâmetro2. Description

– Descrição do parâmetro informando seu papel

3. Group– Nome do grupo que o parâmetro

deve pertencer, organizando os parâmetros do componente por grupos

4. Data Type– Tipo do dado

5. Resolved by– Informa se o parâmetro deve ser

modificado pelo usuário ou pelo sistema

6. Format– Informa se o parâmetro tem

valores diversos (texto) ou restritos (choice)

7. Default Value– Valor default do parâmetro

Page 80: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

80

Passo 5 : Arquivos Fonte e Makefile

1. Listar os arquivos fonte do IP

2. Identificar Makefile do IP

Page 81: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

81

Passo 6 : Nível de Abstração

1. Definir nome do nível de abstração– Normalmente são

denominados TL1, TL2 ,...2. Selecionar o nível de

abstração do componente– Pode ter mais de um,

sendo necessário configurar cada um deles

– Possíveis níveis:• Cycle accurate• Timing estimated• Untimed

Page 82: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

82

Configurar Nível de Abstração

#IncludesDeclarações globaissc_main(){

Instância de componentes;

Conexão de componentes;

Funções pré-simulações;sc_start();Funções pós-simulação;

}

#include "mips1.H"...

const char *project_name="mips1";const char *project_file="mips1.ac";...int sc_main(int ac, char *av[]){

//Platform Componentssimple_bus_fast_mem mem("fast_mem",0x00,0x9fffff);mips1 p1("p1");...//Platform Conenctions p1.DM_port(DM_wrapper1.target_export);

...

p1.init();...cerr << endl;

sc_start(-1);

p1.PrintStat();...cerr << endl;return p1.ac_exit_status&& p2.ac_exit_status;

}

Page 83: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

83

Passo 6.1 : Selecionar “include files”

1. Selecionar arquivos fonte do componente que deverão ser incluídos para possibilitar sua utilização.

.... const char *project_name="mips1"; const char *project_file="mips1.ac"; const char *archc_version="2.0beta1"; const char *archc_options="-abi -dy "; …. #include "mips1.H“ #include “loader.h” ... int sc_main(int ac, char *av[]){

... }

Page 84: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

84

Passo 6.2 : Descrever Atribuição de Constantes

1. Define constantes e namespaces– Function : namespace, const, ...– Name : nome da constante ou

do namespace– Value : valor associado

.... const char *project_name="mips1"; const char *project_file="mips1.ac"; const char *archc_version="2.0beta1"; const char *archc_options="-abi -dy "; …. #include "mips1.H“ #include “loader.h” ... int sc_main(int ac, char *av[]){

... }

Page 85: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

85

Passo 6.3 : Configurar Instanciação de Componentes

1. Define a estrutura para instanciar o componente– Class : nome da função/classe

que implementa a instância– Name : nome default da

instância, se for variar deve ser o nome do componente

– Parameters : parâmetros passados para inicializar

• Symbol : símbolo do parâmetro – ponteiro, aspas, referência

• Type : define se o parâmetro é constante ou variável

• Value : valor do parâmetro. Se for variável será um dos parâmetros do componente.

.... int sc_main(int ac, char *av[]) { ….

mips1 mips1_proc1("mips1");AvalonController bus ("bus", clock, 2, 1, 1);...

}

Page 86: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

86

Passo 6.4 : Configurar Estrutura de Conexão

1. Define a estrutura para configuração de uma conexão– Type : define a estrutura da

conexão com portas escravas ou mestres

– Name : nome do componente– Function : função utilizada

para conexão ou nome da interface

– TLM Connection : define se a conexão segue o padrão TLM

– Parameters : parâmetros passados para viabilizar a conexão

• Symbol : símbolo do parâmetro – ponteiro, aspas, referência

• Type : define se o parâmetro é constante ou variável

• Value : valor do parâmetro. Se for variável será um dos parâmetros do componente ou instâncias conectadas a ele

int sc_main(int ac, char *av[]){

… AvalonController bus ("bus", clock, 2, 1, 1); mips1 mips_proc("mips1"); simple_bus_fast_mem mem_fast("mem_fast", 0x00, 0x9FFFFF); … bus.addMaster(WORD, false, 1, 1); bus.addSlave(WORD, false, 0x00,0x9FFFFF, 0, 0, 2, true); mips_proc.DM_port(wrap_mips1.target_export);

...}

Page 87: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

87

Passo 6.5 : Configurar Estrutura das Funções

1. Define a estrutura para configuração de funções– Class : nome do componente– Name : nome da função– Log Function : define se a

função gera um log– Parameters : parâmetros

passados para viabilizar a função• Symbol : símbolo do

parâmetro – ponteiro, aspas, referência

• Type : define se o parâmetro é constante ou variável

• Value : valor do parâmetro. Se for variável será um dos parâmetros do componente

int sc_main(int ac, char *av[]){ …

mips1 mips_proc("mips1"); …

// Function mips_proc.init(); … // Log Function mips_proc.PrintStat(); ...}

Page 88: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

Exercício IPZip

Page 89: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

89

Exercício 2

1. Criar arquivo IPZip do componente memória fast_mem conhecendo:• Arquivo fonte• Exemplo de main• Não possui makefile• Interface escrava:

• Nome: bus_port• Protocolo: simple_bus• Addredd space: 5M

2. Adicionar IPZip gerado a biblioteca do PDesigner e criar exemplo para testar.

Page 90: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

Gerenciar Biblioteca

Page 91: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

91

Importar IPZip

1. Selecionar a opção: Window > Preferences > PDesigner Library

2. Selecionar Import Component

3. Selecionar o arquivo IPZip

4. Selecionar Apply

Page 92: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

92

Exercício 3

• Importar IPZip do barramento AMBA e modificar a plataforma do Exercício 1.1, trocando o barramento.

Page 93: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto
Page 94: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

94

Importar IPZip

1. Selecionar a opção: Window > Preferences > PDesigner Library

2. Selecionar Import Component

3. Selecionar o arquivo IPZip

4. Selecionar Apply

Page 95: Electronic System Level Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) –Projeto

95

Referências

• www.pdesigner.org• www.archc.org• www.systemc.org• www.spiritconsortium.org• www.eclipse.org