Vhdl block语句中是否不支持受保护的信号?

Vhdl block语句中是否不支持受保护的信号?,vhdl,Vhdl,我在代码行中有4个错误: architecture guard of FlipFlop is begin bb: block(clk='1' and not clk'stable) is -- errorHDLParsers:1074 Guarded signal unsupported in block statement. begin Q <= guarded D after tpl; -- errorHDLParsers:1024 Guar

我在代码行中有4个错误:

architecture guard of FlipFlop is
begin
    bb: block(clk='1' and not clk'stable) is   -- errorHDLParsers:1074 Guarded signal unsupported in block statement.
    begin
        Q <= guarded D after tpl;     -- errorHDLParsers:1024 Guarded unsupported in signal assignment.
        Qb <= guarded not D after tph;  -- errorHDLParsers:1024 Guarded unsupported in signal assignment.
    end block bb;
end guard;

architecture guard2 of FlipFlop is
begin
    bb: block(clk='1' and not clk'stable) is  -- errorHDLParsers:1074 Guarded signal unsupported in block statement.
    begin
        Q <= D after tpl;
        Qb <= not D after tph;
    end block bb;
end guard2;
触发器的架构保护是 开始 bb:block(clk='1'和not clk'stable)是--errorHDLParsers:1074受保护信号,在block语句中不受支持。 开始
似乎您的合成工具不支持此VHDL语句。我已经检查了Quartus II 13.1 Windows Web版集成合成器的第一个架构
guard
,它在这里工作。合成工具只提供VHDL语言的一个子集,这并不少见

我更喜欢使用计时流程:

process(clk)
begin
  if rising_edge(clk) then
    Q <= D;
    Qb <= not D;
  end if;
end process;

我使用xilinx ISE 14.2,合成工具XST。您在quartus中的合成工具名称是什么?因为我使用了quartus 13,但我得到了这个错误:“错误(12061):无法合成当前设计——顶部分区不包含任何逻辑”@Prof.Hell我使用了quartus II 13.1 Windows Web版的集成合成器。您是否在Quartus项目中指定了正确的顶层?此外,您应该将ISE升级到最新版本14.7,因为早期版本(在14系列中)有严重的错误,例如在ISim模拟器中。谢谢,我将在ISE 14.7中进行测试,如果我不能做到这一点,我会回复您,谢谢我尝试了ISE 14.7,但它给了我相同的错误!但是,谢谢。@Prof.Hell-架构保护可能无法合成,因为IEEE Std 1076.6-2004(现已撤销)6.1.3.6使用保护块的边缘敏感存储要求目标信号是类寄存器,并且可以表示为等效过程(如Martin所示)。受保护的接口信号只能是种类总线(IEEE Std 1076-2008,6.5.2接口对象声明)。在这个问题上,似乎有人可能对缺乏声明感到困惑。使用没有种类的信号声明,您的体系结构可以进行分析,但不会进行合成。
Q <= D;      -- after tpl
Qb <= not D; -- after tph