Aggiunto modulo Comparator
This commit is contained in:
38
pr.vhd
Normal file
38
pr.vhd
Normal file
@@ -0,0 +1,38 @@
|
||||
library IEEE;
|
||||
use IEEE.STD_LOGIC_1164.ALL;
|
||||
|
||||
|
||||
entity pr is
|
||||
generic( BITCOUNT: integer := 8 );
|
||||
port(
|
||||
xExp, yExp: in std_logic_vector((BITCOUNT-1) downto 0);
|
||||
xOut, yOut: out std_logic_vector((BITCOUNT-1) downto 0);
|
||||
needSwap: out std_logic
|
||||
);
|
||||
end pr;
|
||||
|
||||
architecture qwe of pr is
|
||||
signal xGTy: std_logic_vector((BITCOUNT-1) downto 0);
|
||||
signal yGTx: std_logic_vector((BITCOUNT-1) downto 0);
|
||||
begin
|
||||
xGTy <= xExp and (not yExp);
|
||||
yGTx <= (not xExp) and yExp;
|
||||
|
||||
xOut <= xGTy;
|
||||
yOut <= yGTx;
|
||||
|
||||
needSwap_compute: process (xGTy, yGTx)
|
||||
variable SW: std_logic;
|
||||
variable K: std_logic;
|
||||
begin
|
||||
SW := '0';
|
||||
k := '1';
|
||||
for i in (BITCOUNT-1) downto 0 loop
|
||||
SW := SW or ((not(xGTy(i)) and yGTx(i)) and K);
|
||||
K := K and (not(xGTy(i) and not(yGTx(i))));
|
||||
end loop;
|
||||
needSwap <= SW;
|
||||
end process;
|
||||
|
||||
end qwe;
|
||||
|
||||
Reference in New Issue
Block a user