|  | 
 
| 
最近输入了个程序,提示出错,但找不到原因,请各位大大帮帮忙,谢谢了!
×
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册  
 
 Error (10500): VHDL syntax error at taxi.vhd(13) near text "END";  expecting an identifier ("end" is a reserved keyword), or "constant", or "file", or "signal", or "variable"
 Error (10500): VHDL syntax error at taxi.vhd(25) near text "BEGIN";  expecting an identifier ("begin" is a reserved keyword), or "constant", or "file", or "signal", or "variable"
 
 
 
 
 LIBRARY IEEE;
 USE IEEE.std_logic_1164.all;
 USE IEEE.std_logic_unsigned.all;
 USE IEEE.std_logic_arith.all;
 ENTITY taxi is
 port(clk_240 :in std_logic;--240Hz的时钟
 start :in std_logic;--计价使能信号
 stop :in std_logic;--等待信号
 fin :in std_logic;--公里脉冲信号
 cha3,cha2,cha1,cha0
  ut std_logic_vector(3 downto 0);--费用数据 km1,km0
  ut std_logic_vector(3 downto 0);--公里数据 min1,min0
  ut std_logic_vector(3 downto 0);--等待时间 end taxi;----第13行
 architecture behav of taxi is
 signal f_10,f_16,f_1:std_logic;--频率为10Hz,16Hz,1Hz的信号
 signal q_10:integer range 0 to 23;--24分频器
 signal q_16:integer range 0 to 14;--15分频器
 signal q_1:integer range 0 to 239;--240分频器
 signal w:integer range 0 to 59;--秒计数器
 signal c3,c2,c1,c0:std_logic_vector(3 downto 0);--10进费用计数器
 signal k1,k0:std_logic_vector(3 downto 0);--公里计数器
 signal m1:std_logic_vector(2 downto 0);--分的十位计数器
 signal m0:std_logic_vector(3 downto 0);--分的个位计数器
 signal en1,en0,f:std_logic;--使能信号
 begin---第25行
 fenpin:process(clk_240,start)
 begin
 if clk_240'event and clk_240='1' then
 if start='0' then
 q_10<=0;q_16<=0;q_1<=0;f_10<='0';f_16<='0';f_1<='0';f<='0';
 else
 if q_10=23 then
 q_10<=0;f_10<='1';--此if语句得到频率为10Hz的信号
 else q_10=q_10+1;f_10<='0';
 end if;
 if q_16=14 then
 q_16<=0;f_16<='1';--此if语句得到频率为16Hz的信号
 else q_16<=q_16+1;f_16<='0';
 end if;
 if q_1=239 then
 q_1<=0;f_1<='1';--此if语句得到频率为1Hz的信号
 else q_1<=q_1+1;f_1<='0';
 end if;
 if en1='1' then
 f<=f_10;--此if语句得到计费脉冲f
 elsif en0='1' then
 f<=f_16;
 else f<='0';
 end if;
 end if;
 end if;
 end process fenpin;
 main:process(f_1)
 begin
 if f_1'event and f_1='1' then
 if start='0' then
 w<=0;en1<='0';en0<='0';m1<="000";m0<="0000";k1<="0000";k0<="0000";
 elsif stop='1' then
 if w=59 then w<=0;--此if语句完成等待计时
 if m0="1001" then m0<="0000";--此if语句完成分计数
 if m1="101" then m1<="000";
 else m1=m1+1;
 end if;
 else m0<=m0+1;
 end if;
 if m1&m0>"0000010" then en1<='1';--此if语句得到en1使能信号
 else en1<='0';
 end if;
 else w<=w+1;en1<='0';
 end if;
 elsif fin='1' then
 if k0="1001" then k0<="0000";--此if语句完成公里脉冲计数
 if k1="1001" then k1<="0000";
 else k1<=k1+1;
 end if;
 else k0<=k0+1;
 end if;
 if k1&k0>"00000010" then en0<='1';--此if语句得到en0使能信号
 else en0<='0';
 end if;
 else en1<='0';en0<='0';
 end if;
 cha3<=c3;cha2<=c2;cha1<=c1;cha0<=c0;--费用数据输出
 km1<=k1;km0<=k0;min1<='0'&m1;min0<=m0;--公里数据、分钟数据输出
 end if;
 end process main;
 jifei:process(f,start)
 begin
 if start='0' then
 c3<="0000";c2<="0000";c1<="1000";c0<="0000";
 elsif f'event and f='1' then
 if c0="1001" then c0<"0000";--此if语句完成对费用的计数
 if c1="1001" then c1<"0000";
 if c2="1001" then c2<"0000";
 if c3="1001" then c3<"0000";
 else c3<=c3+1;
 end if;
 else c2<=c2+1;
 end if;
 else c1<=c1+1;
 end if;
 else c0<=c0+1;
 end if;
 end if;
 end process jifei;
 end behav;
 | 
 |