Red de conocimiento informático - Conocimiento del nombre de dominio - Cómo diseñar un medio sumador usando vhdl, la capa inferior.

Cómo diseñar un medio sumador usando vhdl, la capa inferior.

Guárdelo después de escribir

Establezca el proyecto de diseño en un archivo de proyecto (PROJECT)

Para procesar el proyecto de diseño de entrada, el diseño debe estar en un archivo. , establecido en Proyecto. Si el proyecto de diseño consta de varios archivos de diseño, su archivo principal, es decir, el archivo de nivel superior, debe configurarse en Proyecto. Si desea compilar, simular y probar uno de los archivos subyacentes por separado, primero debe configurarlo en Projcet. Es decir, cuando es necesario compilar, simular, etc. un proyecto de diseño, se establece como proyecto.

Hay dos formas de configurar el proyecto de diseño (como h_adder.gdf) como un archivo de proyecto:

1. Ejecute el menú Archivo ¿Establecer proyecto en archivo actual? que será el actual. El archivo de diseño está configurado en Proyecto. Después de seleccionar este elemento, podrá ver la barra de título encima del menú que muestra la ruta del archivo configurado. (La primera parte es el nombre del archivo de proyecto al que apunta actualmente el compilador). Esto es particularmente importante, y los diseños futuros deberían prestar especial atención a si el camino apunta correctamente. Si ya señala el archivo que se va a compilar, no es necesario volver a configurarlo como proyecto.

2. Si el archivo de diseño no está abierto, ejecute el menú Archivo? ¿Proyecto? Nombre, y luego busque la carpeta y el nombre del archivo en la ventana Nombre del proyecto que aparece. seleccionados como archivos de proyecto.

Paso 4: Seleccionar el dispositivo de destino y compilar

Antes de compilar el archivo, debes seleccionar el dispositivo de destino que finalmente implementará este proyecto de diseño, ejecutar el menú ¿Asignar?Dispositivo, y Aparecerá la ventana Dispositivo. La Familia de dispositivos de esta ventana es la columna de serie del dispositivo. Primero debe seleccionar el nombre de serie correspondiente al dispositivo de destino en esta columna. Por ejemplo, EPM7128S corresponde a la serie MAX7000S, EPF10K10 corresponde a FLEX10K, EP1K30 corresponde a la serie ACEXlK. etc. Para seleccionar el dispositivo EPF10K10LC84-4, la casilla de verificación denominada Mostrar solo las calificaciones de velocidad más rápida debajo de esta columna debe desactivarse para que se muestren todos los dispositivos de calificación de velocidad. Después de completar la selección del dispositivo, presione OK.

Inicia el compilador. Primero seleccione la opción MAX plusII en el menú de la esquina superior izquierda y seleccione el elemento del compilador Compilador en su menú desplegable. Las funciones de este compilador incluyen extracción de archivos netlist, depuración de archivos de diseño, síntesis lógica, asignación lógica y adaptación (síntesis estructural). ), Extracción de archivos de simulación de sincronización y ensamblaje de archivos de descarga de programación, etc. Como se muestra en la Figura 5.

¡Haz clic en Iniciar para comenzar a compilar! Si se encuentra un error, generalmente se le informará al usuario la ubicación y la situación del error. Al hacer doble clic en la barra de mensajes de error en la ventana del Compilador de mensajes, se saltará directamente a la ubicación del error después de eliminar el error.

Nota: La ubicación del error se muestra con un número de color claro en la parte inferior izquierda del componente. Este número se numera automáticamente de forma secuencial cuando el usuario ingresa Símbolo.

Figura 5 Ventana de Compilación

El significado de cada bloque funcional del proyecto en la Figura 5 Ventana de Compilación es el siguiente:

Compiler Netlist Extractor: extractor de archivos netlist del compilador. , este bloque de funciones convierte el archivo esquemático de entrada o el archivo de texto HDL en un archivo netlist y lo verifica en busca de posibles errores. Este módulo también es responsable de conectar archivos de diseño de varios niveles en el diseño de nivel superior. También contiene un lector incorporado para aceptar archivos netlist estándar externos.

? Database Builder: generador de archivos de compilación básico. Este bloque de funciones convierte un archivo netlist de diseño que contiene cualquier nivel en un archivo netlist de un solo nivel para síntesis lógica.

? Logic Synthesizer: Sintetizador lógico, que simplifica la lógica, optimiza la lógica y comprueba los errores lógicos en proyectos de diseño. La salida del archivo netlist después de la síntesis expresa los métodos de conexión más básicos y las relaciones lógicas de los componentes lógicos subyacentes en el proyecto de diseño. La forma en que funciona el sintetizador lógico y cómo se optimiza se puede implementar mediante varias opciones.

