以下のデジタル回路の問題をやってみる。続き。
- Q: 2進加算を利用して、BCDの9の補数を計算してください。
- A: この計算自体は、$9-d$で計算される。$-d$は2の補数で計算されるので、それに対して9を加算すればよい。$-d$の計算は、すべてのビットを反転させたうえで+1をすればよいので、
XOR 1をしてすべてのビットを反転させて、Carry-In=1として+1をすればよい。


- Q: 2つの4ビット値が同一であるかを判定する回路を作成してください。一致していなければ1を出力します。
- A: Verilogで書いた場合は
A != Bで、XORを使って表現すると|(A ^ B)となる。どれかのビットがXORで1が立つと、それはAとBが異なっていることを意味する。

- Q: 全加算器を使って3ビットの中に1がいくつかるかをカウントする回路を設計してください。
- A: 全加算器は、2ビット入力と1つのCarry-Inをすべて加算する回路と考えることができるので、3ビットの入力ABCを加算器の入力に設定することで、1の数を数えることができる。
