A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Criando uma Interface Modular Envolve a criação das três classes descritas anteriormente:  “Metaporta” de entrada.  “Metaporta” de saida.  Canal. Esse.

Apresentações semelhantes


Apresentação em tema: "Criando uma Interface Modular Envolve a criação das três classes descritas anteriormente:  “Metaporta” de entrada.  “Metaporta” de saida.  Canal. Esse."— Transcrição da apresentação:

1

2 Criando uma Interface Modular Envolve a criação das três classes descritas anteriormente:  “Metaporta” de entrada.  “Metaporta” de saida.  Canal. Esse processo pode ser dividido em nos seguintes passos:  Declaração das classes.  Adicionando sinais e portas.  Adicionando funções de “binding”.  Definindo funções de transferência.

3 Declaração das Classes Exemplo: // Input port. template class RV_in { public: CYN_METAPORT;... // Output port. template class RV_out { public: CYN_METAPORT;... // Ready/valid chanel class. template class RV { public: typedef RV_in in; typedef RV_out out;....

4 Declaração das Classes Características:  O nome da classe canal(RV) é o nome que será utilizado pelos módulos que usarão a interface modular.  Os “typedef” utilizados no canal permitem que as “metaportas” possam ser referenciados pelo canal. RV >::in DIN;

5 Declaração das Classes Caracteristicas:  São classes de C++.  Diretiva CYN_METAPORT.  Utilização de templates. template. O simbolo T pode ser usado no código fonte.

6 Adicionando sinais e portas Na classe RV_in, teremos: sc_out rdy; sc_in vld; sc_in data; Na classe RV_out, teremos: sc_in rdy; sc_out vld; sc_out data; Na classe RV, teremos: sc_signal rdy; sc_signal vld; sc_signal data;

7 Adicionando sinais e portas Características:  Essa declaração resultará em portas e sinais no modelo RTL gerado pelo Cynthesizer seguindo a convenção _. Por exemlpo: RV >::in DIN, resultará em: sc_out DIN_rdy; sc_in DIN_vld; sc_in > DIN_data;

8 Adicionando funções de biding As funções de biding são responsáveis por fazer a ligação de todos os sinais de uma interface.Exemplo: u0 = new saxo_light_wrapper("u0"); u0->DIN(DIN); É necessário criar uma função de biding na metaporta.

9 Adicionando funções de biding Função de Biding na classe RRV_in: template void bind( C& c ) { rdy(c.rdy); vld(c.vld); data(c.data); } template void operator() ( C& c ) { bind(c); }

10 Adicionando funções de biding Características:  Operador ( ).  Função bind apenas conecta as portas da metaporta aos membros com o mesmo nome da classe passada no parâmetro.  Utilização de template possibilita a conexão de uma metaporta com um canal ou com outra metaporta.

11 Definindo funções de transferência Funções de transferência são funções das metaportas que executam o protocolo. A Forte recomenda usar a terminologia adotada no padrão OSCI TLM (Transaction-Level Modeling) nas funções.

12 Definindo funções de transferência Funções:  Padrão: put( const T& val ). T get(). nb_put( const T& val ). T nb_get().  Não-Padrão: void reset(). bool poll(). const T& value().

13 Definindo funções de transferência Métodos:  Adicionais: operator T() { return get(); } sc_uint val = DIN; void operator=( const T& val ) { put(val); } DOUT = tmp_doout;

14 Definindo funções de transferência Funções de transferência da classe RV_in: // Reset function void reset() { CYN_PROTOCOL("RV_in_reset"); rdy = 0; } // Blocking get function. T get() { CYN_PROTOCOL("RV_in_get"); rdy = 1; do { wait(); } while ( !vld.read() ); rdy = 0; return data.read(); } // Cast function. Allows the following: // T v = p; operator T() { return get(); }

15 Definindo funções de transferência Funções de transferência da classe RV_out: // Reset function void reset() { CYN_PROTOCOL("RV_out_reset"); vld = 0; data = 0; } // Blocking put function void put( const T& val ) { CYN_PROTOCOL("RV_out"); data.write( val ); vld = 1; do { wait(); } while ( !rdy.read() ); vld = 0; } // C++ assignment operator. void operator=( const T& val ) { put(val); }


Carregar ppt "Criando uma Interface Modular Envolve a criação das três classes descritas anteriormente:  “Metaporta” de entrada.  “Metaporta” de saida.  Canal. Esse."

Apresentações semelhantes


Anúncios Google