kakarala
Member level 1
hi
I am trying to synthesise a code to compute sum of absolute difference between to image blocks, i wrote code but when i synthesise the code it gives me following error.
INTERNAL_ERROR:Xst:cmain.c:3446:1.47 - To resolve this error, please consult the Answers Database and other online resources at http://support.xilinx.com
Process "Synthesis" failed
the code is
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
use work.images.all;
---- Uncomment the following library declaration if instantiating
---- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;
entity SAD1 is
port ( clk : in std_logic;
rst : in std_logic;
currblk_row : in integer;
currblk_column : integer;
refblk_row : in integer;
refblk_column : in integer;
sad : out integer);
end SAD1;
architecture Behavioral of SAD1 is
signal tmp: integer:=0;
signaL x,y,x1,y1 : integer;
begin
sum_ad : process(clk,rst)
begin
if rst='1' then
sad <= 0;
tmp <= 0;
elsif (clk ='1' and clk'event) then
sad <= 0;
for i in 0 to 3 loop
for j in 0 to 3 loop
x<=(4*currblk_row) + i;
y<=(4*currblk_column) + j;
x1<=(4*refblk_row)+i;
y1<=(4*refblk_column)+j;
tmp <= tmp+ abs(curr_image((x*64)+y)- ref_image((x1*64)+y1));
end loop;
end loop;
sad <= tmp;
end if;
end process;
end Behavioral;
I am trying to synthesise a code to compute sum of absolute difference between to image blocks, i wrote code but when i synthesise the code it gives me following error.
INTERNAL_ERROR:Xst:cmain.c:3446:1.47 - To resolve this error, please consult the Answers Database and other online resources at http://support.xilinx.com
Process "Synthesis" failed
the code is
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
use work.images.all;
---- Uncomment the following library declaration if instantiating
---- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;
entity SAD1 is
port ( clk : in std_logic;
rst : in std_logic;
currblk_row : in integer;
currblk_column : integer;
refblk_row : in integer;
refblk_column : in integer;
sad : out integer);
end SAD1;
architecture Behavioral of SAD1 is
signal tmp: integer:=0;
signaL x,y,x1,y1 : integer;
begin
sum_ad : process(clk,rst)
begin
if rst='1' then
sad <= 0;
tmp <= 0;
elsif (clk ='1' and clk'event) then
sad <= 0;
for i in 0 to 3 loop
for j in 0 to 3 loop
x<=(4*currblk_row) + i;
y<=(4*currblk_column) + j;
x1<=(4*refblk_row)+i;
y1<=(4*refblk_column)+j;
tmp <= tmp+ abs(curr_image((x*64)+y)- ref_image((x1*64)+y1));
end loop;
end loop;
sad <= tmp;
end if;
end process;
end Behavioral;