Vhdl 错误(10822):无法';t在此时钟边缘上执行分配寄存器

Vhdl 错误(10822):无法';t在此时钟边缘上执行分配寄存器,vhdl,intel-fpga,Vhdl,Intel Fpga,我找不到我做错了什么,如果有人能在这方面帮助我,我会很高兴 entity fsmF is port(S, R : in std_logic; Q : out std_logic); end; architecture FSM_beh of fsmF is begin process(S, R) begin if S = '0' then Q <= '0'; else if (R'event and R = '1'

我找不到我做错了什么,如果有人能在这方面帮助我,我会很高兴

entity fsmF is
  port(S, R : in  std_logic;
       Q    : out std_logic);
end;

architecture FSM_beh of fsmF is
begin
  process(S, R)
  begin
    if S = '0' then
      Q <= '0';
    else
      if (R'event and R = '1' and S = '1') then  -- <= ERROR
        Q <= '0';
      else
        Q <= '1';
      end if;
    end if;
  end process;
end FSM_beh;
实体fsmF是
端口(S,R:std_逻辑中;
Q:输出标准(U逻辑);
结束;
fsmF的架构FSM_beh是
开始
过程(S、R)
开始
如果S='0',则

Qif
部分根据带有
R'事件的上升沿指定分配给
Q
R='1'
上升沿(R)
)和当
S='1'
,这是正常的

问题是,当不存在时,有一个
else
零件分配给
Q
R和S的上升沿为“1”。
else
零件需要一个能够 更新过程灵敏度列表中的信号事件,然后检查 上升沿以外的其他事件,以便在这些位置分配给
Q

因此,将上升沿检测作为单独的条件和其他条件 下面,比如:

if (R'event and R = '1') then  -- <= ERROR
  ...
end if;
if(R'event和R='1')那么--