Índice:

Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 etapas
Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 etapas

Vídeo: Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 etapas

Vídeo: Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 etapas
Vídeo: Mark Geisbrecht "Eigenvalues, invariant and random integer matrices" 2024, Novembro
Anonim
Integer_Matrix_Solver_UART_SERIAL_VHDL
Integer_Matrix_Solver_UART_SERIAL_VHDL

Este tutorial instrutível mostra como fazer um solucionador de matriz 2 por 2 implementando o módulo de terminal UART Serial, bem como um módulo de solucionador de matriz. O usuário poderá inserir uma matriz 2 por 2 e, em seguida, o design implementado cuspirá a solução para o sistema linear.

Para usar este código, você precisará de:

- Uma placa FPGA Digilent Basys 3

- Computador com o software Xilinx Vivado (o Webpack Edition funcionará). Para este módulo, usamos a versão 2017.2.

- Um cabo micro USB (capaz de transferência de dados)

Autores: Drew Miller, EE Major, Cal Poly SLO, Sukhdeep Singh, EE Major, Cal Poly SLO Classe: Digital Design

- EE / CPE 133 Instrutor: Joseph Callenes

Fontes:

  • UART_TX, UART_RX de:
  • Debounce de:

Função para divisão de dois números sem sinal:

Etapa 1: Etapa 1: Como funciona

Etapa 1: como funciona
Etapa 1: como funciona
Etapa 1: como funciona
Etapa 1: como funciona

Entradas: o usuário insere um sistema linear no terminal do computador e, em seguida, um Módulo UART os converte em uma matriz para o módulo solucionador de matriz manipular. O módulo UART faz interface com o usuário e permite que ele insira a matriz apropriada, além de orientá-lo para inserir os dados corretamente. O sistema também possui uma chave reset / enable mapeada para a chave mais à esquerda da placa Basys3.

Saídas: Os resultados do solucionador de matrizes são passados pela interface do módulo UART e, em seguida, exibidos no terminal do computador com as soluções listadas na tela. O solucionador de matriz emite vetores lógicos padrão não assinados para o módulo UART, que os converte em saídas mais amigáveis para o usuário apreciar. O solucionador de matrizes atual só pode ter números de até 15 inseridos e o resultado da saída deve ser um número inteiro limpo ou o programa do solucionador de matrizes é incapaz de produzir a solução correta.

Módulo de "controle serial" de nível superior: O usuário insere seu sistema linear desejado neste módulo por meio dos módulos UART_TX e UART_RX e converte as entradas do terminal de computador em uma matriz de vetores lógicos padrão que são processados pelo módulo do solucionador de matrizes. O módulo do solucionador de matrizes retorna uma matriz de vetores lógicos padrão que são exibidos na tela pela interface serial UART. A transmissão e o recebimento de dados por meio dos módulos UART são realizados por meio do uso de um FSM muito extenso neste módulo.

Módulo UART_TX: O usuário insere um vetor lógico padrão de 8 bits e um sinal de envio para enviar dados via interface USB. Enquanto está enviando dados, o sinal TX_Active está alto. Depois de enviar os dados, o sinal TX_Done pulsa.

Módulo UART_RX: O usuário recebe 8 bits de dados por vez da interface USB. Um pulso de RX_DV é uma indicação de que os dados foram recebidos e que a lógica do vetor RX_Byte pode ser lida.

Módulo do Solucionador de Matrizes: O Solucionador de Matrizes recebe uma matriz imputada do módulo UART que representa a matriz. O solucionador de matrizes então converte cada número no sistema linear em inteiros para facilitar a operação com eles. Dentro do módulo do solucionador de matrizes, existem vários submódulos. O primeiro submódulo é o inverso_matriz_1 que pega a matriz e então dá o inverso da matriz dada. O próximo submódulo é o multiplicador que multiplica total_matrix pela matriz inversa usando operações de matriz padrão. Por fim, o módulo mestre os mapeia juntos para gerar uma única resposta.

Etapa 2: Etapa 2: Programação da Placa Basys 3

Depois de adquirir o código-fonte abaixo, carregue-o na placa basys 3 para usar a interface.

reference.digilentinc.com/basys3/refmanual

Etapa 3: Etapa 3: como usá-lo

Use uma interface serial a 9600 baud para se comunicar com o Basys3 UART. Usei o screen no linux com o seguinte comando:

tela / dev / ttyUSB1 9600

Para fazer isso no linux, tive que adicionar meu usuário ao grupo "dialout". No Windows, o putty deve funcionar, e no MacOSX, deve ser um processo semelhante ao Linux.

Girar o botão mais à esquerda para a posição ligado inicia o solucionador de matrizes. Desligá-lo redefine o solucionador de matrizes.

Recomendado: