请注意:你的定义variable cnt:integer range 0 to 2;而你的使用if cnt<=2 then led_temp<=led_temp(1 downto 0)&'0'; else led_temp<="001"; cnt:=0; end if;你的cnt就不可能有else的条件;因为0 to 2 必定 小于等于2。