Kirjan luontitila (poista käytöstä)
VHDL-kieli FPGA-suunnittelussa/Prioriteettienkooderi
Wikikirjasto
Sisällysluettelo |
[muokkaa] Prioriteettienkooderi
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
[muokkaa] VHDL ja logiikkakaavio
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;
