Ejemplo de Loosely-timed

Primero recordemos qué significa el estilo loosely-timed: en este estilo usamos la función bloqueante b_transport y por tanto tenemos dos puntos de sincronización asociados a cada transacción, que corresponden al inicio y al fin de la misma. Estos dos puntos pueden estar en el mismo tiempo de simulación o estar separados (en el caso de tener los dos puntos de sincronización en el mismo instante de simulación, estaríamos en el caso untimed). Continue reading »

Posted in Ejemplos | Tagged , , , , , | Leave a comment

Ejemplo de Untimed

Vamos con el primer ejemplo…

Initiator

Empezamos con los includes de las cabeceras necesarias

#include 

using namespace sc_core;

#include "tlm.h"

#include "tlm_utils/simple_initiator_socket.h"

Primero incluimos systemc (previsible, eh?) y luego tlm.h (también previsible).

Por último incluimos el socket mas sencillo de todos para este ejemplo.

A continuación declaramos la classe Initiator

class Initiator: sc_module

{

public:

tlm_utils::simple_initiator_socket initiator_socket;

SC_HAS_PROCESS(Initiator);

Initiator(sc_module_name name_);

private:

void initiator_thread();

};

Continue reading »

Posted in Ejemplos | Tagged , , , , , | 1 Comment