Discussion:
please help! unknown sintax errors with my code?
(too old to reply)
bob
2003-12-05 16:45:22 UTC
Permalink
what is wrong with my code that I get these errors when I check
sintax?

ERROR:HDLParsers:164 -
C:/projects/XilinxISEProjects/WL02Coolrunner/BCD_27SEGM.vhd Line 25.
parse error, unexpected LT, expecting OPENPAR or TICK or LSQBRACK
ERROR:HDLParsers:164 -
C:/projects/XilinxISEProjects/WL02Coolrunner/BCD_27SEGM.vhd Line 26.
parse error, unexpected LT, expecting OPENPAR or TICK or LSQBRACK
....ect....


library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity BCD_27SEGM is
port (
PHASE: in STD_LOGIC; --LCD USES PHASE TO PREVENT BURNING
BCD: in std_logic_vector(3 downto 0);
segment: out std_logic_vector(6 downto 0)
);
end BCD_27SEGM;

architecture Behavioral of BCD_27SEGM is
begin
process (BCD,PHASE)
begin
if (PHASE = '0') then
case BCD is -- display segment order a b c d e f g
when "0000" => segment < = "1111110";
when "0001" => segment < = "0110000";
when "0010" => segment < = "1101101";
when "0011" => segment < = "1111001";
when "0100" => segment < = "0110011";
when "0101" => segment < = "1011011";
when "0110" => segment < = "1011111";
when "0111" => segment < = "1110000";
when "1000" => segment < = "1111111";
when "1001" => segment < = "1110011";
when others => segment < = "0000000";
end case;
elsif (PHASE = '1') then
case BCD is -- display segment order a b c d e f g
when "0000" => segment < = "0111111";
when "0001" => segment < = "1001111";
when "0010" => segment < = "0010010";
when "0011" => segment < = "0000110";
when "0100" => segment < = "1001100";
when "0101" => segment < = "0100100";
when "0110" => segment < = "0100000";
when "0111" => segment < = "0001111";
when "1000" => segment < = "0000000";
when "1001" => segment < = "0001100";
when others => segment < = "1111111";
end case;
end if;
end process;
end Behavioral;
Gietek
2003-12-05 16:57:29 UTC
Permalink
Post by bob
process (BCD,PHASE)
begin
if (PHASE = '0') then
case BCD is -- display segment order a b c d e f g
(...)
Post by bob
end case;
elsif (PHASE = '1') then <-----------------
?
Post by bob
case BCD is -- display segment order a b c d e f g
(...)
Post by bob
end case;
end if;
end process;
Well, I'm not so good in VHDL but... isn't it supposed to be else instead of
elsif ?
Any help is good :)
bob
2003-12-05 17:05:12 UTC
Permalink
tried that variation but still get the same problem
even when I simplify it by commenting out the phase and if than
statments
Post by Gietek
Post by bob
process (BCD,PHASE)
begin
if (PHASE = '0') then
case BCD is -- display segment order a b c d e f g
(...)
Post by bob
end case;
elsif (PHASE = '1') then <-----------------
?
Post by bob
case BCD is -- display segment order a b c d e f g
(...)
Post by bob
end case;
end if;
end process;
Well, I'm not so good in VHDL but... isn't it supposed to be else instead of
elsif ?
Any help is good :)
Tim Hubberstey
2003-12-05 17:45:23 UTC
Permalink
Post by bob
what is wrong with my code that I get these errors when I check
sintax?
when "0000" => segment < = "1111110";
-------------------------------------------^
One too many spaces. Use <= not < =.
--
Tim Hubberstey, P.Eng. . . . . . Hardware/Software Consulting Engineer
Marmot Engineering . . . . . . . VHDL, ASICs, FPGAs, embedded systems
Vancouver, BC, Canada . . . . . . . . . . . http://www.marmot-eng.com
bob
2003-12-05 18:17:30 UTC
Permalink
Thanks tim that was it.
Post by Tim Hubberstey
Post by bob
what is wrong with my code that I get these errors when I check
sintax?
when "0000" => segment < = "1111110";
-------------------------------------------^
One too many spaces. Use <= not < =.
Mike Treseler
2003-12-05 17:55:05 UTC
Permalink
Post by bob
what is wrong with my code that I get these errors when I check
sintax?
try this:

library IEEE;
use IEEE.STD_LOGIC_1164.all;

entity BCD_27SEGM is
port (
PHASE : in std_logic; --LCD USES PHASE TO PREVENT BURNING
BCD : in std_logic_vector(3 downto 0);
segment : out std_logic_vector(6 downto 0)
);
end BCD_27SEGM;

architecture Behavioral of BCD_27SEGM is
begin
process (BCD, PHASE)
begin
if (PHASE = '0') then
case BCD is -- display segment order a b c d e f g
when "0000" => segment <= "1111110";
when "0001" => segment <= "0110000";
when "0010" => segment <= "1101101";
when "0011" => segment <= "1111001";
when "0100" => segment <= "0110011";
when "0101" => segment <= "1011011";
when "0110" => segment <= "1011111";
when "0111" => segment <= "1110000";
when "1000" => segment <= "1111111";
when "1001" => segment <= "1110011";
when others => segment <= "0000000";
end case;
elsif (PHASE = '1') then
case BCD is -- display segment order a b c d e f g
when "0000" => segment <= "0111111";
when "0001" => segment <= "1001111";
when "0010" => segment <= "0010010";
when "0011" => segment <= "0000110";
when "0100" => segment <= "1001100";
when "0101" => segment <= "0100100";
when "0110" => segment <= "0100000";
when "0111" => segment <= "0001111";
when "1000" => segment <= "0000000";
when "1001" => segment <= "0001100";
when others => segment <= "1111111";
end case;
end if;
end process;
end Behavioral;


-- Mike Treseler
Loading...