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')那么--