You are on page 1of 1

asm = s0

dir = 0
dataout = 0
wea = 0
contador = 0
dtin = 0
y=0

S1

S0

dataout(1...0) = dtin(1)&'0'
dataout(5) = 0
datain(0) = 0 No wea = 1
Si dtin(6) = datain(6)
S14

Si
dtin = datain dtin(5) = 0 No contador = 5000000 Si
No datain(12..8)/=0 Si dir = dir-1 S12 dtin(6)<=datain(6)
dtin(7) = datain(7)
No dtin(1) = datain(1)
dataout(12...8) = dtin(12...8)
dataout(7) = dtin(7) contador = 0
y = y+1

S13
No contador = contador +1
dir = dir + 1 dir = dir-1 dtin(6)= 1 Si
dtin = datain wea = 1
dataout = 0
wea = 1 dataout(1) = dtin(1)
dataout(7) = dtin(7)
dataout(0) = 1

dataout(6) = dtin(6)
dataout(12...8) = 00000 Si dtin(6) = 1 No
S25 No dtin(5) = 1 dataout(6) = 0
dataout = (dtin(12...8)-1)&dtin(7...0)
dtin = 0 Si
dataout(5) = 1
dataout(6) = dtin(6) S15
dataout(12...8)= 11111
wea = 0
dir = dir + 2
dataout(12...8) = dtin(12...8)
dtin = 0
S26
wea = 0
dir = dir + 1

S101 S16
wea = 0
S27

S100

S28 dtin(12...8)/=0
dir = dir+1 No y Si
f /= 11 S21

dirf = dir

f=0 dirf = dir


f=0

S17

s22
No
dtin(7) = 0 dtin(5) = 0

S2
Si

