|
Ошибки при работе схемы на ПЛИС, Прошу помощи. Временный задержки |
|
|
|
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 22 2014, 12:40
|
Профессионал
    
Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082

|
Я давно в ISE не работал, но все равно тут можно сказать, что частоты у Вас высокие и разводится все с временными ошибками. Причем ошибки есть и по сетапам и по холдам и в разных клоковых доменах. Причем ошибки, скажем, по сетапу для clk_adc вообще заоблачные - более 3 периодов. Могу только посоветовать разбираться последовательно с каждым клоком и смотреть на суммарные задержки и, скорее всего, менять алгоритм - в ином случае это работать не будет, тут даже чипскопом смотреть не нужно. Т.е. по сути получается что у Вас часть логики реально не синхронна ибо в некоторых путях суммарная задержка от выхода триггера до входа следующего триггера больше такта рабочей частоты.
Посмотрите для начала максимальный путь сигнала для частоты clk_adc, сколько логических уровней и порядок задержек на каждом уровне, может там что-нибудь и попроще будет - напрмер используется синхронный сброс и для него можно пересинхронизацию сделать.
|
|
|
|
|
Jan 23 2014, 06:53
|
Участник

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

|
Цитата(bogaev_roman @ Jan 22 2014, 16:40)  Посмотрите для начала максимальный путь сигнала для частоты clk_adc, сколько логических уровней и порядок задержек на каждом уровне, может там что-нибудь и попроще будет - напрмер используется синхронный сброс и для него можно пересинхронизацию сделать. Если я правильно вас понял, то CODE Timing constraint: NET "clk_adc" PERIOD = 2.7027027 ns HIGH 50%; For more information, see Period Analysis in the Timing Closure User Guide (UG612). 48009355 paths analyzed, 160420 endpoints analyzed, 32116 failing endpoints 32116 timing errors detected. (32028 setup errors, 88 hold errors, 0 component switching limit errors) Minimum period is 12.125ns. -------------------------------------------------------------------------------- Paths for end point ddc/ddc/x_gen_mult_s4[0].x_mult_q/U2/outp_30 (SLICE_X57Y28.CIN), 167868 paths -------------------------------------------------------------------------------- Slack (setup path): -9.423ns (requirement - (data path - clock path skew + uncertainty)) Source: ddc/ddc/x_gen_mult_s4[0].x_mult_q/U1/blk000000b0 (FF) Destination: ddc/ddc/x_gen_mult_s4[0].x_mult_q/U2/outp_30 (FF) Requirement: 2.702ns Data Path Delay: 12.249ns (Levels of Logic = 10)(Component delays alone exceeds constraint) Clock Path Skew: 0.159ns (1.635 - 1.476) Source Clock: clk_adc rising at 0.000ns Destination Clock: clk_adc rising at 2.702ns Clock Uncertainty: 0.035ns Clock Uncertainty: 0.035ns ((TSJ^2 + TIJ^2)^1/2 + DJ) / 2 + PE Total System Jitter (TSJ): 0.070ns Total Input Jitter (TIJ): 0.000ns Discrete Jitter (DJ): 0.000ns Phase Error (PE): 0.000ns Maximum Data Path at Slow Process Corner: ddc/ddc/x_gen_mult_s4[0].x_mult_q/U1/blk000000b0 to ddc/ddc/x_gen_mult_s4[0].x_mult_q/U2/outp_30 Location Delay type Delay(ns) Physical Resource Logical Resource(s) ------------------------------------------------- ------------------- SLICE_X75Y110.BQ Tcko 0.337 ddc/adc1_x<9>_REPLICA_1417 ddc/ddc/x_gen_mult_s4[0].x_mult_q/U1/blk000000b0 SLICE_X57Y35.C1 net (fanout=1) 5.320 ddc/ddc/x_gen_mult_s4[0].x_mult_q/U1/sig00000153 SLICE_X57Y35.CMUX Tilo 0.191 ddc/ddc/x_gen_mult_s4[0].x_mult_q/U1/sig00000234 ddc/ddc/x_gen_mult_s4[0].x_mult_q/U1/blk000002f9/LUT5 SLICE_X57Y35.D3 net (fanout=2) 0.451 ddc/ddc/x_gen_mult_s4[0].x_mult_q/U1/sig00000463 SLICE_X57Y35.COUT Topcyd 0.319 ddc/ddc/x_gen_mult_s4[0].x_mult_q/U1/sig00000234 ddc/ddc/x_gen_mult_s4[0].x_mult_q/U1/blk000002f8/LUT6 ddc/ddc/x_gen_mult_s4[0].x_mult_q/U1/blk000002cd SLICE_X57Y36.CIN net (fanout=1) 0.000 ddc/ddc/x_gen_mult_s4[0].x_mult_q/U1/sig0000042a SLICE_X57Y36.DQ Tito_logic 0.537 ddc/ddc/x_gen_mult_s4[0].x_mult_q/U1/sig00000238 ddc/ddc/x_gen_mult_s4[0].x_mult_q/U1/blk000002c5 ddc/ddc/x_gen_mult_s4[0].x_mult_q/U1/sig00000238_rt SLICE_X60Y33.D2 net (fanout=1) 0.863 ddc/ddc/x_gen_mult_s4[0].x_mult_q/U1/sig00000238 SLICE_X60Y33.DMUX Tilo 0.196 ddc/ddc/x_gen_mult_s4[0].x_mult_q/U1/sig000001f8 ddc/ddc/x_gen_mult_s4[0].x_mult_q/U1/blk0000022a/LUT5 SLICE_X60Y34.A2 net (fanout=2) 0.599 ddc/ddc/x_gen_mult_s4[0].x_mult_q/U1/sig00000393 SLICE_X60Y34.COUT Topcya 0.410 ddc/ddc/x_gen_mult_s4[0].x_mult_q/U1/sig000001fc ddc/ddc/x_gen_mult_s4[0].x_mult_q/U1/blk00000229/LUT6 ddc/ddc/x_gen_mult_s4[0].x_mult_q/U1/blk000001f3 SLICE_X60Y35.CIN net (fanout=1) 0.000 ddc/ddc/x_gen_mult_s4[0].x_mult_q/U1/sig0000035c SLICE_X60Y35.COUT Tbyp 0.078 ddc/ddc/x_gen_mult_s4[0].x_mult_q/U1/sig00000200 ddc/ddc/x_gen_mult_s4[0].x_mult_q/U1/blk000001eb SLICE_X60Y36.CIN net (fanout=1) 0.000 ddc/ddc/x_gen_mult_s4[0].x_mult_q/U1/sig00000358 SLICE_X60Y36.AQ Tito_logic 0.438 ddc/ddc/x_gen_mult_s4[0].x_mult_q/U1/sig00000204 ddc/ddc/x_gen_mult_s4[0].x_mult_q/U1/blk000001e3 ddc/ddc/x_gen_mult_s4[0].x_mult_q/U1/sig00000201_rt SLICE_X57Y27.A2 net (fanout=1) 1.115 ddc/ddc/x_gen_mult_s4[0].x_mult_q/U1/sig00000201 SLICE_X57Y27.AMUX Tilo 0.194 ddc/ddc/x_gen_mult_s4[0].x_mult_q/U2/outp<28> ddc/ddc/x_gen_mult_s4[0].x_mult_q/U1/blk000001bc/LUT5 SLICE_X57Y27.B4 net (fanout=2) 0.644 ddc/ddc/x_gen_mult_s4[0].x_mult_q/U1/sig0000031e SLICE_X57Y27.COUT Topcyb 0.404 ddc/ddc/x_gen_mult_s4[0].x_mult_q/U2/outp<28> ddc/ddc/x_gen_mult_s4[0].x_mult_q/U1/blk000001bb/LUT6 ddc/ddc/x_gen_mult_s4[0].x_mult_q/U1/blk0000017e SLICE_X57Y28.CIN net (fanout=1) 0.000 ddc/ddc/x_gen_mult_s4[0].x_mult_q/U1/sig000002f1 SLICE_X57Y28.CLK Tcinck 0.153 ddc/ddc/x_gen_mult_s4[0].x_mult_q/U2/outp<31> ddc/ddc/x_gen_mult_s4[0].x_mult_q/U1/blk00000175 ddc/ddc/x_gen_mult_s4[0].x_mult_q/U2/outp_30 ------------------------------------------------- --------------------------- Total 12.249ns (3.257ns logic, 8.992ns route) (26.6% logic, 73.4% route)
|
|
|
|
Сообщений в этой теме
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 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 iosifk Цитата(bognev @ Jan 22 2014, 14:36) . Реш... Jan 23 2014, 08:41 bognev Цитата(iosifk @ Jan 23 2014, 12:41) На са... Jan 23 2014, 09:10 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
|
|
|