Índice:

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

Vídeo: CPE 133 Projeto Final Decimal para Binário: 5 etapas

Vídeo: CPE 133 Projeto Final Decimal para Binário: 5 etapas
Vídeo: Decimal to Binary Conversion (IP Addressing) 2024, Novembro
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.

Recomendado: