Utilizando atribuições seletivas (with-select), escrever em VHDL e simular uma
entidade que descreva um decodificador de 4 para 16. Essa entidade deve ter como
entrada um vetor A de 4 bits e, como saída, um vetor Y de 16 bits. A tabela verdade do
decodificador é apresentada abaixo.
Tabela no anexo
Soluções para a tarefa
A estrutura with/select nos permite selecionar um sinal dentre uma gama de opções e, para tanto, utiliza-se um sinal seletor que dirá qual das possíveis opções será escolhida de acordo com o valor desse sinal de seleção.
De modo geral, a estrutura será montada da seguinte forma:
Vamos então ao código e comentamos um pouco mais posteriormente.
Comentários:
--> As primeiras linhas foram reservadas para informar a utilização da biblioteca IEEE e dos recursos inclusos no padrão 1164.
--> No bloco "entity", declaramos todas entradas e saídas do circuito e quantos bits cada um possui. Note que, no caso de haver mais de um bit, declaramos como um vetor de bits (std_logic_vector). É importante ressaltar também que, o nome dado à entity deve ser igual ao do projeto, já que, dependendo do software utilizado, podem surgir erros na montagem e simulação do projeto.
--> No bloco "architecture", vamos tratar do comportamento do circuito, isto é, de que modo e o que ele apresentará na sua saída. A estrutura with/select apresenta uma alternativa de mais alto nível às expressões booleanas que implementariam o mesmo decodificador, ou seja, deixamos a cargo do software que "ache" a melhor forma de montar o circuito com o comportamento que descrevemos em VHDL.
A simulação deverá gerar um diagrama de formas de onda semelhante ao que é apresentado na figura anexada à resolução.