Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores...

83
Mini Curso PDesigner

Transcript of Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores...

Page 1: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

Mini Curso PDesigner

Page 2: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

3

Cenário

Design House Oportunidade Especificação Circuito Integrado

Page 3: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

4

Janela de Mercado

Page 4: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

5

Projeto, Fabricação e Comercialização de CIs

DH

PROJETO

FAB 1

FABRICAÇÃO TESTE MERCADO

FAB 2

Permite negociar preço e prazo !!

99% erros !!

1% erros !!Erro: volta !!

Page 5: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

7

System

Aumento da Produtividade I

Circuito Integrado

FUNC

BEH

RTL

GATE

Espeificação do Sistema

NíveisAbstração

Subir nível de abstração

Page 6: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

8

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 7: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

9

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 8: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

10

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 9: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

11

Aumento da Produtividade II

• Reuso de IPs

• Grande parte do projeto baseado em reuso de módulos

• Uso de IPs de terceiros

• Confiança no desenvolvedor do IP

• Problemas de integração

Interconnection network

CPU CPU CPU CPU

Memory (IP) (IP)

Page 10: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

12

Aumento da Produtividade III

• Utilização de Plataformas

• Grande parte do projeto em software

• Flexibilidade

• Reuso de grande parte do circuito

• Desenvolvimento ou utilização de IPs em pequena parte do projeto

Interconnection network

CPU CPU CPU CPU

Memory (IP) (IP)

Page 11: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

SPIRIT Consortium

Page 12: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

19

SPIRIT Consortium

Page 13: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

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 14: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

21

SPIRIT

Page 15: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

22

SPIRIT Consortium

Page 16: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

23

Interações de Objetos IP-XACT

Page 17: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

24

SPIRIT Schemas

• Bus definition: descreve uma 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

• Design: descreve as instâncias de um componente e as interconexões entre as instâncias

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

Page 18: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

25

Exemplo Simples de um SoC

Page 19: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

26

Exemplo Simples de um SoC: Design File

Identificador da versão

Nome do SoCNome da Biblioteca

Page 20: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

27

Exemplo Simples de um SoC: Design File

Page 21: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

28

Exemplo Simples de um SoC: Design File

Page 22: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

PDesigner

Page 23: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

30

Framework

SPIRIT 1.2

web page

Page 24: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

31

Modelagem de Plataformas

• Modelagem gráfica de plataformas

• Framework baseado no Eclipse

• Ambiente Gráfico• SPIRIT 1.2• SystemC 2.1

Page 25: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

32

Simulação de Plataformas

• Tela de Console com resultados da simulação

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

MPSoC

execute

EXE

Page 26: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

33

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 27: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

34

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 28: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

35

Modelagem de Plataformas: PBuilder

Graphical Editor

Properties View

Platform View

Palette

Page 29: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

36

PBuilder - Views

• PEditor– Editor que possibilita a modelagem de plataformas

graficamente– Componentes da biblioteca distribuídos na paleta de

componentes

Page 30: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

37

Conexão de Componentes

Mips Simple Bus

ArchC (TLM)

Simple Bus FastMem

SimpleBus (TLM) SimpleBus (TLM)

SimpleBus (TLM)Wrapper

ArchC - SimpleBus

Page 31: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

38

PBuilder - Views

• Platform View– Miniatura da plataforma

modelada

• Outline– Lista de componentes

instanciados

Page 32: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

39

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 33: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

40

Biblioteca de Componentes: PDLibrary

Biblioteca de Componentes•Wrappers

•Adicionar Componente•Remover Componente

SystemC TLM

Page 34: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

41

Distribuição de IP: IPZip

Descrição do IP

TLM

IPZip (Wizards) Biblioteca de Componentes

Descrição do IP

TLM

IPZip (Wizards)

Page 35: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

42

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 36: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

43

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 *//*****************************************************************/

