更新履歴 2007/7/4 ver 0.997 ・bug fix - ver 0.995のときの変更に伴うバグを修正 2007/6/29 ver 0.996 ・組み合わせ回路専用モジュールを宣言できるようにした - 使い方は - module test combinational { ... - circuit test combinational { ... - m_clock, p_resetをなくすので,レジスタやステージは使えない(エラーを出すようにした) 2007/6/27-28 ver 0.995 ・bug fix - instruct文周辺のバグを修正 ・命名規則の変更(統一) ・ instrin, instrself, instrout, instruct文周辺のバグを修正 - instrout a; a = 0b0; (output a; a();) - input i; instruct i par { ... } - などなどをエラーになるように - つまり, - input, instring - output, instrout - sel(_v), instrself - を区別した 2007/6/19 ver 0.994 ・bug fix - シフトのときにsyntax errorになることがあるのを修正 - シフトするとビット幅が変更するようにした 2007/5/31 ver 0.993 ・bug fix - レジスタや配線の名前に0bや0o, 0xが含まれるとエラーになるのを修正 2007/5/19 ver 0.992 ・bug fix - ver0.991の変更に伴うバグを修正 2007/5/18 ver 0.991 ・bug fix ・デフォルトの出力ファイル名をa.vではなく入力ファイル名と同じにした -o, --outputも一応使える(全く違うファイル名にしたいときなど) 2007/4/24 ver 0.99 ・bug fix - stageで複数のtaskを使用した場合にきちんと動作しないのを修正 ・stageにtask_fastを追加 - task はgenerateした次のサイクルからstageの動作が始まる - task_fastはgenerateしたサイクルの内に動作を始める 2007/2/26 ver 0.98 ・stageの処理でrelayを使えるようにした 2007/2/25 ver 0.97 ・bug fix - ビット拡張(2#ahoなど)の処理を変更.エラーになることがあるのを修正 2007/2/22-23 ver 0.96 Web上に初公開 ・bug fix - syntax error時に行番号がずれることがあるのを修正 - 条件式中に hoge.aho(a, b).baka などと書くとエラーになるのを修正 2007/1/22 ver 0.95 ・レジスタ周りの処理を変更した.本質的には同じだが,冗長性をなくした. 2007/1/17 ver 0.94 ・レジスタの初期値の出力方法を変更した.バージョンアップの必要はなし 12/14 ver 0.93 ・'*'演算子を使ったときにビット幅が合わないというWarningが出るのを直した 11/27 ver 0.92 ・instrout, instrselfを一度も起動しない場合,値を0にするようにした 11/24 ver 0.91 ・bug fix - 1つのstageに複数のtaskを使用できるようにした - stageまたは下位モジュールが多すぎるとバッファオーバフローが起こる. とりあえずバッファを大きめにとることで回避. いずれ,reallocを用いて書き換える必要あり? 11/22 ver 0.90 ・0b00x0000, 0b00o0000, 0o00x0000をサポート 11/16 ver 0.89 ・generate文でstageを起動するときに引数に式を記述できるようにした 11/15 ・windows環境用に -mno-cygwinオプションを使ってコンパイルしたバージョンも用意するようにした 10/30 ver 0.88 ・レジスタ関連の拡張 - クロックが立ち上がるときにデータを取り込むのが普通のレジスタ これは,普通に reg, reg_wr, reg_ws または pos_reg などと明示的に指定 - 逆に,立ち下がるときに取り込むときには, 前に neg_ をつける.neg_reg, neg_reg_wr, neg_reg_ws のように 9/25 ver 0.87 ・bug fix - 同じstageの処理を複数書いてもエラーにならないのを修正 9/15 ver 0.86 ・bug fix - 割り算を使うとエラーになるのを修正 ・隠しモードの台詞を変更 9/14 ver 0.85 ・bug fix - シフトの処理が間違ってたのを修正 - stageのstateが一つしかないときエラーになるのを修正 9/13 ver 0.84 ・隠しモード追加 8/25 ver 0.83 ・bug fix - 空文(;だけの文)がsyntax errorになるのを修正 ・bidirectポートの不定値を0からハイインピーダンスにした - こうしたけど,Quartus IIでのWarningは消えないから, bidirect(つまりinout)を使うのはあきらめて inputとoutputを組み合わせて使うほうがいいかも. (Warningが出るのがどうしてもいやなら) 8/23 ver 0.82 ・bug fix - 比較演算子(<, >, <=, >=)の処理で間違っていたところを修正 - 下位モジュールのbidirectポートを使用できないバグを修正 8/21 ver 0.80 研究室内に初公開 ・演算順序 - 左側優先から,右側優先に.変換時に明示的に括弧でくくるようにした - 演算子どうしの優劣はつけていない - -> シミュレーション速度がわずかに上昇 ver 0.81 ・stage_nameのtaskの宣言時に,stage_name stage1 { task do(reg1, reg2, ...); } のように引数をとれるようにした(放置してた) ・+, -, *, / をするときは,ビット幅が違ってもWarningを出さないようにした 8/18 ~ 8/20 ver ?.?? ・論理式を後置記法に直す関数を記述 - 論理式のsyntax errorを判定できるようにした - ビット幅が違うものの演算に対しWarningを出せるようにした