中易网

求基于FPGA器件的4*4位乘法器的实现

答案:2  悬赏:0  
解决时间 2021-01-21 11:38
求基于FPGA器件的4*4位乘法器的实现
最佳答案
如果不用IP Core,自己做的话,可以用循环叠加来做,就象你用手算一样。
A3 A2 A1 A0
x)B3 B2 B1 B0
---------------------------------
A3 A2 A1 A0 (B0=1时,为A3 A2 A1 A0;B0=0时,这一行全0)
A3 A2 A1 A0
A3 A2 A1 A0
A3 A2 A1 A0
---------------------------------
相加得结果

library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_unsigned.all;

entity Multiplier is
generic (
DATA_WIDTH : natural := 4
);
port (
reset_n : in std_logic;
clk : in std_logic;
InputX : in std_logic_vector(DATA_WIDTH-1 downto 0);
InputY : in std_logic_vector(DATA_WIDTH-1 downto 0);
Cal : in std_logic;
Result : out std_logic_vector(DATA_WIDTH*2-1 downto 0)
);
end Multiplier;

architecture Multiplier_arch of Multiplier is

type MUL_DATA_ARRAY_TYPE is array (DATA_WIDTH-1 downto 0) of std_logic_vector(DATA_WIDTH*2-1 downto 0);
signal mulDataArray : MUL_DATA_ARRAY_TYPE;

begin
mulDataArray_gen : for I in 0 to DATA_WIDTH-1 generate
mulDataArray(I)(DATA_WIDTH*2-1 downto DATA_WIDTH+I) <= (others => '0');
mulDataArray(I)(DATA_WIDTH+I-1 downto I) <= InputX when InputY(I) = '1' else (others => '0');
mulDataArray(I)(I-1 downto 0) <= (others => '0');
end generate;

process(reset_n, clk)
variable resultTmp : std_logic_vector(DATA_WIDTH*2-1 downto 0);
begin
if reset_n = '0' then
Result <= (others => '0');
elsif rising_edge(clk) then
resultTmp := mulDataArray(0);
for I in 1 to DATA_WIDTH-1 loop
resultTmp := resultTmp + mulDataArray(I);
end loop;
if Cal = '1' then
Result <= resultTmp;
end if;
end if;
end process;

end Multiplier_arch;
全部回答
价格好说,多少钱?
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
winRAR在解压某些文件时出现一个诊断信息,怎
4岁小孩为什么会频繁眨眼睛
快速去甲醛的小方法谁能指教下?谢谢
ZZR400的主电流保险丝老是烧掉是什么原因?
‘第十六天’用英语什么翻译
其可以组词什么
要贷款0.5万元,半年后还款要还多少
想装修一楼,地面如何做防潮层,想做了防潮层
企业的员工培养和成长计划怎么定呢?
谁能告诉我《盗妃天下》的简介,主要讲什么的
很困,该怎么办?头脑也不清醒 思维迟缓 总觉
找工作时如何询问工作的具体内容
好难过,前任打电话请我参加他的婚礼,难受睡
高频率中度性听力下降算几级伤
嵌入式微波炉最大的收益是什么?
推荐资讯
我把金耀石和貔恘摔碎了会不会发生什么事
如果我非要用水洗皮鞋会怎么样?不洗不舒服!
求问进门见沙发还是电视好
舌头起白苔,而且舌根处有肉疙瘩?有没问题呀
拉双眼皮换护照,怎么换?全部作废吗?之前的
中小企业如何样选择一款好的税控电脑
摸头上的旋会怎样
求助下大家打鼾用什么枕头好
咨询一下小咖啡店装修价格是多少?坐等懂行的
怀孕四个月今天觉得肚子有点胀痛是什么原因?
我想问问购房合同住房公积金提取需要准备哪些
怎样才能持久不泄呢
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?