Jump to content

    
Sign in to follow this  
BSACPLD

Большая задержка от ALTDDIO до логики в Cyclone V

Recommended Posts

25 minutes ago, dvladim said:

А вы хоть смотрели почему не помого?

Вот отчет с ковейером увеличенным в 3 раза.

Ругань на путь от DDIO до триггера.

Хотя теперь там их уже 3 подряд и Quartus если бы мог, сделал ретайминг.

print.pdf

Share this post


Link to post
Share on other sites
В 30.04.2020 в 13:29, BSACPLD сказал:

Quartus если бы мог, сделал ретайминг.

Дело не только в ретайминге. Все это зачастую борьба с тупостью тулов.

Вы видите позиции триггеров? Достаточно очевидно что Qu сам не справляется с их размещением. Я вам предложил руками прописать позиции триггеров конвейера.

Share this post


Link to post
Share on other sites
1 hour ago, dvladim said:

Я вам предложил руками прописать позиции триггеров конвейера.

Через Logic Lock?

Или есть более красивый способ?

Share this post


Link to post
Share on other sites
On 5/1/2020 at 10:31 PM, dvladim said:

set_location_assignment

Разместил вручную прямо рядом с DDIO.

Все равно задержка от DDIO до триггера больше 3 нс.

Снимок экрана от 2020-05-06 21-42-11.png

Снимок экрана от 2020-05-06 21-42-46.png

Share this post


Link to post
Share on other sites
12 минут назад, BSACPLD сказал:

Разместил вручную прямо рядом с DDIO.

Все равно задержка от DDIO до триггера больше 3 нс.

Снимок экрана от 2020-05-06 21-42-11.png

Снимок экрана от 2020-05-06 21-42-46.png

Так не проще ли вручную подобрать правильную фазу на PLL ? Можно и автоматически, я даже выкладывал блок который это умеет: https://electronix.ru/forum/applications/core/interface/file/attachment.php?id=127214

Share this post


Link to post
Share on other sites
52 минуты назад, BSACPLD сказал:

Разместил вручную прямо рядом с DDIO.

Все равно задержка от DDIO до триггера больше 3 нс.

Даа, непонятно за счет чего 3 нс? Многовато это. Но, видимо, лучше не сделать. Дальше только фазами PLL.

Share this post


Link to post
Share on other sites
1 hour ago, Flip-fl0p said:

Можно и автоматически, я даже выкладывал блок который это умеет: https://electronix.ru/forum/applications/core/interface/file/attachment.php?id=127214

Так ведь там PLL для этого отдельный нужен.

У меня 8 каналов.

Нет у меня столько PLL...

1 hour ago, Flip-fl0p said:

Так не проще ли вручную подобрать правильную фазу на PLL ?

Вся загвоздка в том, что нельзя ее подобрать.

У разных типов плат подключаемых к данному коммутатору она будет разной.

А платы нужно иметь возможность подключать в любом порядке.

Share this post


Link to post
Share on other sites
4 минуты назад, BSACPLD сказал:

Так ведь там PLL для этого отдельный нужен

Имелось ввиду пара выходов с PLL с разными фазами.

 

Но вообще у вас непонятные вещи творятся.

Сделал регистр типа: reg [3:0] sh; always @(posedge clk) sh <= {d, sh[3:1]}; где sh[3] в IO элементе.

Ниже пара отчетов STA: без детализации путей и с детализацией. Видно, что от DDIOINCELL_X24_Y0 до FF_X24_Y1 задержка 1.3 нс

 

Screenshot_20200506_231041.png

Screenshot_20200506_231228.png

Share this post


Link to post
Share on other sites

У меня тоже получалось достичь нормальных частот на той же ПЛИС на другом проекте.

Разница только в распиновке и количестве каналов.

UPD.

Да даже на этом проекте.

Один из каналов укладывается во времянки (задержка 1,5 нс), а остальные нет (задержка 3,4 нс).

Share this post


Link to post
Share on other sites

Так может с самим пином что-то не то, например какие-то характеристики кардинально отличаются от других. И ещё есть вопрос в путях. То что нарисовано на схематике хорошо конечно, но настоящий путь может быть с загагулинами. У Xilinx есть возможность посмотреть прямо путь трассировки, может и у Alter'ы что-то подобное есть?

Share this post


Link to post
Share on other sites
9 часов назад, BSACPLD сказал:

Так ведь там PLL для этого отдельный нужен.

У меня 8 каналов.

Нет у меня столько PLL...

Вся загвоздка в том, что нельзя ее подобрать.

У разных типов плат подключаемых к данному коммутатору она будет разной.

А платы нужно иметь возможность подключать в любом порядке.

На одной pll вы может сгенерировать несколько выходов. И каждый выход pll будет подстраиваться под свою линию приёма данных (разумеется при условии если все линии данных имеют общий тактовый генератор). Соответственно для линий которые нормально работают модно использовать один и тот же выход pll. А для каждой из линий где большая задержка можно сгенерировать индивидуальный клок, и продвигать его фазу, чтобы корректно шёл прием. Фазу можно подстраивать в автоматическом режиме, т.е решение будет универсальным и работать на любой плате с любым проводом. Единственное, что нужно - добавить в протокол тестовые слова. Но в кодировке 8b10b они есть. Например тот же к28.3

Share this post


Link to post
Share on other sites
3 hours ago, Nick_K said:

Так может с самим пином что-то не то, например какие-то характеристики кардинально отличаются от других. И ещё есть вопрос в путях. То что нарисовано на схематике хорошо конечно, но настоящий путь может быть с загагулинами. У Xilinx есть возможность посмотреть прямо путь трассировки, может и у Alter'ы что-то подобное есть?

на первой странице же ссылка на тему, не получится с этим пином. При разработке платы, пропущен важный момент в документации. Распиновка не корректная, плату в переразводку. 

On 4/28/2020 at 9:16 PM, andrew_b said:

Возможно, дело в HMCPHY_RE.

Вот же @andrew_b сразу сказал причину 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this