Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- library ieee;
- use ieee.std_logic_1164.all;
- use ieee.std_logic_unsigned.all;
- entity priprema1 is
- port(
- iA: in std_logic_vector(2 downto 0);
- iB: in std_logic_vector(4 downto 0);
- iC: in std_logic_vector(7 downto 0);
- iSEL: in std_logic_vector(3 downto 0);
- oRESULT: out std_logic_vector(7 downto 0)
- );
- end entity;
- architecture Behavioral of priprema1 is
- signal sDEC: std_logic_vector(7 downto 0);
- signal sF: std_logic_vector(7 downto 0);
- signal sKOMP: std_logic_vector(7 downto 0);
- signal sPOM: std_logic_vector(7 downto 0);
- signal sPK: std_logic_vector(1 downto 0);
- begin
- --dekoder
- sDEC <= "00000001" when iA = "000" else
- "00000010" when iA = "001" else
- "00000100" when iA = "010" else
- "00001000" when iA = "011" else
- "00010000" when iA = "100" else
- "00100000" when iA = "101" else
- "01000000" when iA = "110" else
- "10000000";
- --F(x)
- sF <= "00000000" when iB = "00000" else
- "00010000" when iB = "00001" else
- "00100000" when iB = "00010" else
- "00110000" when iB = "00011" else
- "01000000" when iB = "00100" else
- "01010000" when iB = "00101" else
- "01100000" when iB = "00110" else
- "01110000" when iB = "00111" else
- "10000000" when iB = "01000" else
- "10010000" when iB = "01001" else
- "10100000" when iB = "01010" else
- "10110000" when iB = "01011" else
- "11000000" when iB = "01100" else
- "11010000" when iB = "01101" else
- "11100000" when iB = "01110" else
- "11110000" when iB = "01111" else
- "00000000" when iB = "10000" else
- "00010000" when iB = "10001" else
- "00100000" when iB = "10010" else
- "00110000" when iB = "10011" else
- "01000000" when iB = "10100" else
- "01010000" when iB = "10101" else
- "01100000" when iB = "10110" else
- "01110000" when iB = "10111" else
- "10000000" when iB = "11000" else
- "10010000" when iB = "11001" else
- "10100000" when iB = "11010" else
- "10110000" when iB = "11011" else
- "11000000" when iB = "11100" else
- "11010000" when iB = "11101" else
- "11100000" when iB = "11110" else
- "11110000";
- -- komplementer
- sKOMP <= not(iC(7 downto 0)) + 1;
- --pomerac
- sPOM(7) <= iC(7);
- sPOM(6) <= iC(7);
- sPOM(5) <= iC(7);
- sPOM(4) <= iC(7);
- sPOM(3) <= iC(7);
- sPOM(2 downto 0) <= iC(6 downto 4);
- -- prioritetni koder
- sPK <= "00" when iSEL = "0001" else
- "01" when iSEL = "0010" else
- "10" when iSEL = "0100" else
- "11";
- -- rezultat
- oRESULT <= sDEC when sPK = "00" else
- sF when sPK = "01" else
- sKOMP when sPK = "10" else
- sPOM;
- end architecture;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement