“信号”是否意味着VHDL中的δ延迟?

时间:2012-02-20 01:12:16

标签: signals vhdl hdl

你好我想知道信号声明在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的标准吗?感谢。

1 个答案:

答案 0 :(得分: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;