Tabla de contenido:

Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 pasos
Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 pasos

Video: Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 pasos

Video: Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 pasos
Video: Mark Geisbrecht "Eigenvalues, invariant and random integer matrices" 2024, Noviembre
Anonim
Integer_Matrix_Solver_UART_SERIAL_VHDL
Integer_Matrix_Solver_UART_SERIAL_VHDL

Este tutorial instructivo le muestra cómo hacer un solucionador de matrices de 2 por 2 implementando un módulo de terminal serie UART, así como un módulo de solucionador de matrices. El usuario podrá ingresar una matriz de 2 por 2 y luego el diseño implementado escupirá la solución al sistema lineal.

Para usar este código, necesitará:

- Una placa FPGA Digilent Basys 3

- Computadora con el software Xilinx Vivado (funcionará Webpack Edition). Para este módulo, usamos la versión 2017.2.

- Un cable micro USB (capacidad de transferencia de datos)

Autores: Drew Miller, EE Major, Cal Poly SLO, Sukhdeep Singh, EE Major, Cal Poly SLO Clase: Diseño digital

- Instructor EE / CPE 133: Joseph Callenes

Fuentes:

  • UART_TX, UART_RX desde:
  • Rebote de:

Función para la división de dos números sin firmar:

Paso 1: Paso 1: Cómo funciona

Paso 1: cómo funciona
Paso 1: cómo funciona
Paso 1: cómo funciona
Paso 1: cómo funciona

Entradas: el usuario ingresa un sistema lineal en la terminal de la computadora y luego un módulo UART los convierte en una matriz para que el módulo de resolución de matrices los manipule. El módulo UART interactúa con el usuario y le permite ingresar la matriz apropiada, así como guiarlo para ingresar datos correctamente. El sistema también tiene un interruptor de reinicio / habilitación asignado al interruptor más a la izquierda de la placa Basys3.

Salidas: Los resultados del solucionador de matrices se pasan a través de la interfaz del módulo UART y luego se muestran en el terminal de la computadora con las soluciones enumeradas en la pantalla. El solucionador de matrices envía vectores lógicos estándar sin firmar al módulo UART, que los convierte en salidas más fáciles de usar para que el usuario las aprecie. El solucionador de matrices actual solo puede tener números hasta 15 ingresados y el resultado de salida debe ser un entero limpio o el programa del solucionador de matrices no puede generar la solución correcta.

Módulo de "control serial" de nivel superior: el usuario ingresa su sistema lineal deseado en este módulo a través de los módulos UART_TX y UART_RX y convierte las entradas del terminal de computadora en una matriz de vectores lógicos estándar que son procesados por el módulo de resolución de matrices. El módulo de resolución de matrices luego devuelve una matriz de vectores lógicos estándar que luego se muestran en la pantalla por la interfaz serial UART. La transmisión y recepción de datos a través de los módulos UART se logra mediante el uso de un FSM muy extenso en este módulo.

Módulo UART_TX: el usuario ingresa un vector lógico estándar de 8 bits y una señal de envío para enviar datos a través de la interfaz USB. Mientras envía datos, la señal TX_Active es alta. Una vez que ha enviado los datos, la señal TX_Done pulsa.

Módulo UART_RX: el usuario recibe 8 bits de datos a la vez desde la interfaz USB. Un pulso de RX_DV es una indicación de que se han recibido datos y que se puede leer la lógica vectorial RX_Byte.

Módulo de solucionador de matrices: el solucionador de matrices recibe una matriz imputada del módulo UART que representa la matriz. El solucionador de matrices luego convierte cada número en el sistema lineal en enteros para facilitar su operación. Dentro del módulo del solucionador de matrices hay varios submódulos. El primer submódulo es inverse_matrix_1 que toma la matriz y luego da la inversa de la matriz dada. El siguiente submódulo es el multiplicador que multiplica total_matrix por la matriz inversa utilizando operaciones matriciales estándar. Finalmente, el módulo maestro los mapea juntos para generar una única respuesta.

Paso 2: Paso 2: Programación de la placa Basys 3

Una vez que haya adquirido el código fuente de abajo, cárguelo en la placa basys 3 para usar la interfaz.

reference.digilentinc.com/basys3/refmanual

Paso 3: Paso 3: Cómo usarlo

Utilice una interfaz en serie a 9600 baudios para comunicarse con Basys3 UART. Usé la pantalla en Linux con el siguiente comando:

pantalla / dev / ttyUSB1 9600

Para hacer esto en Linux, tuve que agregar mi usuario al grupo "dialout". En Windows, putty debería funcionar, y en MacOSX, debería ser un proceso similar al de Linux.

Al mover el interruptor más a la izquierda a la posición de encendido, se inicia el solucionador de matrices. Al apagarlo, se restablece el solucionador de matrices.

Recomendado: