iliya24
Member level 2
Hello.
I am a new to vhdl and as a part of my tranning i need to multiplay 2 numbers can u help me and tell my what i doing wrong?
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
use ieee.numeric_std.all;
ENTITY MUL IS PORT(
a,b: IN unsigned (3 downto 0);
y : OUT unsigned (7 downto 0));
END MUL ;
ARCHITECTURE Behavioral OF MUL IS
BEGIN
process (a,b)
variable temp1:unsigned(7 downto 0);
variable temp:unsigned(7 downto 0);
BEGIN
for j in 0 to 3 loop
if (b(j)='0') then
temp1:=(7 downto 0 =>'0');
else
temp1:=( j=>a(0),j+1=>a(1), j+2=>a(2),j+3=>a(3),others=>'0') ;
temp:=temp+temp1;
end if ;
end loop;
y<=temp;
end process;
END Behavioral;
I am a new to vhdl and as a part of my tranning i need to multiplay 2 numbers can u help me and tell my what i doing wrong?
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
use ieee.numeric_std.all;
ENTITY MUL IS PORT(
a,b: IN unsigned (3 downto 0);
y : OUT unsigned (7 downto 0));
END MUL ;
ARCHITECTURE Behavioral OF MUL IS
BEGIN
process (a,b)
variable temp1:unsigned(7 downto 0);
variable temp:unsigned(7 downto 0);
BEGIN
for j in 0 to 3 loop
if (b(j)='0') then
temp1:=(7 downto 0 =>'0');
else
temp1:=( j=>a(0),j+1=>a(1), j+2=>a(2),j+3=>a(3),others=>'0') ;
temp:=temp+temp1;
end if ;
end loop;
y<=temp;
end process;
END Behavioral;