EDA (Quartus II) -el diseño del generador de señal sinusoidal

Tabla de contenido

Objetivo:

Vista previa del experimento:

Principio experimental:

Proceso del módulo LPM_ROM personalizado:

1. Personalice el archivo de datos de inicialización y cree un archivo con formato .mif

 2. Componentes personalizados de LPM_ROM

3. Construya un proyecto sobre los archivos generados, compile y simule y genere componentes rom_1.

Opción 1: emular componentes ROM

Experimente la tarea uno

Tarea experimental dos

Electiva 2: Simulación del diseño de nivel superior

El primer método (usando el analizador lógico SignalTap II)

El segundo método: (simulación con Modelsim)

Tarea de experimento tres

Tarea 1:

Tarea 2:


Objetivo:

Familiarícese más con Quartus II y el uso de recursos de hardware LPM_ROM y FPGA.

Vista previa del experimento:

Personalice el proceso del módulo LPM_ROM.

Principio experimental:

     EDA es la automatización de diseño electrónico, el objeto es el diseño de circuito digital, pero el diseño del generador de señal sinusoidal es un diseño de circuito analógico, por lo que se necesita un convertidor D / A.

     Según la forma de onda del generador de señal sinusoidal, se sabe que la entrada de este experimento es el tiempo y la salida es la amplitud. Si la amplitud de la onda sinusoidal en la unidad de almacenamiento de memoria de la ROM 64 , de acuerdo con la función de que la ROM, los datos y la dirección ROM es una relación, el diseño se convierte por la relación correspondiente entre el tiempo y la amplitud para el tiempo y dirección La relación correspondiente. En consecuencia, para obtener una señal sinusoidal, es necesario diseñar un contador binario de 6 bits . La siguiente figura muestra el diagrama de bloques de diseño general:

Figura 1 Diagrama de bloques del diseño general del generador de señal sinusoidal

 

     En muchas situaciones prácticas, debe usar módulos de megafunción para usar las funciones de hardware de algunos dispositivos específicos de Altera, como varias memorias en chip, módulos DSP, etc. Estos macro bloques de función, que se pueden llamar convenientemente en forma de gráficos o módulos de lenguaje de descripción de hardware, han mejorado enormemente la eficiencia y confiabilidad del diseño electrónico basado en la tecnología EDA.

LPM es la abreviatura en inglés de Library of Parameterized Modules. De acuerdo con las necesidades de diseño del circuito real, seleccione el módulo apropiado en la biblioteca LPM y establezca los parámetros apropiados para que satisfaga sus necesidades de diseño, de modo que pueda llamar fácilmente al hardware de excelentes técnicos de ingeniería electrónica en sus propios proyectos. .

Los módulos de función LPM son ricos en contenido. Las funciones, los significados de los parámetros, los métodos de uso, la configuración de los parámetros del módulo de lenguaje de descripción del hardware y los métodos de llamada de cada módulo se pueden encontrar en la ayuda de Quartus . El método es seleccionar la ayuda àMegafunction / LPM mando.

Proceso del módulo LPM_ROM personalizado:

1. Personalice el archivo de datos de inicialización y cree un archivo con formato .mif

(1) Abra el editor de formas de onda arbitrarias Mif Mif_Maker2010 [El software ha cargado la biblioteca de recursos] , seleccione " Establecer forma de onda" - "Parámetros globales", modifique la longitud de los datos a 64 y el ancho de los datos a 8 , como se muestra en la Figura 1.

Establecer longitud de datos, ancho de bits y formato de datos

 

(2) Seleccione " Establecer forma de onda" - "Onda sinusoidal", como se muestra en la Figura 2.

 Establecer la forma de onda

(3) Elija guardar en el archivo y guárdelo en la carpeta D: / myfile / sinve [Se recomienda guardarlo en el directorio del archivo de proyecto que se utilizará] . Tenga en cuenta que sinve es el directorio de la biblioteca de trabajo, ya que se muestra en la Figura 3.

Guarde el archivo rom.mif personalizado

(4) Abra el archivo rom.mif en el software QuartusII, como se muestra en la Figura 4.

  Abra el archivo rom.mif en QuartusII  

 2. Componentes personalizados de LPM_ROM

(1) Abra el menú Herramientas y seleccione "MegaWizard Plug-In Manager", como se muestra en la Figura 5 a continuación.

Busque el menú de MegaWizard Plug-In Manager

(2) Haga clic para abrir el cuadro de diálogo inicial de MegaWizard Plug-In Manager y elija crear un nuevo módulo de función macro, como se muestra en la Figura 6.

Cuadro de diálogo inicial de MegaWizard Plug-In Manager

