|
Quartus на хочет размещать гигабитные трансиверы |
|
|
|
Mar 3 2017, 07:17
|
Частый гость
 
Группа: Свой
Сообщений: 76
Регистрация: 8-04-11
Из: Ростов-на-Дону
Пользователь №: 64 227

|
Добрый день! Прошу помочь с сабжем. Есть проект под ArriaV-SX в котором должно размещаться 8 одноканальных (1 link) SerialLite-2 корок. В 5-м семействе из slite2 управление трансиверов вынесено в отдельную корку custom_phy (пробовал использовать 2 варианта подключения: по одной 1-канальной custom_phy на каждую кору slite2, и одна 8-канальная custom_phy на все slite2). Собственно, сама проблема - Quartus (16.1) не хочет размещать все это добро на кристалле с определенной распиновкой. В этом камне 3 гигабитных банка [2:0]. На плате эти 8 каналов разведены по всем 3-м банкам, с такой конфигурацией Quartus неминуемо фейлится с сообщением: Код Error (14566): The Fitter cannot place 8 periphery component(s) due to conflicts with existing constraints (8 Clock Divider(s)). Error (175001): The Fitter cannot place 1 Clock Divider, which is within Custom PHY custom_phy_sl2. Info (14596): Information about the failing component(s): Info (175028): The Clock Divider name(s): slite2_wrp:array_of_slite2[4]....|tx_pma_ch.master_cgb_inst[0].tx_cgb_master Error (16234): No legal location could be found out of 22 considered location(s). Error (178004): Could not find location for destination Clock Divider that enable routing of bonding clock lines Info (175027): Destination: Clock Divider slite2_wrp:array_of_slite2[4]:...|tx_pma_ch.tx_cgb ... Error (11238): The following 8 Clock Divider locations are already occupied, and the Fitter cannot merge the previously placed nodes with these instances. The nodes may have incompatible inputs or parameters. Error (11239): Location HSSIPMATXCGB_X0_Y11_N33 is already occupied by slite2_wrp:array_of_slite2[3] Error (11239): Location HSSIPMATXCGB_X0_Y15_N33 is already occupied by slite2_wrp:array_of_slite2[2] .... Как я понимаю он берет какой-то экземпляр корки, например slite[2], пытается разместить "clock devider", для это перебирает все указанные GXB каналы, обнаруживает что все заняты (хотя при этом в сообщении будет указанно что место такое-то для корки slite2[2] уже занято коркой slite2[2]), после чего фэйлится. Если убрать назначения пинов, то он разместит трансиверы в банках 1-2, при этом проект собирается. Пробовал перебирать комбинации банков, количества трансиверов в них, опорных клоков, опций биндинга между каналами. Без биндинга собирается только комбинация с использованием 1-2 банков, с биндингом - любых 2-х. Но вот как заставить его принять размещение в 3-х банках... В userguids на Ariia-V и custom_phy не нашел специфичных условий на размещение сразу в 3-х банках. Плата кастомная, поэтому вполне возможна ошибка с распиновкой GXB (может какие-то хитрые требования к размещению трансиверов о которых мы не знали  ). Может кто-то сталкивался с похожими проблемами? P.S. скриншот пин-планера с распиновкой на которую ругается Quartus
|
|
|
|
|
 |
Ответов
|
Dec 7 2017, 12:10
|
Профессионал
    
Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082

|
Заводил все свои 36 трансиверов на arriaV в следующем режиме - группы по 3/6 в одном логическом канале, native, Bounding mode xN, external pll (number=1, clock network = xN). Частота 1250, все работает как надо. Но два момента: 1. Жрет по мощности это чудо прилично (использовал датчик alt_temp_sense, за пару минут нагревается до 95 градусов, охлаждайзер пришлось ставить). 2. При добавлении других внешних интерфейсов по максимуму (типа DDR3) и логической большой загрузке требует добавление грамотных ограничений (проблемы с клоковыми ресурсами, приходится прибивать гвоздями расположение pll). PS/ Там в документации много неочевидных (с первого взгляда) вещей, например, если использовать два трансивера из одного логического триплета в одном логическом канале, то то оставшийся уже не задействовать ну или один трансивер в некоторых режимах используется под CMU PLL, причем не абы какой, а конкретный - 0 или 4 из банка (вроде), ну это в посте 2 картинка прикреплена.
|
|
|
|
|
Dec 7 2017, 13:43
|
Участник

Группа: Участник
Сообщений: 15
Регистрация: 13-11-09
Пользователь №: 53 611

|
Цитата(bogaev_roman @ Dec 7 2017, 15:10)  Заводил все свои 36 трансиверов на arriaV в следующем режиме - группы по 3/6 в одном логическом канале, native, Bounding mode xN, external pll (number=1, clock network = xN). Частота 1250, все работает как надо. Версия квартуса какая?
Сообщение отредактировал DeadMazay - Dec 7 2017, 13:45
|
|
|
|
|
Dec 10 2017, 10:22
|
Участник

