FC2ブログ

高速剰余論理演算を思いついたので

論理演算にて剰余を求めるにあたって、十数クロックかかるほど重くなるみたい
私は、データサイズの大きさに比例するが約5~15クロックで
演算仕上げる方法を思いついたので論理合成してみる(´・ω・`)

加算減算は、1クロックでできて実装の必要な部品も少ない。
乗算はシフト演算と加算器で高速ででき、数クロックで答えが出るからいいのだ

今回考えた結果を論理合成シミュレーションで試してみたよ!

無題

457÷37=12・・・13
14÷3=4・・・2
64÷8=8・・0
929÷915=1・・・14
1013÷3=337・・・2


(´・ω・`)

ちなみにverilogを使いましたが、行数は改行や空白含めて100行

d1÷d2を想定して、0除算は考慮してない。d1<d2は計算できるけど
結果が1クロックで早く出てきてしまうので推奨しませんがね。

din_setを立ち上げることで演算開始
演算終了するとculc_finフラグを立ち上げます

そんな仕様です

難しい記述はしてないし、
レジスタ数はデータバス幅が占めてるがね

If分の深度は3以下ですわ
演算数は、ほぼワイヤロジックによる記述で
加算器が3個、シフト演算が4個、条件判定は15個くらいあるけど
AND、XOR等の論理演算で判定を使用


FPGAに実装してみて試してみたいね!

必要クロック数分配列に置いて
入力にスタック用いれば、完全に1クロックで処理できますね



スポンサーサイト



テーマ : 宇宙・科学・技術
ジャンル : 学問・文化・芸術

コメントの投稿

非公開コメント

ぶろぐかんりしゃ

SmartWoods
最近MoEは・・・
一休み

***** ひとこと *****

MoEの後継ともいわれる
Resonance gamez
完全スキルMMOが
気になるところ



********************


↓2016/3/26更新
My MoE









**********

NEWとらっくばっく
あーかいぶ
かてごりー
リンク
ぶろぐないけんさく
RSSふぃーど
おともだちになろ

この人とブロともになる