SFLEXP (SFL EXPander) $B$O!$(BSFL$B%U%!%$%k$rFI$_9~$_!$(BSFL$B$N%b%8%e!<%k$4$H$KO@M}9g@.$r9T$$$^$9!%(B
SFLEXP$B$K$h$k9g@.7k2L$N%M%C%H%j%9%H$O!$(BHSL$B8@8l(B($B7A<0(B)$B$N%U%!%$%k$H$7$F=PNO$5$l$^$9!%(BPARTHENON$B$N%M%C%H%j%9%H5-=R8@8l$O(BNLD$B$G$9$,!$3+H/$NNr;KE*7P0^$+$i(BSFLEXP$B$O!$(BHSL$B$K$h$k%M%C%H%j%9%H$r=PNO$7$^$9!%$7$+$7!$(BHSL_NLD$B$K$h$j!$$3$N(BHSL$B$O$9$0$K(BNLD$B$KJQ49$5$l$k$N$G!$MxMQ
$B4JC1$J(BSFL$B5-=R$rO@M}9g@.$7$F$_$^$7$g$&!%(B
A>sflexp abc.sfl abc.hsl
$B$HF~NO$7$^$9!%$9$k$H!$$:$$$V$s$?$/$5$s$N%a%C%;!<%8$,=PNO$5$l$^$9$,!$:G8e$+$i(B2$B9TL\$K(B
sfl_file_name : $B9g@.BP>]$N(BSFL$B%=!<%9!&%U%!%$%kL>(B
hsl_file_name : $B%M%C%H%j%9%H$H$7$F=PNO$9$k(BHSL$B%U%!%$%kL>(B
switch ::= {-single | -multi | -nopost}
| {-nld | -nonld}
| -fin param
| -level_factor param
| -mem param
$B0J2
-single $B$O!$%]%9%H%*%W%H$r%"%/%7%g%s$4$H$K9T$&$3$H$r;XDj$7$^$9!%$3$3$G%"%/%7%g%s$H$O!$%l%8%9%?$N%i%$%H!&%$%M!<%V%kO@M}$d%;%l%/%?$N%;%l%/%HO@M}$N$3$H$G$9!%(B
-multi $B$O!$%]%9%H%*%W%H$r$9$Y$F$N%"%/%7%g%s$KBP$7$F0l3g$7$F9T$&$3$H$r;XDj$7$^$9!%(B
-nopost $B$G$O!$%]%9%H%*%W%H$O9T$o$l$^$;$s!%(B
$B$3$l$i;0$D$N%9%$%C%A$rHf$Y$k$H!$0l8+!$(B-multi $B$r;XDj$9$k$N$,$b$C$H$bNI$$$h$&$K;W$($^$9!%$7$+$7!$(B-multi $B$r;XDj$9$k$H!$%b%8%e!<%kA4BN$NO@M}$rBP>]$H$7$F4JC12=$r9T$&$N$G!$$?$7$+$K2sO)$O>.$5$/$J$j$^$9$,!$(B
-nonld $B$G$O!$(BSFL$B$N%b%8%e!<%k$+$i9g@.$5$l$?%M%C%H%j%9%H$N$_$,=PNO$5$l$^$9!%(B
-fin 5
$B$H;XDj$7$?>l9g$O!$(B2$BF~NO$+$i(B 5$BF~NO$^$G$N(Bnand$B%2!<%H!$(Bnor$B%2!<%H$,;H$o$l$^$9!%(B1$B$r;XDj$9$k$H(Band$B!$(Bor$B$+$i(Bnand$B!$(Bnor$B$X$NJQ49$=$N$b$N$,9T$o$l$:!$%U%!%s!&%$%s?t$N@)8B$b9T$o$l$^$;$s!%;XDj$N$J$$>l9g$O(B 8$B$,;XDj$5$l$?$b$N$H$_$J$5$l$^$9!%(B
$B$3$N(B-level_factor$B%9%$%C%A$N0UL#$O!$$"$kO@M}$N$/$/$j=P$78uJd$KBP$7!$$=$N$/$/$j=P$7$K$h$C$F8:$kF~NO?t$,(B param $BDxEY$G$O!$$=$N$/$/$j=P$7$r$7$J$$$H$$$&$b$N$G$9!%(B
$B$?$H$($P!$(B
-level_factor 3
$B$G$O!$$"$k$/$/$j=P$9O@M}$N8uJd$,$"$C$F!$$=$N$/$/$j=P$7$K$h$C$FA4BN$NO@M}%2!<%H$NF~NO?t$,(B 3$B8D8:$k$H$9$k$H!$$=$N$/$/$j=P$7$O9T$o$J$$$H$$$&$3$H$K$J$j$^$9!%(Bparam$B$,(B 0$B$G$"$l$P!$$I$N$h$&$J$/$/$j=P$7$b8z2L$,$"$k$J$i9T$&$H$$$&$3$H$K$J$j$^$9!%;XDj$,$J$$>l9g$O!$(B0$B$,;XDj$5$l$?$b$N$H$5$l$^$9!%(B
$B0lJ}!$9bB.2=$rMW5a$5$l$k$?$a(BC$B8@8l$G=q$+$l$?ItJ,$O!$%@%$%J%_%C%/$J%R!<%WNN0h$rI,MW$H$7$^$9!%(B
$B$9$J$o$A!$(BSFLEXP$B$O!$(B
$B$3$N(B-mem$B%9%$%C%A$O!$(Bprolog$B$N$?$a$N%9%?%F%#%C%/$JNN0h$r$I$l$[$I3d$jIU$1$k$+$r7hDj$7$^$9!%;D$j$,(BC$B$N$?$a$NNN0h$H$J$j$^$9!%(B
param$B$O!$(Bsss $B$+(B ss $B$+(B s $B$+(B m $B$G!$(B
$BMxMQ$G$-$k%a%b%j$,(B 3M$B%P%$%H$G$O(B sss $B$r!$(B5M$B%P%$%H$G$O(B ss $B$r!$(B10M$B%P%$%H$G$O(B s $B$r!$(B14M$B%P%$%H0J>e$G$O(B m $B$r;XDj$9$k$N$,$h$$$G$7$g$&!%(B
$BO@M}9g@.Cf$KH/@8$9$k$+$b$7$l$J$$LdBj$K$O!$(B
$B$,$"$j$^$9!%(B
(1) $B%7%s%?%C%/%9!&%(%i!<(B
SFLEXP $B$O(BSFL$B5-=R$rFI$_9~$`$H$3$m$+$i=hM}$r;O$a$^$9!%$3$N2aDx$G8+$D$+$k(BSFL$B5-=R$N4V0c$$$r%7%s%?%C%/%9!&%(%i!<$H$$$$$^$9!%(B
$B%7%s%?%C%/%9!&%(%i!<$,$"$k>l9g$O!$(B
$B$J$*!$%(%G%#%?$,5/F0$5$l$k%a%+%K%:%`$O!$(B%PARTHENON%\com $B$K$"$k(B sfl_edit.bat $B%U%!%$%k$K;XDj$5$l$F$$$^$9$N$G!$$*
$B%(%i!<$r=$@5$7$?$i!$%(%G%#%?$r=*N;$5$;$F$+$i!$(Br. $B$HF~NO$7$F$/$@$5$$!%=$@52U=j$+$i2r@O$r:F3+$7$^$9!%(Br. $B$O(BSFLEXP$B$N%5%V%3%^%s%I$G!$:F;n9T(B(retry)$B$rI=$7$^$9!%$3$N;~E@$GF~NO2DG=$J%5%V%3%^%s%I$O!$(B
$B$^$?!$(BSFLEXP$B$N%5%V%3%^%s%I$rF~NOCf$K!$(B
$B$J$I$G$9!%(B
$B%7%s%?%C%/%9!&%(%i!<$,$J$1$l$P!$$=$N$^$^O@M}9g@.$K0\$j$^$9!%O@M}9g@.$OHs>o$K$?$/$5$s$N%9%F%C%W$rF'$`$N$G!$L58B%k!<%W$KF~$C$F$7$^$C$?$N$+$H?4G[$K$J$i$J$$$h$&$K$?$/$5$s$N%a%C%;!<%8$r=PNO$7$^$9!%$3$l$i$O!$$=$l$J$j$NJs9p$r$7$F$$$k$N$G$9$,!$5$$K$7$J$$$G$/$@$5$$!%(B
(2) $B%*!<%P%U%m!<(B
$B%=%U%H%&%'%"$N%3%s%Q%$%i$O!V
(3) $B=q$-9~$_6%9g%(%i!<(B
$B=q$-9~$_6%9g%(%i!<$H$$$&$N$O!$(BSFL$B5-=R$KLdBj$,$"$k$H$-$KJs9p$5$l$^$9!%(BSFLEXP$B$N=*N;$^$.$o$K=PNO$5$l$k%(%i!uBVA+0\%(%i!<$,H/@8$7$F$$$^$9!%(B
<$B%j%9%H(B6.1> $B=q$-9~$_6%9g%(%i!<$,H/@8$9$k5-=RNc(B
$B%j%9%H(B6.1$B$NNc$G8+$F$_$k$H!$(B8$B9TL\!$(B9$B9TL\$G;XDj$5$l$?%l%8%9%?(Br$B$X$NBeF~$,I,$:6%9g$7$^$9!%$b$A$m$s%7%_%e%l!<%7%g%s$r$7$C$+$j$d$C$F$*$1$P!$$3$NLdBj$O8+$D$+$k$G$7$g$&!%$7$+$7!$6%9g$r5/$3$9>u67$r@_Dj$7$J$$$H%7%_%e%l!<%?$O%(%i!<$rJs9p$7$F$/$l$^$;$s$N$G!$8+Mn$H$9$+$b$7$l$^$;$s!%$H$3$m$,!$O@M}9g@.$G$O$9$Y$F$NO@M}$rE83+$7$F@0M}$7$^$9$N$G!$%l%8%9%?(Br$B$X$NBeF~$,6%9g$9$k$3$H$,$o$+$k$N$G$9!%%(%i!
(4) $B>uBVA+0\%(%i!<(B
$BA+0\@h$,B8:_$7$J$$>uBVA+0\%(%i!<$O!$%j%9%H(B6.2$B$N$h$&$K!$$?$C$?(B 1$B8D$NM-8z$J>uBV(B(st2$B$X$OA+0\$,H/@8$7$J$$$N$G(Bst1$B$N$_$,M-8z(B)$B$K$o$6$o$6>uBVA+0\$9$k5-=R(B(goto$BJ8$N$3$H(B)$B$,$"$k$H$-!$9g@.=hM}$,@5$7$/9T$o$l$:$K%(%i!<$H$J$j$^$9!%(B
$B<+>uBV$KBP$9$k>uBVA+0\$O!$>uBVA+0\$7$J$$$N$HF1$8$G$9$+$i!$$=$N$h$&$JL50UL#$J>uBVA+0\$r5-=R$7$J$$$h$&$K$7$F$/$@$5$$!%(B
<$B%j%9%H(B6.2> $BL5BL$J>uBVA+0\$,%(%i!<$H$J$k5-=RNc(B
SFLEXP$B$O(BSFL$B$N%b%8%e!<%kKh$K(BSFL$B5-=R$r2sO)(B($B=i4|2sO)(B)$B$KJQ49$7$^$9!%$=$N9=@.MWAG$H$7$FO@M}%;%k$,;H$o$l$k$3$H!$$^$?$3$N2sO)$O(BOPT_MAP$B!$(BRINV$B!$(BONSET$B$N%W%m%0%i%`$K$h$C$F:GE,2=$5$l!$:G=*E*$K/$7>\$7$/=R$Y$^$9!%(B
$BK\@a$G$O!$(BSFL$B$N9=@.MWAG$HD>@\BP1~$9$k=i4|2sO)$N9=@.MWAG$d(BSFL$B$NF0:n5-=R$H$OL54X78$G8GDjE*$J@\B34X78$r!$(B6.4$B@a$G$O!"(BSFL$B$N$$$m$$$m$JF0:n5-=R$,9=@.MWAG4V$N$I$s$J@\B3$KJQ49$5$l$k$N$+$r=R$Y$^$9!%(B
$B!|(B $B%b%8%e!<%k$N30ItC<;R(B
$B=i4|2sO)(B(nld$B$N%b%8%e!<%k(B)$B$N30ItC<;R$O(BSFL$B$G$N%b%8%e!<%k$N30ItC<;R$K0J2<$N(B4$B$D$N30ItF~NOC<;R(B
$B=i4|2sO)$N30ItC<;R$NC<;R%?%$%W$O(BSFL$B$G$NC<;R%?%$%W$+$i0J2<$NBP1~$G<($5$l$k$b$N$H$J$j$^$9!#(B
SFL$B$G$N%5%V%b%8%e!<%k$O=i4|2sO)$N%5%V%b%8%e!<%k$H$J$j$^$9!%%5%V%b%8%e!<%k$N%$%s%9%?%s%9L>$O(BSFL$B$G$N%$%s%9%?%s%9L>$HF1$8$G$9!%%5%V%b%8%e!<%k$N30ItC<;R$O(BSFL$B$G$N%5%V%b%8%e!<%k$N30ItC<;R$K>e5-$N(B4$B$D$NC<;R(B(p_reset$B!$(Bm_clock$B!$(Bs_clock$B!$(Bb_clock)$B$,2C$($i$l$?$b$N$H$J$j$^$9!%(B
$B!|(B $B%G!<%?!&%l%8%9%?(B
SFL$B$N%-!<%o!<%I(B reg$B!$(Breg_wr$B!$(Breg_ws $B$GDj5A$5$l$?%G!<%?%l%8%9%?$O=i4|2sO)$G$O(B($BO@M}%;%k$N(B)$B%G!<%?!&%l%8%9%?(Breg-N$B!$(Bregr-N$B!$(Bregs-N $B$H$J$j$^$9!%%$%s%9%?%s%9L>$O(BSFL$B$G$N%$%s%9%?%s%9L>$HF1$8$G$9!%(B
$B!|(B $B>uBV%l%8%9%?(B
SFL$B$G$N%9%F!<%8$H%;%0%a%s%H$O!$%9%F!<%8Fb$N>uBV$NAm?t(B($B%;%0%a%s%H$N>uBV$N?t$r4^$a$^$9(B)$B$r(BN$B$H$9$k$H!$(Blog2N$B8D$N>uBV%l%8%9%?(B reg--1 $B$H$J$j$^$9!%%$%s%9%?%s%9L>$O!$%9%F!<%8L>(B-bit_posi $B$^$?$O!$%9%F!<%8L>(B-$B%;%0%a%s%HL>(B-bit_posi $B$G$9!%$3$3$G(B bit_posi $B$O(B0$B!$(B1$B!$(B2$B!$(B...$B$G$9!%(B
$B!|(B $B%?%9%/!&%l%8%9%?(B
SFL$B$N%9%F!<%8$+$i$O!$%9%F!<%8L>(B--all$B$H$$$&%$%s%9%?%s%9L>$N%?%9%/%l%8%9%?(B reg---1 $B$,@8@.$5$l!$(BSFL$B$G$N%?%9%/$O!$%9%F!<%8L>(B-$B%?%9%/L>$H$$$&%$%s%9%?%s%9L>$N%?%9%/%l%8%9%?(B reg---1 $B$H$J$j$^$9!%(B
$B!|(B $B%j%;%C%H!"%/%m%C%/$N@\B3(B
$B%5%V%b%8%e!<%k$dO@M}%;%k(B($B%G!<%?!&%l%8%9%?!$>uBV%l%8%9%?!$%?%9%/!&%l%8%9%?(B)$B$N(Bp_reset$B!$(Bm_clock$B!$(Bs_clock$B!$(Bb_clock$BC<;R$O%b%8%e!<%k$N(Bp_reset$B!$(Bm_clock$B!$(Bs_clock$B!$(Bb_clock$BC<;R$KD>@\@\B3$5$l$^$9!%$9$J$o$A!$$3$l$i$N%j%;%C%H?.9f$d%/%m%C%/?.9f$N6K@-$d%Q%k%9$NGH7A$N0UL#$O(BPARTHENON$B$N%W%m%0%i%`$G$O5,Dj$5$l$^$;$s!%$3$l$i$N>pJs$O%;%k%i%$%V%i%j$G5,Dj$5$l$^$9!%(B
$B$?$H$($P!"%;%k%i%$%V%i%j$r@_7W$"$k$$$OA*Br$9$k;~$K!$%l%8%9%?$H$7$FC10l%/%m%C%/$N%(%C%8!&%H%j%,%?%$%W$r:NMQ$7!$%/%m%C%/C<;R$H$7$F(Bm_clock$B$r;HMQ$7$?>l9g(B($B$3$&$$$C$?>pJs$O(BPCD$B$G5-=R$7$F(BOPT_MAP$B$KEA$($k(B)$B!$(BOPT_MAP$B$N5!G=$K$h$j!$(Bs_clock$BC<;R$H$=$N@\B3$O:G=*2sO)$+$i:o=|$5$l$^$9!%(B
$B!|(B $BAPJ}8~C<;R$KBP$9$k%P%9!&%I%i%$%V2sO)!"%;%l%/%?$NA^F~(B
$B%b%8%e!<%k$N30ItAPJ}8~C<;R$d%5%V%b%8%e!<%k$N30ItAPJ}8~C<;R$K$O!$$3$l$r%I%i%$%V$9$k$?$a$N%P%9%I%i%$%V2sO)(Bbdrv-N$B$,@\B3$5$l$^$9!%$=$N%$%s%9%?%s%9L>$O3F!9!$%G!<%?APJ}8~C<;RL>(B-drive$B!$%5%V%b%8%e!<%kL>(B-$B%G!<%?APJ}8~C<;RL>(B-drive$B$G$9!%$5$i$K%G!<%?APJ}8~C<;R$X$NE>Aw85$,J#?t8D$"$k>l9g$O%P%9%I%i%$%V2sO)$NA0$K%;%l%/%?(BslN-M$B$,A^F~$5$l$^$9!%(B
$B!|(B $B=PNOC<;R$KBP$9$k%;%l%/%?$NA^F~(B
$B%G!<%?=PNOC<;R$X$N%G!<%?E>Aw85$,(B1$B8D$N>l9g$O=i4|2sO)$NE>Aw85$H30It=PNOC<;R$OD>@\@\B3$5$l$^$9!%%G!<%?=PNOC<;R$X$N%G!<%?E>Aw85$,J#?t8D$N>l9g$O30It=PNOC<;R$NA0$K%;%l%/%?$,A^F~$5$l$^$9!%(B
$B!|(B $B%l%8%9%?$KBP$9$k%;%l%/%?$NA^F~(B
$B%l%8%9%?$X$NE>Aw85$,J#?t8D$N$H$-!$%l%8%9%?$NF~NOC<;R$NA0$K%;%l%/%?$,A^F~$5$l$^$9!%(B
$B!|(B $BA^F~$5$l$k%;%l%/%?$N%;%kL>!"%$%s%9%?%s%9L>(B
$BA^F~$5$l$k%;%l%/%?$K$OO@M}%;%k$N(BslN-M$B$,;H$o$l!$%$%s%9%?%s%9L>$O(Bsel-1$B!$(Bsel-2$B!$(B...$B$H$J$j$^$9!%(B
$B!|(B $B@)8fFbItC<;R(B
SFL$B$G$N@)8fFbItC<;R$O=i4|2sO)$G$O@)8f$NCf7QC<;R(Binst-dum$B$H$J$j$^$9!%%$%s%9%?%s%9L>$O(BSFL$B$G$N@)8fFbItC<;RL>$HF1$8$G$9!%@)8fFbItC<;R$N5/F0$,J#?t2U=j$+$i9T$o$l$k>l9g$O(Binst-dum$B$NA0$K(Bor$B%2!<%H$,A^F~$5$l$^$9!%(B
$B!|(B $B%G!<%?FbItC<;R(B($B%G!<%?$NE>Aw85$,J#?t8D$N>l9g(B)
$B%G!<%?$NE>Aw85$,J#?t8D$N>l9g!$(Bbus_v$B$^$?$O(Bbus$B!$$"$k$$$O(Bsel_v$B$^$?$O(Bsel$B$GDj5A$5$l$?%G!<%?FbItC<;R$O!$0J2<$NBP1~$G(BbsN-M$B$"$k$$$O(BslN-M$B$XJQ49$5$l$^$9!%(B
bus_v$B!$(Bsel_v$B$GDj5A$5$l$?%G!<%?FbItC<;R$OO@M}05=L$N2aDx$G$J$/$J$C$F$7$^$&$3$H$,$"$j!$$=$N>l9g$K$O=i4|2sO)$K$O2?$b$"$i$o$l$^$;$s!%(B
$B!|(B $B%G!<%?FbItC<;R(B($B%G!<%?$NE>Aw85$,#18D$N>l9g(B)
$B%G!<%?$NE>Aw85$,(B1$B8D$N>l9g!$(Bsel$B$^$?$O(Bbus$B$GDj5A$5$l$?%G!<%?FbItC<;R$O%G!<%?$NCf7QC<;R(Bbus-N$B$KJQ49$5$l$^$9!%(Bbus-N$B$N%$%s%9%?%s%9L>$O(BSFL$B$G$N%G!<%?FbItC<;R$NL>A0$HF1$8$G$9!%(B
$B!|(B $BO@M}%2!<%H!"Dj?t(B
SFL$B$NF0:n5-=R$+$i@8@.$5$l$kO@M}%2!<%H$dDj?t$N%$%s%9%?%s%9L>$O0J2<$N$h$&$K$J$j$^$9!%(B
$BO@M}9g@.$O!$!V
SFLEXP$B$O!$(B6.3$B@a$G=R$Y$?$h$&$K!$(BSFL$B$NMWAG$N$&$A
$B%j%9%H(B6.3$B$r9g@.$7$F$_$^$9!%9g@.$O!$(B
$BO@M}9g@.$N7k2L$O!$?^(B6.1$B$N$h$&$K$J$j$^$9!%(B
<$B?^(B6.1> $B%j%9%H(B6.3$B$N9g@.7k2L(B
$B$3$NNc$G$O!$%G!<%?APJ}8~C<;R(Bxyz$B$KBP$9$kCM$N@_Dj$,$"$k$N$G!$$^$:!$(Bbdrv-1$B$,(Bxyz$B$NA0$KA^F~$5$l!$$=$N=PNO(Bout$B$,(Bxyz$B$K@\B3$5$l$^$9!%(Bxyz$B$KBP$9$kF~NO$,(Babc$B$N$_$J$N$G!$(Babc$B$OC1=c$K(Bbdrv-1$B$NF~NO(Bin$B$K@\B3$5$l$^$9!%$^$?!$(Bxyz$B$XCM$r@_Dj$9$k7@5!$O!$(Bstart$B$,(B"1"$B$N$H$-$G$9$N$G!$(Bstart$B$,(Bbdrv-1$B$N(Benb$B$K@\B3$5$l$k$3$H$K$J$j$^$9!%(B
$B!|(B $B@)8f$,$J$/$J$C$F$7$^$&Nc(B
$B
$B$$$k0J30$OA0$NNc$HF1$8$G$9!%$3$l$r9g@.$9$k$H?^(B6.2$B$N$h$&$K$J$j$^$9!%(B
$B$3$N(BSFL$B5-=R$O!$(Bstart$B$,(B"1"$B$N$H$-(Babc$B$r(Bxyz$B$X@_Dj$9$k$3$H$r
<$B?^(B6.2> $B%j%9%H(B6.4$B$N9g@.7k2L(B
$Bl9g$G$9!%%j%9%H(B6.5$B$r9g@.$9$k$H?^(B6.3$B$N$h$&$K$J$j$^$9!%$3$NNc$N$h$&$K1i;;;R$,$"$i$o$l$k$H!$(BSFLEXP$B$O5-=R$I$*$jC1=c$K@\B3$9$k$N$G$O$J$/!$O@M}$r4JC1$K$7$h$&$H$7$^$9!%$=$N7k2L$,$3$N2sO)$G$9!%(BSFLEXP$B$OA4BN$r8+$?6K@-$N:GE,2=$r9T$$$^$;$s$N$G!$$3$NNc$NMM$KL5BL$J%$%s%P!<%?$,4^$^$l$F$7$^$&$3$H$,5/$3$j$^$9$,!$L5BL$J%$%s%P!<%?$O(BOPT_MAP$B!$(BONSET$B!$(BRINV$B$K$h$C$F:o=|$5$l$^$9!%(B
<$B?^(B6.4> $B%j%9%H(B6.6$B$N9g@.7k2L(B
$Br7o9=J8$,$I$&9g@.$5$l$k$+$r8+$k$b$N$G$9!%%j%9%H(B6.7$B$N5-=R$N0UL#$O%G!<%?F~NOC<;R(Bcnd$B$,(B"0"$B$J$i$PF~NO(Babc$B$r!$(B"1"$B$J$i$PF~NO(Bdef$B$r!$%G!<%?=PNOC<;R(Bxyz$B$K=PNO$9$k$H$$$&$b$N$G$9!%9g@.7k2L$O?^(B6.5$B$N$h$&$K$J$j$^$9!%(Bxyz$B$X$NCM$NE>Aw85$,Fs$D$"$k$N$G%;%l%/%?$,A^F~$5$l!$E>Aw>r7o$O%;%l%/%?$N%;%l%/%HF~NO$K4JC12=$5$l$F@\B3$5$l$^$9!%(B
$B%G!<%?E>Aw85$N(Babc$B$d(Bdef$B$,Dj?t$N>l9g$O$I$&$J$k$G$7$g$&$+!%%j%9%H(B6.8$B$OA0$NNc$N(Babc$B$r(Bob1110$B$K(Bdef$B$r(Bob0101$B$KJQ$($?$b$N$G$9$,!$$3$N9g@.7k2L$O!$?^(B6.6(a)$B$N$h$&$K$J$j$^$9!%(BSFLEXP$B$O!$%G!<%?=PNOC<;R$KBP$9$kE>Aw$G$O!$E>Aw85$HE>Aw>r7o$rJL!9$K4JC12=$9$k$?$a!$%;%l%/%?$N$^$o$j$N4JC12=$,IT==J,$G$9$,!"$5$i$K(BOPT_MAP$B!$(BONSET$B!$(BRINV$B$r$+$1$k$H?^(B6.6(b)$B$N$h$&$K4JC12=$5$l$^$9!%$3$N2sO)?^$O!$
auto test6 ps celldemo
$B$K$h$j=PNO$7$?$b$N$G$9!%(B
<$B%j%9%H(B6.8> $BDj?t$r%;%l%/%H$9$kNc(B
<$B?^(B6.6(b)> $B%j%9%H(B6.8$B$N9g@.7k2L(B (OPT_MAP$B!$(BONSET$B!$(BRINV $BE,MQ8e(B)
sel_v$B$^$?$O(Bbus_v$B$GDj5A$7$?%G!<%?FbItC<;R$XGSB>E*>r7o$GDj?t$rE>Aw$9$k>l9g$K$O!$(BSFLEXP$B$OE>Aw85$HE>Aw>r7o$r$^$H$a$F4JC12=$7$^$9!%(B
$B%j%9%H(B6.9$B$O!$$3$N>r7o$rK~$?$7$F$$$k$N$G$3$l$r9g@.$9$k$H?^(B6.7(a)$B$N$h$&$K!$(BSFLEXP$B$NCJ3,$G$"$kDxEY4JC12=$5$l$^$9!%$?$@$7!$$3$NNc$N$h$&$K>r7o$,$9$Y$F$F?T$/$5$l$F$$$J$$>l9g$O!$(BOPT_MAP$B!$(BONSET$B!$(BRINV$B$N$_$G4JC12=$r9T$&(B($B$9$J$o$A!$%j%9%H(B6.8$B$N$h$&$K(Bsel_v$B$r;H$o$J$$$G5-=R$9$k(B)$BJ}$,$h$$$G$7$g$&!%$3$NNc$N>l9g$O!$(Bcnd$B$N%I%s%H!&%1%"$r9MN8$9$l$P!$K\Mh?^(B6.6(b)$B$^$G4JC12=$G$-$k$O$:$G$9$,!$?^(B6.7(b)$B$^$G$7$+4JC12=$5$l$^$;$s!%(B
<$B%j%9%H(B6.9> $B%;%l%/%?ItJ,$N05=L$r;XDj$9$kNc(B
<$B?^(B6.7(a)> $B%j%9%H(B6.9$B$N9g@.7k2L(B
$B
<$B?^(B6.8> $B@QOB7A$X$NE83+(B
SFLEXP$B$OO@M}$r4JC12=$9$k$?$a$KO@M}<0$r$^$:@QOB7A$KE83+$7$^$9!%$3$NO@M}<0$N>l9g$O?^(B6.8$B$N$h$&$K@Q9`$,(B28$B8D!$$9$J$o$A(B256$B8D$H$J$j$^$9!%?M4V$OO@M}$N9=B$$rCN$C$F$$$^$9$N$G!$$=$l$,$I$&$7$?$H;W$$$^$9$,!$(BSFLEXP$B$O$3$NO@M}<0$,$^$C$?$/%i%s%@%`$J>l9g$HF1$8J}K!$G4JC12=$r9T$$$^$9$N$G%*!<%P%U%m!<$7$F$7$^$$$^$9!%(B
$B?M4V$,O@M}$N9=B$$rCN$C$F$$$k>l9g$O!$O@M}$N9=B$$KB($7$?C<;R$rA^F~$7$FO@M}$rJ,N%$9$k$H%*!<%P%U%m!<$,KI$2$^$9!%(Bsel$B$+(Bbus$B$GDj5A$5$l$?%G!<%?FbItC<;R$d%5%V%b%8%e!<%k$NC<;R$,$3$NL\E*$K;H$($^$9!%%j%9%H(B6.11$B$K%j%9%H(B6.10$B$NO@M}$r%G!<%?FbItC<;R$GJ,N%$7$?Nc$r<($7$^$7$?!%(B
$B!|(B $B%9%F!<%8$H>uBVA+0\$r4^$`Nc(B
$B%j%9%H(B6.12$B$O=i$a$F$N=g=x2sO)$NNc$G$9!%$3$NNc$G$O(B st1 $B$H(B st2 $B$N#2$D$N>uBV$r;}$D%9%F!<%8(B stg $B$,%G!<%?$NE>Aw!&2C9)$r@)8f$7$F$$$^$9!%>uBV$O(B st1 $B$+$i(B st2$B!$(Bst2 $B$+$i(B st1 $B$H8r8_$KJQ2=$7$^$9!%$3$N%9%F!<%8$,F0:n$r3+;O$9$k$N$O!$@)8fF~NOC<;R(B start $B$,5/F0$5$l$F!$$3$N%9%F!<%8$K%8%g%V$r@8@.$7$?$H$-$+$i$G$9!%>uBV(B st1 $B$G$O!$(Bin1 $B$NCM$,(B reg1 $B$K=q$-9~$^$l!$(Breg1 $B$NFbMF$,(B out $B$X=PNO$5$l$^$9!%>uBV(B st2 $B$G$O!$(Bin2 $B$NCM$,(B reg2 $B$K=q$-9~$^$l!$(Breg2 $B$NFbMF$,(B out $B$X=PNO$5$l$^$9!%(Bauto $B%3%^%s%I$K$h$k9g@.7k2L$O?^(B6.9$B$N$h$&$K$J$j$^$9!%(B
$B>uBV%l%8%9%?(B stg-0 $B$NH?E>=PNO(B(nout)$B$OF~NO(B(in)$B$K@\B3$5$l!$%^%7%s!&%5%$%/%kKh$KCM$,H?E>$9$k$3$H$,$o$+$j$^$9!%$^$?!$$3$NH?E>$O%?%9%/!&%l%8%9%?$,(B"1"$B$N;~$N$_5/$3$k$3$H$b$o$+$j$^$9!%(B
reg1 $B$d(B reg2 $B$X$N=q$-9~$_$O>uBV%l%8%9%?$H%?%9%/!&%l%8%9%?$NN>J}$K@)8f$5$l$F$$$^$9!%0lJ}!$%G!<%?=PNOC<;R(B out $B$KBP$9$kCM$N=PNO$O>uBV%l%8%9%?$@$1$G@)8f$5$l!$%?%9%/!&%l%8%9%?$N(Bon$B!$(Boff$B$OITMW$JO@M}$H$7$F>J$+$l$F$$$^$9!%(B
$B$3$NNc$G!"%9%F!<%8$d%?%9%/$=$7$F>uBV$N
$B%j%9%H(B6.13$B$H%j%9%H(B6.14$B$rHf$Y$F$_$F2<$5$$!%$I$A$i$b%G!<%?F~NOC<;R(B in $B$H%l%8%9%?(B a$B!$(Bb$B!$(Bc$B!$(Bd $B$rE>Aw85!$%l%8%9%?(B a$B!$(Bb$B!$(Bc$B!$(Bd $B$rE>Aw@h$H$9$k(BSFL$B5-=R$G$9$,!$%j%9%H(B6.13$B$G$O!$$9$Y$F$NE>Aw$,D>@\5-=R$7$F$"$k$N$KBP$7!$%j%9%H(B6.14$B$G$O$$$C$?$s(B tmp $B$H$$$&L>A0$NFbIt%G!<%?C<;R$K=8$a!$$=$3$+$i%l%8%9%?(B a$B!$(Bb$B!$(Bc$B!$(Bd $B$XE>Aw$7$F$$$^$9!%(B
$B$I$NE>Aw$,F1;~$K5/$3$k$N$+$rH=Dj$G$-$l$P!$$I$N$h$&$J5-=R$KBP$7$F$bE>AwO)$r:G>.2=$9$k$3$H$,$G$-$k$N$G$9$,!$JBNsF0:n$r$7$F$$$k>l9g$K$O$3$NF1;~@-$NH=Dj$,Fq$7$$$?$a!$(BSFLEXP$B$O5-=RDL$j$NE>AwO)$r@8@.$7$^$9!%=>$C$F%j%9%H(B6.13$B$G$O(B 5$B$D$NE>Aw85$+$i(B 4$B$D$NE>Aw@h$X$N(B20$BK\$NE>AwO)$,@8@.$5$l$F$7$^$&$3$H$K$J$j$^$9!%$<$R%j%9%H(B6.14$B$N$h$&$K5-=R$7$F2<$5$$!%(B
$B$3$N$h$&$K(BPARTHENON$B$G$O!$$I$N$h$&$JE>AwO)$H$J$l$PNI$$$+$^$G9M$($F5-=R$9$kI,MW$,$"$j$^$9!%(B
<$B%j%9%H(B6.13> $BE>AwO)$r9MN8$7$J$$5-=R(B
$B$N3F%W%m%0%i%`$KEO$5$l!$$=$3$GO@M}05=L$H
6.1 $B5/F0J}K!(B
$B$H$7$FO@M}9g@.$r9T$&$K$O!$(BMS-DOS$B$N%3%^%s%I!&%W%m%s%W%H(B A> $B$KBP$7(B
$B$,8=$l$F$$$l$P!$O@M}9g@.$O@5$7$/
sflexp sfl_file_name hsl_file_name [switch ...]
switch ($B%9%$%C%A(B)$B$O=gITF1$G!$G$0U8D;XDj$G$-$^$9!%>JN,$5$l$?>l9g$O!$A*BrE*(B switch $B$G$O@hF,$N$b$N$,;XDj$5$l$?$b$N$H$5$l$^$9!%(Bparam$B;XDj$N(B switch$B$G$O!$$"$k%G%U%)%k%HCM$,;H$o$l$^$9!%(B
6.2 $B%(%i!<$X$NBP=h(B
$B$J$I$N%(%i!
$B$N;0$D$@$1$G$9!%(Ba. $B$rF~NO$9$k$H!$(BSFLEXP$B$O$=$N;~E@$G=*N;$7$^$9!%(B
$B$N$h$&$J%a%C%;!<%8$,=PNO$5$l$?$H$-$O!$(B
$B$r2?EY$+F~NO$7!$(B":" $B$,F~NO%W%m%s%W%H$H$7$F=PNO$5$l$F$+$i!$%5%V%3%^%s%I$rF~NO$7$F$/$@$5$$!%$3$N;~E@$G8!=P$G$-$k%(%i!<$O!$(B
1: module ng1 {
2: input a<8>;
3: input b<8>;
4: input c;
5: instrin start;
6: reg r<8>;
7: instrin start any {
8: c: r:=a;
9: c: r:=b;
10: }
11: }
1: module ng2 {
2: stage_name s {
3: task t();
4: }
5: stage s {
6: state_name st1;
7: state_name st2;
8: first_state st1;
9: state st1 goto st1;
10: state st2 goto st2;
11: }
12: }
6.3 SFLEXP$B$,=PNO$9$k=i4|2sO)$N30ItC<;R$H9=@.MWAG(B
$B$,2C$($i$l$?$b$N$H$J$j$^$9!%(B
$B!|(B $B%5%V%b%8%e!<%k!$%5%V%b%8%e!<%k$N30ItC<;R(B
bsN-M$B$"$k$$$O(BslN-M$B$N%$%s%9%?%s%9L>$O(BSFL$B$G$N%G!<%?FbItC<;R$NL>A0$HF1$8$G$9!%(B
<$BO@M}%;%kL>(B> <$B%$%s%9%?%s%9L>(B>
high- high-
low- low-
inv- inv-1$B!$(Binv-2$B!$(Binv-3$B!$(B...
and--M and-1$B!$(Band-2$B!$(Band-3$B!$(B...
nand--M nand-1$B!$(Bnand-2$B!$(Bnand-3$B!$(B...
or--M or-1$B!$(Bor-2$B!$(Bor-3$B!$(B...
nor--M nor-1$B!$(Bnor-2$B!$(Bnor-3$B!$(B...
eor--2 eor-1$B!$(Beor-2$B!$(Beor-3$B!$(B...
6.4 $BO@M}9g@.$N
sflexp %1.sfl %1.hsl
mkdir %1.1st
hsl_nld %1.hsl %1.1st
nld_ps -o %1.ps %1 %1.1st %PARTHENON%/CELLDEMO/START
type %1.ps > prn
$B$N$h$&$J%P%C%A!&%W%m%0%i%`$G9T$&$3$H$K$7$^$9!%(BOPT_MAP$B!$(BONSET$B!$(BRINV$B$r$+$1$^$;$s$N$G2sO)$N:GE,2=$OIT==J,$G$9$,!$(BSFLEXP$B$,2?$r=PNO$7$F$$$k$+$O!$$3$N$[$&$,$h$/$o$+$j$^$9!%$J$*$3$N%P%C%A!&%W%m%0%i%`$G$O%W%j%s%?$,(BPostScript$BBP1~$G$J$1$l$P$J$j$^$;$s!%(B
<$B%j%9%H(B6.3> $B@)8f$H%G!<%?$,J,N%$5$l$kNc(B
1: module test1 {
2: input abc;
3: bidirect xyz;
4: instrin start;
5: instruct start xyz = abc;
6: }
<$B%j%9%H(B6.4> $B@)8f$,L5$/$J$C$F$7$^$&Nc(B
1: module test2 {
2: input abc;
3: output xyz;
4: instrin start;
5: instruct start xyz = abc;
6: }
$B!|(B $BO@M}$,05=L$5$l$kNc(B
<$B%j%9%H(B6.5> $B1i;;;R$,4^$^$l$kNc(B
1: module test3 {
2: input abc;
3: input def;
4: output xyz;
5: instrin start;
6: instruct start xyz = abc & def;
7: }
<$B?^(B6.3> $B%j%9%H(B6.5$B$N9g@.7k2L(B
$B$5$F!$(BSFLEXP$B$K$h$C$F$I$N$h$&$KO@M}$,4JC12=$5$l$k$+$r8+$k$?$a$K!$$b$&>/$7J#;($JO@M}$r$b$D%j%9%H(B6.6$B$r9g@.$5$;$F$_$^$7$g$&!%7k2L$O?^(B6.4$B$N$h$&$K$J$j$^$9!%$b$H$NO@M}<0$KHf$Y4JC1$K$J$C$F$$$k$3$H$,$o$+$j$^$9!%$^$?!$(Bf1$B$H(Bf2$B$OF1$8O@M}$J$N$G$9$,!$O@M}4JC12=$N2aDx$G$-$A$s$HO@M}$N$/$/$j=P$7$,9T$o$l$F$$$^$9!%(B
<$B%j%9%H(B6.6> $BO@M}05=L$r$5$;$kNc(B
1: module test4 {
2: input a, b, c, d;
3: output f1, f2;
4: instrin start ;
5: instruct start par {
6: f1 = (^a & ^b & ^c & ^d)
7: | (^a & ^b & ^c & d)
8: | (^a & b & ^c & ^d)
9: | ( a & ^b & ^c & ^d)
10: | ( a & b & ^c & ^d)
11: | ( a & b & c & d) ;
12: f2 = (^a & ^b & ^c & ^d)
13: | (^a & ^b & ^c & d)
14: | (^a & b & ^c & ^d)
15: | ( a & ^b & ^c & ^d)
16: | ( a & b & ^c & ^d)
17: | ( a & b & c & d) ;
18: }
19: }
$B!|(B $B>r7o9=J8$N$"$kNc(B
<$B%j%9%H(B6.7> $B%;%l%/%?$,A^F~$5$l$kNc(B
1: module test5 {
2: input cnd<2>;
3: input abc<4>;
4: input def<4>;
5: output xyz<4>;
6: any {
7: cnd == 0b00 : xyz = abc;
8: cnd == 0b01 : xyz = def;
9: cnd == 0b10 : xyz = def;
10: cnd == 0b11 : xyz = abc;
11: }
12: }
<$B?^(B6.5> $B%j%9%H(B6.7$B$N9g@.7k2L(B
type test6.ps > prn
1: module test6 {
2: input cnd<2>;
3: output xyz<4>;
4: any {
5: cnd == 0b00 : xyz = 0b1110;
6: cnd == 0b01 : xyz = 0b0101;
7: cnd == 0b10 : xyz = 0b0101;
8: cnd == 0b11 : xyz = 0b1110;
9: }
10: }
<$B?^(B6.6(a)> $B%j%9%H(B6.8$B$N9g@.7k2L(B
$B!|(B $B>r7o$HDj?t$r9g$o$;$F05=L$5$;$kNc(B
1: module test7 {
2: input cnd<4>;
3: sel_v tmp<4>;
4: output xyz<4>;
5: par {
6: any {
7: cnd == 0x0 : tmp = 0b1110;
8: cnd == 0x1 : tmp = 0b0101;
9: cnd == 0x2 : tmp = 0b0101;
10: cnd == 0x3 : tmp = 0b1110;
11: }
12: xyz = tmp;
13: }
14: }
<$B?^(B6.7(b)> $B%j%9%H(B6.9$B$N9g@.7k2L(B (OPT_MAP$B!$(BONSET$B!$(BRINV $BE,MQ8e(B)
<$B%j%9%H(B6.10> $B%a%b%j!&%*!<%P%U%m!<$r5/$3$9Nc(B
1: module test8 {
2: input abc<8>;
3: input def<8>;
4: output xyz;
5: xyz = /& ^ (abc & def);
6: }
<$B%j%9%H(B6.11> $BFbItC<;R$r;HMQ$9$kNc(B
1: module test9 {
2: input abc<8>;
3: input def<8>;
4: sel tmp<8>;
5: output xyz;
6: par {
7: tmp = abc & def ;
8: xyz = /& ^ tmp ;
9: }
10: }
<$B%j%9%H(B6.12> $B%9%F!<%8$H>uBVA+0\$r4^$`Nc(B
1: module test10 {
2: input in1,in2;
3: output out;
4: reg reg1,reg2;
5: instrin start;
6: stage_name stg {
7: task tsk();
8: }
9: instruct start generate stg.tsk();
10: stage stg {
11: state_name st1,st2;
12: first_state st1;
13: state st1 par {
14: reg1 := in1;
15: out = reg1;
16: goto st2;
17: }
18: state st2 par {
19: reg2 := in2;
20: out = reg2;
21: goto st1;
22: }
23: }
24: }
stg-0 $B$O$3$N%9%F!<%8$N>uBV$rI=$9%l%8%9%?$G$9!%$3$N%l%8%9%?$N(B"0"$B!$(B"1"$B$G(B 2$B$D$N>uBV$,6hJL$5$l$F$$$^$9!%(Bstg--all $B$O$3$N%9%F!<%8$N(B on$B!$(Boff $B$r$"$i$o$9%?%9%/!&%l%8%9%?$G$9!%(B
<$B?^(B6.9> $B%j%9%H(B6.12$B$N9g@.7k2L(B
$B!|(B $BE>AwO)$r9MN8$7$?(BSFL$B5-=R(B
1: module test11 {
2: input case<4>;
3: input in<1>;
4: output out<1>;
5: reg a<1>,b<1>,c<1>,d<1>;
6: par {
7: out = d;
8: any {
9: case == 0x0: a := in;
10: case == 0x1: a := b;
11: case == 0x2: a := c;
12: case == 0x3: a := d;
13: case == 0x4: b := a;
14: case == 0x5: b := in;
15: case == 0x6: b := c;
16: case == 0x7: b := d;
17: case == 0x8: c := a;
18: case == 0x9: c := b;
19: case == 0xa: c := in;
20: case == 0xb: c := d;
21: case == 0xc: d := a;
22: case == 0xd: d := b;
23: case == 0xe: d := c;
24: case == 0xf: d := in;
25: }
26: }
27: }
<$B%j%9%H(B6.14> $BE>AwO)$r9MN8$7$?5-=R(B
1: module test12 {
2: input case<4>;
3: input in<1>;
4: output out<1>;
5: reg a<1>,b<1>,c<1>,d<1>;
6: sel tmp<1>;
7: par {
8: out = d;
9: any {
10: case == 0x0: par { tmp = in; a := tmp; }
11: case == 0x1: par { tmp = b; a := tmp; }
12: case == 0x2: par { tmp = c; a := tmp; }
13: case == 0x3: par { tmp = d; a := tmp; }
14: case == 0x4: par { tmp = a; b := tmp; }
15: case == 0x5: par { tmp = in; b := tmp; }
16: case == 0x6: par { tmp = c; b := tmp; }
17: case == 0x7: par { tmp = d; b := tmp; }
18: case == 0x8: par { tmp = a; c := tmp; }
19: case == 0x9: par { tmp = b; c := tmp; }
20: case == 0xa: par { tmp = in; c := tmp; }
21: case == 0xb: par { tmp = d; c := tmp; }
22: case == 0xc: par { tmp = a; d := tmp; }
23: case == 0xd: par { tmp = b; d := tmp; }
24: case == 0xe: par { tmp = c; d := tmp; }
25: case == 0xf: par { tmp = in; d := tmp; }
26: }
27: }
28: }