? Particionador: particionador lógico si los recursos lógicos del dispositivo de destino seleccionados son demasiado pequeños y el proyecto de diseño es grande, el particionador dividirá automáticamente el proyecto de diseño para que se puedan implementar en múltiples opciones. determinado dispositivo.

?Fitter: Adaptador. También se le llama sintetizador estructural o dispositivo de disposición de cableado. Implementa el archivo netlist obtenido por síntesis lógica, es decir, la relación de conexión básica de los componentes lógicos subyacentes, en el dispositivo de destino seleccionado. Las estrategias y métodos de optimización para el diseño del cableado también se pueden cambiar e implementar configurando algunas opciones.

? Timing SNF Extractor: extractor de archivos netlist de simulación de tiempos. Este bloque de funciones extrae el archivo netlist de simulación de tiempos del archivo generado por el adaptador y lo reserva para pruebas de simulación del proyecto de diseño. Para proyectos de diseño grandes, la simulación funcional generalmente se realiza primero seleccionando la opción Extractor de archivos de lista de red de simulación de función de Extractor SNF funcional en el elemento Procesamiento en la ventana del Compilador.

? Ensamblador: Ensamblador, este bloque de funciones genera archivos de programación/configuración en múltiples formatos según diferentes dispositivos de destino y diferentes ROM de configuración a partir de los archivos generados por el adaptador, como para programación CPLD o POF. archivos (archivos de destino de programación) archivos SOF (archivos de destino SRAM) utilizados para la configuración directa de archivos FPGA que se pueden utilizar para la configuración del microcontrolador de FPGA, así como otros archivos TTF, Jam, JBC y JEDEC, etc.

Paso 5: Simulación de tiempo

A continuación se debe probar la exactitud del proyecto de diseño, es decir, la simulación lógica. En pocas palabras, la simulación consiste en simular artificialmente la señal de entrada y observar la. cambios en la señal de salida y juzgar si cumple con los requisitos de diseño esperados. Los pasos específicos son los siguientes:

1. Cree un archivo de forma de onda. Siga el "Paso 2" anterior para crear un archivo de prueba de forma de onda para este diseño. Seleccione el elemento Archivo y su Nuevo, luego seleccione el elemento Editor de forma de onda... en la ventana Nuevo en el lado inferior de la Figura 1 para abrir la ventana de edición de forma de onda. Como se muestra en la Figura 6.

Figura 6 Ventana de edición de forma de onda

2. Nodo de señal de entrada. Ejecutar menú Nodo → Ingresar Nodos desde SNF. En la ventana emergente (Figura 7), primero haga clic en el botón Lista. En este momento, la ventana izquierda enumerará todos los nodos de señal del diseño. Dado que a veces los diseñadores solo necesitan observar las formas de onda de algunas de las señales, deben usar la tecla "=gt;" en el medio para seleccionar las señales que deben observarse en la columna de la derecha y luego hacer clic en el botón Aceptar. La ventana de edición de formas de onda queda como se muestra en la Figura 8.

Figura 7 Enumera y selecciona los nodos de señal a observar

3. Todas las señales de nodo del medio sumador se han transferido a la ventana de edición de forma de onda que se muestra en la Figura 8. Antes de configurar los niveles de prueba necesarios para las señales de entrada del medio sumador a y b en la ventana de edición, primero configure los parámetros de simulación relevantes. Como se muestra en la Figura 8, desmarque la opción Ajustar a cuadrícula en Opciones para que pueda establecer arbitrariamente la posición del nivel de entrada o establecer el período de la señal del reloj de entrada. Recuerde este punto

Figura 8 Ventana de edición gráfica después de cargar todos los nodos

4. Establezca el ancho del tiempo de simulación. Ejecute la opción Archivo → Hora de finalización del menú y seleccione el dominio de tiempo de simulación apropiado en la ventana de selección de hora de finalización, como 3 segundos (3 microsegundos), para tener un tiempo de observación lo suficientemente largo, pero no establezca la hora demasiado. de lo contrario, la carga de trabajo de simulación es pesada y el tiempo ocupado por la máquina es demasiado largo. El tiempo de simulación predeterminado del software es 1 segundo.

5. Configure la señal de entrada. Ahora es posible configurar los niveles de prueba para las señales de entrada a y b. Como se marca en la Figura 9, use las teclas de función necesarias para agregar niveles apropiados a a y b para que las señales de salida so y co puedan probarse después de la simulación. Si necesita asignar un valor a la señal de entrada a dentro de un cierto período de tiempo, arrastre el mouse al punto inicial del período de la señal, muévalo hasta el final del período, para que se vuelva negro, y luego haga clic en el botón de asignación correspondiente en la caja de herramientas de la izquierda. Si asigna un valor a la señal de principio a fin (hora de finalización), simplemente use el mouse para hacer clic en la posición correspondiente en el área Nombre a la izquierda, y toda la señal se volverá negra, lo que indica que todas están seleccionadas.

