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

 
 
> Новичковое: тайминг
ReedCat
сообщение Jan 29 2008, 14:13
Сообщение #1


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

Группа: Свой
Сообщений: 109
Регистрация: 14-01-08
Из: Москва
Пользователь №: 34 069



Разглядывая различные дизайны встретил вот такого типа конструкцию:

always @(posedge clk) R12 <= L11;
...
...
always @(posedge clk) L11<=R17;

Показалось, что рискованно устанавливать сигнал на фронте и на том же фронте его использовать.
Я прав?

В других же дизайнах аналогичного вида конструкция имела вид:

always @(posedge clk) R12 <= #1 L11;
...
always @(posedge clk) L11 <= #1 R17;

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

Собственно два вопроса:
1. Достаточно ли в таких случаях одной единицы времени и как понять, если недостаточно?
2. Почему не используется (привычное мне smile.gif "разведение" сигналов типа

always @(posedge clk) R12<= L11;
...
always @(negedge clk) L11<=R17;
Есть в этом решении какие-то подводные камни?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
-=Sergei=-
сообщение Jan 29 2008, 14:43
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 339
Регистрация: 26-10-04
Пользователь №: 985



Цитата(ReedCat @ Jan 29 2008, 17:13) *
Разглядывая различные дизайны встретил вот такого типа конструкцию:

always @(posedge clk) R12 <= L11;
...
...
always @(posedge clk) L11<=R17;

Показалось, что рискованно устанавливать сигнал на фронте и на том же фронте его использовать.
Я прав?

В других же дизайнах аналогичного вида конструкция имела вид:

always @(posedge clk) R12 <= #1 L11;
...
always @(posedge clk) L11 <= #1 R17;

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

Собственно два вопроса:
1. Достаточно ли в таких случаях одной единицы времени и как понять, если недостаточно?
2. Почему не используется (привычное мне smile.gif "разведение" сигналов типа

always @(posedge clk) R12<= L11;
...
always @(negedge clk) L11<=R17;
Есть в этом решении какие-то подводные камни?



Используя posedge вы выбираете триггеры типа Flip-flop. Их отличительная черта, это отсутствие времени удержания входного сигнала после фронта, т.е. сразу за фронтом сигнал может изменится, но это уже не будет иметь значение.

При RTL моделировании изменение происходить сразу за фронтом на +1 цикл поделирования, а у всех триггеров фронты одновременно +0 цикл. поэтому в триггере фиксируется старое значение. Иногда добавляют #1 но это только для наглядности, с такими вещами лучше оценивать зависимости в комбинаторике.

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

Вообщем, в ПЛИС синтезатор за вас решит эту задачу так что если комбинаторика успевает то схема будет в ПЛИС работать так же как и в RTL модели. В заказных схемах немного посложней. Но тоже большую часть на себя берет САПР.

Делая ступень триггеров по фронту, другую ступень по срезу - вы на самом деле сокращаете в два раза время для срабатывания комбинаторики, т.е. да, схема фактически будет надежней, но медленей.
Go to the top of the page
 
+Quote Post
Kopart
сообщение Jan 29 2008, 14:58
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 1-03-05
Из: Spb
Пользователь №: 2 972



Цитата(-=Sergei=- @ Jan 29 2008, 17:43) *
Иногда добавляют #1 но это только для наглядности, с такими вещами лучше оценивать зависимости в комбинаторике.

Еще лично встречал разное поведение двух фирменных симуляторов в порядке обработки присвоений в одном дельта цикле. Так что можно сказать и наглядность для Программы biggrin.gif


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

Противоречите "сокращаете в два раза время для срабатывания" и "медленей".
Вопрос был про последовательные присвоения - по сути конвейер.
По факту будет, что логика должна успеть сработать в полпериода (спад - это обычно 50% периода), а не через период.


--------------------
Насколько проще была бы жизнь, если бы она была в исходниках
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 23:49
Рейтинг@Mail.ru


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