Перейти к содержанию
    

Задержки в RTL для чего?

Решил посмотреть примеры QuestaSim и столкнулся с таким кодом (выдержка):
 

entity xorg is
    generic (tpd_hl : time := 1 ns;
	     tpd_lh : time := 1 ns);
    port (in1, in2 : std_logic;
	  out1 : out std_logic);
end xorg;
architecture only of xorg is
begin
    p1: process(in1, in2)
        variable val : std_logic;
    begin
	val := in1 xor in2;
	case val is 
	    when '0' =>
		out1 <= '0' after tpd_hl;
	    when '1' =>
		out1 <= '1' after tpd_lh;
	    when others =>
		out1 <= val;
	end case;
    end process;
end only;

Вот эти 1 ns - они для чего? Они, ведь, несинтезируемые, но, тогда, для чего? Просьба просветить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Например, для наглядности. Я так же порой делаю, чтобы удобней было визуально разглядывать диаграммы в симуляторе. Эдакий костыль для имитации времени clock-to-output триггера.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

... а в дальнейшем они будут прсутствовать в моделях ваших проектах для симуляции пост синтез, пост пост мап, мост рут. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И еще в некоторых случаях чтобы избежать неоднозначности положения фронтов комбинационных сигналов, которые могу влиять в итоге на симуляцию идельной модели.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 8/4/2022 at 12:33 AM, Zversky said:

Решил посмотреть примеры QuestaSim и столкнулся с таким кодом (выдержка):
 

Вот эти 1 ns - они для чего? Они, ведь, несинтезируемые, но, тогда, для чего? Просьба просветить.

бывает еще, чтобы гонки с клоком избежать. такое в квесте редко видел, а вот в ncsim-e бывает. но это нужно какие-то дерайвед клоки, здоровый дизайн и т.п. - вот так специально поймать непросто

в верилоге достаточно #0 поставить...

незря же в SV они добавили кучу дополнительных состояний в дельтацикл, и клок рекомендуется через initial forever делать...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 8/4/2022 at 1:05 AM, sorok-odin said:

Я так же порой делаю, чтобы удобней было визуально разглядывать диаграммы в симуляторе

У кого то наоборот, когда я вижу расползание такое, то начинается паника - одинаков ли клок, в чем причина. Привычка уже видеть что вроде меняется мгновенно, но на деле всё не так. Ведь всю схему так задержками не натыкать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 8/3/2022 at 10:33 PM, Zversky said:

Вот эти 1 ns - они для чего? Они, ведь, несинтезируемые, но, тогда, для чего? Просьба просветить

В данном примере  эти задержки симулируют время распространения сигнала в логике. Причем это разные задержки для переходов 0->1 и  1->0.  
Эти задержки не имеют отношения к задержками которые раньше добавляли в синхронную логику для устранения глюков старых симов. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...