(3) Haga clic en "Siguiente", seleccione el bloque de función macro (ROM: 1-PORT) , utilice el dispositivo (ACEX1K ), la información del archivo de salida (tipo de archivo: VerilogHDL; dirección del archivo: D: \\ myfile \ sinve \; nombre del archivo : Rom_1 ), como se muestra en la Figura 7.

Seleccione el bloque de función macro, use el dispositivo, envíe la información del archivo

(4) Haga clic en "Siguiente", seleccione el módulo ROM para almacenar el número de bits de datos y el ancho de la línea de dirección (es decir, la capacidad de almacenamiento) , como se muestra en la Figura 8.

Seleccione la línea de datos del módulo ROM y el ancho de la línea de dirección

(5) Haga clic en "Siguiente", seleccionado de la señal de bloqueo de dirección de selección en el bloqueo, como se muestra en la FIG.

Seleccione la señal de bloqueo de dirección en el bloqueo

(6) Haga clic en "Siguiente" para importar el archivo .mif personalizado, [el paso más importante]

Importar archivos .mif personalizados

(7) La biblioteca de simulación predeterminada, como se muestra en la Figura 11, no realiza ninguna selección.

 Biblioteca de simulación predeterminada

(8) Seleccione el tipo de archivo que se generará, rom_1.v se genera de forma predeterminada y puede elegir libremente dejar que el sistema genere más archivos. [Se recomienda marcar las tres últimas casillas]

Seleccione el tipo de archivo que se generará

3. Construya un proyecto sobre los archivos generados, compile y simule y genere componentes rom_1.

(1) Primero busque el archivo generado rom_1.v en la carpeta D: \\ myfile \ sinve \;

(2) Establezca rom_1.v como el proyecto actual y compílelo;

(3) Haga clic en Archivo-Crear / Actualizar-Crear archivos de símbolo para el archivo actual para generar componentes rom_1, como se muestra en la Figura 13.

Generar componentes rom_1

(4) Haga clic en File-New-BlcokDiagram / Schematic File, en la interfaz recién aparecida, haga clic izquierdo y haga doble clic, aparece la siguiente interfaz, haga doble clic en rom_1, la interfaz aparecerá rom_1 componentes.

Encuentra el componente rom_1

Opción 1: emular componentes ROM

(1) Vuelva a crear un proyecto y su código fuente de archivo es como se muestra en la siguiente figura:

(2) Compile el proyecto para generar una plantilla de banco de pruebas simulada. El método de generación es hacer clic en Procesamiento-Inicio-Iniciar escritura de plantilla de banco de pruebas, como se muestra en la Figura 15 a continuación.

Generar plantilla de banco de pruebas de simulación

(3) Abra la carpeta sinve-simulation-modelsim, busque el archivo Verilog_Ip_ROM.vt y ábralo, como se muestra en la Figura 16.

Busque el archivo Verilog_Ip_ROM.vt

 (4) Modifique el contenido de inicialización del banco de pruebas como se muestra a continuación.

    

(5) Configure el banco de pruebas, haga clic en Assignments-Settings-Simulation, seleccione como se muestra en la Figura 17, donde el nombre del banco de pruebas es el nombre del módulo del archivo Verilog_Ip_ROM.vt.

  Configurar el banco de pruebas

(6) Haga clic en Herramientas-Ejecutar herramienta de simulación-Simulación RTL, como se muestra en la figura siguiente, use Modelsim para simular.

Elija una herramienta de simulación

(7) El resultado de la simulación se muestra en la Figura 19. Tenga en cuenta que haga clic con el botón derecho en la señal y seleccione el modo de visualización como

resultados de la simulación de modelsim

De acuerdo con el proceso del módulo LPM_ROM personalizado descrito anteriormente, complete las siguientes tareas experimentales.

Experimente la tarea uno

De acuerdo con el método de uso del módulo de megafunción QuartusⅡ anterior, seleccione "LPM-COUNTER" en "Aritmética" para diseñar un contador de 6 bits, construir un proyecto, compilar y simular el archivo counter1.v generado y generar componentes counter64.

Nota: Selección del bloque de función macro de contador:

Seleccionar bloque de función macro de contador

Tarea experimental dos

Complete el diseño completo del generador de señal sinusoidal y proporcione su forma de onda de temporización y análisis.

 Diseño completo de generador de señal sinusoidal

Electiva 2: Simulación del diseño de nivel superior

El primer método (usando el analizador lógico SignalTap II)

(1) Bloquee el pin clk en el reloj del sistema. El pin del reloj debe leerse en el manual de usuario de Youjing. Se proporciona directamente aquí, que es AF14. Luego compila todo el proceso.

Bloqueo de clavija de reloj

(2) Haga clic en File-New-signalTap II Logic Analyzer File, como se muestra en la Figura 23.

Seleccione el archivo del analizador lógico signalTap II