Figura 9 Establece el nivel de prueba de la señal de entrada

Inversión de asignación: consiste en invertir la señal en el período de tiempo "negro", como por ejemplo: 0→1, 1→ 0, B9→46

6. Guarde el archivo de forma de onda. Ejecute el menú Archivo →Guardar y presione OK. Dado que el nombre del archivo de forma de onda en la ventana de guardar es el predeterminado (h_adder.scf aquí), puede guardarlo directamente.

7. Ejecute el emulador. Ejecute el menú MAX plusII → opción Simulador y haga clic en el botón Inicio en la ventana emergente del simulador (Figura 10). La Figura 11 es la forma de onda de sincronización después de que se completa la operación de simulación. Si no hay cambios, verifique si la relación de visualización es demasiado grande y haga clic en el botón ampliar o mostrar todo en la Figura 9.

Figura 10 Ventana Simulador

Figura 11 Forma de onda de simulación de medio sumador

El valor en la columna Valor en la figura anterior representa cada valor en la línea vertical (83.0 ns) nivel de señal.

8. Observar y analizar la forma de onda. Es obvio que la forma de onda de sincronización del medio sumador que se muestra en la Figura 11 es correcta. También puede obtener más información sobre el retraso de la señal. La línea vertical en la Figura 11 es la línea de referencia de la prueba. Los 83.0ns marcados encima (igual que el marco de datos de referencia) es la posición de esta línea donde la flecha del mouse (' ' está en el lado derecho de la línea; línea) se muestra en el cuadro Datos de tiempo, es 93,0 ns y la diferencia de tiempo entre los dos se muestra en la pequeña ventana de Intervalo encima de la ventana. En la figura se puede ver que existe un pequeño retraso de 10 ns entre las formas de onda de entrada y salida.

A veces, es necesario observar determinadas señales en grupo para facilitar la observación. Pasos:

①. Seleccione el co en el área Nombre con el mouse para hacerlo todo negro, mantenga presionada la tecla ALT, arrastre el mouse hacia abajo para copiar un co, o después de que esté completamente negro, haga clic derecho → Copiar y luego haga clic derecho en otras áreas en blanco → Pegar; luego copie un modo; O el menú Nodo → Ingresar nodos desde SNF, más un co y así. Se recomienda que co esté encima de so y que los dos queden adyacentes.

②. Mueva el mouse al co de Nombre (no en la "Descripción de la naturaleza de la señal" con la línea roja), presione el botón izquierdo del mouse y arrastre el mouse hacia abajo, suelte el botón izquierdo del mouse y seleccione la señal co, entonces

③. En el área seleccionada (negra), haga clic con el botón derecho del mouse y seleccione Ingresar al grupo... en el menú flotante o ejecute directamente el menú Nodo → Ingresar al grupo..., y aparecerá el cuadro de diálogo del grupo de configuración que se muestra en la Figura 12

Figura 12 Cuadro de diálogo del grupo de configuración

④. Después de seleccionar el sistema base apropiado y seleccionar Aceptar, puede obtener el diagrama de forma de onda que se muestra en la Figura 13.

Figura 13 Resultados de visualización del grupo (decimal)

Nota: En futuras simulaciones, para datos de varios dígitos, haga doble clic en el área Valor para cambiar el formato de visualización de los datos. mostrarse visualmente. El paso 1 no es necesariamente necesario. Pero el bit alto del Grupo es el bit superior de los datos seleccionados y el bit bajo es el bit inferior de los datos seleccionados. Los datos de entrada también se pueden agrupar, lo que a veces resulta conveniente al asignar valores a las señales.

9. Para medir con precisión el retraso entre las formas de onda de entrada y salida del medio sumador, puede abrir el analizador de tiempos seleccionando el elemento MAX plusII en la esquina superior izquierda y la opción Analizador de tiempos. y haga clic en la ventana emergente. Presione la tecla Inicio en la ventana del analizador (Figura 14) y la información de retraso se mostrará inmediatamente en el gráfico. La lista en la fila izquierda es la señal de entrada, la fila superior muestra la señal de salida y la del medio es la cantidad de retraso correspondiente. Esta cantidad de retraso es precisa para el dispositivo EPF10K10LC84-4.

Figura 14 Resultados del análisis de retraso

10 Los componentes del embalaje se almacenan. Vuelva al archivo de diseño de medio sumador h_adder.gdf, ejecute el menú Archivo → Crear símbolo predeterminado y el archivo actual se convertirá en un componente único empaquetado h_adder.sym y se colocará en el directorio especificado en la ruta del proyecto (e: \MYNAME\shiyan_1) para su uso posterior.