VHDL CODE FOR CONTROLLER WHEN PLANE IS DESIGNED USING THREE POINTS

Joined
Nov 8, 2012
Messages
1
Reaction score
0
HELLO Every one


this is my code for a controller to navigate a robo on a plne which is designed using three points. I am providing input to controller from GPS & PROXIMITY SENSOR....i have numbers of error in this code ..please help me...



CODE FOR CONTROLLER WHEN PLANE IS DESIGNED USING THREE POINTS
----------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
package controler is
constant rng_row : integer:= 2;
constant rng_clmn : integer:= 2;
constant gps_row : integer:= 2;
constant gps_clmn,lut_clmn: integer:= 2;
constant lut_row : integer:=7;
Type lut_datain is array (0 to lut_row,0 to lut_clmn)of std_logic;
Type gps_datain is array (0 to gps_row,0 to gps_clmn) of std_logic;
Type rng_datain is array (0 to rng_row,0 to rng_clmn) of std_logic;
--------function = (df_out1,df_out2:in gps_datain;df_out3:in lut_datain ) return std_logic;
end controler;
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use WORK.controler.ALL;
entity code1f3p is
port (clk: in std_logic;
x1,x2,x3,x4,x5,y1,y2,y3,z1,z2,z3,a1,a2,a3,b1,b2,b3,c1,c2,c3:inout std_logic;
df_in1,df_in2:in gps_datain;
df_in3:in lut_datain; ------------df=direction finder
df_out1,df_out2:inout gps_datain;
df_out3: inout lut_datain;
mc_in1: in gps_datain;
mc_in2: in rng_datain;----------mc=motion control
mc_out1: inout gps_datain;
mc_out2: inout rng_datain;
mcomp_out,dcomp_out:eek:ut std_logic);
end code1f3p;
architecture Behavioral of code1f3p is
signal temp1,temp2: gps_datain ;
signal temp3:lut_datain;
signal temp5:gps_datain;
variable gps_data:gps_datain:=
((x1, y1, z1),
(x2, y2, z2),
(x3, y3, z3));
signal temp4:rng_datain;
variable rng_data:rng_datain:=
((a1, b1, c1),
(a2, b2, c2),
(a3, b3, c3));
SIGNAL i : integer := 0;
begin
-------------------------------for direction finder---------------------------------------------------------------
p1:process(clk)
type lut_datain is array (0 to lut_row,0 to lut_clmn)of std_logic;
constant lut_data:lut_datain:=(
('0','0','0'),
('0','0','1'),
('0','1','0'),
('0','1','1'),
('1','0','0'),
('1','0','1'),
('1','1','0'),
('1','1','1'));
begin
if ( clk = '1' and clk'event)then
for i in 0 to 5 loop
case i is
when 0 => temp1<= df_in1;
when 1 => df_out1<= temp1;
when 2 => temp2<= df_in2;
when 3 => df_out2 <= temp2;
when 4 => temp3 <= df_in3;
when 5 => df_out3<= temp3;
end case;
end loop;
if (df_out1 = df_out2 and df_out1 = df_out3) then
dcomp_out <= '1';
else
dcomp_out <= '0';
end if;
end if;
end process;
--------------------------for motion control----------------------------------------------
p2:process(clk)
begin
if (clk'event and clk = '1')then
for i in 0 to 3 loop
case i is
when 0 => temp5 <= mc_in1;
when 1 => mc_out1 <= temp5;
when 2 => temp4 <= mc_in2;
when 3 => mc_out2 <= temp4;


end case;
if (mc_out1 = mc_out2) then
mcomp_out <= '1';
else
mcomp_out <= '0';
end if;
end loop;
end if;
end process;
end Behavioral;
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,766
Messages
2,569,569
Members
45,042
Latest member
icassiem

Latest Threads

Top