No
dir(11...6) > 011011
wea = 0
S18
No
Si dir(11...6) < 011011
dtin(7) = datain(7)
No dtin(4..2) = 000 Si dtin(1) = '0' No dtin(4...2) = 000 No No
Si dir(5...0) > 100000
Si
No Si No
dir(11...6)<=dir(11...6)-1 dir(11...6) = dir(11...6)+1 Si dir(5...0) < 100000
dir = dir(11...6)&(dir(5...0)-1)
datain(5) = 1 No
dataout(4...2) = 100 dir(5...0) = dir(5...0)-1
r = 00 No r = 01 No r = 10
Si
Si Si Si Si
dir = dir+1 dir= (dir(11...6)-1)&(dir(5...0)+1) dir= (dir(11..6)+1)&(dir(5..0)+1)
dir(5...0) > 100000 No dir(5...0) = dir(5...0)+1
NULL
dataout(4...2) = 000 dataout(4...2) = 001 dataout(4...2) = 111
dtin(6) = datain(6)
dtin(4...2) = 001 No
Si
dir(5...0) > 100000 No
dir(5...0) = dir(5...0)-1 dir(5...0) < 100000
Si
No
No dtin(4...2) = 001 dir = (dir(11...6)+1)&(dir(5...0)-1 Si
Si dataout(4..2) = 101 S19
dir(5...0) < 100000
Si
No dir(5...0) = dir(5...0)-1 No

Si dir(5...0) = dir(5...0)+1 dtin(6) = datain(6)


r = 00 No r = 01 No r = 10 dtin(7) = datain(7)
Si Si Si dtin(4...2) = 010 No dir(5...0) = dir(5...0)+1
dir = (dir(11...6)-1)&(dir(5...0)+1) dir<= (dir(11...6)-1)&dir(5...0) dir = dir+1
dataout(4...2)= 001 dataout(4...2) = 010 dataout(4...2) = 000
Si
wea = 0
dir = (dir(11...6)+1)&dir(5...0) dirf = dir
dtin(4...2) = 010 dataout(4...0) = 110 f=0
S20
No Si No

r = 00 No r = 01 No r = 10 wea = "1"
Si
dtin(4...2) = 011 No dataout(0) = dtin(0)
Si Si
dir = (dir(11...6)-1)&dir(5...0) dir = (dir(11...6)-1)&(dir(5...0)-1 dir = (dir(11...6)-1)&(dir(5...0)+1)
dataout(4...2) = 010 dataout(4...2) = 011 dataout(4...2) = 001
Si
dir = (dir(11...6)+1)&(dir(5...0)+1)
dataout(4...2) = 111

dataout(7)<=dtin(7);
dtin(4...2) = 011 dtin(7) = 1 No dataout(5)<=dtin(5);

No Si
No dtin(4...2) = 100 No
Si No dataout(12… 8)<=dtin(12… 8);
r = 00 No r = 01 No r = 10 dtin(6) = 1
Si
Si
Si Si dir<= dir+1
dir = (dir(11...6)-1)&(dir(5...0)-1) dir = dir(11...6)&(dir(5...0)-1) dir = (dir(11...6)-1)&dir(5...0) dataout(4...2) = 000 dataout(5)<='0';
dataout(4...2) = 011 dataout(4...2) = 100 dataout(4...2) = 010 Si
dataout(12… 8)<="00000";
dataout(7)<='1';

No dtin(4...2) = 100 dataout(12… 8)<="00000";


Si dtin(4...2) = 101 No
No

r = 00 No r = 01 No r = 10 Si dtin(5) = 1 No
Si
Si Si dir = (dir(11...6)-1)&(dir(5...0)+1)
dir = dir(11...6)&(dir(5...0)-1) dir = (dir(11...6)+1)&(dir(5...0)-1) dir = (dir(11...6)-1)&(dir(5...0)-1) dataout(4...2) = 001
dataout(4...2) = 100 dataout(4...2) = 101 dataout(4...2) = 011 Si

dtin(4...2) = 110 No
dtin(4...2) = 101 dataout(6) = dtin(6)
No
Si
Si
No dir = (dir(11...6)-1)&dir(5...0)
dataout(4...2) = 010
r = 00 No r = 01 No r = 10
Si Si Si

dir = (dir(11...6)+1)&(dir(5...0)-1) dir = (dir(11...6)+1)&dir(5...0) dir = dir(11...6)&(dir(5...0)-1)


dataout(4...2) = 101 dataout(4...2) = 110 dataout(4...2) = 100

dtin(4...2) = 111 No

No dtin(4...2) = 110 Si
dir = (dir(11...6)-1)&(dir(5...0)-1)
dataout(4...2) = 011
NULL
Si No
S23
r = 00 No r = 01 No r = 10
Si Si Si S22
dir = (dir(11...6)+1)&dir(5...0) dir = (dir(11...6)+1)&(dir(5...0)+1) dir = (dir(11...6)+1)&(dir(5...0)-1)
dataout(4...2) = 110 dataout(4...2) = 111 dataout(4...2) = 101

No dtin(4...2) = 111
dtin(6) = 0
Si No

r = 00 No r = 01 No r = 10 Si
Si
Si

dir = (dir(11...6)+1)&(dir(5...0)+1) dir = dir+1 dir = (dir(11...6)+1)&dir(5...0) dir(11..6) >"011011" No


dataout(4...2) = 111 dataout(4...2) = 000 dataout(4...2) = 110
S24

Si datain(12...8)/
Si =0

Si No
dir(5...0)>"100000" No dir(11...6)<"011011" No dir = dirf
S11 f = f+1

Si

f = 00 Si dir = dir(11...6)&(dir(5...0)+"000001")

Si No
dir(5...0)>"100000" Si dir(5...0)>"100000" No
No

f = 01 Si dir<=(dir(11...6)+"000001")&dir(5...0);

f = 00 Si dir = dir(11...6)&(dir(5...0)+"000001")
No f = 00 Si dir<=(dir(11...6)+"000001")&(dir(5...0)+"000001")

No
No f = 10 Si dir<=(dir(11...6)+"000001")&(dir(5...0)+"000001"); No

f = 01 Si dir<=(dir(11...6)-"000001")&dir(5...0);
s100 f = 01 Si dir<=dir(11...6)&(dir(5...0)+"000001")

No
No
dir(5...0)< 100000 No
No f = 10 Si dir<=(dir(11...6)-"000001")&(dir(5...0)+"000001");
No f = 10 Si dir<=(dir(11...6)-"000001")&(dir(5...0)+"000001")

Si

f = 00 Si dir<=dir(11...6)&(dir(5...0)-"000001")

No dir(5...0)< 100000 No Si dir(5...0)<"100000" No

Si
f = 01 Si dir<=(dir(11...6)+"000001")&dir(5...0)

f = 00 Si dir<=dir(11...6)&(dir(5...0)-"000001")
No
f = 00 Si dir<=(dir(11...6)+"000001")&(dir(5...0)-"000001")

No
No f = 10 Si dir<=(dir(11...6)+"000001")&(dir(5...0)-"000001")
No

f = 01 Si dir<=(dir(11...6)-"000001")&dir(5...0)
f = 01 Si dir<=dir(11...6)&(dir(5...0)-"000001")

No
No
f = 00 Si dir<=(dir(11...6)+"000001")&(dir(5...0)+"000001")
No f = 10 Si dir<=(dir(11...6)-"000001")&(dir(5...0)-"000001")

No f = 10 Si dir<=(dir(11...6)-"000001")&(dir(5...0)-"000001")

No

f = 01 Si dir<=(dir(11...6)+"000001")&dir(5...0)
f = 00 Si dir<=(dir(11...6)-"000001")&(dir(5...0)+"000001")

No
No

No f = 10 Si dir<=(dir(11...6)+"000001")&(dir(5...0)-"000001")
f = 01 Si dir<=(dir(11...6)-"000001")&dir(5...0)

No

No f = 10 Si dir<=(dir(11...6)-"000001")&(dir(5...0)-"000001")

You might also like