Группа: Участник
Сообщений: 15
Регистрация: 13-11-09
Пользователь №: 53 611

|
Цитата(bogaev_roman @ Dec 7 2017, 17:42)  Вы удивитесь, но 13.1. Сейчас на 17.0 перехожу, но буду ли переводить проект на него, не знаю - там многие корки обновлений потребуют. Решилась проблемка! Спасибо всем, особенно Роману. Поставил 13.1, как у него. А вот уже 13.1 мне при компиляции один умный вещь сказал: - Не могу, - говорит, - слить свой лишний тактовый делитель с остальными, потому что у них ресеты разные. Это уже что-то. 12.1 и 17.1 ругались на гораздо большее число различий. Дальше я залез в код, сгенерённый мегафункцией Native PHY, и увидел следующую картину: В режиме "PCS bonded" квартус генерит кучу каналов и к ним дополнительный тактовый распределитель. Который, оказывается, сбрасывается ногой pll_powerdown. Все остальные блоки, с которыми квартус собрался слить этот распределитель, сбрасываются через tx_analogreset. И чтобы всё влезло, похоже нужно иметь tx_analogreset(0)=~pll_powerdown(0). И ещё убило - в коде этом так, невзначай, местами написано "// TODO - Examine resets"... В своём проекте на pll_powerdown я вообще забил - fPLL то у меня внешняя. А tx/rx_analog/digitalreset используются. Как только я все ресеты отключил, квартус сам автоматом заполнил мне всю левую сторону ПЛИС 12-ю трансиверами без вопросов. В общем осталось немного - восстановить ресеты и из 24-х сделать 8 на одной скорости и 16 на другой.
|
|
|
|
Сообщений в этой теме
R6L-025 Quartus на хочет размещать гигабитные трансиверы Mar 3 2017, 07:17 R6L-025 UPDATE
Вроде разобрался, оказывается надо внимател... Mar 4 2017, 13:17 DeadMazay Цитата(R6L-025 @ Mar 4 2017, 16:17) ... Dec 6 2017, 16:11 DeadMazay Цитата(bogaev_roman @ Dec 7 2017, 15:10) ... Dec 7 2017, 14:56  DeadMazay Квартус 17.1 не смог развести даже одну группу из ... Dec 8 2017, 07:53  bogaev_roman Цитата(DeadMazay @ Dec 7 2017, 17:56) PCS... Dec 8 2017, 15:29   DeadMazay Цитата(bogaev_roman @ Dec 8 2017, 18:29) ... Dec 11 2017, 13:38    bogaev_roman Цитата(DeadMazay @ Dec 11 2017, 16:38) А ... Dec 11 2017, 14:46     DeadMazay Цитата(bogaev_roman @ Dec 11 2017, 17:46)... Dec 12 2017, 15:21 spectr Отличная тема. А вот скажите, удалось ли кому запу... Dec 7 2017, 13:57 DeadMazay Цитата(spectr @ Dec 7 2017, 16:57) Отличн... Dec 7 2017, 14:04  DeadMazay Цитата(DeadMazay @ Dec 7 2017, 17:04) Вот... Dec 11 2017, 12:02 spectr Так удалось кому-нибудь в итоге сделать двухскорос... Dec 21 2017, 10:20 DeadMazay Цитата(spectr @ Dec 21 2017, 13:20) Так у... Dec 22 2017, 11:36 spectr DeadMazay, спасибо за советы. Пробую потихонечку р... Dec 28 2017, 08:45 spectr Итак, чего удалось добиться. Проект состоит из:
- ... Dec 28 2017, 10:23 DeadMazay Цитата(spectr @ Dec 28 2017, 13:23) Что п... Dec 28 2017, 19:59 spectr Убрал ресеты, и ресет-контроллер вообще из проекта... Dec 28 2017, 12:19 spectr Как раз сегодня ночью меня тоже осенило что возмож... Dec 29 2017, 09:39 DeadMazay Цитата(spectr @ Dec 29 2017, 12:39) 3 бло... Dec 29 2017, 11:34  DeadMazay А у меня эта кухня заработала уже в железе.
То же ... Dec 29 2017, 15:21 spectr Снова дошли руки до этого проекта. И возникла очер... May 11 2018, 08:53 DeadMazay Цитата(spectr @ May 11 2018, 11:53) Пробл... May 11 2018, 10:13  spectr Цитата(DeadMazay @ May 11 2018, 13:13) Не... May 11 2018, 11:52   DeadMazay Цитата(spectr @ May 11 2018, 14:52) Если ... May 11 2018, 15:13 spectr В результате ряда экспериментов на serial loopback... May 16 2018, 14:04 spectr Ситуация разрешилась, всё заработало.
У трансивер... May 17 2018, 14:13
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|