VHDL-kieli FPGA-suunnittelussa/Prioriteettienkooderi

Wikikirjasto
Loikkaa: valikkoon, hakuun
VHDL-kieli FPGA-suunnittelussa

Prioriteettienkooderi[muokkaa]

Prioriteettienkooderi asettaa datassa olevat tärkeämmät bitit etusijalle ja ohittaa alemmat singaalit kokonaan saadessaan ylimmän tason singaalin. Eli In bitin ollessa '1' enkooderi ohittaa kaikki In-1 bitit. Esimerkissä neljä kahteen enkooderi, jossa ylimmän tason bitti on I3 ja merkityksettömin on I0, lisäksi D ilmaisee sen että onko datassa lainkaan aktiivista signaalia.

Esimerkki:

I3 I2 I1 I0 O1 O0 D
0 0 0 0 0 0 0
0 0 0 1 0 0 1
0 0 1 d 0 1 1
0 1 d d 1 0 1
1 d d d 1 1 1

4 to 2 -enkooderi


  VHDL ja logiikkakaavio[muokkaa]

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
 
entity Priority_Encoder_VHDL is
   port ( Sel : in std_logic_vector(3 downto 0);
 	  encoded_data : out std_logic_vector(1 downto 0);
 	             D : out std_logic);
end Priority_Encoder_VHDL;
 
architecture Beh of Priority_Encoder_VHDL is
begin
   encoded_data <= "11" when Sel(3)='1' else
 	           "10" when Sel(2)='1' else
 		   "01" when Sel(1)='1' else
 		   "00";
   D <= '0' when Sel="0000" else '1';
end Beh;

Prioriteettienkooderi schema.JPG

  Simulaatiotulos[muokkaa]

 Priority enc final.png

  Aiheesta muualla[muokkaa]

Wikipedia - Enkooderi
Asic-World, PriorityEncoder VHDL