Altera_Forum
Honored Contributor
8 years agoFirst VHDL project and i am having plenty of problems.
I am trying to write a code that displays weight and height on a 7 segment display depending on the push button that is pressed.
I am using clk and clk2 as the push button. F0 and F1 represent the two digit 7 segment displays. Height and Weight are set using 5 switches each. Now i am getting an error when ever i use the if statement if clk='1' then () end if and more errors when ever include process without it the code runs other than the part at the bottom where i am trying to turn 3 leds on and off depending on the value of the weight and height
LIBRARY ieee;
USE ieee.std_logic_1164.all;
ENTITY Proj IS
PORT ( weight: IN STD_LOGIC_VECTOR(4 DOWNTO 0) ;
height: IN STD_LOGIC_VECTOR (4 DOWNTO 0 );
clk : IN std_logic;
clk2: IN std_logic;
F0: OUT STD_LOGIC_VECTOR (6 downto 0);
F1: OUT STD_LOGIC_VECTOR (6 downto 0);
L1: OUT STD_logic;
L2: OUT STD_LOGIC;
L3: OUT STD_LOGIC );
END Proj;
ARCHITECTURE func OF Proj IS
BEGIN
process(F0 , weight , clk )
begin
WITH weight SELECT
F0<= "0000001" WHEN "00000" ,
"0000001" WHEN "00001" ,
"0000001" WHEN "00010" ,
"0000001" WHEN "00011" ,
"0000001" WHEN "00100" ,
"0000001" WHEN "00101" ,
"0000001" WHEN "00110" ,
"0000001" WHEN "00111" ,
"0000001" WHEN "01000" ,
"0000001" WHEN "01001" ,
"1001111" WHEN "01010" ,
"1001111" WHEN "01011" ,
"1001111" WHEN "01100" ,
"1001111" WHEN "01101" ,
"1001111" WHEN "01110" ,
"1001111" WHEN "01111" ,
"1001111" WHEN "10000" ,
"1001111" WHEN "10001" ,
"1001111" WHEN "10010" ,
"1001111" WHEN "10011" ,
"0010010" WHEN "10100" ,
"0010010" WHEN "10101" ,
"0010010" WHEN "10110" ,
"0010010" WHEN "10111" ,
"0010010" WHEN "11000" ,
"0010010" WHEN "11001" ,
"0010010" WHEN "11010" ,
"0010010" WHEN "11011" ,
"0010010" WHEN "11100" ,
"0010010" WHEN "11101" ,
"0000110" WHEN "11110" ,
"0000110" WHEN "11111" ;
with weight SELECT
F1<= "0000001" WHEN "00000" ,
"1001111" WHEN "00001" ,
"0010010" WHEN "00010" ,
"0000110" WHEN "00011" ,
"1001100" WHEN "00100" ,
"0100100" WHEN "00101" ,
"0100000" WHEN "00110" ,
"0001111" WHEN "00111" ,
"0000000" WHEN "01000" ,
"0000100" WHEN "01001" ,
"0000001" WHEN "01010" ,
"1001111" WHEN "01011" ,
"0010010" WHEN "01100" ,
"0000110" WHEN "01101" ,
"1001100" WHEN "01110" ,
"0100100" WHEN "01111" ,
"0100000" WHEN "10000" ,
"0001111" WHEN "10001" ,
"0000000" WHEN "10010" ,
"0000100" WHEN "10011" ,
"0000001" WHEN "10100" ,
"1001111" WHEN "10101" ,
"0010010" WHEN "10110" ,
"0000110" WHEN "10111" ,
"1001100" WHEN "11000" ,
"0100100" WHEN "11001" ,
"0100000" WHEN "11010" ,
"0001111" WHEN "11011" ,
"0000000" WHEN "11100" ,
"0000100" WHEN "11101" ,
"0000001" WHEN "11110" ,
"1001111" WHEN "11111" ;
end process;
process (F0 , clk2 , height)
begin
F0<= "0000001" WHEN height="00000" else
"0000001" WHEN height="00001" else
"0000001" WHEN height="00010" else
"0000001" WHEN height="00011" else
"0000001" WHEN height="00100" else
"0000001" WHEN height="00101" else
"0000001" WHEN height="00110" else
"0000001" WHEN height="00111" else
"0000001" WHEN height="01000" else
"0000001" WHEN height="01001" else
"1001111" WHEN height="01010" else
"1001111" WHEN height="01011" else
"1001111" WHEN height="01100" else
"1001111" WHEN height="01101" else
"1001111" WHEN height="01110" else
"1001111" WHEN height="01111" else
"1001111" WHEN height="10000" else
"1001111" WHEN height="10001" else
"1001111" WHEN height="10010" else
"1001111" WHEN height="10011" else
"0010010" WHEN height="10100" else
"0010010" WHEN height="10101" else
"0010010" WHEN height="10110" else
"0010010" WHEN height="10111" else
"0010010" WHEN height="11000" else
"0010010" WHEN height="11001" else
"0010010" WHEN height="11010" else
"0010010" WHEN height="11011" else
"0010010" WHEN height="11100" else
"0010010" WHEN height="11101" else
"0000110" WHEN height="11110" else
"0000110" WHEN height="11111" ;
F1<= "0000001" WHEN height="00000" else
"1001111" WHEN height="00001" else
"0010010" WHEN height="00010" else
"0000110" WHEN height="00011" else
"1001100" WHEN height="00100" else
"0100100" WHEN height="00101" else
"0100000" WHEN height="00110" else
"0001111" WHEN height="00111" else
"0000000" WHEN height="01000" else
"0000100" WHEN height="01001" else
"0000001" WHEN height="01010" else
"1001111" WHEN height="01011" else
"0010010" WHEN height="01100" else
"0000110" WHEN height="01101" else
"1001100" WHEN height="01110" else
"0100100" WHEN height="01111" else
"0100000" WHEN height="10000" else
"0001111" WHEN height="10001" else
"0000000" WHEN height="10010" else
"0000100" WHEN height="10011" else
"0000001" WHEN height="10100" else
"1001111" WHEN height="10101" else
"0010010" WHEN height="10110" else
"0000110" WHEN height="10111" else
"1001100" WHEN height="11000" else
"0100100" WHEN height="11001" else
"0100000" WHEN height="11010" else
"0001111" WHEN height="11011" else
"0000000" WHEN height="11100" else
"0000100" WHEN height="11101" else
"0000001" WHEN height="11110" else
"1001111" WHEN height="11111" ;
end process;
L1 <= '1' WHEN ( weight>'30' AND weight<'15' ) ELSE '0';
L2 <= '1' WHEN ( height>'30' AND weight<'10' ) ELSE '0';
L3 <= '1' WHEN L1='0' AND L2='0' ELSE'0' ;
END func;