2

您好,我想知道信号声明如何在 VHDL 中真正起作用。它是否意味着延迟,因为它是一个内部信号?信号有内部存储器吗?例子:

Architecture SD_BEH of SD is
signal C: std_logic;
begin
 process (A)
  begin 
   C<=A;
   if (C='1') then B<=A;
   else B<= '0';
   end if;
  end process;
end SD_BEH;

C 的这个声明是否引入了 δ 延迟?如果是,为什么?它是VHDL的标准吗?谢谢。

4

1 回答 1

3

信号仅在增量周期结束时传播,因此您可以以某种方式将其称为“内存”。将 VHDL 视为对真实硬件的描述,信号没有任何内存,除非它们被如此建模,例如通过使用时钟处理来描述寄存器。

假设您上面的内容是尝试对组合逻辑进行建模,它不会正确模拟,因为敏感度列表不完整。需要明确的是,它将根据 VHDL 语言规则编写“正确”模拟,但它不会描述任何类型的普通真实硬件。为了使其匹配,请考虑以下细微更改:

Architecture SD_BEH of SD is
signal C: std_logic;
begin
 process (A, C) -- add C to the sensitivity list
  begin 
   C<=A;
   if (C='1') then B<=A;
   else B<= '0';
   end if;
  end process;
end SD_BEH;
于 2012-02-20T01:25:15.413 回答