Changed to a Unix file structure
This commit is contained in:
@@ -1,42 +1,42 @@
|
||||
from Source.Pre_Built_Gates.Power import Power
|
||||
from Source.Logic_Gates.Mux16 import Mux16
|
||||
from Source.Logic_Gates.Not16 import Not16
|
||||
from Source.Logic_Gates.And16 import And16
|
||||
from Source.Components.Boolean_Arithmetic.Add16 import Add16
|
||||
from Source.Logic_Gates.Or8Way import Or8Way
|
||||
from Source.Pre_Built_Gates.Or import Or
|
||||
from Source.Pre_Built_Gates.And import And
|
||||
from Source.Pre_Built_Gates.Not import Not
|
||||
|
||||
class ALU:
|
||||
def __init__(self,x,y,zx,nx,zy,ny,f,no) -> None:
|
||||
self.x=x
|
||||
self.y=y
|
||||
self.zx=zx
|
||||
self.nx=nx
|
||||
self.zy=zy
|
||||
self.ny=ny
|
||||
self.f=f
|
||||
self.no=no
|
||||
self.out=[Power([Power(False) for _ in range(16)]),Power(False),Power(False)]
|
||||
self()
|
||||
def __call__(self) -> None:
|
||||
x1=Mux16(self.x,Power([Power(False) for _ in range(16)]),self.zx)
|
||||
y1=Mux16(self.y,Power([Power(False) for _ in range(16)]),self.zy)
|
||||
notx1=Not16(x1)
|
||||
noty1=Not16(y1)
|
||||
x2=Mux16(x1,notx1,self.nx)
|
||||
y2=Mux16(y1,noty1,self.ny)
|
||||
addout=Add16(x2,y2)
|
||||
andout=And16(x2,y2)
|
||||
fout=Mux16(andout,addout,self.f)
|
||||
notfout=Not16(fout)
|
||||
out1=Mux16(fout,notfout,self.no)
|
||||
zr1=Or8Way(Power(out1.out[0:8]))
|
||||
zr2=Or8Way(Power(out1.out[8:16]))
|
||||
zr3=Or(zr1,zr2)
|
||||
zr=Not(zr3)
|
||||
for i in range(16):
|
||||
self.out[0].out[i].out=out1.out[i].out
|
||||
self.out[1].out=zr.out
|
||||
from Source.Pre_Built_Gates.Power import Power
|
||||
from Source.Logic_Gates.Mux16 import Mux16
|
||||
from Source.Logic_Gates.Not16 import Not16
|
||||
from Source.Logic_Gates.And16 import And16
|
||||
from Source.Components.Boolean_Arithmetic.Add16 import Add16
|
||||
from Source.Logic_Gates.Or8Way import Or8Way
|
||||
from Source.Pre_Built_Gates.Or import Or
|
||||
from Source.Pre_Built_Gates.And import And
|
||||
from Source.Pre_Built_Gates.Not import Not
|
||||
|
||||
class ALU:
|
||||
def __init__(self,x,y,zx,nx,zy,ny,f,no) -> None:
|
||||
self.x=x
|
||||
self.y=y
|
||||
self.zx=zx
|
||||
self.nx=nx
|
||||
self.zy=zy
|
||||
self.ny=ny
|
||||
self.f=f
|
||||
self.no=no
|
||||
self.out=[Power([Power(False) for _ in range(16)]),Power(False),Power(False)]
|
||||
self()
|
||||
def __call__(self) -> None:
|
||||
x1=Mux16(self.x,Power([Power(False) for _ in range(16)]),self.zx)
|
||||
y1=Mux16(self.y,Power([Power(False) for _ in range(16)]),self.zy)
|
||||
notx1=Not16(x1)
|
||||
noty1=Not16(y1)
|
||||
x2=Mux16(x1,notx1,self.nx)
|
||||
y2=Mux16(y1,noty1,self.ny)
|
||||
addout=Add16(x2,y2)
|
||||
andout=And16(x2,y2)
|
||||
fout=Mux16(andout,addout,self.f)
|
||||
notfout=Not16(fout)
|
||||
out1=Mux16(fout,notfout,self.no)
|
||||
zr1=Or8Way(Power(out1.out[0:8]))
|
||||
zr2=Or8Way(Power(out1.out[8:16]))
|
||||
zr3=Or(zr1,zr2)
|
||||
zr=Not(zr3)
|
||||
for i in range(16):
|
||||
self.out[0].out[i].out=out1.out[i].out
|
||||
self.out[1].out=zr.out
|
||||
self.out[2].out=out1.out[0].out
|
||||
@@ -1,44 +1,44 @@
|
||||
from Source.Components.Boolean_Arithmetic.FullAdder import FullAdder
|
||||
from Source.Components.Boolean_Arithmetic.HalfAdder import HalfAdder
|
||||
from Source.Pre_Built_Gates.Power import Power
|
||||
|
||||
class Add16:
|
||||
def __init__(self,a,b) -> None:
|
||||
self.a=a
|
||||
self.b=b
|
||||
self.out=[Power(False) for _ in range(16)]
|
||||
self()
|
||||
def __call__(self) -> None:
|
||||
add1=HalfAdder(self.a.out[15],self.b.out[15])
|
||||
add2=FullAdder(self.a.out[14],self.b.out[14],add1.out[1])
|
||||
add3=FullAdder(self.a.out[13],self.b.out[13],add2.out[1])
|
||||
add4=FullAdder(self.a.out[12],self.b.out[12],add3.out[1])
|
||||
add5=FullAdder(self.a.out[11],self.b.out[11],add4.out[1])
|
||||
add6=FullAdder(self.a.out[10],self.b.out[10],add5.out[1])
|
||||
add7=FullAdder(self.a.out[9],self.b.out[9],add6.out[1])
|
||||
add8=FullAdder(self.a.out[8],self.b.out[8],add7.out[1])
|
||||
add9=FullAdder(self.a.out[7],self.b.out[7],add8.out[1])
|
||||
add10=FullAdder(self.a.out[6],self.b.out[6],add9.out[1])
|
||||
add11=FullAdder(self.a.out[5],self.b.out[5],add10.out[1])
|
||||
add12=FullAdder(self.a.out[4],self.b.out[4],add11.out[1])
|
||||
add13=FullAdder(self.a.out[3],self.b.out[3],add12.out[1])
|
||||
add14=FullAdder(self.a.out[2],self.b.out[2],add13.out[1])
|
||||
add15=FullAdder(self.a.out[1],self.b.out[1],add14.out[1])
|
||||
add16=FullAdder(self.a.out[0],self.b.out[0],add15.out[1])
|
||||
|
||||
self.out[0].out=add16.out[0].out
|
||||
self.out[1].out=add15.out[0].out
|
||||
self.out[2].out=add14.out[0].out
|
||||
self.out[3].out=add13.out[0].out
|
||||
self.out[4].out=add12.out[0].out
|
||||
self.out[5].out=add11.out[0].out
|
||||
self.out[6].out=add10.out[0].out
|
||||
self.out[7].out=add9.out[0].out
|
||||
self.out[8].out=add8.out[0].out
|
||||
self.out[9].out=add7.out[0].out
|
||||
self.out[10].out=add6.out[0].out
|
||||
self.out[11].out=add5.out[0].out
|
||||
self.out[12].out=add4.out[0].out
|
||||
self.out[13].out=add3.out[0].out
|
||||
self.out[14].out=add2.out[0].out
|
||||
from Source.Components.Boolean_Arithmetic.FullAdder import FullAdder
|
||||
from Source.Components.Boolean_Arithmetic.HalfAdder import HalfAdder
|
||||
from Source.Pre_Built_Gates.Power import Power
|
||||
|
||||
class Add16:
|
||||
def __init__(self,a,b) -> None:
|
||||
self.a=a
|
||||
self.b=b
|
||||
self.out=[Power(False) for _ in range(16)]
|
||||
self()
|
||||
def __call__(self) -> None:
|
||||
add1=HalfAdder(self.a.out[15],self.b.out[15])
|
||||
add2=FullAdder(self.a.out[14],self.b.out[14],add1.out[1])
|
||||
add3=FullAdder(self.a.out[13],self.b.out[13],add2.out[1])
|
||||
add4=FullAdder(self.a.out[12],self.b.out[12],add3.out[1])
|
||||
add5=FullAdder(self.a.out[11],self.b.out[11],add4.out[1])
|
||||
add6=FullAdder(self.a.out[10],self.b.out[10],add5.out[1])
|
||||
add7=FullAdder(self.a.out[9],self.b.out[9],add6.out[1])
|
||||
add8=FullAdder(self.a.out[8],self.b.out[8],add7.out[1])
|
||||
add9=FullAdder(self.a.out[7],self.b.out[7],add8.out[1])
|
||||
add10=FullAdder(self.a.out[6],self.b.out[6],add9.out[1])
|
||||
add11=FullAdder(self.a.out[5],self.b.out[5],add10.out[1])
|
||||
add12=FullAdder(self.a.out[4],self.b.out[4],add11.out[1])
|
||||
add13=FullAdder(self.a.out[3],self.b.out[3],add12.out[1])
|
||||
add14=FullAdder(self.a.out[2],self.b.out[2],add13.out[1])
|
||||
add15=FullAdder(self.a.out[1],self.b.out[1],add14.out[1])
|
||||
add16=FullAdder(self.a.out[0],self.b.out[0],add15.out[1])
|
||||
|
||||
self.out[0].out=add16.out[0].out
|
||||
self.out[1].out=add15.out[0].out
|
||||
self.out[2].out=add14.out[0].out
|
||||
self.out[3].out=add13.out[0].out
|
||||
self.out[4].out=add12.out[0].out
|
||||
self.out[5].out=add11.out[0].out
|
||||
self.out[6].out=add10.out[0].out
|
||||
self.out[7].out=add9.out[0].out
|
||||
self.out[8].out=add8.out[0].out
|
||||
self.out[9].out=add7.out[0].out
|
||||
self.out[10].out=add6.out[0].out
|
||||
self.out[11].out=add5.out[0].out
|
||||
self.out[12].out=add4.out[0].out
|
||||
self.out[13].out=add3.out[0].out
|
||||
self.out[14].out=add2.out[0].out
|
||||
self.out[15].out=add1.out[0].out
|
||||
@@ -1,17 +1,17 @@
|
||||
from Source.Components.Boolean_Arithmetic.HalfAdder import HalfAdder
|
||||
from Source.Logic_Gates.Xor import Xor
|
||||
from Source.Pre_Built_Gates.Power import Power
|
||||
|
||||
class FullAdder:
|
||||
def __init__(self,a,b,c) -> None:
|
||||
self.a=a
|
||||
self.b=b
|
||||
self.c=c
|
||||
self.out=[Power(False),Power(False)]
|
||||
self()
|
||||
def __call__(self) -> None:
|
||||
ha1=HalfAdder(self.a,self.b)
|
||||
ha2=HalfAdder(ha1.out[0],self.c)
|
||||
xor=Xor(ha1.out[1],ha2.out[1])
|
||||
self.out[0].out=ha2.out[0].out
|
||||
from Source.Components.Boolean_Arithmetic.HalfAdder import HalfAdder
|
||||
from Source.Logic_Gates.Xor import Xor
|
||||
from Source.Pre_Built_Gates.Power import Power
|
||||
|
||||
class FullAdder:
|
||||
def __init__(self,a,b,c) -> None:
|
||||
self.a=a
|
||||
self.b=b
|
||||
self.c=c
|
||||
self.out=[Power(False),Power(False)]
|
||||
self()
|
||||
def __call__(self) -> None:
|
||||
ha1=HalfAdder(self.a,self.b)
|
||||
ha2=HalfAdder(ha1.out[0],self.c)
|
||||
xor=Xor(ha1.out[1],ha2.out[1])
|
||||
self.out[0].out=ha2.out[0].out
|
||||
self.out[1].out=xor.out
|
||||
@@ -1,15 +1,15 @@
|
||||
from Source.Pre_Built_Gates.And import And
|
||||
from Source.Logic_Gates.Xor import Xor
|
||||
from Source.Pre_Built_Gates.Power import Power
|
||||
|
||||
class HalfAdder:
|
||||
def __init__(self,a,b) -> None:
|
||||
self.a=a
|
||||
self.b=b
|
||||
self.out=[Power(False),Power(False)]
|
||||
self()
|
||||
def __call__(self) -> None:
|
||||
bit_sum=Xor(self.a,self.b)
|
||||
carry=And(self.a,self.b)
|
||||
self.out[0].out=bit_sum.out
|
||||
from Source.Pre_Built_Gates.And import And
|
||||
from Source.Logic_Gates.Xor import Xor
|
||||
from Source.Pre_Built_Gates.Power import Power
|
||||
|
||||
class HalfAdder:
|
||||
def __init__(self,a,b) -> None:
|
||||
self.a=a
|
||||
self.b=b
|
||||
self.out=[Power(False),Power(False)]
|
||||
self()
|
||||
def __call__(self) -> None:
|
||||
bit_sum=Xor(self.a,self.b)
|
||||
carry=And(self.a,self.b)
|
||||
self.out[0].out=bit_sum.out
|
||||
self.out[1].out=carry.out
|
||||
@@ -1,42 +1,42 @@
|
||||
from Source.Pre_Built_Gates.Power import Power
|
||||
from Source.Components.Boolean_Arithmetic.HalfAdder import HalfAdder
|
||||
|
||||
class Inc16:
|
||||
def __init__(self,a) -> None:
|
||||
self.a=a
|
||||
self.out=[Power(False) for _ in range(16)]
|
||||
self()
|
||||
def __call__(self) -> None:
|
||||
add1=HalfAdder(self.a.out[15],Power(True))
|
||||
add2=HalfAdder(self.a.out[14],add1.out[1])
|
||||
add3=HalfAdder(self.a.out[13],add2.out[1])
|
||||
add4=HalfAdder(self.a.out[12],add3.out[1])
|
||||
add5=HalfAdder(self.a.out[11],add4.out[1])
|
||||
add6=HalfAdder(self.a.out[10],add5.out[1])
|
||||
add7=HalfAdder(self.a.out[9],add6.out[1])
|
||||
add8=HalfAdder(self.a.out[8],add7.out[1])
|
||||
add9=HalfAdder(self.a.out[7],add8.out[1])
|
||||
add10=HalfAdder(self.a.out[6],add9.out[1])
|
||||
add11=HalfAdder(self.a.out[5],add10.out[1])
|
||||
add12=HalfAdder(self.a.out[4],add11.out[1])
|
||||
add13=HalfAdder(self.a.out[3],add12.out[1])
|
||||
add14=HalfAdder(self.a.out[2],add13.out[1])
|
||||
add15=HalfAdder(self.a.out[1],add14.out[1])
|
||||
add16=HalfAdder(self.a.out[0],add15.out[1])
|
||||
|
||||
self.out[0].out=add16.out[0].out
|
||||
self.out[1].out=add15.out[0].out
|
||||
self.out[2].out=add14.out[0].out
|
||||
self.out[3].out=add13.out[0].out
|
||||
self.out[4].out=add12.out[0].out
|
||||
self.out[5].out=add11.out[0].out
|
||||
self.out[6].out=add10.out[0].out
|
||||
self.out[7].out=add9.out[0].out
|
||||
self.out[8].out=add8.out[0].out
|
||||
self.out[9].out=add7.out[0].out
|
||||
self.out[10].out=add6.out[0].out
|
||||
self.out[11].out=add5.out[0].out
|
||||
self.out[12].out=add4.out[0].out
|
||||
self.out[13].out=add3.out[0].out
|
||||
self.out[14].out=add2.out[0].out
|
||||
from Source.Pre_Built_Gates.Power import Power
|
||||
from Source.Components.Boolean_Arithmetic.HalfAdder import HalfAdder
|
||||
|
||||
class Inc16:
|
||||
def __init__(self,a) -> None:
|
||||
self.a=a
|
||||
self.out=[Power(False) for _ in range(16)]
|
||||
self()
|
||||
def __call__(self) -> None:
|
||||
add1=HalfAdder(self.a.out[15],Power(True))
|
||||
add2=HalfAdder(self.a.out[14],add1.out[1])
|
||||
add3=HalfAdder(self.a.out[13],add2.out[1])
|
||||
add4=HalfAdder(self.a.out[12],add3.out[1])
|
||||
add5=HalfAdder(self.a.out[11],add4.out[1])
|
||||
add6=HalfAdder(self.a.out[10],add5.out[1])
|
||||
add7=HalfAdder(self.a.out[9],add6.out[1])
|
||||
add8=HalfAdder(self.a.out[8],add7.out[1])
|
||||
add9=HalfAdder(self.a.out[7],add8.out[1])
|
||||
add10=HalfAdder(self.a.out[6],add9.out[1])
|
||||
add11=HalfAdder(self.a.out[5],add10.out[1])
|
||||
add12=HalfAdder(self.a.out[4],add11.out[1])
|
||||
add13=HalfAdder(self.a.out[3],add12.out[1])
|
||||
add14=HalfAdder(self.a.out[2],add13.out[1])
|
||||
add15=HalfAdder(self.a.out[1],add14.out[1])
|
||||
add16=HalfAdder(self.a.out[0],add15.out[1])
|
||||
|
||||
self.out[0].out=add16.out[0].out
|
||||
self.out[1].out=add15.out[0].out
|
||||
self.out[2].out=add14.out[0].out
|
||||
self.out[3].out=add13.out[0].out
|
||||
self.out[4].out=add12.out[0].out
|
||||
self.out[5].out=add11.out[0].out
|
||||
self.out[6].out=add10.out[0].out
|
||||
self.out[7].out=add9.out[0].out
|
||||
self.out[8].out=add8.out[0].out
|
||||
self.out[9].out=add7.out[0].out
|
||||
self.out[10].out=add6.out[0].out
|
||||
self.out[11].out=add5.out[0].out
|
||||
self.out[12].out=add4.out[0].out
|
||||
self.out[13].out=add3.out[0].out
|
||||
self.out[14].out=add2.out[0].out
|
||||
self.out[15].out=add1.out[0].out
|
||||
Reference in New Issue
Block a user