Você está na página 1de 18

Sudoku em FPGA

Eduardo Valrio A. Soares


Thiago Ferreira dos Santos

Professor: Matheus Romo


Disciplina: Eletrnica Embarcada

Joo Monlevade, 15 de Outubro de 2014

Xilinx Spartan-3E

Sudoku
Sudoku um jogo de raciocnio e lgica. Consiste em completar todos as clulas
vazias. Cada linha, coluna e caixa de 3x3 devero conter todos os n de 1 a 9 sem
repetio.

Algoritmo
Distribuio dos nmeros do puzzle em suas respectivas clulas

Algoritmo
gerada a lista de possibilidade para as clulas vazias (respeitando as regras)

2,5,6,8,9

6,7,8

3,4,5,6,7,9

Algoritmo
elaborado mtodos a fim de reduzir nmeros de candidatos presentes em
cada clula que so:

Singles;

Hidden Number.

Algoritmo

Singles: verifica quais clulas que contm um nico candidato permitido. Se a verificao for
verdadeira o espao preenchido imediatamente e o candidato retirado da lista de
possibilidade.

Algoritmo

Hidden Number: verifica se um determinado n surge apenas uma vez na lista de possibilidades
das clulas em branco de uma linha, coluna ou caixa, se for verdade a clula preenchida com
este nmero e o mesmo removido de todas as listas de possibilidades da mesma linha, coluna e
caixa.

2,5,6,8,9

6,7,8

3,4,5,6,7,9

Tentativa e Erro

O mtodo de Tentativa e Erro consiste em:

Buscar a clula com menor nmero de candidatos;

Realiza-se cpias com o mesmo n de candidatos que existe na clula


escolhida e em cada uma preenchida um candidato diferente;

Cada cpia resolvida distintamente at que se chegue na soluo ou numa


situao de bloqueio.

Tentativa e Erro
2
3

3,4,5,6,7,9

3,6,7
3
1,3,5,7,8
4

Armazenamento

O puzzle armazenado numa memria de 81 posies(9x9), com words de 4


bits.
Cada nmero representado pelo seu equivalente em cdigo binrio.

Armazenamento

A lista de possibilidades projetada para o pior caso.

Deste modo, esta conter 81 posies (9x9 clulas), tendo cada word 36 bits
(9 nmeros x 4bits/nmero).

Armazenamento

O mapa de colunas: cada posio possui o n identificador de sua respectiva


coluna.

O mapa de caixas: cada posio corresponde ao n identificador da caixa da


clula.

Armazenamento

No mtodo de Tentativa e Erro utilizaremos a memria para guardar:

O mapa de mnimos contm a ordenao crescente das clulas que possuem


menor nmero de candidatos;

O mapa de ndices responsvel por indicar quais as memrias que se


encontram livres para armazenar mais puzzles.

Arquitetura dos Solucionadores

O diagrama de Blocos do Solucionador Simples implementa o algoritmo


simples :

Singles;

HiddenNumber;

Lista de Possibilidades.

Estes algoritmos encontra-se implementado na Unidade de Controlo;

Barramento enable habilita o bloco Processos;

Bloco Processos habilita os Mux para acessar a memria.