Los términos siguen cambiando con el tiempo, pero uno tiene que empezar a mirar las definiciones adoptadas por el grupo de estandarización de SystemC TLM2.0. El trabajo llevó a la definición de dos estilos de codificación:
- Tiempo suelto (desacoplamiento temporal, solo detalles de tiempo suficientes para iniciar O / S y ejecutar sistemas de varios núcleos)
- Tiempo aproximado (ciclo aproximado, recuento de ciclos preciso, suficiente
detalles para la exploración arquitectónica)
1)
La precisión del pin está en el nivel de interfaz que es la parte de comunicación del modelo. El modelado de nivel de transacción oculta los pines mediante el uso de llamadas de función entre diferentes procesos. Las funciones se implementan a nivel de canal o proporcionadas por los mecanismos de exportación. Siempre que su banco de pruebas / modelo no tenga el propósito de comunicarse con RTL listo para síntesis con pines reales, TLM suele ser suficiente y más rápido en términos de tiempo de simulación. La precisión de bits es la forma en que sus datos se representan dentro de sus procesos de computación. La precisión de sus diferentes rutas de datos es que las operaciones ALU, las operaciones DSP, las representaciones de píxeles, etc. En el sistema C, por ejemplo, si no está muy preocupado por el formato de sus datos, entonces también puede utilizar Tipos de datos C ++ como int para acelerar el tiempo de simulación. Pero si desea investigar los datos desde la perspectiva del ancho de bits, el truncamiento, la saturación, etc., debería utilizar los tipos de datos integrados del sistema C y definir su propio tamaño de los vectores. Inconveniente: menor tiempo de simulación.
Ahora, puede ver que ambos conceptos no están necesariamente correlacionados, como puede ser, por ejemplo, en una situación en la que desea que su modelo de cálculo sea preciso en formato de datos (precisión de bit) mientras que le importa o no cómo lo envía o produce para otros procesos y termine usando las funciones TLM (sin precisión de pin), y al revés.
2)
Para un modelo RTL, precisión funcional no significa necesariamente precisión de bits. (Acordamos que la precisión de los pines está fuera del juego aquí). Puede garantizar la corrección de la funcionalidad sin utilizar un ancho de bit definido en su modelo. Si está modelando un multiplicador, puede escribir C = A * B en su modelo y el resultado se calcula por medio de un software de simulación y se compara con el resultado de su tal vez el multiplicador RTL Pipelined. La función / resultado sigue siendo correcta siempre que use suficientes bits en su modelo pero no tiene que ser exactamente el mismo.
Ahora, para la precisión de la sincronización, imagine que tiene una interfaz SPI que lee datos muestreados de un ADC cada 40 ns. En su RTL, usará un reloj, un contador, una condición para verificar que el contador haya alcanzado suficientes ciclos para hacer 40 ns y luego iniciar la operación de lectura. Puede hacer lo mismo en su modelo con una sola instrucción de espera sin siquiera usar un reloj. Ahora, su modelo no tiene un ciclo preciso, pero es preciso en el tiempo :)