部門についてのVHDLコードとmultyplying

G

Guest

Guest
hii、すべての
がある場合のいずれかをどのようsivisionのVHDLのコードをプログラムすることができますmultyplying(*を使用せずに教えてください)と(/)??です
事前にthankd

 
やあ、

databit右に1回を2で乗算を得るシフトすることにより、データシフトで1回を2で割って得る残しました。

また
、 掛け算が連続的に加え
、 除算は何もありませんが
、 何も連続subtratction、これも使用することができます。

HTH、
-
Shitansh Vaghela

 
私とシフトもconcatinationを使用して&..ことによって行うことができますが
、 どのように我々はaとbのようにどのように私たちを知っている例として
、 変数を知ることができる知っている必要があります2シフトとは...私はそれのためのアルゴリズムが必要

 
やあ、

乗算については、として私はerlierを使用する連続添加すると語った。
例えば、3 × 4 = 3 3 3 3 = 12

Likevise連続するsubtratctionを使用することができます部門。

HTH
-
Shitansh Vaghela

 
これは
、 一般的なソ¥リューションではなく
、 特定の1つではありません。たぶんそれに役立ちます:
"最近
、 私の同僚による除算の7 Verilogの実装によって
、 良い解決策を見つけること...."求められている
http://bknpk.no-ip.biz/my_web/divide_by_constnat/divide_by_constant.html

 
私はそれをcrrectですが
、 取得
、 誤った結果fllowingコードプログラム

fllowingコードシッフ乗じて
があれば1つは間違った結果が得られるか教えてください?例library ieee;
使用IEEE.STD_LOGIC_1164.ALL;
使用IEEE.STD_LOGIC_ARITH.ALL;
使用IEEE.STD_LOGIC_UNSIGNED.ALL;

----コメントを解除し
、 次のライブラリの宣言の場合をインスタンス化する
----このコード内の任意のザイリンクスプリミティブ。
-ライブラリUNISIM;
- UNISIM.VComponents.allを使用します。

エンティティムルです
ポート(clk:STD_LOGICで;
-私は:整数:= 1;
結果:STD_LOGIC_vector(15 '1 0);
メートル:STD_LOGIC_vector(7 '1、0);
ム:STD_LOGIC_vector(7 '1、0);
開始:std_logicで);

エンドムル;

アーキテクチャの行動ムルです
信号数:整数値:= 0;
信号N1のM1の:std_logic_vector(7 '1、0);
信号の結果1:std_logic_vector(15 '1 0);
開始する
プロセス(CLK)の

開始する
M1の"=メートル;
n1"= Ñ;
-結果"=結果1;

場合(rising_edge(CLK)の)して
の場合(スタート= '1')し
結果"="0000000000000000";
カウント"= 0;
その他の
場合(カウント/ = 8)し
(M1の(0)= '1')している場合
結果"=結果1 Nを;
終了の場合;
n1"=ヤマハ(6 '1 0)&'0';
M1の"= '0'&メートル(7 '1 1);
カウント"=カウント 1;
終了の場合;
終了の場合;
終了の場合;
工程;

最後の行動;

 

Welcome to EDABoard.com

Sponsor

Back
Top