Означает ли «сигнал» задержку δ в VHDL? - PullRequest
2 голосов
/ 20 февраля 2012

Здравствуйте, мне было интересно, как в действительности работает объявление сигналов в 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 Ответ

3 голосов
/ 20 февраля 2012

Сигналы распространяются только в конце дельта-цикла, так что вы можете назвать это «памятью» как-нибудь. Просматривая 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;
...