Цитата(bve @ Sep 29 2005, 16:58)
А причем здесь все единицы? Ведь именно когда их большой поток ( т.е. нибблы ( это четыре разряда данных ) идут в виде F с прослойками 1 нолика в одном из разрядов ) и возникает эффект дублирования именно ниббла с ноликом вместо ниббла F ). При этом количество принятых нибблов - правильное.
В поставленном вопросе обратный эффект не наблюдается, т.е. когда большой поток нулей и есть прослойка 1 единицы, то она не дублируется.( этот случай не упомянут). Значит в системе имеет место некая несимметричность на шине данных, т.е. время перехода 1->0 не равно времени перехода 0->1. Фронт (или срез) clk ( по которому происходит защелкивание инфы) получается то раньше то позже смены состояния шины данных (а это и есть несинхронность ), в результате чего и появляется ошибка. Поэтому:
1. Подзадержать clk до относительно данных ( на несколько наносекунд).
2. сделать дополнительное защелкивание данных во входных буферах ( IOB)
3. Проинвертировать clk.