Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как объявить Local Clock в проекте
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
chel
Добрый день. Использую Xilinx Spartan 3a. Всегда работал с глобальным clk. А тут возникла необходимость использовать локальный.
Подскажите пож. как объявить в проекте, что данный сигнал является Local Clock. И где почитать про локальный клок подробнее?
Заранее благодарен.
dspx
Цитата(chel @ Dec 29 2009, 13:13) *
Добрый день. Использую Xilinx Spartan 3a. Всегда работал с глобальным clk. А тут возникла необходимость использовать локальный.
Подскажите пож. как объявить в проекте, что данный сигнал является Local Clock. И где почитать про локальный клок подробнее?
Заранее благодарен.


Не совсем понятно, что будет источником вашего локального клока? Глобальный клок заведенный в магистраль через BUFGMUX будет разведен к каждому SLICE, использующему этот клок. Далее вы можете сделать локальную ветку этого клока, пропустив его ,например , через LUT. Собственно, любой выход любой логики можно использовать как локальный клок, но он будет уже разводиться по обычным линиям межсоединений, поэтому эти пути нужно внимательно констрэйнить.
andrew_b
Цитата(dspx @ Dec 29 2009, 15:25) *
Далее вы можете сделать локальную ветку этого клока, пропустив его ,например , через LUT. Собственно, любой выход любой логики можно использовать как локальный клок, но он будет уже разводиться по обычным линиям межсоединений, поэтому эти пути нужно внимательно констрэйнить.
Поэтому надо никогда так не делать!
chel
Задача стоит подключить DDR память. На сайте Xilinx рекомендуется для защёлкивания данных от памяти использовать локальный clk. Интересует как это нужно описать в проекте. Если я clk от памяти завожу на Gclk, то он и становится глобальным. А как сделать чтобы он был локальным? Или я что-то не понимаю?
rv3dll(lex)
на сколько я понимаю речь идёт про вводы слоr капабле, которые являются локальными вводами для клока применительно к банку. В виртексе этот клок используется для защёлкивания данных в десериалайзерах входных буферов в том числе и для DDR
chel
Цитата(rv3dll(lex) @ Dec 29 2009, 15:59) *
на сколько я понимаю речь идёт про вводы слоr капабле, которые являются локальными вводами для клока применительно к банку. В виртексе этот клок используется для защёлкивания данных в десериалайзерах входных буферов в том числе и для DDR



Да, вы правы, описание касалось виртекса. Но в любом случае я же не могу завести clk от ddr памяти на DCM, т.к. этот clk появляется только при операциях чтения из памяти. Какое решение нужно использовать?
DmitryR
Контроллер памяти от Xilinx может быть собран двумя способами: с внутренней PLL и c внешней. Однако в любом случае частота присутсвует всегда (а не только при обращении к памяти), и использовать ее можно как есть, не пропуская дополнительно через DCM. В Виртексе есть региональные деревья для частот, однако если проект не является каким-то суперкрутым по ресурсам то роутер сам может адекватно решить, каким ресурсом развести ту или иную частоту.
dspx
Цитата(andrew_b @ Dec 29 2009, 15:24) *
Поэтому надо никогда так не делать!


Вы не совсем правы. Иногда так приходится делать. Яркий пример - контроллер DDR/DDR2 от Xilinx. Для формирования клока защелкиваемых данных в BRAM при чтении . Там на каждый read DQS, свой локальный клок. Судя по всему топикстартера интересует именно этот дизайн. Для этого нужно сгенерить любой дизайн коркой MIG2.x и посмотреть как там сделан блок чтения данных из ДДР. Там и констрэйны есть.
DmitryR
Цитата(dspx @ Dec 29 2009, 22:24) *
Вы не совсем правы. Иногда так приходится делать. Яркий пример - контроллер DDR/DDR2 от Xilinx. Для формирования клока защелкиваемых данных в BRAM при чтении . Там на каждый read DQS, свой локальный клок.

1. DQS не является выходом логики, он приходит с лапы.
2. В этом контроллере уже все сделано внутри, и ничего доделывать и констрейнить не надо: надо просто включить сгенерированный код и UCF, и все заработает. А пользовательский интерфейс там тоже банальный, на одном клоке.
dspx
Цитата(DmitryR @ Dec 30 2009, 10:11) *
1. DQS не является выходом логики, он приходит с лапы.
2. В этом контроллере уже все сделано внутри, и ничего доделывать и констрейнить не надо: надо просто включить сгенерированный код и UCF, и все заработает. А пользовательский интерфейс там тоже банальный, на одном клоке.


DQS - не является, а клок стробирующий захват данных при чтении - является. Запись данных в BlockRAM стробируется внутренним клоком, именно с выхода логики, формирующей "внутренний" DQS. Понятно, что на ее входе - входной пин DQS с памяти.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.