CPE 133 Projeto Final Decimal para Binário: 5 etapas
CPE 133 Projeto Final Decimal para Binário: 5 etapas
Anonim
CPE 133 Projeto Final Decimal para Binário
CPE 133 Projeto Final Decimal para Binário

Os números binários são uma das primeiras coisas que vêm à mente quando se pensa em lógica digital. No entanto, os números binários podem ser um conceito difícil para aqueles que são novos nele.

Este projeto ajudará aqueles que são novos e experientes com números binários a dominar a conversão de números decimais. Através da criação de um jogo, testaremos os usuários em suas habilidades de conversão. Este jogo será executado em uma placa Basys3 e programado em Verilog.

Etapa 1: Materiais necessários

Materiais necessários
Materiais necessários

Os seguintes materiais são necessários para fazer este jogo de conversão de decimal em binário:

  • Software Xilinx Vivado Design Suite
  • Digilent Basys3 FPGA Board
  • USB para cabo micro USB

Etapa 2: Configurando o LFSR (Linear Feedback Shift Register)

Configurando o LFSR (Linear Feedback Shift Register)
Configurando o LFSR (Linear Feedback Shift Register)
Configurando o LFSR (Linear Feedback Shift Register)
Configurando o LFSR (Linear Feedback Shift Register)

Um LFSR (Linear Feedback Shift Register) é um módulo usado para gerar números “aleatórios”.

Um LFSR não é completamente aleatório, pois gera números pseudo-aleatórios, que é um processo de geração de números que parecem aleatórios, mas não são.

Um LFSR é um registrador de deslocamento cujo bit de entrada é uma função linear de seu estado anterior, o que significa que o LFSR percorrerá um conjunto de números finitos. Especificamente para este jogo, o LFSR usará apenas 8 bits para limitar o número decimal que pode gerar a 255.

O botão L (btnL) é usado para redefinir o número no LFSR.

Este módulo LFSR não foi criado pelos criadores deste jogo. O módulo LFSR foi criado pelo professor da Carleton University, John Knight. O link para seu módulo está incluído abaixo.

www.doe.carleton.ca/~jknight/97.478/97.478_…

Etapa 3: Configurando o Visor de Sete Segmentos

Configurando o Display de Sete Segmentos
Configurando o Display de Sete Segmentos

Um display de sete segmentos é usado na placa Basys3 e em muitas outras peças de hardware para exibir caracteres alfanuméricos.

O módulo de exibição de sete segmentos usado neste jogo converte um número binário em um número decimal e o exibe como um número decimal.

Utilizando o módulo LFSR discutido anteriormente, um número gerado aleatoriamente será enviado ao Display de Sete Segmentos.

O módulo Display de Sete Segmentos não foi criado pelos criadores deste jogo. O módulo de exibição de sete segmentos foi fornecido pelo professor da California Polytechnic State University, Joseph Callenes-Sloan. O pdf do módulo está anexado abaixo.

Etapa 4: Criando o Módulo de Jogo

Criando o Módulo de Jogo
Criando o Módulo de Jogo
Criando o Módulo de Jogo
Criando o Módulo de Jogo
Criando o Módulo de Jogo
Criando o Módulo de Jogo
Criando o Módulo de Jogo
Criando o Módulo de Jogo

Criar Módulo de Jogo (principal).

Este módulo usará o módulo LFSR para gerar um número aleatório e, em seguida, enviá-lo para a tela de sete segmentos.

O módulo então usa um bloco always que redefine o número aleatório. Isso opera na borda positiva do Botão R (btnR), o que significa que só funcionará quando o Botão R for pressionado.

O segundo bloco sempre opera na transição positiva do relógio (clk). Se o botão C (btnC) for pressionado, isso verificará se o número no visor de sete segmentos é o mesmo que o número de entrada dos interruptores (sw). Este bloco irá levantar um sinalizador (definir o registro de sinalizador (sinalizador) para 1) e alterar o fio de messageVal de acordo com se o usuário ganhou ou perdeu.

O terceiro bloco sempre também opera na transição positiva do relógio. Se o sinalizador for levantado, ele definirá ssegInputVal para o fio de messageVal no Display de sete segmentos. Se a bandeira não for levantada, ele continuará a exibir o número aleatório (randomVal).

Etapa 5: jogar o jogo

Jogando o jogo!
Jogando o jogo!
Jogando o jogo!
Jogando o jogo!
Jogando o jogo!
Jogando o jogo!

Instruções:

  • O usuário pressionará o Botão R para criar um novo jogo ou alterar o número no Display de Sete Segmentos.
  • O usuário irá girar as primeiras 8 chaves para cima (1) ou para baixo (0) para inserir e representar o número binário.
  • O botão C será usado para verificar se o usuário ganhou ou perdeu.
  • Se o usuário ganhou, '111' será exibido no visor de sete segmentos.
  • Se o usuário perder, '0' será exibido no visor de sete segmentos.
  • Para iniciar um novo jogo, o Botão R pode ser pressionado a qualquer momento.