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

 
 
 
Reply to this topicStart new topic
> Сквозное прохождение сигнала через два триггера, возможно ли такая ситуация после синтеза и разводки?
pav2051
сообщение Apr 7 2015, 05:01
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 18
Регистрация: 6-04-15
Из: г. Новосибирск
Пользователь №: 86 081



Доброго времени суток.
Цифровой схемотехникой и темой ПЛИС занимаюсь не так давно, поэтому прошу знающих людей пояснить следующую ситуацию.
Имеем код, синтезируемый в два последовательно соединенных триггера:
Код
always @(posedge clk) begin
    z <= y;
    y <= x;end

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

Аналогичный вопрос для другого примера:
CODE
always @(posedge clk)
case (state)
...
1: begin
z <= in1 + in2;
state <= 2;
end

2: begin
z <= in1 - in2;
state <= 3;
end
...
endcase

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


Сообщение отредактировал des00 - Apr 7 2015, 05:05
Go to the top of the page
 
+Quote Post
Alex_AZ
сообщение Apr 7 2015, 05:18
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 56
Регистрация: 26-07-07
Из: Челябинск
Пользователь №: 29 374



Трассировщик будет стараться сделать так, чтобы данные на выходе второго триггера появились по второму фронту тактового сигнала. От Вас требуется правильно задать временные ограничения (Timing Constraints). Стоит заметить, что если входной сигнал схемы тактируется не от clk и находится в другом частотном домене, то первый триггер может захватить не те данные, которые ожидаете Вы.
Go to the top of the page
 
+Quote Post
pav2051
сообщение Apr 8 2015, 04:39
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 18
Регистрация: 6-04-15
Из: г. Новосибирск
Пользователь №: 86 081



Правильно ли я понимаю, если оба триггера тактируются от одного источника, достаточно будет задать только период для клока (create_clock -period 20.0 [get_ports clk])? Входной порт данных пока в расчет не беру, полагаем, что на первый триггер данные приходят во время.
Go to the top of the page
 
+Quote Post
Maverick
сообщение Apr 8 2015, 05:16
Сообщение #4


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(pav2051 @ Apr 8 2015, 07:39) *
Правильно ли я понимаю, если оба триггера тактируются от одного источника, достаточно будет задать только период для клока (create_clock -period 20.0 [get_ports clk])? Входной порт данных пока в расчет не беру, полагаем, что на первый триггер данные приходят во время.

в принципе, да


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
pav2051
сообщение Apr 8 2015, 06:41
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 18
Регистрация: 6-04-15
Из: г. Новосибирск
Пользователь №: 86 081



Ясно, всем спасибо за ответы.
Go to the top of the page
 
+Quote Post
Alex_vod
сообщение Apr 8 2015, 06:52
Сообщение #6


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

Группа: Свой
Сообщений: 123
Регистрация: 20-11-05
Пользователь №: 11 121



Если входные сигналы принадлежат другому клоку , может возникнуть метастабильность, поэтому
лучше удалить логику между 1 и 2 триггером
Прикрепленное изображение

quartusii_handbook 14.1 стр 810
А еще лучше "привести" сигналы к единой тактовой , и только затем добавлять логику
Если входные сигналы уже были "регистрированы" вашей clk и схема работает на clk , тогда всё должно быть нормально (конечно если тайминг анализ не ругается)
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 20th June 2025 - 00:38
Рейтинг@Mail.ru


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