早教吧 育儿知识 作业答案 考试题库 百科 知识分享

4位向量乘法器什么意思啊先解释,可以的话用VHDL实现

题目详情
4位向量乘法器什么意思啊
先解释,可以的话用VHDL实现
▼优质解答
答案和解析
就是具有4位的输入信号进行向量运算,然后输出最终结果(不知道你的要求是几位的,我的理解应该是输入输出出应该包括模长和角度library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;
entity vector4 is
port(a:in std_logic_vector(3 downto 0);
b:in std_logic_vector(3 downto 0);
y:out std_logic_vector(7 downto 0));
end entity vector4;
architecture art1 of vector4 is
signal d:std_logic_vector(7 downto 0);
signal da:std_logic_vector(7 downto 0);
signal dat:std_logic_vector(7 downto 0);
signal data:std_logic_vector(7 downto 0);
begin
process(a,b)----(0),a(1),a(2),a(3),b(0),b(1),b(2),b(3))
begin
if a(0)='1' then
d(0):=b(0);
d(1):=b(1);
d(2):=b(2);
d(3):=b(3);
d(7 downto 4):="0000";
else
d(7 downto 0):="00000000";
end if;
if a(1)='1' then
da(1):=b(0);
da(2):=b(1);
da(3):=b(2);
da(4):=b(3);
da(0):='0';
da(7 downto 5):="000";
else
da(7 downto 0):="00000000";
end if;
if a(2)='1' then
dat(2):=b(0);
dat(3):=b(1);
dat(4):=b(2);
dat(5):=b(3);
dat(1 downto 0):="00";
dat(7 downto 6):="00";
else
dat(7 downto 0):="00000000";
end if;
if a(3)='1' then
data(3):=b(0);
data(4):=b(1);
data(5):=b(2);
data(6):=b(3);
data(2 downto 0):="000";
data(7):='0';
else
data(7 downto 0):="00000000";
end if;
y