Fundamentos de FPGA - Interfaz de lenguaje de programación

Tabla de contenido

objetivo de aprendizaje:

Contenido de aprendizaje:

1. Uso de PLI

2. Conexión y llamada de tareas PLI

3. Adquisición de datos internos

4. Subrutina de biblioteca PLI

tiempo de estudio:

Resultados de aprendizaje:


objetivo de aprendizaje:

Explicar cómo usar las subrutinas PLI en la simulación de Verilog.

Describa el propósito del PLI.

Defina tareas y funciones del sistema definidas por el usuario, así como subrutinas C definidas por el usuario.

Comprender la conexión y la invocación de tareas del sistema definidas por el usuario.


Explicar conceptualmente cómo se representa PLI dentro de un simulador Verilog


Distinga y describa cómo usar dos tipos de subrutinas de biblioteca PLI: subrutinas de acceso y subrutinas de utilidad.

Aprenda a crear tareas y funciones del sistema definidas por el usuario y aprenda a usarlas en la simulación.


Contenido de aprendizaje:

1. Uso de PLI

Debido a que PLI permite a los usuarios definir su propia utilidad para acceder (leer, escribir o modificar) la estructura de datos interna que representa el diseño, tiene una poderosa capacidad para ampliar la funcionalidad del lenguaje Verilog. PLI tiene muchos usos, como sigue:

PLI se puede utilizar para definir otras tareas y funciones del sistema. Los ejemplos típicos incluyen tareas de monitoreo, tareas de estimulación, tareas de depuración y operaciones complejas, etc. Estas tareas y operaciones son difíciles de implementar con estructuras estándar de Verilog.

Algún software de aplicación. Herramientas como traductores y cálculos de retardo se pueden escribir en PLI.

PLI se puede utilizar para extraer información de diseño, como la jerarquía. Interconexión, fan-out y número de ciertos tipos de elementos lógicos, etc. PLI se puede utilizar para escribir subrutinas de visualización de salida personalizadas o dedicadas. Visor de forma de onda Úselo para generar formas de onda, interconexiones lógicas, navegadores de código fuente e información jerárquica.

Las subrutinas que proporcionan estímulos para la simulación también se pueden escribir en PLI. Los incentivos pueden generarse automáticamente o transformarse a partir de otras formas de incentivos.

El software de aplicación común basado en Verilog se puede escribir con subrutinas PLI. Este tipo de software puede funcionar con cualquier simulador Verilog, porque la interfaz PLI proporciona un método de acceso unificado.

2. Conexión y llamada de tareas PLI

      Los diseñadores pueden escribir tareas de sistema personalizadas mediante el uso de subrutinas de la biblioteca PLI. Sin embargo, el simulador Verilog debe ser consciente de la existencia de tareas del sistema definidas por el usuario y funciones C definidas por el usuario correspondientes. Esto se logra vinculando las tareas del sistema definidas por el usuario al simulador Verilog.

      Para comprender este proceso, tome como ejemplo una tarea de sistema simple $hello_verilog. Cuando se invoca la tarea $hello_verilog, simplemente genera un mensaje "Helo Verilog World". En primer lugar, la subrutina C para realizar la tarea debe estar definida por la biblioteca PLI. La subrutina hello_verilog en el archivo hello_verilog.c es la siguiente

module hello—top
 initial $hello_verilog;
endmodule

3. Adquisición de datos internos

Antes de entender cómo usar las subrutinas de la biblioteca PLI, primero debemos entender cómo se representa el diseño dentro del simulador. Cada módulo se ve como un conjunto de tipos de objetos. Los tipos de objetos son elementos definidos en Verilog, por ejemplo:

Instancias de módulo, puertos de módulo, rutas de extremo a extremo de módulos y rutas entre módulos Módulos de nivel superior

Instancia primitiva y puerto primitivo (terminal)

Tipo de red ( net ), tipo de registro ( register ), tipo de parámetro ( parámetro y specparam ) entero, tiempo y variables reales

verificación de tiempo

evento nombrado

4. Subrutina de biblioteca PLI

Las subrutinas de la biblioteca PLI proporcionan una interfaz estándar para acceder a las estructuras de datos internas que representan el diseño. Las subrutinas C definidas por el usuario escritas para definir las propias tareas del sistema del usuario se escriben con subrutinas de la biblioteca PLI. En el ejemplo de la Sección 13.2, Shello._verilog es una tarea del sistema definida por el usuario, hello_verilog es una subrutina C definida por el usuario e io_printf es una subrutina de biblioteca PLI.

Hay dos categorías de subrutinas de biblioteca PLI: subrutinas de acceso y subrutinas de utilidad. Tenga en cuenta que vpi_subroutines es un conjunto extendido de subrutinas de acceso y utilidades, que no se tratan en este libro.


tiempo de estudio:

提示:这里可以添加计划学习的时间

20230620


Resultados de aprendizaje:

提示:这里统计学习计划的总量

      La interfaz PLI proporciona un grupo de subrutinas de interfaz Ji en lenguaje C para leer, escribir y extraer la información de la estructura de datos interna del diseño. Los diseñadores pueden escribir sus propias tareas del sistema para completar varias funciones prácticas.
      La interfaz PLI está disponible para monitores, depuradores, traductores de formato, herramientas de cálculo de latencia, generadores automáticos de estímulos, generadores de archivos de volcado y otras utilidades.
      Las tareas del sistema definidas por el usuario se realizan mediante subrutinas C definidas por el usuario correspondientes. La subrutina C llama a las funciones de la biblioteca PLI.

     · Notificar al emulador El proceso de asociar una nueva tarea del sistema definida por el usuario con la subrutina C del usuario correspondiente se denomina vinculación. El emulador es diferente y el proceso de conexión también es diferente.
      Las tareas del sistema definidas por el usuario se llaman de manera similar a las tareas del sistema estándar de Verilog. Por ejemplo, llamar a $heilo_verilog() es coherente con las llamadas de tareas del sistema estándar. Cuando se inicia la tarea del sistema definida por el usuario, se ejecuta la correspondiente subrutina de C definida por el usuario hello_verilog.
       En el simulador Verilog, se utiliza una gran estructura de datos compuesta por varias colecciones de objetos para representar el diseño. Se puede acceder a las estructuras de datos internas a través de las subrutinas de la biblioteca PLI.
       Las subrutinas de acceso (acc) y las subrutinas de utilidad (tf) son dos tipos de subrutinas de biblioteca PLI.
       Las subrutinas de utilidad representan la primera generación de Verilog PLI. Las subrutinas de utilidad se utilizan para transferir datos de un lado a otro entre la subrutina C del usuario y el diseño original de Verilog.

       Las subrutinas de utilidad comienzan con el prefijo tf_. Las subrutinas de utilidad y el manejo de objetos son independientes entre sí. · Las subrutinas de acceso representan la segunda generación de Verilog PLI.

       Las subrutinas de acceso pueden leer y escribir información sobre objetos específicos del diseño. Las subrutinas de acceso comienzan con el prefijo acc_. La subrutina de acceso se utiliza principalmente en la interfaz entre la subrutina C del usuario y la representación de datos internos. Las subrutinas de acceso interactúan con el manejo de objetos.
      El enlace de cambio de valor (VCL) es --- un tipo especial de subrutina de acceso, pueden monitorear el objeto en el diseño. Ejecuta subrutinas de usuario final cuando cambia el objeto supervisado.

Supongo que te gusta

Origin blog.csdn.net/whm128/article/details/131314226
Recomendado
Clasificación