please help! unknown sintax errors with my code?

B

bob

Guest
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;
 
process (BCD,PHASE)
begin
if (PHASE = '0') then
case BCD is -- display segment order a b c d e f g
(...)
end case;
elsif (PHASE = '1') then <-----------------
?
case BCD is -- display segment order a b c d e f g
(...)
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 :)
 
tried that variation but still get the same problem
even when I simplify it by commenting out the phase and if than
statments

On Fri, 5 Dec 2003 17:57:29 +0100, "Gietek" <gientke@wp.pl> wrote:

process (BCD,PHASE)
begin
if (PHASE = '0') then
case BCD is -- display segment order a b c d e f g
(...)
end case;
elsif (PHASE = '1') then <-----------------
?
case BCD is -- display segment order a b c d e f g
(...)
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 wrote:
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 wrote:
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
 
Thanks tim that was it.
On Fri, 05 Dec 2003 17:45:23 GMT, Tim Hubberstey <sendme@no.spam>
wrote:

bob wrote:

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 < =.
 

Welcome to EDABoard.com

Sponsor

Back
Top