結局、Windowsを再起動させられる羽目になった。これはどうしたことだ。原因は分からないが、新しく加えたwhileループで論理合成が暴走したことに間違いはない。組み合わせ回路でwhileループが使えないことだけは確かだ。whileループの部分をコメントアウトして元へ戻す。ISEの暴走は止まった。今度は、別のエラーで論理合成が止まる。error)だというではないか。...........始めは大げさなメッセージなので驚いたが、Web情報によれば、ちょっとした記述ミスでもこの種のエラーは出るらしい。ステートメントを減らして様子を見る。あるassignステートメントをとると。Errorとなることがわかった。別に難しいことをしているわけではない。reg変数を初期化しているだけである。initialブロックの中で、assignは使ってはいけないようだ。変数宣言でも初期化は出来るのでこのステートメントはなくてもかまわない。ことで最初のHDLの論理合成が終了した。Errorとなると、FPGA内のリソースの使用状況などの壮大な結果リストが表示される。わからないまま、画面のレポートを見ていくと、ちゃんとした回路図まで出てくる。何か壮大な仕事をやりとげた気分になる。肝腎のバイナリから4桁の10進数になおす部分ははずしたままである。このままではLEDは0しか表示しない。これでは練習にならない。Webをさらに探し回る。すると99までのバイナリーを組み合わせ回路で2桁のBCDに変換するリストが見つかった。100までなら、条件文を20ヶ(10の商と余り)書けばできるようだ。