|
Ошибки при работе схемы на ПЛИС, Прошу помощи. Временный задержки |
|
|
|
Jan 22 2014, 10:36
|
Участник

Группа: Участник
Сообщений: 58
Регистрация: 4-06-11
Пользователь №: 65 475

|
Приветсвую всех!
Возникла такая проблема и требуется помощь в ее решении. Пишу проект на virtex 6. В проекте реализован 16 канальный DDC. Работоспособность проверена на железке. Мне необходимо разместить на каждом канале алгоритм подавления несинхронной помехи. Сам алгоритм подавления я написал и проверил также его работоспособность. Но при размещении 16 подавителей, по 1 на каждый канал столкнулся с проблемой нехватки ресурсов slice. Решение проблемы нашел в последовательной обработке на более высокой частоте. Но при этом столнулся с другой проблемой. При отладке в ChipScope видно, что схема ведет себя не корректно. Например, счетчик считает 1 2 3 !2! 4 5 6. Возникают значения, которых не должно быть. Если в ChipScope раскрыть шину, то видно что некоторые сигналы в шине задерживаются на один такт и это приводит к ошибке. Собственно, это мой первый проект и раньше с временными задержками в схеме не сталкивался. Алгоритм синхронный и почему возникают такие задержки мне не понятно. Вопрос в том, в какую сторону копать в чем проблема и как бороться с временными задержками в ПЛИС? Так как вопрос достаточно общий, не знаю, какую информацию еще надо предоставить и в процессе обсуждения выложу ее.
Заранее благодарю за помощь.
Сообщение отредактировал bognev - Jan 22 2014, 10:40
|
|
|
|
|
 |
Ответов
|
Jan 23 2014, 08:41
|
Гуру
     
Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369

|
Цитата(bognev @ Jan 22 2014, 14:36)  . Решение проблемы нашел в последовательной обработке на более высокой частоте. На самом деле, есть еще один вариант. Не последовательно на более высокой частоте, а многопоточно, но тоже на более высокой частоте... Т.е. есть вычислитель и есть память. Из памяти извлекаются данные для N-го потока, выполняется операция и данные опять отправляются в память... При этом конвейером извлекаются данные для другого потока... Для Ваших 16-ти потоков потребуется память шириной "сколько надо" х 16... Под шириной я понимаю все или часть битов, которые извлекаются для обработки...
--------------------
www.iosifk.narod.ru
|
|
|
|
|
Jan 23 2014, 09:10
|
Участник

Группа: Участник
Сообщений: 58
Регистрация: 4-06-11
Пользователь №: 65 475

