組み込まれたエンジニア

我輩は石である。名前はまだ無い。

NSL:構造展開サポートの構文追加

2009-12-19 16:24:50 | Weblog
下記の新構文をサポートしたベータ版を作成しました。
20091219版(当面、WindowsGUI版のみ作成)
新構文の目的は、バレルシフタや乗算などの構造を展開できるライブラリの作成用途です。
例によって、あちこち大幅にコードを変更しているので、安定版になるまでは、
しばらくかかるかもしれませんが、評価をしないことには、進まないので、
積極的に使ってみてください。

1: 整数変数 integerとintegerで回すfor文を導入(これは、構造展開となり、同一クロックでの動作になります)
2: 一時端子 variableを導入
端子と異なり、同じ変数を使いまわすことが可能。ただし、代入のたびに新しくインスタンスを生成
3: 端子への代入において、文法上のあいまいさがない場合、右辺に整数を許可
4: 2項演算で、ビット数が確定できる場合、2項目に整数を許可
5: if文の条件式が整数式からなる場合、評価時の条件値による構造展開とした


使用例:
module x {
   integer i;
   variable v[8];
   output f[8];

   v=0;
   for(i=0;i<10;i++) v=v+i;
   f = v;
}


この例では、あまり有効活用していませんが。。。