演習6-3が終わりました。
レジスタ間で値をコピーするMV命令を実行するとコピー先のレジスタの値が不定になるのは、書き込む値を決めている部分で未定義の信号の値による分岐があったためでした。以前はその信号は定義していたのですが、後から不要となったため定義を消しました。しかしVerilogでは未定義の信号でもwireだと解釈するのかエラーとはならず、しかし値は不定となるため挙動がおかしくなっていたようです。
Verilogの処理系によってはエラー検出できるものもあるかもしれませんが、少なくとも今回はエラーにはならなかったので問題箇所の特定に手間取りました。
でも、こういうことで躓いて理由を追いかけると勉強になりますね。
演習6-4をやれば第6章も終わりです。一気に終わらせたいところですが年度末で忙しく中々時間がとれません。もうしばらくはこのペースが続きそうです。
レジスタ間で値をコピーするMV命令を実行するとコピー先のレジスタの値が不定になるのは、書き込む値を決めている部分で未定義の信号の値による分岐があったためでした。以前はその信号は定義していたのですが、後から不要となったため定義を消しました。しかしVerilogでは未定義の信号でもwireだと解釈するのかエラーとはならず、しかし値は不定となるため挙動がおかしくなっていたようです。
Verilogの処理系によってはエラー検出できるものもあるかもしれませんが、少なくとも今回はエラーにはならなかったので問題箇所の特定に手間取りました。
でも、こういうことで躓いて理由を追いかけると勉強になりますね。
演習6-4をやれば第6章も終わりです。一気に終わらせたいところですが年度末で忙しく中々時間がとれません。もうしばらくはこのペースが続きそうです。