Advertisement
Guest User

Untitled

a guest
Dec 14th, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VHDL 2.64 KB | None | 0 0
  1. library ieee;
  2. use ieee.std_logic_1164.all;
  3. use ieee.std_logic_unsigned.all;
  4.  
  5. entity priprema1 is
  6. port(
  7.  
  8.     iA: in std_logic_vector(2 downto 0);
  9.     iB: in std_logic_vector(4 downto 0);
  10.     iC: in std_logic_vector(7 downto 0);
  11.     iSEL: in std_logic_vector(3 downto 0);
  12.     oRESULT: out std_logic_vector(7 downto 0)
  13.    
  14. );
  15. end entity;
  16.  
  17.  
  18. architecture Behavioral of priprema1 is
  19.  
  20.     signal sDEC: std_logic_vector(7 downto 0);
  21.     signal sF: std_logic_vector(7 downto 0);
  22.     signal sKOMP: std_logic_vector(7 downto 0);
  23.     signal sPOM: std_logic_vector(7 downto 0);
  24.     signal sPK: std_logic_vector(1 downto 0);
  25.  
  26.  
  27. begin
  28.  
  29. --dekoder
  30.  
  31.    
  32.     sDEC <= "00000001" when iA = "000" else
  33.               "00000010" when iA = "001" else
  34.               "00000100" when iA = "010" else
  35.               "00001000" when iA = "011" else
  36.               "00010000" when iA = "100" else
  37.               "00100000" when iA = "101" else
  38.               "01000000" when iA = "110" else
  39.               "10000000";
  40.    
  41.    
  42. --F(x)
  43.  
  44.      sF <= "00000000" when iB = "00000" else
  45.              "00010000" when iB = "00001" else
  46.              "00100000" when iB = "00010" else
  47.              "00110000" when iB = "00011" else
  48.              "01000000" when iB = "00100" else
  49.              "01010000" when iB = "00101" else
  50.              "01100000" when iB = "00110" else
  51.              "01110000" when iB = "00111" else
  52.              "10000000" when iB = "01000" else
  53.              "10010000" when iB = "01001" else
  54.              "10100000" when iB = "01010" else
  55.              "10110000" when iB = "01011" else
  56.              "11000000" when iB = "01100" else
  57.              "11010000" when iB = "01101" else
  58.              "11100000" when iB = "01110" else
  59.              "11110000" when iB = "01111" else
  60.              "00000000" when iB = "10000" else
  61.              "00010000" when iB = "10001" else
  62.              "00100000" when iB = "10010" else
  63.              "00110000" when iB = "10011" else
  64.              "01000000" when iB = "10100" else
  65.              "01010000" when iB = "10101" else
  66.              "01100000" when iB = "10110" else
  67.              "01110000" when iB = "10111" else
  68.              "10000000" when iB = "11000" else
  69.              "10010000" when iB = "11001" else
  70.              "10100000" when iB = "11010" else
  71.              "10110000" when iB = "11011" else
  72.              "11000000" when iB = "11100" else
  73.              "11010000" when iB = "11101" else
  74.              "11100000" when iB = "11110" else
  75.              "11110000";
  76.    
  77.    
  78. -- komplementer
  79.  
  80.     sKOMP <= not(iC(7 downto 0)) + 1;
  81.    
  82. --pomerac
  83.  
  84.     sPOM(7) <= iC(7);
  85.     sPOM(6) <= iC(7);
  86.     sPOM(5) <= iC(7);
  87.     sPOM(4) <= iC(7);
  88.     sPOM(3) <= iC(7);
  89.     sPOM(2 downto 0) <= iC(6 downto 4);
  90.    
  91.    
  92. -- prioritetni koder
  93.    
  94.     sPK <= "00" when iSEL = "0001" else
  95.              "01" when iSEL = "0010" else
  96.              "10" when iSEL = "0100" else
  97.              "11";
  98.  
  99.              
  100. -- rezultat
  101.  
  102.  
  103.     oRESULT <= sDEC when sPK = "00" else
  104.                   sF when sPK = "01" else
  105.                  sKOMP when sPK = "10" else
  106.                   sPOM;
  107.              
  108.  
  109.  
  110. end architecture;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement