Siirry sisältöön

VHDL-kieli FPGA-suunnittelussa/Multiplekseri

Wikikirjastosta
Information

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.




  • Seppo Haltsonen, Jaakko Levomäki, Esko T. Rautanen: Digitaalitekniikka. Edita, 2004. ISBN 951-37-3886-8.