Перейти к содержанию
    

spartan3 констрейны

Мож поделится кто доками?

И еще достал этот компилятор игнорировать мои указания на неиспользование глобальных линий теми или иными сигналами. Сапр 10.1 со всеми паками

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И еще достал этот компилятор игнорировать мои указания на неиспользование глобальных линий теми или иными сигналами

Может быть предлагаю костыли, но, как правило, я точно знаю сколько синхросигналов должно быть в проекте (да и не плохо бы это знать, чтобы контролировать) - поэтому во избежание лишней головной боли, задаю параметр синтезатора 'number of clock buffers' в ISE. (Как через файл xcf задать - не знаю, см. доки). Правда если число клоков в проекте меняется - надо этот параметр править, о чем не всегда вспоминается... но проблем с "лишними" клоками давно не испытывал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Правда если число клоков в проекте меняется - надо этот параметр править, о чем не всегда вспоминается... но проблем с "лишними" клоками давно не испытывал.

Скажите, в каком стиле, на каком языке и какого рода пишутся проекты, в которых разработчик может быть избавлен от знания о количестве клоков?

Извиняюсь за отклонение от темы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Скажите, в каком стиле, на каком языке и какого рода пишутся проекты, в которых разработчик может быть избавлен от знания о количестве клоков?

Извиняюсь за отклонение от темы.

Пока нет привязки к железу можно и не знать о их количестве (это про клоки).

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

 

P.S. насчет предложенного мной костыля - посмотрел свои последние проекты и понял, что уже не пользуюсь им (т.е. костылем) - "лишние" клоки и так не появляются... то ли синтезаторы образумились, то ли не пользуюсь опасными конструкциями.... Так что, может быть у вас не спроста "лишние" клоки?

Изменено пользователем Gothard

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Скажите, в каком стиле, на каком языке и какого рода пишутся проекты, в которых разработчик может быть избавлен от знания о количестве клоков?

Могу, конечно, и заблуждаться, но я считаю, что в ПЛИС должно быть минимум разных 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 вход триггера.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И еще достал этот компилятор игнорировать мои указания на неиспользование глобальных линий теми или иными сигналами. Сапр 10.1 со всеми паками

Извиняюсь, но прочитав еще раз вопрос, мне показалось, что я его не так понял.

Поясните - речь идет о синхросигналах, которые надо провести не по глобальным цепям, или о том, что синтезатор порождает дополнительные синхросигналы?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну почитал выше, а вы не думаете что есть несколько высокоскоростных асинхронных интерфейсов (в данном случае 4), еще лвдс в оба направления, еще QRD SRAM. А буфмуксов всего 8... А хотелось бы хоть 12

 

А для лвдс и срам надо бы еще и сдвинутые по фазе клоки-вот и посчитайте сколька надо. Тут синтезатор уже ниче не сделает. Нужна инфа чтоб констрейнить клоки, которые не на глобальных линиях и сигналы. Клоки доходят до 125 - 250 МГц и при том по обеим фронтам

 

И еще у интерфейсов клоки на прием и передачу с физуровня, то есть входные и к тому же разные. Не я проектировал систему-я только программирую фпга

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну почитал выше, а вы не думаете что есть несколько высокоскоростных асинхронных интерфейсов (в данном случае 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. Если оно меньше, чем предельное для кристалла, то задержки рассчитанные для Вашей температуры будут меньше обычных для предельного случая.

 

Ну вот, если по быстрому, токак-то так.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...