template<typename ac_word, typename ac_Hword> class ac_memport : public ac_arch_ref<ac_word, ac_Hword> {

private: ac_inout_if* storage; ac_word aux_word; ac_Hword aux_Hword; uint8_t aux_byte;public:... ///Default constructor explicit ac_memport(ac_arch<ac_word, ac_Hword>& ref) : ac_arch_ref<ac_word, ac_Hword>(ref) {}... ///Default constructor with initialization explicit ac_memport(ac_arch<ac_word, ac_Hword>& ref, ac_inout_if& stg) : ac_arch_ref<ac_word, ac_Hword>(ref), storage(&stg\) {}

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 37: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

44

Modelagem de Processador: ArchC

Page 38: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

45

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 39: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

46

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 40: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

47

Descrevendo Comportamentos

void ac_behavior( instruction ){

ac_pc = ac_pc + 4;

}

void ac_behavior( add ){

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

}

Page 41: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

48

Modelagem de Processador: PArchC

Page 42: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

49

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 43: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

50

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 44: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

51

Plugin PCacheAnalyzer

Page 45: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

52

Documentação: Plugin do Help

Page 46: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

53

www.pdesigner.org

Page 47: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

Modelando Plataformas PBuilder Tutorial

Page 48: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

55

Instalar

• Baixar o arquivo gspm_2006.11-232_i386.tar.gz no site www.greensocs.com

• Descompactar o arquivo• Dentro do diretório

gspm :– ./gsconfig– source gspm.bashrc– gs-use –update

pdesigner/1.0.0• No diretório gspm

– gs-use pdesigner– pdesigner

Page 49: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

56

Configurar Ambiente

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

• Deve ser configurado para cada workspace novo!

Page 50: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

57

Selecionar Biblioteca

1. Selecionar biblioteca de componentes– Apenas uma

biblioteca por workspace

2. Editar biblioteca– Importar

componente– Remover

componente

Page 51: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

58

Fluxo de Projeto

Page 52: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

59

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 53: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

60

Passo 2 : Adicionar Componentes

1. Selecionar tipo do componente na paleta

2. Escolher posição no editor

3. Inserir componente

Page 54: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

61

Passo 3 : Editar Componentes

1. Tipo do componente

2. Nível de Abstração

3. Parâmetros

Page 55: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

62

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 56: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

63

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 57: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

64

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 58: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

65

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 59: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

Exercício PBuilder

Page 60: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

67

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 61: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

IPZip

Page 62: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

69

Fluxo

Page 63: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

70

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 64: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

71

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 65: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

72

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

template<typename ac_word, typename ac_Hword> class ac_memport : public ac_arch_ref<ac_word, ac_Hword> {

private: ac_inout_if* storage; ac_word aux_word; ac_Hword aux_Hword; uint8_t aux_byte;public:... ///Default constructor explicit ac_memport(ac_arch<ac_word,

ac_Hword>& ref) : ac_arch_ref<ac_word, ac_Hword>(ref) {}... ///Default constructor with initialization explicit ac_memport(ac_arch<ac_word,

ac_Hword>& ref, ac_inout_if& stg) : ac_arch_ref<ac_word, ac_Hword>(ref), storage(&stg\)

Page 66: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

73

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 67: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

74

Passo 5 : Arquivos Fonte e Makefile

1. Listar os arquivos fonte do IP

2. Identificar Makefile do IP

Page 68: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

75

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 69: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

76

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 70: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

77

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 71: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

78

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 72: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

79

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 73: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

80

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 74: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

81

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 75: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

Exercício IPZip

Page 76: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

83

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• Direção: slave• Protocolo: simple_bus• Address space: 5M

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

Page 77: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

Gerenciar Biblioteca

Page 78: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

85

Importar IPZip

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

2. Selecionar Import Component

3. Selecionar o arquivo IPZip

4. Selecionar Apply

Page 79: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

86

Exercício 3

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

Page 80: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.
Page 81: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

88

Importar IPZip

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

2. Selecionar Import Component

3. Selecionar o arquivo IPZip

4. Selecionar Apply

Page 82: Mini Curso PDesigner. 2 Agenda Introdução Principais desafios para o projeto de SoCs IP Cores Electronic System Level (ESL) SystemC TLM SPIRIT Consortium.

89

Referências

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