お酒好きのおしりトラブル対策とは

verilogについて、演算途中に値が極端に大きくなった場合はどうなるのでしょうか?

例えば、全ての信号が8bitとして、以下の式について、
output = input1 * input2 >> 8;
input1,input2がともに、255のとき、
input1 * input2を計算した段階で、16'b1111111000000001というように極端に大きな値になりますが、ちゃんと、この値から8bit分シフトして、outputに8'b11111110が代入されるのでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (2件)

すいません。

やっと意味がわかりました。
input1 * input2 の中間値はどこに置かれ、何bitで扱われるかという話ですよね。
どこかに書いてあった記憶もありますが、覚えていません。
因みに、1行にしなければいけない理由は何でしょうか。
2段階に分けて計算すれば、明示的だと思いますが。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
そういうことです。言葉足らずですみません。
1行にしなければいけない理由は、順序回路で使いたいからです。
正確には、output <= input1 * input2 >> 8;です。
クロックが立ち上がった瞬間に、すべての計算を行いたいです。

お礼日時:2007/12/14 02:07

変数を何bitで指定しているかによります。

    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
ちなみに、質問の例の場合では、何bitで指定すればよいのでしょうか?

お礼日時:2007/12/13 22:09

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング