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

 
 
8 страниц V  « < 3 4 5 6 7 > »   
Reply to this topicStart new topic
o_khavin
сообщение Jan 7 2014, 17:36
Сообщение #61


Местный
***

Группа: Участник
Сообщений: 230
Регистрация: 29-08-09
Пользователь №: 52 094



Цитата(SM @ Jan 7 2014, 16:17) *
Латис, как и альтера, например, после разводки, когда все SETUP-ы утрясли, проводят (опциональный) "Par hold correction" (ниже привожу лог, как они, конкретно латис в данном случае, это делают в одном из проектов). Реально, они удлиняют пути от тех регистров, от которых оказался слишком быстрый путь на выход, либо удлиняя разводку, либо вставляя лишние буфера. Кстати. Точно так же делают и среды разводки заказных ИМС, тот же encounter например, втыкая лишние буфера куда надо, когда запускается коррекция холдов.

Как минимум для внутренних цепей у Xilinx-а это есть. Если смотреть в лог рутера, то видно что последний stage как раз изничтожает лишние hold-ы, в то время как setup-ы уже нулевые (не выходят за заданные границы). Просто он не имеет отдельного названия - stage N и всё. Так что ищите, надежда есть. sm.gif

Сообщение отредактировал o_khavin - Jan 7 2014, 17:37
Go to the top of the page
 
+Quote Post
SM
сообщение Jan 7 2014, 18:00
Сообщение #62


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(o_khavin @ Jan 7 2014, 21:36) *
Как минимум для внутренних цепей у Xilinx-а это есть.


Ну в этом я ни разу не сомневался. Без этого бы не работала добрая половина проектов с переходами между связанными клок доменами. Вопрос то стоит "как объявить констрейн для холда для выходного сигнала"
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Jan 7 2014, 19:08
Сообщение #63


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



вот тут есть непонятность в описании нет валида, но в примерах есть.

и на форуме ксалинкса кто-то его активно использовал. И на констраин при имплиментации никто не ругнулся. И в репорте после синтеза он есть и оценивается. так что может он и есть, но про него никто не знает?... темный лес блин... но такая настройка явно нужна.



ну и реакции на этот констрейн никакой, задавай хоть 100 хоть 0....
в репорте стоит только MAXDELAY, получается что таким образом не получить, только глазами анализировать, минимальный и максимальный пути указаны, можно прикинуть сколько получилось, а поправлять видать только руками...


Думаю загвоздка в том что констрейн - это проверка условий, а не задание. То есть должны быть еще какие - то настройки на выполнение
Go to the top of the page
 
+Quote Post
SM
сообщение Jan 7 2014, 19:14
Сообщение #64


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(Golikov A. @ Jan 7 2014, 23:08) *
Думаю загвоздка в том что констрейн - это проверка условий, а не задание. То есть должны быть еще какие - то настройки на выполнение


Вообще, констрейны это и проверка, и задание (для timing-driven операций разводки и размещения). Просто, похоже, что документация права - VALID не работает для OUT. А почему его не обругали... Ну банальный глюк софта например. Если бы он работал, то на запредельные значения, как минимум, проверка таймингов бы ругалась отрицательным запасом (slack) по холдам.

В таком случае непонятно одно, почему общественность до сих пор бунт не подняла sm.gif
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Jan 7 2014, 20:45
Сообщение #65


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



http://forums.xilinx.com/t5/General-Techni...out/td-p/275056

что то получается надо IODELAY пихать...
Go to the top of the page
 
+Quote Post
ZASADA
сообщение Jan 7 2014, 21:54
Сообщение #66


Знающий
****

Группа: Свой
Сообщений: 738
Регистрация: 13-01-11
Из: Минск
Пользователь №: 62 210



Цитата(SM @ Jan 7 2014, 22:14) *
В таком случае непонятно одно, почему общественность до сих пор бунт не подняла sm.gif

а чего бунтовать? уже 5 страниц темы, а лично мне не понятно,в чем проблема. на запись все работает, значит вполне спокойно на 50 МГц работает неспециализированная нога в качестве входа тактового сигнала. А то, что при чтении на 1 такт все сдвигается и с симулятором не совпадает - так это возможно надо схему чтения менять, а не констрейны.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Jan 7 2014, 22:37
Сообщение #67


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Цитата(ZASADA @ Jan 8 2014, 01:54) *
а чего бунтовать? уже 5 страниц темы, а лично мне не понятно,в чем проблема. на запись все работает, значит вполне спокойно на 50 МГц работает неспециализированная нога в качестве входа тактового сигнала. А то, что при чтении на 1 такт все сдвигается и с симулятором не совпадает - так это возможно надо схему чтения менять, а не констрейны.


Если что-то не понятно иногда стоит попытаться разобраться...


1. Разница между чтением и записью:
При записи входной сигнал защелкивается по входному клоку, эти линии можно друг с другом сровнять по времени и все хорошо. При чтении вам надо выдавать по входному клоку сигналы изнутри схему, и тут уже ничего не попишешь, потому надо извращаться.

1.1. Тут кстати интересный момент я все входные сообщения как более важный обложил контрольными суммами и поскольку они сходились, выходные остались без них. Выходные сообщения не очень важны, и мне показалось что их можно читать по 2 раза, это надежнее контрольной суммы. Так вот это верно для случайных ошибок, а для повторяемой как у меня нет, и ошибки были пропущены.

2. Сдвижка на 1 такт при чтении возникает из-за того что выставленные по падающему клоку данные не успевали вылезти до их защелкивания на ружу. Что порождала 2 вопроса, как с этим бороться и как это детектить.
2.1. Ответом на второй вопрос явилось написание констрейнов, которые и выявили эту проблему, может вам они были очевидны, жаль что вы их не указали пару страниц назад, я бы потратил меньше времени.
2.2. Ответом на первый вопрос явилась схема работы по другому фронту клока, что дает некоторый запас по времени.

3. Двигая время выставления данных на другой фронт, осталось желание сохранить устойчивость схемы, например на тот момент если потом ножки будут в правильно месте. Поэтому захотелось ввести гарантированную задержку на линию выставления данных, чтобы сдвинуть момент появления данных поближе к правильному фронту клока.

И вот тут выяснилось что легко констрейнами такое колдунство не сотворить, и как попросить синтезатор задержать сигнал не знаю даже опытные гуру. Ну а дальше появилось мнение что инструмент в целом полезный, а вот где он лежит никто не знает. И если вы уважаемая засада нас научите будет вам почет и уважение!

Выводы:
1. На текущий момент схема работает на 50 МГц, чтение - запись (все переведено на восходящий клок), и теперь правильность ее работы также подтверждена констрейнами а не только эксперементами. Жаль не удалось все же минимальную задержку как-то определить, но чтение отчета синтезатора говорит о том что там все хорошо с этим моментом. Придется за ним следить пока что в ручном режиме.

2. Ковыряние, и обсуждение казалось бы уже очевидных вещей, лично мне дало еще несколько решений, интересных с разных точек зрения. Потому я крайне благодарен всем кто активно участвовал в теме и тем кто пробегая мимо кидал реплики. Уверен что все внесли свой вклад и сделали мир лучше. И надеюсь еще кому - то мой опыт будет полезен и интересен.

3. Ну и на последок не стоит сдаваться раньше времени, даже не клоковые ноги можно использовать как клокsm.gif




Go to the top of the page
 
+Quote Post
ZASADA
сообщение Jan 8 2014, 05:49
Сообщение #68


Знающий
****

Группа: Свой
Сообщений: 738
Регистрация: 13-01-11
Из: Минск
Пользователь №: 62 210



выводы
изначально схемотехнически был сделан контроллер, работающий на 50МГц на запись и 100МГц на чтение. Изменение схемы чтения (смена фронта) привело к работе чтения на 50МГц.
Go to the top of the page
 
+Quote Post
SM
сообщение Jan 8 2014, 06:44
Сообщение #69


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(ZASADA @ Jan 8 2014, 01:54) *
а чего бунтовать? уже 5 страниц темы, а лично мне не понятно,в чем проблема. на запись все работает, значит вполне спокойно на 50 МГц работает неспециализированная нога в качестве входа тактового сигнала. А то, что при чтении на 1 такт все сдвигается и с симулятором не совпадает - так это возможно надо схему чтения менять, а не констрейны.


Да вот пример конкретной проблемы, в рамках другой темы, где требуется точно это же. Читать внимательно надо. Так что много где требуется обконстрейнить hold time, а не только в данном конкретном SPI, а еще например на PCI. Заметьте, не всем, как Вам, надо "в чем проблема, работает", а некоторым, особо въедливым, нужно еще и гарантированное соответствие спецификациям в полном диапазоне температур и питаний, а не только "здесь и сейчас". Для этого придуманы констрейны. И, еще, между прочим, использование входа, не предназначенного для клока, в качестве клока - смягчает в данном случае эту проблему, так как удлиняет путь сигнала, тем самым увеличивая запас по HOLD. А если бы клок был бы на месте - то констрейн на HOLD был бы нужен вдвойне.

А "выводы" в корне неверные. Так как нет гарантии, что этот же контроллер заработает и при -20, и при 1.25 вольт вместо 1.2, и при оказавшимся по разбросу технологии особо быстром в районе этих пинов и логики экземпляре ПЛИС. Для чего и существуют констрейны, и их проверка на разных углах температуры, питания и процесса.

Пожалуй, создам отдельную тему в нужном разделе - http://electronix.ru/forum/index.php?showtopic=117942 - все таки это общий вопрос, касающийся огромного числа применений ПЛИС вообще, а не конкретного случая SPI.
Go to the top of the page
 
+Quote Post
ZASADA
сообщение Jan 8 2014, 08:09
Сообщение #70


Знающий
****

Группа: Свой
Сообщений: 738
Регистрация: 13-01-11
Из: Минск
Пользователь №: 62 210



Цитата(SM @ Jan 8 2014, 09:44) *
Да вот пример конкретной проблемы, в рамках другой темы, где требуется точно это же.

в данном случае проблема была в неверной схемотхнике. а про неработающие констрейны логичнее на форуме xilinxa спрашивать. можно заодно посмотреть родное ядро PCI xilinxa, как там решена проблема с правильной времянкой. Например в описании ядра на гигабитный езернет все подробно расписано как и что констрейнить и как проверять соответствии времянок.
Go to the top of the page
 
+Quote Post
SM
сообщение Jan 8 2014, 08:14
Сообщение #71


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(ZASADA @ Jan 8 2014, 12:09) *
в данном случае проблема была в неверной схемотхнике.

Я уже написал выше, что эта "неверная схемотехника" в данном случае только улучшает ситуацию с HOLD, задерживая клок, и увеличивая запас по нему (холду). И как раз по ее причине, возможно, его констрейнить и не обязательно. Но в общем случае, для любого интерфейса, констрейнить надо и сетап, и холд, какая бы схемотехника не была, чтобы быть уверенным, что интерфейс соответствует спецификации.
Go to the top of the page
 
+Quote Post
ZASADA
сообщение Jan 8 2014, 08:28
Сообщение #72


Знающий
****

Группа: Свой
Сообщений: 738
Регистрация: 13-01-11
Из: Минск
Пользователь №: 62 210



Цитата(SM @ Jan 8 2014, 11:14) *
Я уже написал выше, что эта "неверная схемотехника" в данном случае только улучшает ситуацию с HOLD, задерживая клок, и увеличивая запас по нему (холду).

проблема была не в том, что тактовый сигнал приходил не на специализированную ногу, а в работе по фронту/срезу, что увеличивало эквивалентую частоту работы в 2 раза с 50 до 100 МГц.
с вашим PCI это никак не связано, две совершенно разные ситуации.
Go to the top of the page
 
+Quote Post
SM
сообщение Jan 8 2014, 08:30
Сообщение #73


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(ZASADA @ Jan 8 2014, 12:28) *
с вашим PCI это никак не связано, две совершенно разные ситуации.

Это так кажется, что не связано, если подходить к делу кое-как - "работает, и ладно". А на самом деле связано - для любого интерфейса есть требования по Tsu и Th, в т.ч. и для SPI тоже, и наличие этого требования никак не связано с тем, куда заведен клок. Оно просто есть, и его надо описывать в констрейне. А колдовать уже с правильностью и неправильностью подключений следует по результатам отчета анализатора таймингов, как по запасу по Tsu, так и по запасу по Th. Все остальное, это любительская мышиная возня, а не работа.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Jan 8 2014, 09:17
Сообщение #74


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Цитата(ZASADA @ Jan 8 2014, 12:28) *
проблема была не в том, что тактовый сигнал приходил не на специализированную ногу, а в работе по фронту/срезу, что увеличивало эквивалентую частоту работы в 2 раза с 50 до 100 МГц.
с вашим PCI это никак не связано, две совершенно разные ситуации.



Приход клока не на клоковую ногу вызывало задержку в проведении клока 8 нСек.
Это не давало возможность выставить выходной сигнал по падающему фронту до появления следующего восходящего. Между этими событиями проходит 10 нСек, а сигнал появлялся за 12 нСек.
Это привело к сдвигу данных на 1 бит, во время фронта захватывалось прошлое значение бита, а менялось оно после.
Более того этот бит был не постоянным, он плавал, иногда бит успевал выставиться иногда нет.

Приди нога на клоковую всего этого бы не было.

Можно ли в такой ситуации считать что "проблема не в том что сигнал приходит на не специализированную ногу"? Мне кажется нет. А вот для решения данной проблемы потребовались констрейны, которые породили вторую проблему. А именно как сделать холд.

Судя по сайту ксалинкса надо использовать IODELAY которые как раз и могут создать правильный холд, но как в точности это делается я пока не знаю.

Go to the top of the page
 
+Quote Post
Victor®
сообщение Jan 8 2014, 09:28
Сообщение #75


Lazy
******

Группа: Свой
Сообщений: 2 070
Регистрация: 21-06-04
Из: Ukraine
Пользователь №: 76



Цитата(ZASADA @ Jan 8 2014, 11:28) *
а в работе по фронту/срезу, что увеличивало эквивалентую частоту работы в 2 раза с 50 до 100 МГц.


Одно из заблуждений.
Сделайте что-то простое... регистр сдвига с логикой между разрядами для обоих случаев - нормальное и "двойное" тактирование (1-разряд - фронт, 2 - срез, 3 - фронт и т.д.)
И запустите спидометр и посмотрите на макс. частоту.


--------------------
"Everything should be made as simple as possible, but not simpler." - Albert Einstein
Go to the top of the page
 
+Quote Post

8 страниц V  « < 3 4 5 6 7 > » 
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 14:04
Рейтинг@Mail.ru


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