私が、最近、for文だの、なんだのとごちゃごちゃやっていたのは、
次のようなモジュールの記述をするためです。(自分でも書き下ろしただけで未確認)
このモジュールは調歩同期(RS232C)の送信モジュールです。
こういった記述ができると、ずいぶん分かりやすいと思ってますが、どうでしょう?
細かな話をすると、送信を開始するときには、start信号とdiをセットします。
外部に、タイマモジュールを用意し、ackが入ったら、送信タイミングごとに
sckが入るとしています。送信終了すると、finが出てくるので、この信号で、タイマモジュールを止めます。
module sout { input di[8]; output so; func_out ack,fin; func_in start; func_in sck; reg r; proc_name put_so(r); function start seq { reg i[4], td[8]; {td:=di; ack();} put_so(0b0); for(i:=0x0;i<0x8;i++) { put_so(td[i]); } put_so(0b1); fin(); } proc put_so { so = r; if(sck) finish; } }