算術演算

前回ではいきなり'+'がでてきた。
(筆者の説明が下手で申し訳ない)
verilogでもC言語同様、減算'-',乗算'*',除算'/',剰余'%'が使える。
もちろんこれらには演算優先度が決まっているので、演算順序を変えたいときは'()'を使おう。

優先度論理演算
高い
*,%,/
+,-
<<,>>
&
^
低い

ここで'<<','>>'はそれぞれ左シフト、右シフトである。
verilogは算術シフト(符号を考慮したシフト)なんて便利なものはない。
実は固定ビットシフトなら連結演算子で書ける。

また、乗算('*'),除算('/'),剰余('%')はハードウェア量が増えることに注意。
ハードウェアはこれらの演算が苦手。そのためFPGAでも専用の演算器を用意している。
算術演算の研究も盛んであり、毎年新しい回路が発表されているほど。
可変シフトもハードウェア量が増えがちなのに注意(バレルシフタとかあるけど)。

演習問題

  1. 実は2のべき乗の定数と変数の乗算はある演算子で代用できる。4 x a[3:0] を演算する回路を設計せよ。

数値の指定【Altera DE0】へ進む
Verilog入門へ戻る


トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-04-13 (水) 11:09:50 (2173d)