UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Newbie m9501
Newbie
5,033 Views
Registered: ‎12-05-2014

Unconnected blocks in VHDL code

Jump to solution
---------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity System2 is
Port ( SmallObject : in STD_LOGIC;
MediumObject : in STD_LOGIC;
LargeObject : in STD_LOGIC;
Clock : in STD_LOGIC;
RST: in STD_LOGIC; 
Arm1 : out STD_LOGIC;
Arm2 : out STD_LOGIC;
Arm3 : out STD_LOGIC);
end System2;
architecture Behavioral of System2 is
Signal Arm1TimeCounter: integer := 0; -- counts from 1 to Arm1Constant
Signal Arm2TimeCounter: integer := 0; -- counts from 1 to Arm2Constant
Signal Arm3TimeCounter: integer := 0; -- counts from 1 to Arm3Constant
constant Arm1Constant : integer := 350000000;--7 seconds delay to the first arm 
constant Arm2Constant: integer := 450000000;--9 seconds delay to the first arm 
constant Arm3Constant: integer := 550000000;--11 seconds delay to the first arm
signal SmallObjectTemp : std_logic := '0'; -- becomes 1 when the smallest product is sensed 
signal MediumObjectTemp : std_logic := '0'; -- becomes 1 when the medium product is sensed 
signal LargeObjectTemp : std_logic := '0'; -- becomes 1 when the Largest product is sensed

