Verilog で 8086 プロセッサを作成しようとしており、ほとんどのアーキテクチャについて平均以上の基本的な理解を持っています (そして、この時点を過ぎればうまくやっていくことができます)。キャリー フラグと補助フラグが ALU でどのように機能するかについて頭を悩ませています。
結果が ALU のビット幅よりも大きくなる加算または減算 (この場合はボローと呼ばれます) で CF がトリガーされることを理解しています。
しかし、FLAGS[0] (CF) ビットに書き込み、再度アクセスして操作を続行できる加算と減算用の Verilog コードをどのように記述すればよいでしょうか。分解できる例を誰か教えてもらえますか?
また、これはさらに不自然な質問ですが、SI レジスタと DI レジスタの幅が 16 ビットしかない場合、キャリー操作を伴う ALU が 17 ビット数の作成をサポートできるのはなぜですか? その余分なビットはどこに行きますか、それで何が行われますか? 乗算によって同じビット オーバーフローが発生するとどうなりますか?
初心者レベルの質問で大変申し訳ありません。これに関しては、明らかな無知や理解不足で怒鳴られそうです。これを理解するためにコード行を提供して助けてくれる人に感謝します。