Professional Documents
Culture Documents
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity subtractor is
port(x0,x1,x2,x3,y0,y1,y2,y3:in bit;
cin:in bit;
res0,res1,res2,res3:out bit;
carry:out bit);
end subtractor;
component tsg
port(a,b,c,d:in bit;
p,q,r,s:out bit);
end component;
signal cp0,cp1,cp2,cp3,cg0,cg1,cg2,cg3,f1,f2,f3:bit;
signal g,s,s1,s2,s3,s0,rest0,rest1,rest2,rest3:bit;
begin
g<='0';
s<='1';
s0<=y0 xor s;
s1<=y1 xor s;
s2<=y2 xor s;
s3<=y3 xor s;
res0<=not(rest0);
res1<=not(rest1);
res2<=not(rest2);
res3<=not(rest3);
end Behavioral1;
TSG GATE
library ieee;
use ieee.std_logic_1164.all;
entity tsg is
port(a,b,c,d: in bit;
end tsg;
begin
p<=a;
r<=s1;
end tsg1;
ADDER
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity top_level is
port(x0,x1,x2,x3,y0,y1,y2,y3:in bit;
cin:in bit;
sum0,sum1,sum2,sum3:out bit;
carry:out bit);
end top_level;
component tsg
port(a,b,c,d:in bit;
p,q,r,s:out bit);
end component;
signal cp0,cp1,cp2,cp3,cg0,cg1,cg2,cg3,f1,f2,f3:bit;
signal g:bit;
begin
g<='0';
end Behavioral;