|
Цитата(iosifk @ Jan 23 2014, 12:41)  На самом деле, есть еще один вариант. Не последовательно на более высокой частоте, а многопоточно, но тоже на более высокой частоте... Т.е. есть вычислитель и есть память. Из памяти извлекаются данные для N-го потока, выполняется операция и данные опять отправляются в память... При этом конвейером извлекаются данные для другого потока... Для Ваших 16-ти потоков потребуется память шириной "сколько надо" х 16... Под шириной я понимаю все или часть битов, которые извлекаются для обработки... Вариант понятен, но скажем если без алгоритма в чипскопе я наблюдаю такую картинку:
TRIG1, TRIG3, TRIG3, TRIG4 - это отсчеты 16и каналов последовательно передаются на вход алгоритма, а в TRIG5 счетчик, который синхронно с отсчетом в одно время должен менять свое значение, но если посмотреть на шину, то видно, что есть задержка. При этом алгоритм подавления сейчас в схеме закомментирован. Если сейчас так схема работает, то более высокая частота или конвейер вряд ли спасут. Вот вопрос такой CODE Timing constraint: NET "clk100" PERIOD = 10 ns HIGH 50%; For more information, see Period Analysis in the Timing Closure User Guide (UG612). 22078 paths analyzed, 14128 endpoints analyzed, 2971 failing endpoints 2971 timing errors detected. (2971 setup errors, 0 hold errors, 0 component switching limit errors) Minimum period is 11.898ns. -------------------------------------------------------------------------------- Paths for end point ddc/ddc/SW_IN_I/user_rd_data_10_3_ii_14 (SLICE_X21Y127.CX), 1 path -------------------------------------------------------------------------------- Slack (setup path): -0.949ns (requirement - (data path - clock path skew + uncertainty)) Source: ddc/ddc/u_ddrii_tb_top_0/Label1/user_rd_data_10_3_14 (FF) Destination: ddc/ddc/SW_IN_I/user_rd_data_10_3_ii_14 (FF) Requirement: 5.000ns Data Path Delay: 1.592ns (Levels of Logic = 0) Clock Path Skew: -3.864ns (1.420 - 5.284) Source Clock: ddc/ddc/i_clk_0_tb rising at 5.000ns Destination Clock: clk100 rising at 10.000ns Clock Uncertainty: 0.493ns Clock Uncertainty: 0.493ns ((TSJ^2 + DJ^2)^1/2) / 2 + PE Total System Jitter (TSJ): 0.070ns Discrete Jitter (DJ): 0.220ns Phase Error (PE): 0.377ns Maximum Data Path at Slow Process Corner: ddc/ddc/u_ddrii_tb_top_0/Label1/user_rd_data_10_3_14 to ddc/ddc/SW_IN_I/user_rd_data_10_3_ii_14 Location Delay type Delay(ns) Physical Resource Logical Resource(s) ------------------------------------------------- ------------------- SLICE_X29Y143.CQ Tcko 0.337 ddc/ddc/u_ddrii_tb_top_0/Label1/user_rd_data_10_3<15> ddc/ddc/u_ddrii_tb_top_0/Label1/user_rd_data_10_3_14 SLICE_X21Y127.CX net (fanout=1) 1.221 ddc/ddc/u_ddrii_tb_top_0/Label1/user_rd_data_10_3<14> SLICE_X21Y127.CLK Tdick 0.034 ddc/ddc/SW_IN_I/user_rd_data_10_3_ii<15> ddc/ddc/SW_IN_I/user_rd_data_10_3_ii_14 ------------------------------------------------- --------------------------- Total 1.592ns (0.371ns logic, 1.221ns route) (23.3% logic, 76.7% route) -------------------------------------------------------------------------------- В Timing Report я вижу максимальный путь между двумя FF на выходе блока u_ddrii_tb_top_0 и на входе другого блока SW_IN_I, каким образом уменьшить эту задержку?
|
|
|
|
Сообщений в этой теме
bognev Ошибки при работе схемы на ПЛИС Jan 22 2014, 10:36 bogaev_roman Цитата(bognev @ Jan 22 2014, 14:36) Приве... Jan 22 2014, 10:57 bognev Цитата(bogaev_roman @ Jan 22 2014, 14:57)... Jan 22 2014, 12:05 bogaev_roman Я давно в ISE не работал, но все равно тут можно с... Jan 22 2014, 12:40 bognev RE: Ошибки при работе схемы на ПЛИС Jan 23 2014, 06:53 bognev А каким способом можно уменьшить эти нарушения? Ка... Jan 22 2014, 14:52 bogaev_roman Цитата(bognev @ Jan 22 2014, 18:52) А как... Jan 22 2014, 15:30  bognev Цитата(bogaev_roman @ Jan 22 2014, 19:30)... Jan 22 2014, 18:54   gibson1980 ЦитатаРешение проблемы нашел в последовательной об... Jan 23 2014, 07:40    bognev Цитата(gibson1980 @ Jan 23 2014, 11:40) М... Jan 23 2014, 07:49     gibson1980 Цитата(bognev)Можно по подробнее? Коре элементы ес... Jan 23 2014, 07:56      bognev Цитата(gibson1980 @ Jan 23 2014, 11:56) М... Jan 23 2014, 08:02       gibson1980 Наоборот поставить. Я так понимаю что должно умень... Jan 23 2014, 08:13        bognev Цитата(gibson1980 @ Jan 23 2014, 12:13) Н... Jan 23 2014, 08:24         gibson1980 В корках умножителей речь идет вроде о LUTах, посм... Jan 23 2014, 08:30          bognev Цитата(gibson1980 @ Jan 23 2014, 12:30) В... Jan 23 2014, 08:38 iosifk Цитата(bognev @ Jan 22 2014, 14:36) Возни... Jan 22 2014, 18:25 bogaev_roman По поводу поста 9 - большое кол-во логических уров... Jan 23 2014, 09:54 bognev Цитата(bogaev_roman @ Jan 23 2014, 13:54)... Jan 23 2014, 10:14  bogaev_roman Цитата(bognev @ Jan 23 2014, 14:14) В 9 п... Jan 23 2014, 10:50   bognev Цитата(bogaev_roman @ Jan 23 2014, 14:50)... Jan 23 2014, 11:16    Maverick проект синхронный? асинхронщины нет?
переходы из р... Jan 23 2014, 20:15     bognev Цитата(Maverick @ Jan 24 2014, 00:15) про... Jan 24 2014, 06:34      Maverick Цитата(bognev @ Jan 24 2014, 08:34) перех... Jan 24 2014, 07:08       bognev Цитата(Maverick @ Jan 24 2014, 11:08) рек... Jan 24 2014, 20:18        Bad0512 Цитата(bognev @ Jan 25 2014, 03:18) Спаси... Jan 25 2014, 06:45         bognev Цитата(Bad0512 @ Jan 25 2014, 10:45) Пров... Jan 25 2014, 07:22          Bad0512 Цитата(bognev @ Jan 25 2014, 14:22) RКаки... Jan 25 2014, 08:34           bognev Временные ошибки в памяти свелись к сигналу сброса... Jan 27 2014, 08:22    o_khavin Цитата(bognev @ Jan 23 2014, 15:16) 16 би... Jan 23 2014, 22:26 bognev Стал дальше реализовывать проект и столкнулся с но... Jan 31 2014, 04:50 Джеймс Цитата(bognev @ Jan 31 2014, 07:50) Стал ... Jan 31 2014, 06:47  bognev Цитата(Джеймс @ Jan 31 2014, 10:47) Замен... Feb 2 2014, 15:15 Timmy Я бы посоветовал для начала разместить user_rd_dat... Jan 31 2014, 05:54
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|