Type State_type is (InitialState,SmallProductState,MediumProductState,LargeProductState,DelayState);
Signal y : State_type; 
Signal w : std_logic_vector (1 downto 0); -- 00 initial ,01 small , 10 medium , 11 large
begin
-----------------------------------------------------
process(Clock)
begin
if(RST='1') then
y<=InitialState;
elsif (Clock='1' and clock'event) then 
if((SmallObject='0' and MediumObject='0' and LargeObject='0') or w<="11") then
y<=LargeProductState;
LargeObjectTemp<='1';
elsif ((SmallObject='0' and MediumObject='0' and LargeObject='1') or w<="10") then
y<=MediumProductState;
MediumObjectTemp<='1';
elsif ((SmallObject='0' and MediumObject='1' and LargeObject='1') or w<="01") then
y<=SmallProductState;
SmallObjectTemp<='1';
elsif((SmallObject='1' and MediumObject='1' and LargeObject='1') or w<="00") then
y<=InitialState;
end if;
end if;
end process;
-----------------------------------------------------
process(y)
begin
case y is

when SmallProductState =>
if(Arm1TimeCounter =Arm1Constant) then
Arm1 <= SmallObjectTemp; --give signal to the relay
Arm1 <= '0' after 100000000 ns;
Arm1TimeCounter <= 1; --reset the count
smallObjectTemp<='0';
if(MediumObjectTemp='1') then
w<="10"; -- change state to medium after the smallest product arrival 
elsif(LargeObjectTemp='1') then 
w<="11"; -- change state to Large after the smallest product arrival 
else
w<="00"; --go back to the initial state and wait for another product.
end if; 
else
Arm1TimeCounter<= Arm1TimeCounter + 1; -- inc counter
if(MediumObjectTemp<='1' ) then
Arm2TimeCounter<=Arm2TimeCounter+1; -- inc the medium product counter while the smallest product is still on the belt
if(LargeObjectTemp<='1' ) then
Arm3TimeCounter<=Arm3TimeCounter+1; -- inc the Largest product counter while the smallest product is still on the belt
end if;
end if; 
end if;


when MediumProductState =>
if(Arm2TimeCounter =Arm2Constant) then
Arm2 <= MediumObjectTemp; --give signal to the relay
Arm2 <= '0' after 1000000000 ns;
Arm2TimeCounter <= 1; --reset the count
MediumObjectTemp<='0';
if(SmallObjectTemp='1') then
w<="01"; -- change state to small after the medium product arrival 
else
w<="00"; --go back to the initial state and wait for another product.
end if;
else
Arm2TimeCounter<= Arm2TimeCounter + 1; -- inc counter
if(SmallObjectTemp<='1' ) then
Arm1TimeCounter<=Arm1TimeCounter+1; -- inc the smallest product counter while the medium product is still on the belt
end if;

end if; 

when LargeProductState =>
if(Arm3TimeCounter =Arm3Constant) then
Arm3 <= LargeObjectTemp; --give signal to the relay
Arm3 <= '0' after 1000000000 ns;
Arm3TimeCounter <= 1; --reset the count
LargeObjectTemp<='0';
w<="00"; --go back to the initial state and wait for another product. 
else
Arm3TimeCounter<= Arm3TimeCounter + 1; -- inc counter

end if;
when others =>

end case;


end process;
-----------------------------------------------------
end Behavioral;
 

 warnings

INFO:Xst:2261 - The FF/Latch <y_2> in Unit <System2> is equivalent to the following FF/Latch, which will be removed : <y_1> 
WARNING:Xst:1293 - FF/Latch <y_2> has a constant value of 0 in block <System2>. This FF/Latch will be trimmed during the optimization process.
WARNING:Xst:2677 - Node <y_0> of sequential type is unconnected in block <System2>.
WARNING:Xst:2677 - Node <y_3> of sequential type is unconnected in block <System2>.
WARNING:Xst:2677 - Node <Arm3TimeCounter_0> of sequential type is unconnected in block <System2>.
WARNING:Xst:2677 - Node <Arm3TimeCounter_1> of sequential type is unconnected in block <System2>.
WARNING:Xst:2677 - Node <Arm3TimeCounter_2> of sequential type is unconnected in block <System2>.
WARNING:Xst:2677 - Node <Arm3TimeCounter_3> of sequential type is unconnected in block <System2>.
WARNING:Xst:2677 - Node <Arm3TimeCounter_4> of sequential type is unconnected in block <System2>.
WARNING:Xst:2677 - Node <Arm3TimeCounter_5> of sequential type is unconnected in block <System2>.
WARNING:Xst:2677 - Node <Arm3TimeCounter_6> of sequential type is unconnected in block <System2>.
WARNING:Xst:2677 - Node <Arm3TimeCounter_7> of sequential type is unconnected in block <System2>.
WARNING:Xst:2677 - Node <Arm3TimeCounter_8> of sequential type is unconnected in block <System2>.
WARNING:Xst:2677 - Node <Arm3TimeCounter_9> of sequential type is unconnected in block <System2>.
WARNING:Xst:2677 - Node <Arm3TimeCounter_10> of sequential type is unconnected in block <System2>.
WARNING:Xst:2677 - Node <Arm3TimeCounter_11> of sequential type is unconnected in block <System2>.
WARNING:Xst:2677 - Node <Arm3TimeCounter_12> of sequential type is unconnected in block <System2>.
WARNING:Xst:2677 - Node <Arm3TimeCounter_13> of sequential type is unconnected in block <System2>.
WARNING:Xst:2677 - Node <Arm3TimeCounter_14> of sequential type is unconnected in block <System2>.
WARNING:Xst:2677 - Node <Arm3TimeCounter_15> of sequential type is unconnected in block <System2>.
WARNING:Xst:2677 - Node <Arm3TimeCounter_16> of sequential type is unconnected in block <System2>.
WARNING:Xst:2677 - Node <Arm3TimeCounter_17> of sequential type is unconnected in block <System2>.
WARNING:Xst:2677 - Node <Arm3TimeCounter_18> of sequential type is unconnected in block <System2>.
WARNING:Xst:2677 - Node <Arm3TimeCounter_19> of sequential type is unconnected in block <System2>.
WARNING:Xst:2677 - Node <Arm3TimeCounter_20> of sequential type is unconnected in block <System2>.
WARNING:Xst:2677 - Node <Arm3TimeCounter_21> of sequential type is unconnected in block <System2>.
WARNING:Xst:2677 - Node <Arm3TimeCounter_22> of sequential type is unconnected in block <System2>.
WARNING:Xst:2677 - Node <Arm3TimeCounter_23> of sequential type is unconnected in block <System2>.
WARNING:Xst:2677 - Node <Arm3TimeCounter_24> of sequential type is unconnected in block <System2>.
WARNING:Xst:2677 - Node <Arm3TimeCounter_25> of sequential type is unconnected in block <System2>.
WARNING:Xst:2677 - Node <Arm3TimeCounter_26> of sequential type is unconnected in block <System2>.
WARNING:Xst:2677 - Node <Arm3TimeCounter_27> of sequential type is unconnected in block <System2>.
WARNING:Xst:2677 - Node <Arm3TimeCounter_28> of sequential type is unconnected in block <System2>.
WARNING:Xst:2677 - Node <Arm3TimeCounter_29> of sequential type is unconnected in block <System2>.
WARNING:Xst:2677 - Node <Arm3TimeCounter_30> of sequential type is unconnected in block <System2>.
WARNING:Xst:2677 - Node <Arm3TimeCounter_31> of sequential type is unconnected in block <System2>.

 

Could you please tell me how to solve these warnings?  i have no idea why Arm3TimeCounter , Arm2TimeCounter,Arm1TimeCounter are unconnected 

 

0 Kudos
1 Solution

Accepted Solutions
Highlighted
Explorer
Explorer
8,535 Views
Registered: ‎02-22-2010

Re: Unconnected blocks in VHDL code

Jump to solution

Not sure if related to the warnings but I think you have typos in your synchronous process.

 

= instead of <=

 

When you write

if((SmallObject='0' and MediumObject='0' and LargeObject='0') or w<="11") the

I think you mean

if((SmallObject='0' and MediumObject='0' and LargeObject='0') or w="11") then
0 Kudos
2 Replies
Highlighted
Explorer
Explorer
8,536 Views
Registered: ‎02-22-2010

Re: Unconnected blocks in VHDL code

Jump to solution

Not sure if related to the warnings but I think you have typos in your synchronous process.

 

= instead of <=

 

When you write

if((SmallObject='0' and MediumObject='0' and LargeObject='0') or w<="11") the

I think you mean

if((SmallObject='0' and MediumObject='0' and LargeObject='0') or w="11") then
0 Kudos
Newbie m9501
Newbie
5,005 Views
Registered: ‎12-05-2014

Re: Unconnected blocks in VHDL code

Jump to solution

my problem is fixed thank you so much 

0 Kudos