Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: LVDS в cyclone3- проблема с назначением выводов
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
alexPec
Всем добрый день. Помогите разобраться с назначениями входов/выходов LVDS. Так и понял я где
смотреть, что читать... В циклоне3, ep3c40q240 есть дифпары. Зацепил я на них АЦП в режиме
LVDS.Развел плату, потом при компиляции начинается у фиттера: тут зацепить выход не могу, эти дифпары
только как входы работают, здесь будет не LVDS, а LVDS_3e, выясняется что еще какие-то расстояния
между какими-то падами надо выдерживать и т.д. Где это все написано-то?

Вобщем, один разведеный АЦП зацепил, дело дошло до второго.

Конкретные вопросы:
1. Надо клок с плл-а, который уже драйвит LVDS пару (ноги 185,186 ep3c40q240) через компонент
External clock output, скопировать на ноги 131,132 (клок не постоянный, периодический, разрешается
внутренней логикой через enable). При компиляции говорит:

-если ставишь отдельный плл (есть один свободный, ставлю копию того что драйвит ноги 185,186;
зацепляю вход плла тотже, выход через external clock output), говорит:

Код
        -Error: Can't use clock type Global Clock at location CLKCTRL_G3 for clock control block or source node lvds_block_dds:inst26|altclkctrl0:inst22|altclkctrl0_altclkctrl_frj:altclkctrl0_altclkctrl_frj_component|clkctrl1 with clock type External Clock Output -- clock types do not match     
                                 -Error: Can't use clock type Global Clock at location CLKCTRL_G0 for clock control block or source node lvds_block_dds:inst26|altclkctrl0:inst22| altclkctrl0_altclkctrl_frj:altclkctrl0_altclkctrl_frj_component|clkctrl1 with clock type External Clock Output -- clock types do not match
                     -Error: Can't assign node "lvds_block_dds:inst26|altpll1:inst23|altpll:altpll_component|altpll_qp03:auto_generated|clk[0] (driving Clock control block lvds_block_dds:inst26|altclkctrl0:inst22|altclkctrl0_altclkctrl_frj:altclkctrl0_altclkctrl_frj_component|clkctrl1)" to location CLKCTRL_PLL1E0
        - Error: Can't place node "lvds_clk1" in location or region  "PIN 69" -- location is not compatible with current location of PIN 132 for the node -- location added due to User Location Constraints and IO standards pin placement


откуда pin_69??? я его назначил на pin 132...

-если подаешь с выхода плл, который драйвит пару 185,186 еще и на 131,132, говорит так:
Код
        Error: Pad 285 of non-differential I/O pin 'but[3]' in pin location 133 is too close to pad 284 of differential I/O pin 'lvds_clk1' in pin location 132  --  pads must be separated by a minimum of 4 pads. Use the Pad View of Pin Planner to debug.


2. Крайне желательно чтоб эти клоки (на 185,186 и 131,132) совпадали по фазе с точностью хотя бы
1..1,5 нс.

3. Желательно знать принципиально и наверняка: можно вообще туда клок подать с плл или нельзя
(обязательно нужна возможность разрешения клока)? Повторюсь, плл свободный есть, а по сему даже если
фазы не совпадают - можно подогнать.Но как зацепить- через external clock или еще как?

Да, клок 96МГц

vadimuzzz
Цитата(alexPec @ Jun 4 2011, 03:21) *
-если подаешь с выхода плл, который драйвит пару 185,186 еще и на 131,132, говорит так:
Код
        Error: Pad 285 of non-differential I/O pin 'but[3]' in pin location 133 is too close to pad 284 of differential I/O pin 'lvds_clk1' in pin location 132  --  pads must be separated by a minimum of 4 pads. Use the Pad View of Pin Planner to debug.

попробуйте set_instance_assignment -name IO_MAXIMUM_TOGGLE_RATE "0 MHz" -to but[3]
alexPec
Цитата(vadimuzzz @ Jun 4 2011, 08:16) *
попробуйте set_instance_assignment -name IO_MAXIMUM_TOGGLE_RATE "0 MHz" -to but[3]

Сделал, теперь говорит что для плл требуется 2 внешних клока, а есть только 1. Может со свободной плл как-то сделать?
Пробовал просто зацепить - не получилось, описал в 1 посте.

UPD. В компоненте altclkctrl исправил параметр с external clock на global clock - компилируется, не ругается. Сейчас получилось так: 185,186 ноги драйвятся altclkctrl с параметром "external clock", ноги 131,132 драйвятся altclkctrl с параметром "global clock", оба altclkctrl запитаны с одного PLL
des00
Цитата(alexPec @ Jun 3 2011, 15:21) *
Где это все написано-то?

в даташите на целевую фпга
Цитата
Конкретные вопросы:
1....
2....

глобальные клоки, на третьем сыклоне, через dedicated clock output не выводятся, можно вывести через них только клок с0 с плл, который больше никуда не идет.

Рядом с LVDS парами, не должно быть по 3 активных ноги ввода/вывода с каждой стороны. По умолчанию это ошибка, но ее можно обойти.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.