先解释,可以的话用VHDL实现
4位向量乘法器什么意思啊
- 提问者网友:寂寞撕碎了回忆
- 2021-05-05 11:28
- 五星知识达人网友:话散在刀尖上
- 2021-05-05 13:05
保准没错,百试不爽。浪老师都说对。
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<=data+dat+da+d;
end process;
end architecture art1;
四位为矢量相乘:就是俩个二进制数相乘,这俩个二进制数里每个二进制数都是四位的。如:1111*0001=00001111.DO YOU KNOW ,MY SISTER ?
- 1楼网友:西风乍起
- 2021-05-05 14:11
就是具有4位的输入信号进行向量运算,然后输出最终结果(不知道你的要求是几位的,我的理解应该是输入输出出应该包括模长和角度)你再说详细点,要不程序没法写。