Precisión funcional y de tiempo de un modelo RTL

2

A veces estoy realmente confundido por el uso abusivo de la jerga en los artículos y libros de diseño de EDA / VLSI. Sin definiciones precisas, le toca al lector hacer una interpretación que es muy ambigua e incorrecta a veces

Me gusta,

  1. ¿Cuál es la diferencia entre la precisión de Pin y la precisión de Bit?

    ¿Se aplica la precisión de los pines a las interfaces de comunicación y la precisión de los bits a los cálculos? ¿No se pueden usar indistintamente?

  2. ¿Es correcto decir que un modelo RTL tiene

    - Functional accuracy == Pin/Bit-accurate
    - Timing accuracy == cycle-accurate ??
    

    Lo que significa que un modelo RTL cuando se simula produce resultados precisos en cada ciclo de reloj. Me he encontrado con artículos donde el autor dice Los modelos precisos de bits y ciclos simulan más rápido que los modelos RTL , lo que sugiere que las simulaciones de modelos RTL son lentas porque son más precisas en términos de precisión funcional y de tiempo.

¿Puede alguien explicar cómo (usando VHDL o el código de Verilog) ?

    
pregunta nurabha

1 respuesta

3

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

    
respondido por el Theo

Lea otras preguntas en las etiquetas