|
|
  |
Как объявить Local Clock в проекте |
|
|
|
Dec 29 2009, 10:13
|
Участник

Группа: Участник
Сообщений: 26
Регистрация: 8-11-05
Пользователь №: 10 572

|
Добрый день. Использую Xilinx Spartan 3a. Всегда работал с глобальным clk. А тут возникла необходимость использовать локальный. Подскажите пож. как объявить в проекте, что данный сигнал является Local Clock. И где почитать про локальный клок подробнее? Заранее благодарен.
|
|
|
|
|
Dec 29 2009, 11:25
|
Участник

Группа: Свой
Сообщений: 54
Регистрация: 6-01-06
Из: Москва
Пользователь №: 12 876

|
Цитата(chel @ Dec 29 2009, 13:13)  Добрый день. Использую Xilinx Spartan 3a. Всегда работал с глобальным clk. А тут возникла необходимость использовать локальный. Подскажите пож. как объявить в проекте, что данный сигнал является Local Clock. И где почитать про локальный клок подробнее? Заранее благодарен. Не совсем понятно, что будет источником вашего локального клока? Глобальный клок заведенный в магистраль через BUFGMUX будет разведен к каждому SLICE, использующему этот клок. Далее вы можете сделать локальную ветку этого клока, пропустив его ,например , через LUT. Собственно, любой выход любой логики можно использовать как локальный клок, но он будет уже разводиться по обычным линиям межсоединений, поэтому эти пути нужно внимательно констрэйнить.
|
|
|
|
|
Dec 29 2009, 12:41
|
Участник

Группа: Участник
Сообщений: 26
Регистрация: 8-11-05
Пользователь №: 10 572

|
Задача стоит подключить DDR память. На сайте Xilinx рекомендуется для защёлкивания данных от памяти использовать локальный clk. Интересует как это нужно описать в проекте. Если я clk от памяти завожу на Gclk, то он и становится глобальным. А как сделать чтобы он был локальным? Или я что-то не понимаю?
|
|
|
|
|
Dec 29 2009, 13:09
|
Участник

Группа: Участник
Сообщений: 26
Регистрация: 8-11-05
Пользователь №: 10 572

|
Цитата(rv3dll(lex) @ Dec 29 2009, 15:59)  на сколько я понимаю речь идёт про вводы слоr капабле, которые являются локальными вводами для клока применительно к банку. В виртексе этот клок используется для защёлкивания данных в десериалайзерах входных буферов в том числе и для DDR Да, вы правы, описание касалось виртекса. Но в любом случае я же не могу завести clk от ddr памяти на DCM, т.к. этот clk появляется только при операциях чтения из памяти. Какое решение нужно использовать?
|
|
|
|
|
Dec 29 2009, 19:24
|
Участник

Группа: Свой
Сообщений: 54
Регистрация: 6-01-06
Из: Москва
Пользователь №: 12 876

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

Группа: Свой
Сообщений: 54
Регистрация: 6-01-06
Из: Москва
Пользователь №: 12 876

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