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).

Así, lo único que varía en este modo respecto al modo untimed es que en este caso la función b_transport llama a wait(), y por tanto permitir que el tiempo de simulación aumente. Este wait lo hará el target (dentro de la función b_transport), y viene a modelar el tiempo que tarda ese dispositivo en responder a la transacción, por ejemplo el tiempo de acceso a una memoria, o el tiempo que tarda un contrlador I2C en darnos un dato de una FLASH externa….

Recupera pues el ejemplo del modo untimed, que con eso casi casi lo tenemos ya todo.

Fíjate que el segundo parámetro de la función b_transport (de tipo sc_time) seguirá siendo cero. Este parámetro nos servirá para el caso que usemos temporal decoupling, ya que es ahí donde indicamos el tiempo por delante de la simulación que lleva la transacción en curso. De eso hablaremos en el próximo ejemplo de la serie.

Date cuenta que este modo es el más habitual, ya que es sencillo de usar debido a que usamos el método bloqueante, y nos permite anotar tiempos, y por tanto tener una simulación que nos dará información de cuánto tarda un proceso en ejecutarse, cuánto tiempo de ejecución se necesita par completar una tarea, etc.

Y hasta aquí este “ejemplo”, ya ves que no hay mucha diferencia en cuanto a código respecto al modo untimed, aunque sí la hay en concepto y resultados que se pueden obtener. El código lo tienes disponible aquí.

This entry was posted in Ejemplos and tagged , , , , , . Bookmark the permalink. Follow any comments here with the RSS feed for this post. Post a comment or leave a trackback.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Your email address will never be published.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.