8-em-1 MUX (vetores) acessando

O

Opel_Corsa

Guest
Estou tentando escrever um código para um 8-em-1 MUX.Aqui está o que eu tenho até agora:

Código:

LIBRARY ieee;

ieee.std_logic_1164.all utilização;

use IEEE.STD_LOGIC_ARITH.ALL;entidade é mux8to1

port (X: in std_logic_vector (7 downto 0);

S: in std_logic_vector (0 a 2);

F: out std_logic);

mux8to1 final;RTL arquitetura de mux8to1 é

começo

processo (X, S)

começo

if (S = 0) then

F <= X [0];

elsif (S = 1) then

F <= X [1];

elsif (S = 2) então

F <= X [2];

elsif (S = 3) então

F <= X [3];

elsif (S = 4) then

F <= X [4];

elsif (S = 5) então

F <= X [5];

elsif (S = 6) então

F <= X [6];

elsif (S = 7) então

F <= X [7];

END IF;

end process;

end RTL;
 
Eu tenho o mesmo problema quando eu com o programa de VHDL.

 
Citação:

Acho que a minha pergunta é como acessar os valores dentro de um vetor?
(no meu caso, X [0] não parece estar no formato correto)
 
VHDL é fortemente tipada linguagem.Significa que ele não vai fazer a conversão de tipo automaticamente.
Você vai ter que cuidar de conversão de tipo usando funções como to_integer.aqui é
Como você pode escrever mux ur.
Código:

LIBRARY ieee;

ieee.std_logic_1164.all utilização;

use IEEE.STD_LOGIC_ARITH.ALL;entidade é mux8to1

port (X: in std_logic_vector (7 downto 0);

S: in std_logic_vector (2 downto 0);

F: out std_logic);

mux8to1 final;RTL arquitetura de mux8to1 é

começo

F <= X (to_integer (S));

end RTL;

 
Obrigado pela ajuda, mas o meu compilador não poderia reconhecer "to_integer".Preciso de uma biblioteca adicional?meu compilador é qu (at) RTUs II

 
Você precisa das bibliotecas standard árvore ea função

CONV_INTEGER ()

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

Isto deve ser suficiente.

////////////////////////////////////////////////// ///////////////

LIBRARY ieee;
ieee.std_logic_1164.all utilização;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entidade é mux8to1
port (X: in std_logic_vector (7 downto 0);
S: in std_logic_vector (2 downto 0);
F: out std_logic);
mux8to1 final;

RTL arquitetura de mux8to1 é
começo
F <= X (CONV_INTEGER (S));
end RTL;

 
Checkout this!

Código:

LIBRARY ieee;

ieee.std_logic_1164.all utilização;

use IEEE.STD_LOGIC_ARITH.ALL;

entidade é mux8to1

port (X: in std_logic_vector (7 downto 0);

S: in std_logic_vector (2 downto 0);

F: out std_logic);

mux8to1 final;RTL arquitetura de mux8to1 é

começo

com S seleccionar

F <=

X (0) quando o "000",

X (1) quando o "001",

X (2) quando "010",

X (3) quando o "011",

X (4), quando "100",

X (5), quando "101",

X (6), quando "110",

X (7), quando "111",

'X' quando os outros;

end RTL;

 

Welcome to EDABoard.com

Sponsor

Back
Top