I have trouble during "Low Level Synthesis" of my code. It gets me following warings:
WARNING:Xst:1989 - Unit : instances , of unit are equivalent, second instance is removed WARNING:Xst:1710 - FF/Latch (without init value) has a constant value of 0 in block . WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch (without init value) has a constant value of 0 in block . WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch (without init value) has a constant value of 0 in block . WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch (without init value) has a constant value of 0 in block . WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch (without init value) has a constant value of 0 in block . WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch (without init value) has a constant value of 0 in block .
WARNING:Xst:1294 - Latch is equivalent to a wire in block . ... ....(from to ) WARNING:Xst:1294 - Latch is equivalent to a wire in block .
WARNING:Xst:1710 - FF/Latch (without init value) has a constant value of 0 in block .
WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch (without init value) has a constant value of 0 in block . ... ...(from to ) WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch (without init value) has a constant value of 0 in block .
WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch (without init value) has a constant value of 0 in block . ... ...(from to ) WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch (without init value) has a constant value of 0 in block .
mostly are having a constant value of 0 in block .
The program is target in a Spartan3 starter board to read and/or write
8 addresses after the incoming address(currentX, currentY) chanages. Although it isn't follow the coding examples, it setup as a state machine.================= Here is the code: =================
entity memoryCtr is Port ( direction : in std_logic_vector(2 downto 0); currentX : in std_logic_vector(7 downto 0); currentY : in std_logic_vector(7 downto 0); reset : in std_logic; enable : in std_logic; ready : out std_logic; action : in std_logic_vector(1 downto 0);
front : out std_logic_vector(15 downto 0); fright : out std_logic_vector(15 downto 0); right : out std_logic_vector(15 downto 0); bright : out std_logic_vector(15 downto 0); back : out std_logic_vector(15 downto 0); bleft : out std_logic_vector(15 downto 0); left : out std_logic_vector(15 downto 0); fleft : out std_logic_vector(15 downto 0);
clk : in std_logic; sramIO1 : inout std_logic_vector(15 downto 0); sramCE1 : out std_logic; sramUB1 : out std_logic; sramLB1 : out std_logic; --sramIO2 : inout std_logic_vector(15 downto 0); sramAddr : out std_logic_vector(17 downto 0); --sramCE2 : out std_logic; --sramUB2 : out std_logic; --sramLB2 : out std_logic; sramWE : out std_logic; sramOE : out std_logic ); end memoryCtr;
architecture Behavioral of memoryCtr is constant mapSize: integer := 256; -- 128*128 constant memSize: integer := mapSize/2; -- memSize -> 0 ->
memSize type memDatas is array (8 downto 0) of std_logic_vector(17 downto 0);
-- the value for memory location type state_type is (init, setup, read, write, outEnable); signal state: state_type := init; begin
memLoop: process(clk) variable addr :integer; variable readyEnable: std_logic := '1'; variable X, Y :integer; variable prevAction : std_logic_vector(1 downto 0) := "00"; variable tempData1, tempData2 : std_logic_vector(15 downto 0) := x"0000"; variable FmemData, FRmemData, RmemData, BRmemData, BmemData, BLmemData, LmemData, FLmemData : std_logic_vector(15 downto 0); variable memData: memDatas; -- the location for 8 memories variable dir : integer := 8; -- direction counter
begin ---------------------------------------------------------------------------------------- ----------state 1: accept calls and initialize the calls for current location ---------- ----------------------------------------------------------------------------------------
if reset = '1' then state