アダルト・ヴァイオリン May the force be with you..

2009年9月12日

sfl2vl: 再びコードの大幅リストラ

Filed under: Weblog — い~ぐる @ 1:22 AM

モジュール共通のFSMを実現できるように、状態の持ち方を大幅に変更した。下記の例のような記述が可能。{ } 内に状態の定義があれば、そのブロックはローカルな状態を有するとみなして、別の状態変数で状態を回す。stage/segmentはSFLでは状態を持つと定義されているので、この中で状態を回すには、必ずstate_nameによる定義が必要(グローバルなスコープは持たない)。

module test {
func_in ex;
output f[2];
state_name st1,st2,st3;
{
state st3  { f = 0b11; goto st1; }
}
function ex {
state st1  { f = 0b01; goto st2; }
state st2  { f = 0b10; goto st3; }
}
}

今回も、アルファ版と考えていたが、このバージョンのテスト中に、過去のSFL基礎教育の例題が動かないshow stopper発見。過去のものをどう対処するかは検討中だが、とりあえず、このバージョンはベータ版としておく。

不具合は、サブモジュールインスタンスを複数 ‘,’ で区切って定義するところ、’,’をパースできず、シンタックスエラーとなる。1行に1インスタンスとすれば動作するので、致命的ではないにせよ、以前動いていたものが動かない可能性が高いので、できれば、ベータ版にバージョンアップして欲しい。

コメントはまだありません »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress