Цитата(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. Почему не используется (привычное мне

"разведение" сигналов типа
always @(posedge clk) R12<= L11;
...
always @(negedge clk) L11<=R17;
Есть в этом решении какие-то подводные камни?
Используя posedge вы выбираете триггеры типа Flip-flop. Их отличительная черта, это отсутствие времени удержания входного сигнала после фронта, т.е. сразу за фронтом сигнал может изменится, но это уже не будет иметь значение.
При RTL моделировании изменение происходить сразу за фронтом на +1 цикл поделирования, а у всех триггеров фронты одновременно +0 цикл. поэтому в триггере фиксируется старое значение. Иногда добавляют #1 но это только для наглядности, с такими вещами лучше оценивать зависимости в комбинаторике.
В реальной жизни обеспечить приход фронтов на все триггера невозможно, но с помощью деревьев клока, или спец трассировочных ресурсов разбежку клоковых фронтов делают не более времени распространения выходных сигналов. Т.е. после фронта сигнав в реальной схеме на выходе триггера переключится не мгновенно, а через известный параметр D, так вот разбежку фронтов клока делают такой что бы она была меньше D.
Вообщем, в ПЛИС синтезатор за вас решит эту задачу так что если комбинаторика успевает то схема будет в ПЛИС работать так же как и в RTL модели. В заказных схемах немного посложней. Но тоже большую часть на себя берет САПР.
Делая ступень триггеров по фронту, другую ступень по срезу - вы на самом деле сокращаете в два раза время для срабатывания комбинаторики, т.е. да, схема фактически будет надежней, но медленей.