axalay 0 18 февраля, 2009 Опубликовано 18 февраля, 2009 · Жалоба Мож поделится кто доками? И еще достал этот компилятор игнорировать мои указания на неиспользование глобальных линий теми или иными сигналами. Сапр 10.1 со всеми паками Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DmitryR 0 18 февраля, 2009 Опубликовано 18 февраля, 2009 · Жалоба %XILINX%\doc\usenglish\books\docs\cgd\cgd.pdf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 16 19 февраля, 2009 Опубликовано 19 февраля, 2009 · Жалоба Мож поделится кто доками? http://www.google.ru/search?q=xilinx+fpga+...ints+strategies Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gothard 0 25 февраля, 2009 Опубликовано 25 февраля, 2009 · Жалоба И еще достал этот компилятор игнорировать мои указания на неиспользование глобальных линий теми или иными сигналами Может быть предлагаю костыли, но, как правило, я точно знаю сколько синхросигналов должно быть в проекте (да и не плохо бы это знать, чтобы контролировать) - поэтому во избежание лишней головной боли, задаю параметр синтезатора 'number of clock buffers' в ISE. (Как через файл xcf задать - не знаю, см. доки). Правда если число клоков в проекте меняется - надо этот параметр править, о чем не всегда вспоминается... но проблем с "лишними" клоками давно не испытывал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Shtirlits 0 25 февраля, 2009 Опубликовано 25 февраля, 2009 · Жалоба Правда если число клоков в проекте меняется - надо этот параметр править, о чем не всегда вспоминается... но проблем с "лишними" клоками давно не испытывал. Скажите, в каком стиле, на каком языке и какого рода пишутся проекты, в которых разработчик может быть избавлен от знания о количестве клоков? Извиняюсь за отклонение от темы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gothard 0 25 февраля, 2009 Опубликовано 25 февраля, 2009 (изменено) · Жалоба Скажите, в каком стиле, на каком языке и какого рода пишутся проекты, в которых разработчик может быть избавлен от знания о количестве клоков? Извиняюсь за отклонение от темы. Пока нет привязки к железу можно и не знать о их количестве (это про клоки). А поскольку есть возможность, что для одной и той же конструкции на языке можно найти несколько способов реализации, то, не указывая явно конкретный способ или не накладывая ограничения, можно получить неожиданный результат. P.S. насчет предложенного мной костыля - посмотрел свои последние проекты и понял, что уже не пользуюсь им (т.е. костылем) - "лишние" клоки и так не появляются... то ли синтезаторы образумились, то ли не пользуюсь опасными конструкциями.... Так что, может быть у вас не спроста "лишние" клоки? Изменено 25 февраля, 2009 пользователем Gothard Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Beby 8 25 февраля, 2009 Опубликовано 25 февраля, 2009 · Жалоба Скажите, в каком стиле, на каком языке и какого рода пишутся проекты, в которых разработчик может быть избавлен от знания о количестве клоков? Могу, конечно, и заблуждаться, но я считаю, что в ПЛИС должно быть минимум разных Clock’ов. Я использую различные Clock’и только когда у этих clock’ов различная природа; например: интерфейс PCI (около 33МГц), еще какой-нибудь дурацкий интерфейс (8.192 МГц) и собственная частота системы (200Мгц) - такие clock'и различны по природе, и соответственно требуют синхронизационных механизмов для передачи данных между Clock Domain. Бывали случаи работы с базовой частотой, умноженной (на 2) или деленной (на 16) одним DLL - в этом случае особых проблем синхронизации нет, надо только очень аккуратно схему составлять (описывать), т.к. эти clock'и - родственники: имеют синхронно дрожащие фронты, и, соответственно, особых проблем не доставляющих. Если же необходимо уйти на clock с низкой частотой (например базовая частота / на 1024), то для этой цели можно завести специальный сигнал (равный ‘1’ только в течении одного периода базовой частоты, а остальные 1023 периода остающийся ‘0’) подмешиваемый в цепи Clock Enable блока работающего на «низкой частоте». Кстати по поводу различных clock. Как-то недавно принес мне студент схему... естественно не работающую, из-за того, что товарищ (четко, как учили на курсах по азам цифровой схемотезнике на рассыпухе) воспользовался схемным вводом, и подал на CLK вход триггера сигнал = BASE_CLK and EVENT, а на CE вход - сигнал BASE_CE. Простое переписывание этого безобразия на VHDL привело к тому, что синтезатор подал на CE сигнал = EVENT and BASE_CE, а чистый BASE_CLK на CLK вход триггера. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gothard 0 26 февраля, 2009 Опубликовано 26 февраля, 2009 · Жалоба И еще достал этот компилятор игнорировать мои указания на неиспользование глобальных линий теми или иными сигналами. Сапр 10.1 со всеми паками Извиняюсь, но прочитав еще раз вопрос, мне показалось, что я его не так понял. Поясните - речь идет о синхросигналах, которые надо провести не по глобальным цепям, или о том, что синтезатор порождает дополнительные синхросигналы? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
axalay 0 27 февраля, 2009 Опубликовано 27 февраля, 2009 · Жалоба Ну почитал выше, а вы не думаете что есть несколько высокоскоростных асинхронных интерфейсов (в данном случае 4), еще лвдс в оба направления, еще QRD SRAM. А буфмуксов всего 8... А хотелось бы хоть 12 А для лвдс и срам надо бы еще и сдвинутые по фазе клоки-вот и посчитайте сколька надо. Тут синтезатор уже ниче не сделает. Нужна инфа чтоб констрейнить клоки, которые не на глобальных линиях и сигналы. Клоки доходят до 125 - 250 МГц и при том по обеим фронтам И еще у интерфейсов клоки на прием и передачу с физуровня, то есть входные и к тому же разные. Не я проектировал систему-я только программирую фпга Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Beby 8 27 февраля, 2009 Опубликовано 27 февраля, 2009 · Жалоба Ну почитал выше, а вы не думаете что есть несколько высокоскоростных асинхронных интерфейсов (в данном случае 4), еще лвдс в оба направления, еще QRD SRAM. А буфмуксов всего 8... А хотелось бы хоть 12 К сожалению, мои телепатические способности зимой находяться в глубокой спячке, а т.к. автор этой темы не соизволил подробно изложить свою проблему, то я проигнорировал подаваемые телепатическими способностями сигналы сквозь глубокую дрёму: "...наверное, у него много асинхронных интерфейсов... и на всё про всё чего-то не хватает..." Не я проектировал систему - я только программирую фпга Это очень губительная позиция для проекта, как Вы теперь убедились - у всех микросхем есть свои ограничения и они должны быть учтены при проектировании системы. В ПЛИС эти ограничения менее очевидны, но часто весьма существенны. А для лвдс и срам надо бы еще и сдвинутые по фазе клоки-вот и посчитайте сколька надо. Тут синтезатор уже ниче не сделает. Нужна инфа чтоб констрейнить клоки, которые не на глобальных линиях и сигналы. Клоки доходят до 125 - 250 МГц и при том по обеим фронтам И еще у интерфейсов клоки на прием и передачу с физуровня, то есть входные и к тому же разные. Собственно говоря, с этого и надо было начинать. 1. (и главное) - Вам понадобится выставить в ISE количество BUFG равное 0, и самому поставить эти BUFG именно туда, где они более всего нужны (Вы проектируете систему - не синтезатор, поэтому, именно Вам решать, где наиболее ответственное место, а где можно и пойти на сделку с совестью). 2. для разрешения подобных проблем имеются constraint'ы: TIMESPEC PERIOD, USELOWSEKWLINES (иногда приходиться назначать его не только CLK, но и для сигналов пересекающих с пол кристалла - так они быстрее доходят), MAXSKEW, MAXDELAY. 3. при PAR попробуйте использовать Reentrant route - может чуточку улучшить результаты. 4. если само будет отказываться ложиться, то прийдётся занять (полу)ручной раскладкой по кристаллу, constraint'ы: RLOC, AREAGRROUP, LOC. 5. есть еще небольшой мухлёж... если Вам известна температура (максимальная) при которой будет работать Ваше изделие, то можно посчитать значение температуры для constraint'а TEMPERATURE. Если оно меньше, чем предельное для кристалла, то задержки рассчитанные для Вашей температуры будут меньше обычных для предельного случая. Ну вот, если по быстрому, токак-то так. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться