реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Как объявить Local Clock в проекте
chel
сообщение Dec 29 2009, 10:13
Сообщение #1


Участник
*

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



Добрый день. Использую Xilinx Spartan 3a. Всегда работал с глобальным clk. А тут возникла необходимость использовать локальный.
Подскажите пож. как объявить в проекте, что данный сигнал является Local Clock. И где почитать про локальный клок подробнее?
Заранее благодарен.
Go to the top of the page
 
+Quote Post
dspx
сообщение Dec 29 2009, 11:25
Сообщение #2


Участник
*

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



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


Не совсем понятно, что будет источником вашего локального клока? Глобальный клок заведенный в магистраль через BUFGMUX будет разведен к каждому SLICE, использующему этот клок. Далее вы можете сделать локальную ветку этого клока, пропустив его ,например , через LUT. Собственно, любой выход любой логики можно использовать как локальный клок, но он будет уже разводиться по обычным линиям межсоединений, поэтому эти пути нужно внимательно констрэйнить.
Go to the top of the page
 
+Quote Post
andrew_b
сообщение Dec 29 2009, 12:24
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(dspx @ Dec 29 2009, 15:25) *
Далее вы можете сделать локальную ветку этого клока, пропустив его ,например , через LUT. Собственно, любой выход любой логики можно использовать как локальный клок, но он будет уже разводиться по обычным линиям межсоединений, поэтому эти пути нужно внимательно констрэйнить.
Поэтому надо никогда так не делать!
Go to the top of the page
 
+Quote Post
chel
сообщение Dec 29 2009, 12:41
Сообщение #4


Участник
*

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



Задача стоит подключить DDR память. На сайте Xilinx рекомендуется для защёлкивания данных от памяти использовать локальный clk. Интересует как это нужно описать в проекте. Если я clk от памяти завожу на Gclk, то он и становится глобальным. А как сделать чтобы он был локальным? Или я что-то не понимаю?
Go to the top of the page
 
+Quote Post
rv3dll(lex)
сообщение Dec 29 2009, 12:59
Сообщение #5


Полное ничтожество
*****

Группа: Banned
Сообщений: 1 991
Регистрация: 20-03-07
Из: Коломна
Пользователь №: 26 354



на сколько я понимаю речь идёт про вводы слоr капабле, которые являются локальными вводами для клока применительно к банку. В виртексе этот клок используется для защёлкивания данных в десериалайзерах входных буферов в том числе и для DDR
Go to the top of the page
 
+Quote Post
chel
сообщение Dec 29 2009, 13:09
Сообщение #6


Участник
*

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



Цитата(rv3dll(lex) @ Dec 29 2009, 15:59) *
на сколько я понимаю речь идёт про вводы слоr капабле, которые являются локальными вводами для клока применительно к банку. В виртексе этот клок используется для защёлкивания данных в десериалайзерах входных буферов в том числе и для DDR



Да, вы правы, описание касалось виртекса. Но в любом случае я же не могу завести clk от ddr памяти на DCM, т.к. этот clk появляется только при операциях чтения из памяти. Какое решение нужно использовать?
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Dec 29 2009, 13:31
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Контроллер памяти от Xilinx может быть собран двумя способами: с внутренней PLL и c внешней. Однако в любом случае частота присутсвует всегда (а не только при обращении к памяти), и использовать ее можно как есть, не пропуская дополнительно через DCM. В Виртексе есть региональные деревья для частот, однако если проект не является каким-то суперкрутым по ресурсам то роутер сам может адекватно решить, каким ресурсом развести ту или иную частоту.
Go to the top of the page
 
+Quote Post
dspx
сообщение Dec 29 2009, 19:24
Сообщение #8


Участник
*

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



Цитата(andrew_b @ Dec 29 2009, 15:24) *
Поэтому надо никогда так не делать!


Вы не совсем правы. Иногда так приходится делать. Яркий пример - контроллер DDR/DDR2 от Xilinx. Для формирования клока защелкиваемых данных в BRAM при чтении . Там на каждый read DQS, свой локальный клок. Судя по всему топикстартера интересует именно этот дизайн. Для этого нужно сгенерить любой дизайн коркой MIG2.x и посмотреть как там сделан блок чтения данных из ДДР. Там и констрэйны есть.
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Dec 30 2009, 07:11
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



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

1. DQS не является выходом логики, он приходит с лапы.
2. В этом контроллере уже все сделано внутри, и ничего доделывать и констрейнить не надо: надо просто включить сгенерированный код и UCF, и все заработает. А пользовательский интерфейс там тоже банальный, на одном клоке.
Go to the top of the page
 
+Quote Post
dspx
сообщение Dec 30 2009, 09:40
Сообщение #10


Участник
*

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



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


DQS - не является, а клок стробирующий захват данных при чтении - является. Запись данных в BlockRAM стробируется внутренним клоком, именно с выхода логики, формирующей "внутренний" DQS. Понятно, что на ее входе - входной пин DQS с памяти.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 7th July 2025 - 13:37
Рейтинг@Mail.ru


Страница сгенерированна за 0.01445 секунд с 7
ELECTRONIX ©2004-2016