Decodificador VHDL
Artigos Científicos: Decodificador VHDL. Pesquise 861.000+ trabalhos acadêmicosPor: fa_os • 17/3/2014 • 500 Palavras (2 Páginas) • 307 Visualizações
2.2.1 WITH...SELECT
Semelhante a aplicação no multiplexador, o With select faz um trabalho concorrente com as entradas e saídas, porém nesse caso, para cada entrada eu tenho uma sápida diferente, que seria a “mensagem decodificada”.
Exemplo do begin no with select:
begin
with x select
s <= "00000001" when "000",
"00000010" when "001",
"00000100" when "010",
"00001000" when "011",
"00010000" when "100",
"00100000" when "101",
"01000000" when "110",
"10000000" when "111",
"ZZZZZZZZ" when others; //zzz….zz equivale a dizer, qualquer outra coiza retorne outros
end arch_dec3x8;
2.2.2. IF...THEN...ELSE
O if segue o mesmo padrão de implementação, onde a partir de um condicional tem uma solução, e caso nenhum dos condicionais sejam satisfeitos o comando else retornaria a solução para esse.
Exemplo do begin no if then else:
begin
if (x = "000") then s <= "00000001";
elsif (x = "001") then s <= "00000010";
elsif (x = "010") then s <= "00000100";
elsif (x = "011") then s <= "00001000";
elsif (x = "100") then s <= "00010000";
elsif (x = "101") then s <= "00100000";
elsif (x = "110") then s <= "01000000";
elsif (x = "111") then s <= "10000000";
else s <= "ZZZZZZZZ";
end if;
end process;
end arch_dec3x8
2.2.3. CASE
Semelhante ao if, o case usa seu conjunto de palavras reservadas para descrever o mesmo problema. O others seria equivalente a else.
Exemplo do begin no case:
case x is
when "000" => s <= "00000001";
when "001" => s <= "00000010";
when "010"
...