Professional Documents
Culture Documents
Presente Futuro
S0 Datain(0) = '0'
SI
S1 dtin<= datain;
NO dir<=dir-1;
S1 dataout(1…0)<=dtin(1)&'0';
dataout(5)<='0';
wea <="1";
S21
NO
dataout(12… 8)<="11111";
NO
S101 S100 wea<="0";
S100 dtin(12… 8)/=0 and f/="11" S22 dirf<=dir;
SI f<="00";
S2 f<="00";
NO
S2 S11 dataout(12 downto 8)<="00000";
dtin(1)='0'
SI
-> dtin(4..2)
000 dir<= dir+"000000000001";
--> r(1…0) dataout(4… 2) <="000";
00
dir<= (dir(11… 6)-"000001")&(dir(5…
01 0)+"000001");
dataout(4… 2) <= "001";
dir<= (dir(11…6)+"000001")&(dir(5…
10 0)+"000001");
dataout(4 downto 2) <= "111";
Null;
11
001
--> r(1…0) dir<= (dir(11…6)-"000001")&(dir(5…
00 0)+"000001");
dataout(4… 2) <= "001";
10 dir<= dir+"000000000001";
dataout(4… 2) <= "000";
11 Null;
010
--> r(1…0)
00 dir<= (dir(11…6)-"000001")&(dir(5…
0));
dataout(4… 2) <= "010";
01
dir<= (dir(11… 6)-"000001")&(dir(5…
0)- "000001");
dataout(4… 2) <= "011";
10
dir<= (dir(11… 6)-"000001")&(dir(5…
0)+"000001");
dataout(4… 2) <= "001";
11
Null;
011
--> r(1…0)
00
dir<= (dir(11… 6)-"000001")&(dir(5…
0)-"000001");
dataout(4 downto 2) <= "011";
01
dir<= dir(11… 6)&(dir(5…
0)-"000001");
10 dataout(4… 2) <= "100";
dir<= (dir(11… 6)-"000001")&dir(5…
11 0);
dataout(4… 2) <= "010";
100 Null;
--> r(1…0)
00
10 dir<= (dir(11…6)+"000001")&(dir(5…
0)-"000001");
dataout(4 downto 2) <= "101";
101 Null;
--> r(1…0)
00
01
01
001 Null;
dir<= dir+"000000000001";
111 dataout(4… 2) <= "000";
Null;
S11 S12 Nada;
S12 S13 dtin(6)<=datain(6);
dtin(7) <= datain(7);
dtin(1) <= datain(1);
dtin(12… 8) <= datain(12… 8);
S13 S14 wea <= "1";
dataout(1)<=dtin(1);
dataout(7)<=dtin(7);
dataout(0)<='1';
dataout(12…8)<=dtin(12… 8);
NO
dtin(5)='1' dataout(6)<=dtin(6);
SI
dataout(6)<='0';
NO
->
NO
dir(11…. 6)<"011011" dir(11… 6)<=dir(11… 6)+1;
SINO
dir(5… 0)<=dir(5… 0)-1;
-> dir(5… 0)>"100000"
SI dir(5… 0)<=dir(5… 0)+1;
->
NO
NO
dir(5… 0)<=dir(5… 0)-1;
-> dir(5… 0)>"100000"
SI dir(5… 0)<=dir(5… 0)+1;
->
NO
S18 dtin(7)='1' S19 dtin(12… 8)<="00000";
SI
Null;
NO
datain(5)='1' dtin(6)<=datain(6);
SI
Null;
NO
S19 S20 dtin(6)<=datain(6);
dtin(7)<=datain(7);
S20 S14 wea<="1";
dataout(0)<=dtin(0);
dtin(7)='1' dataout(5)<='0';
SI dataout(12… 8)<="00000";
dataout(7)<='1';
dataout(7)<=dtin(7);
NO dataout(5)<=dtin(5);
Otros
S23
-->dir(5… 0)<"100000" dir<=dir(11… 6)&(dir(5…
SINO S23 0)-"000001");
---> f(1… 0)
00 S23 dir<=(dir(11… 6)+"000001")&dir(5…
0);
10 S100
dir<=(dir(11… 6)+"000001")&(dir(5…
01 0)-"000001");
Nada;
Otros S23
-->
NO S23 dir<=(dir(11… 6)+"000001")&(dir(5…
---> f(1… 0) 0)+"000001");
00 S23
dir<=(dir(11… 6)+"000001")&dir(5…
S100 0);
10
dir<=(dir(11… 6)+"000001")&(dir(5…
01 0)-"000001");
Nada;
Otros S23
10 dir<=(dir(11… 6)-"000001")&dir(5…
S23 0);
01
dir<=(dir(11… 6)-"000001")&(dir(5…
Otros S23 0)-"000001");
Nada;
--> S23
NO
---> f(1… 0) S100
dir<=(dir(11… 6)-"000001")&(dir(5…
00 0)+"000001");
dir<=(dir(11… 6)-"000001")&dir(5…
10 S23 0);
01 dir<=(dir(11… 6)-"000001")&(dir(5…
S23 0)-"000001");
Otros Nada;
S23
->
NO S100
--> dir(5… 0)>"100000"
SI dir<=(dir(11… 6)+"000001")& (dir(5…
---> f(1… 0) 0)+"000001");
00 S23
dir<=dir(11… 6)&(dir(5…
0)+"000001");
01 S23
dir<=(dir(11… 6)-"000001")&(dir(5…
10 S23 0)+"000001");
Nada;
Otros S100
NO
S23 S24
S24 datain(12… 8)/=0 S18
SI
S22 dir<=dirf;
f<=f+1;
NO
S25 S26 dataout<= (dtin(12… 8)-1)&dtin(7…
0);
dtin<=(others=>'0');
S26 S27 wea<="0";
dir<= dir + 1;
S27 S28
S28 S0 dir<=dir+1;