У меня FPGA вся из себя синхронная 200 МГц внутри. И есть некий внешний сигнал у которого есть строб и данные. Строб не чаще 50 МГц. По стробу надо читать данные. Видимо задача расространенная.
Я вижу 2 способа:
1. Стандартно ловися фронт строба и по внутреннему такту защелкиваем данные.
2. Внешний строб защелкивает данные во входной регистр, а когда обнаруживаем фронт строба, по внутреннему такту переписываем в другой регистр.
Оба способа работают и в симуляторе и в чипе, но вопрос к гуру: как правильнее? На вскидку способ 2 точнее в том смысле что hold time менее критичен. При первом способе можем защелкивать через 5 нс после внешнего строба, что не есть хорошо.
Мнения?
|