Unidade Lógica Aritmética (ULA)
- Detalhes
- Categoria: Exemplos com CPLD
- Publicado em Quarta, 24 Agosto 2011 09:24
- Escrito por Andre Vinicius Rocha Silva
- Acessos: 6177
Unidade Lógica Aritmética
A Unidade Lógica Aritmética (ULA) é um bloco que executa operações aritméticas e lógicas. Entre as operações aritméticas que excuta, ela soma, subtrai, divide e determina se um número é positivo ou negativo ou se é zero. Ela pode também executar funções lógicas como "E", "OU" ou "OU EXCLUSIVO". A ULA é um bloco básico de um microprocessador ou CPU de um computador.
O projeto a seguir, é um exemplo de circuito lógico combinacional, descrito em VHDL e simulado no software ModelSim®-Altera, através do modo interativo.
Os módulos necessários para a implementação do projeto são:
- 1x Kit CPLD_7064;
- 1x Placa de LEDs;
- 2x Placas de Chaves.
Lógica de Funcionamento
A ULA recebe duas palavras de 4 bits (A e DADO) e realiza uma operação entre as duas. A operação a ser efetuada é selecionada através da entrada OPERACAO conforme a tabela abaixo.
OPERACAO | Operação realizada |
000 | Adição |
001 | Subtração |
010 | 'E' Lógico |
011 | 'OU' Lógico |
100 | 'OU' Exclusivo |
101 | Complemento do acumulador |
Para outras entradas, a ULA apresenta uma saída de alta impedância.
A Figura 1 apresenta o símbolo padrão para a ULA.
Figura 1 - Símbolo esquemático típico para a ULA
Este trecho de código descreve, em VHDL, a entidade ULA.
Este trecho de código apresenta o decodificador utilizado para selecionar a operação a partir da entrada OPERACAO. Utiliza-se a função case dentro de um processo.
Uma vez selecionada, a operação é executada a partir das entradas A e DADO) ou apenas de uma que é o caso do NOT.
A Figura apresenta um resumo da Analise e síntese.
Figura 2 - Resumo do Resultado da Análise e Síntese.
Simulação
A Figura 4 apresenta as formas de onda da simulação. Foram adotados valores fixos para A e para DADO e para OPERACAO foi testado todas as possibilidades. Foi utilizado o ModelSim®-Altera de forma interativa (tutorial para a forma interativa, clique aqui).
Figura 3 - Formas de onda da simulação.
Estrutura Física
Para demonstrar o funcionamento da ULA, utilizamos chaves (para operandos e operação) e LEDs (para o resultado).
Na primeira placa de chaves, as 4 primeiras (7 a 4) são para a variável A e as 4 ultimas (3 a 0) para a variável DADO. Nos LEDs temos a apresentação do resultado.
Figura 4 - Estrutura Física do Projeto.
Montagem e Roteameno
As placas de chaves serão colocadas nos conectores CON1 e CON2 e a placa de LEDs será conectado no conector CON3, como mostrado nas ilutrações abaixo feitas no software Fritzing. Lembrando que deve-se ficar atento para que os pinos de Vcc e o GND dos periféricos fiquem alinhados entre as placas.
Figura 5 - Detalhe do CON1 na matriz de contatos.
Figura 6 - Detalhe do CON2 na matriz de contatos.
Figura 7 - Detalhe do CON3 na matriz de contatos
A Figura 8 apresenta o mapeamento dos pinos de acordo a disposição das placas acima apresentada.
Figura 8 - Pin Planner.
Arquivos do Projeto
Para o download do projeto completo, clique aqui.
O arquivo está no formato "zip", e inclui, entre outros:
- O arquivo de projeto do Quartus ".qpf"
- A descrição no formato VHDL ".vhd"