xilinx - Synthesis Warning VHDL constant value of FF/Latch and Node Unconnected -
i beg please me, making final year project. part of project simple alarm system. alarm goes on , off same push-button. getting these warnings making me upset , demotivated weeks now. these warnings ruining design on fpga, can't ignore them (it removing important signals specially d1count).
note there 2 main warnings:
1) xst:1293 ff/latch has constant value
2) xst:2677 node unconnected
warnings:
warning:xst:1293 - ff/latch <d1count_26> has constant value of 0 in block <safehouse1>. ff/latch trimmed during optimization process. warning:xst:1896 - due other ff/latch trimming, ff/latch <d1count_25> has constant value of 0 in block <safehouse1>. ff/latch trimmed during optimization process. warning:xst:1896 - due other ff/latch trimming, ff/latch <d1count_24> has constant value of 0 in block <safehouse1>. ff/latch trimmed during optimization process. warning:xst:1896 - due other ff/latch trimming, ff/latch <d1count_23> has constant value of 0 in block <safehouse1>. ff/latch trimmed during optimization process. warning:xst:1896 - due other ff/latch trimming, ff/latch <d1count_22> has constant value of 0 in block <safehouse1>. ff/latch trimmed during optimization process. warning:xst:1896 - due other ff/latch trimming, ff/latch <d1count_21> has constant value of 0 in block <safehouse1>. ff/latch trimmed during optimization process. warning:xst:1896 - due other ff/latch trimming, ff/latch <d1count_20> has constant value of 0 in block <safehouse1>. ff/latch trimmed during optimization process. warning:xst:1896 - due other ff/latch trimming, ff/latch <d1count_19> has constant value of 0 in block <safehouse1>. ff/latch trimmed during optimization process. warning:xst:1896 - due other ff/latch trimming, ff/latch <d1count_18> has constant value of 0 in block <safehouse1>. ff/latch trimmed during optimization process. warning:xst:1896 - due other ff/latch trimming, ff/latch <d1count_17> has constant value of 0 in block <safehouse1>. ff/latch trimmed during optimization process. warning:xst:1896 - due other ff/latch trimming, ff/latch <d1count_16> has constant value of 0 in block <safehouse1>. ff/latch trimmed during optimization process. warning:xst:1896 - due other ff/latch trimming, ff/latch <d1count_15> has constant value of 0 in block <safehouse1>. ff/latch trimmed during optimization process. warning:xst:1896 - due other ff/latch trimming, ff/latch <d1count_14> has constant value of 0 in block <safehouse1>. ff/latch trimmed during optimization process. warning:xst:1896 - due other ff/latch trimming, ff/latch <d1count_13> has constant value of 0 in block <safehouse1>. ff/latch trimmed during optimization process. warning:xst:1896 - due other ff/latch trimming, ff/latch <d1count_12> has constant value of 0 in block <safehouse1>. ff/latch trimmed during optimization process. warning:xst:1896 - due other ff/latch trimming, ff/latch <d1count_11> has constant value of 0 in block <safehouse1>. ff/latch trimmed during optimization process. warning:xst:1896 - due other ff/latch trimming, ff/latch <d1count_10> has constant value of 0 in block <safehouse1>. ff/latch trimmed during optimization process. warning:xst:1896 - due other ff/latch trimming, ff/latch <d1count_9> has constant value of 0 in block <safehouse1>. ff/latch trimmed during optimization process. warning:xst:1896 - due other ff/latch trimming, ff/latch <d1count_8> has constant value of 0 in block <safehouse1>. ff/latch trimmed during optimization process. warning:xst:1896 - due other ff/latch trimming, ff/latch <d1count_7> has constant value of 0 in block <safehouse1>. ff/latch trimmed during optimization process. warning:xst:1896 - due other ff/latch trimming, ff/latch <d1count_6> has constant value of 0 in block <safehouse1>. ff/latch trimmed during optimization process. warning:xst:1896 - due other ff/latch trimming, ff/latch <d1count_5> has constant value of 0 in block <safehouse1>. ff/latch trimmed during optimization process. warning:xst:1896 - due other ff/latch trimming, ff/latch <d1count_4> has constant value of 0 in block <safehouse1>. ff/latch trimmed during optimization process. warning:xst:1896 - due other ff/latch trimming, ff/latch <d1count_3> has constant value of 0 in block <safehouse1>. ff/latch trimmed during optimization process. warning:xst:1896 - due other ff/latch trimming, ff/latch <d1count_2> has constant value of 0 in block <safehouse1>. ff/latch trimmed during optimization process. warning:xst:1896 - due other ff/latch trimming, ff/latch <d1count_1> has constant value of 0 in block <safehouse1>. ff/latch trimmed during optimization process. warning:xst:1896 - due other ff/latch trimming, ff/latch <d1count_0> has constant value of 0 in block <safehouse1>. ff/latch trimmed during optimization process. warning:xst:1896 - due other ff/latch trimming, ff/latch <capture1_1> has constant value of 0 in block <safehouse1>. ff/latch trimmed during optimization process. warning:xst:1896 - due other ff/latch trimming, ff/latch <capture1_0> has constant value of 0 in block <safehouse1>. ff/latch trimmed during optimization process. warning:xst:1896 - due other ff/latch trimming, ff/latch <buzzer1_3> has constant value of 0 in block <safehouse1>. ff/latch trimmed during optimization process. warning:xst:2677 - node <temp3_7> of sequential type unconnected in block <safehouse1>. warning:xst:2677 - node <temp3_6> of sequential type unconnected in block <safehouse1>. warning:xst:2677 - node <temp3_5> of sequential type unconnected in block <safehouse1>. warning:xst:2677 - node <temp3_4> of sequential type unconnected in block <safehouse1>. warning:xst:2677 - node <temp3_3> of sequential type unconnected in block <safehouse1>. warning:xst:2677 - node <temp3_2> of sequential type unconnected in block <safehouse1>. warning:xst:2677 - node <temp3_1> of sequential type unconnected in block <safehouse1>. warning:xst:2677 - node <temp3_0> of sequential type unconnected in block <safehouse1>.
the signal d1count used create delay alarm. when implement design on fpga nothing happens. however, program simulates correctly.
please, me program works on fpga correctly. using xilinx spartan 6.
code:
library ieee; use ieee.std_logic_1164.all; entity safehouse1 port ( buzzer1 : out bit_vector(0 3); keypad1 : in bit_vector(0 7); clk1 : in std_logic ); end safehouse1; architecture safehouse1 of safehouse1 signal temp3 : bit_vector(0 7) := "00000000"; signal d1count : integer range 0 100000001 := 0; signal capture1 : integer range 0 3 := 0; begin buzzer_alarm: process(clk1,keypad1,temp3,d1count,capture1) begin if (rising_edge(clk1)) if keypad1 /= temp3 if keypad1 = "00010010" capture1 <= capture1 + 1; end if; temp3 <= keypad1; end if; if capture1 = 1 d1count <= d1count + 1; if d1count >= 100000000 d1count <= 0; elsif d1count >= 50000000 buzzer1(0) <= '1'; buzzer1(1) <= '1'; buzzer1(2) <= '1'; buzzer1(3) <= '1'; else buzzer1(0) <= '0'; buzzer1(1) <= '0'; buzzer1(2) <= '0'; buzzer1(3) <= '0'; end if; else buzzer1(0) <= '0'; buzzer1(1) <= '0'; buzzer1(2) <= '0'; buzzer1(3) <= '0'; capture1 <= 0; end if; end if; end process buzzer_alarm; end safehouse1;
i solved problem myself... second time answering own question...
the synthesizer thought value of capture1 never '1'... changed type of capture1 bit. created assignment statement, assigning value '1' capture1, instead of incrementing value of capture1 '0' (as in question)...
if don't believe me see code in solution, did stated above.
it seems there different ways every program warning xst 1293 ff/latch has constant value...
so, learned 3 ways handle warning xt 1293...
1) change variables signals (as integer, natural, etc)
2) add constraint these signals (the range of values take)
3) answer in post.
same code without warning:
library ieee; use ieee.std_logic_1164.all; entity safehouse1 port ( buzzer1 : out bit_vector(0 3); keypad1 : in bit_vector(0 7); clk1 : in std_logic ); end safehouse1; architecture safehouse1 of safehouse1 signal temp3 : bit_vector(0 7) := "00000000"; signal d1count : integer range 0 100000001 := 0; signal capture1 : bit := '0'; begin buzzer_alarm: process(clk1,keypad1,temp3,d1count,capture1) begin if (rising_edge(clk1)) if keypad1 /= temp3 if keypad1 = "00010010" if capture1 = '1' capture1 <= '0'; else capture1 <= '1'; end if; end if; temp3 <= keypad1; end if; if capture1 = '1' d1count <= d1count + 1; if d1count >= 100000000 d1count <= 0; elsif d1count >= 50000000 buzzer1(0) <= '1'; buzzer1(1) <= '1'; buzzer1(2) <= '1'; buzzer1(3) <= '1'; else buzzer1(0) <= '0'; buzzer1(1) <= '0'; buzzer1(2) <= '0'; buzzer1(3) <= '0'; end if; else buzzer1(0) <= '0'; buzzer1(1) <= '0'; buzzer1(2) <= '0'; buzzer1(3) <= '0'; end if; end if; end process buzzer_alarm; end safehouse1;
Comments
Post a Comment