реклама на сайте
подробности

 
 
> Глупый вопрос про Setup and Hold
STAR_IK
сообщение May 16 2018, 10:19
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 136
Регистрация: 10-04-09
Из: Омск
Пользователь №: 47 461



Запутался в основах. Разбираюсь с setup and hold. Очевидно, что защелкивание данных по клоку должно производиться в момент времени, когда данные уже установились.
В этом примитивном примере входные данные устанавливаются по фронту, а защелкиваются и обрабатываются по спаду. Проблем никаких нет.
Код
always @ (posedge clk)
  begin
    in <= in + 8'd1;
  end

always @ (negedge clk)
  begin
    out <= in « 3;
  end

Но внезапно стало непонятно, а почему не возникает проблем с setup and hold в конструкции ниже? Здесь все выполняется по фронту. В один момент времени в регистр in записываются данные, и считываются из него
Код
always @ (posedge clk)
  begin
    in <= in + 8'd1;
    out <= in « 3;
  end

Прошу люто тапками не кидаться.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
STAR_IK
сообщение May 17 2018, 07:58
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 136
Регистрация: 10-04-09
Из: Омск
Пользователь №: 47 461



Цитата(one_eight_seven @ May 17 2018, 13:02) *
То, что вы описали и то, что нарисовали - это разные вещи.

Действительно, не то нарисовал.

Цитата(one_eight_seven @ May 17 2018, 13:02) *
В каком смысле "не работает"?

При временном моделировании после синтеза возникают неопределенные состояния, которые не устраняются даже понижением тактовой частоты.

Я вроде начал понимать. Поправьте если не так. В первом посте я немного слукавил (сам того не осознавая). В нашем примитивном эксперименте часть кода располагалась в testbecnh:
Код
always
  #3333 clk=!clk;
begin
always @ (posedge clk)
  begin
    in <= in + 8'd1;
  end

А другая часть в синтезируемом модуле:
Код
always @ (posedge clk)
  begin
    out <= in « 3;
  end

И получается, что в testbecnh сигнал in выставлялся мгновенно с клоком, и попадал в интервал Ts - Th, вызывая неопределенное состояние.
Т.е. разбивание одного блока always на несколько в пределах одного синтезируемого модуля не должно приводить к конфликтам Setup and Hold?

Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 03:48
Рейтинг@Mail.ru


Страница сгенерированна за 0.0135 секунд с 7
ELECTRONIX ©2004-2016