OpenCores
URL https://opencores.org/ocsvn/tiny64/tiny64/trunk

Subversion Repositories tiny64

[/] [tiny64/] [trunk/] [cctest.vhd] - Diff between revs 2 and 4

Show entire file | Details | Blame | View Log

Rev 2 Rev 4
Line 1... Line 1...
 
library IEEE;
 
use IEEE.STD_LOGIC_1164.ALL;
 
use IEEE.STD_LOGIC_ARITH.ALL;
 
use IEEE.STD_LOGIC_UNSIGNED.ALL;
 
 
 
--  Uncomment the following lines to use the declarations that are
 
--  provided for instantiating Xilinx primitive components.
 
--library UNISIM;
 
--use UNISIM.VComponents.all;
 
 
 
entity cctest is
 
    Port ( fN : in std_logic;
 
           fV : in std_logic;
 
           fC : in std_logic;
 
           fZ : in std_logic;
 
           what : in std_logic_vector(3 downto 0);
 
           result : out std_logic);
 
end cctest;
 
 
 
architecture Behavioral of cctest is
 
 
 
begin
 
  process(what, fN, fV, fC, fZ)
 
  begin
 
  case what is
 
    when "0000" =>     -- ever true
 
      result <= '1';
 
    when "0001" =>     -- carry clear
 
      result <= not fC;
 
    when "0010" =>     -- carry set
 
      result <= fC;
 
    when "0011" =>     -- zero set
 
      result <= fZ;
 
    when "0100" =>     -- greater equal
 
      result <= (fN and fV) or (not fN and not fV);
 
    when "0101" =>     -- greater than
 
      result <= (fN and fV and not fZ) or (not fN and not fV and not fZ);
 
    when "0110" =>     -- higher
 
      result <= not fC and not fZ;
 
    when "0111" =>     -- less equal
 
      result <= fZ or (fN and not fV) or (not fN and fV);
 
    when "1000" =>     -- less
 
      result <= fC or fZ;
 
    when "1001" =>     -- less than
 
      result <= (fN and not fV) or (not fN and fV);
 
    when "1010" =>     -- minus
 
      result <= fN;
 
    when "1011" =>     -- zero clear
 
      result <= not fZ;
 
    when "1100" =>     -- plus
 
      result <= not fN;
 
    when "1101" =>     -- overflow clear
 
      result <= not fV;
 
    when "1110" =>     -- overflow set
 
      result <= fV;
 
    when "1111" =>     -- ever false
 
      result <= '0';
 
    when others =>
 
      result <= '0';
 
  end case;
 
  end process;
 
end Behavioral;
 
 
 No newline at end of file
 No newline at end of file

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.