VHDL-kieli FPGA-suunnittelussa/Multiplekseri
Lue ensin Digitaalipiirit / Tulo- ja lähtövalitsimet (Multiplexers-Demultiplexers) |
Tulovalitsin eli multiplekseri
[muokkaa | muokkaa wikitekstiä]Alla on 8-tuloisen multiplekserin eli tulovalitsimen Logiikka kaavio jossa on 8 data-tuloa (a, b, c, d, e, f, g ja h), yksi 3-bittinen valintatulovektorin (Sel) ja yksi lähtösignaalin (Output).
Multiplekserin toteutus VHDL-kielellä
[muokkaa | muokkaa wikitekstiä]Alla oleva VHDL-koodi toteuttaa yllä olevan kuvan mukaisen 8-tuloisen multiplekserin eli tulovalitsimen toiminnan. Suunnitteluyksikön esittely (entity) määrittelee logiikan tulot jä lähdöt. Toiminta toteutetaan arkkitehtuurissa olevan kombinaatiologiikkaprosessin sisällä olevalla case-lauseella, joka ohjaa logiikan lähtöön (Output) valintasignaalilla (Sel) valitun tulosignaali (a, b, c, d, e, f, g tai h).
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity Multiplexer_VHDL is
port (a, b, c, d, e, f, g, h : in std_logic;
Sel : in_std_logic_vector (2 downto 0);
Output : out std_logic);
end Multiplexer_VHDL;
architecture Beh of Multiplexer_VHDL is
begin
process (a, b, c, d, e, f, g, h, Sel)
begin
case Sel is
when "000" => Output <= a;
when "001" => Output <= b;
when "010" => Output <= c;
when "011" => Output <= d;
when "100" => Output <= e;
when "101" => Output <= f;
when "110" => Output <= g;
when others => Output <= h;
end case;
end process;
end Beh;
Simulaatiotulos
[muokkaa | muokkaa wikitekstiä]Molemmat edellä esitetyt multiplekserin toteutukset (piirikaavio- ja VHDL-toteus) tuottavat alla olevan kuvan mukaisen simulaatiotuloksen.
Tehtäviä
[muokkaa | muokkaa wikitekstiä]
Katso myös
[muokkaa | muokkaa wikitekstiä]- Digitaalipiirit
- Ohjelmoitava logiikka
- Multiplekseri Wikipediassa
- Digitaalipiirit Wikipediassa
- Laitteistokuvauskieli Wikipediassa
- VHDL en-Wikipediassa
Lähteet
[muokkaa | muokkaa wikitekstiä]- Seppo Haltsonen, Jaakko Levomäki, Esko T. Rautanen: Digitaalitekniikka. Edita, 2004. ISBN 951-37-3886-8.