(3) En la interfaz emergente, seleccione la configuración y agregue el reloj del reloj de muestreo, como se muestra en la Figura 24 a continuación.

Agregar reloj de muestra

(4) Haga doble clic para agregar la señal de salida q [7: 0] en el lugar que se muestra en la figura.

Agregar otra señal

(5) Seleccione Archivo-Guardar como, ingrese el nombre de archivo de SignalTap II como stp1.stp (nombre de archivo y sufijo predeterminados), haga clic en el botón "Guardar" y aparecerá un mensaje: "¿Desea habilitar SignalTap II ... ", debe hacer clic en el botón" Sí "para indicar que acepta empaquetar este archivo SignalTap II con el proyecto para la síntesis / adaptación cuando vuelva a compilar, de modo que pueda descargarse en el chip FPGA para completar la tarea de prueba en tiempo real .

Archivo guardado como .stp

(6) Haga clic en el comando Procesamiento-Iniciar compilación para iniciar la compilación completa.

(7) Vuelva a abrir, haga clic en Tools-SignalTap II Logic Analyzer, como se muestra en la Figura 27.

 Analizador lógico abierto signalTap II

(8) Haga clic en el botón Configurar a la derecha para confirmar el modo de programador, como USB-Blaster. A continuación, haga clic en el botón Escanear cadena junto al cuadro de la tabla Dispositivo a continuación para escanear la placa de desarrollo. Si el nombre del modelo FPGA aparece en la placa, significa que la comunicación JTAG del sistema es normal y puede descargarlo. Presione el botón "...", seleccione el archivo SOF, haga clic en la etiqueta de descarga a la izquierda y observe la información de descarga en la esquina inferior izquierda.

Configuraciones de descarga

(9) Inicie SignalTap II para el muestreo y el análisis, haga clic en el nombre de instancia auto_sin y luego haga clic en el botón Autorun Analysis en el menú Processing para iniciar el muestreo continuo de SignalTap II. La forma de onda de muestreo se muestra en la siguiente figura.

        Inicie SignalTap II para muestreo y análisis

El segundo método: (simulación con Modelsim)

El proceso es el mismo que la simulación rom_1, las diferencias se enumeran a continuación:

(1) Convierta el archivo .bdf de nivel superior en un archivo .V, como se muestra en la Figura 30 a continuación, haga clic en Archivo-Crear / Actualizar-Crear archivo de diseño HDL desde el archivo actual.

Convierta el archivo .bdf de nivel superior en un archivo .V

(2) Después de generar la plantilla del banco de pruebas, modifique el contenido inicial del banco de pruebas como se muestra en el siguiente código.

(3) La forma de onda de simulación de modelim del diseño de nivel superior se muestra en la Figura 31.

Modelim simulación de forma de onda de diseño de nivel superior

Tarea de experimento tres

Diseño de verificación de hardware de la función del generador de señal sinusoidal.

1 El modo de circuito experimental se puede seleccionar

2 Este experimento necesita utilizar el módulo de expansión DAC0832, como se muestra en la Figura 32. Nota: Si el módulo de expansión está conectado al sistema principal para su uso, se debe seleccionar el enchufe + -12V del sistema principal, como el módulo de experimento 3 de nuestra caja de experimento.

Módulo estándar DAC y ADC de doble canal

   Entre ellos: la marca "6" es el terminal de control de DA0832, y el usuario puede controlarlo de acuerdo con el manual 0832. La etiqueta "7" es el terminal de entrada de datos del canal 0832 B. La etiqueta "8" es el terminal de entrada de datos del canal A del 0832. Las marcas "10, 12" son la salida del canal A / B conectada al puerto del osciloscopio respectivamente. Las etiquetas "11, 13" son los posicionadores que ajustan la amplitud del canal A / B. Además, hay una tapa de puente en el lado izquierdo del 0832, que es una opción de filtro, como sin filtro al saltar hacia abajo y filtrado al saltar.

 3 El puerto de datos de 8 bits D [7..0] de DAC0832 se puede conectar a cualquiera de los 8 puertos de expansión del puerto de 80 núcleos de FPGA, como DB15 ~ DB10 y DBT1, DBT0; la señal de reloj está conectada a clockB0 del sistema.

Tarea 1:

Diseñe cualquiera de las ondas triangulares, cuadradas y de diente de sierra.

Consejo: simplemente modifique los datos almacenados en la ROM.

Tarea 2:

Diseñe un generador de señales que pueda generar ondas triangulares, ondas cuadradas, ondas sinusoidales y ondas de diente de sierra.

Consejo: utilice el multiplexor.

     Formas de onda del analizador lógico SignalTap con diferentes entradas de múltiples generadores de señales

Resumen y análisis del experimento

 

Supongo que te gusta

Origin blog.csdn.net/XZ_ROU/article/details/113813619
Recomendado
Clasificación