请问哪位大侠知道SLL的用法?

求助各位大侠:下面的程序运行后为什么老是出错呀?
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.numeric_std.all;
use ieee.std_logic_arith.all;
entity fdkz is
port(kongzhi:in std_logic;
   srdata:in std_logic_vector(9 downto 0);
   fddataut std_logic_vector(9 downto 0));
end;
architecture behav of fdkz is
constant fd:std_logic_vector(6 downto 0):="1100010";
begin
  process(kongzhi,srdata)
  variable data1:std_logic_vector(15 downto 0);
  variable data2:std_logic_vector(15 downto 0);
  variable data3:integer range 0 to 102300;
  variable data4:integer range 0 to 1023;
  variable data2:std_logic_vector(15 downto 0);
   begin
data1:="0000000000000000";
data2:="0000000000000000";
if (kongzhi='1') then
   for n in 6 downto 0 loop
  if (fd(n)='1') then
   data1(9 downto 0):=srdata;
   data1:=data1 sll 1;
   data2:=data2+data1;
  end if;
    end loop;
    fddata<=data2(15 downto 6);
end if;
   end process;
end;
本程序为实现输入数据移位后相加送到输出端,在QUARTUS中编译
程序运行后老是出现:can't determine definition of opertor "sll"--found 0 possible definitions
请问哪位大侠知道SLL的用法?
我也来说两句 查看全部回复

最新回复

  • best5811 (2008-12-09 16:25:24)

    路过,******      
  • paopaobaobao (2008-12-09 18:41:26)

    sll只能对BIT_VECTOR 类型使用,不能对STD_LOGIC_VECTOR使用
  • g19860529 (2008-12-09 22:55:59)

    楼上或许就是正解了。另外sll是vhdl93的标准,87的可能不支持。是不是在quartus里要设置一下的