Ejemplo de diseño de memoria AXI de demostración

Recomendado para:

  • Dispositivo: Desconocido

  • Quartus®: v13.0

author-image

Por

Este ejemplo de diseño muestra una interfaz esclavo AMBA* AXI*-3 en un componente simple de memoria personalizada Verilog para sistemas Qsys. Puede utilizar este ejemplo como base para sus propias interfaces esclavos AXI personalizadas. El componente también incluye una interfaz Avalon® Streaming (Avalon-ST) opcional e interfaz Avalon® Memory-Mapped (Avalon-MM), lo que demuestra cómo se pueden utilizar varios estándares de interfaz en un solo componente.

El Manual Quartus® II utiliza este ejemplo para ilustrar el proceso de empaquetar un componente de propiedad intelectual (IP) con el Editor de componentes y comandos de Tcl de hardware personalizados. Puede utilizar los archivos HDL en este ejemplo para ayudarle a aprender a utilizar el Editor de componentes para crear su propio archivo Tcl de hardware simple (_hw.tcl), como se describe en el capítulo Creación de componentes de Qsys (PDF). También puede hacer referencia al archivo _hw.tcl incluido para ver los usos avanzados de los comandos de Tcl de hardware, incluidos los parámetros derivados, una devolución de llamada de validación y una devolución de llamada opcional para personalizar la interfaz de usuario de parameterización en Qsys e interfaces actuales como opcionales. Para obtener información detallada sobre los comandos de Tcl de hardware, consulte el capítulo Component Interface Tcl Reference (PDF).

Para obtener más información sobre el uso de Qsys para crear un sistema que incluye componentes personalizados, consulte el capítulo Creación de un sistema con Qsys (PDF) en el Manual Quartus II.

Utilizando este ejemplo de diseño

Descargue el archivo demo_axi3_memory.zip y extraiga el contenido. Este ejemplo de diseño requiere la Altera® Complete Design Suite (ACDS) v13.0 o posterior.

El archivo ZIP incluye los siguientes archivos de componente de IP en el subdirectorio /ip:

  • Los archivos de diseño demo_axi_memory.sv y single_clock_ram.sv

  • El archivo Tcl de hardware personalizado demo_axi_memory_hw.tcl para empaquetar el componente para Qsys
  • Archivo de paquete SystemVerilog utilizado para generar mensajes en resultados de simulación, /verification_lib/verbosity_pkg.sv (que también se puede encontrar en el directorio de instalación del software Quartus II como /ip/altera/sopc_builder_ip/verification/lib/verbosity_pkg.sv)

Para utilizar este componente en su propio sistema de Qsys, copie el subdirectorio /ip del archivo ZIP extraído al directorio del proyecto Quartus II. Cuando crea o abre un sistema Qsys en el proyecto, Qsys detecta el componente de IP en el subdirectorio /ip y agrega el componente a la lista en la sección Proyecto de la biblioteca,en la categoría Memorias y controladores de memoria/On-Chip.

El archivo ZIP también contiene los siguientes archivos para simular el componente independiente en el subdirectorio /ip/simulation:

  • Un archivo testbench tb_mem.sv
  • Un script run_sim.tcl para realizar una simulación en Mentor Graphics® ModelSim* con un archivo de mem.do para mostrar formas de onda que muestran el funcionamiento de los componentes.

Para ejecutar una simulación en ModelSim, establezca el directorio de trabajo en el subdirectorio /ip/simulation del archivo ZIP extraído. Escriba source run_sim.tcl.

Además, el archivo ZIP contiene los siguientes archivos de software Quartus II:

  • Una simple prueba del sistema Qsys test.qsys para ilustrar la creación de instancias del componente en un sistema Qsys
  • Un archivo de proyecto de software deivo de Quartus II que le permite, opcionalmente, generar y compilar el sistema de prueba de Qsys: test.qpf, test.qsf, test.sdc

Para ver los componentes que se crearon como parte del sistema de prueba de Qsys, abra el archivo de proyecto test.qpf en el software Quartus II y abra el archivo test.qsys en Qsys. Haga doble clic en el componente en la columna Nombre o Descripción de la ficha Contenido del sistema (o haga clic con el botón derecho en el componente y elija Editar)para ver el editor de parámetros.

El uso de este diseño se rige por los términos y condiciones del Contrato de licencia de ejemplo de diseño de Intel®y están sujetos a ellos .

Detalles de diseño

El ejemplo del componente Qsys incluye las siguientes interfaces:

Interfaz esclavo AXI-3

La interfaz esclavo AXI es una interfaz mapeada por memoria a un bloque de memoria en el chip. Esta interfaz está diseñada para ser controlada por una interfaz principal AXI o Avalon-MM, que puede escribir en y leer desde el bloque de memoria. Los parámetros especifican los anchos de señal de ID AXI, el ancho de dirección esclavo y el ancho de datos.

Interfaz Avalon-ST

Cuando crea una instancia de este componente en Qsys, puede elegir habilitar o deshabilitar la interfaz de origen Avalon-ST opcional. Esta interfaz se inspiró en las aplicaciones de telefonía, en las cuales los tonos (DTMF, busy, dial tone, ringback, etc.) se almacenan como flujos de bytes que se pueden cambiar según sea necesario a un puerto determinado. El puerto Avalon-ST proporciona una de esas transmisiones, que se define como una dirección de inicio, una dirección stop y los datos almacenados en la RAM entre esas dos direcciones, inclusive. Las palabras se salidan en orden desde la dirección de inicio hasta la dirección stop; cada palabra genera MSB en primer lugar. Esta versión de demostración da por sentado que la dirección de detención es mayor que la dirección de inicio.

Por ejemplo, considere el siguiente contenido de memoria:
dirección de inicio: 0xbeef_0742
0xdace_32f7
dirección stop: 0xb0de_13ef
La secuencia byte resultante sería: be-ef-07-42-da-ce-32-f7-b0-de-13-ef-be-ef-07 ...

Interfaz AVALON-MM MEZZANINE

La interfaz Avalon-MM es una interfaz simple de registro de control y estado (MEZZANINE), para controlar el puerto de transmisión descrito anteriormente. Esta interfaz solo se requiere cuando la interfaz Avalon-ST está activada y deshabilitada cuando la interfaz Avalon-ST está deshabilitada. Los parámetros especifican el ancho de dirección esclavo Avalon® y el ancho de datos.

Los registros de control se encuentran en un rango de direcciones separado del rango de direcciones de la memoria, y su dirección base puede asignarse en cualquier lugar conveniente en el mapa de memoria del sistema. La tabla siguiente enumera el propósito de cada registro de control:

Editor de parámetros Qsys

La siguiente captura de pantalla muestra la interfaz de usuario del editor de parámetros para el componente de memoria AXI de demostración en Qsys.

El contenido de esta página es una combinación de la traducción humana y automática del contenido original en inglés. Este contenido se ofrece únicamente para su comodidad como información general y no debe considerarse completa o precisa. Si hay alguna contradicción entre la versión en inglés de esta página y la traducción, prevalecerá la versión en inglés. Consulte la versión en inglés de esta página.