des00 25 30 января, 2012 Опубликовано 30 января, 2012 · Жалоба Не знаю что такое retiming. Где он включается? это разрешение синтезатору, мапперу, фитеру передвигать регистры, которые вы уже описали в коде, между слоями логики, для обеспечения быстродействия. Штука полезная, но порой опасная. "Мультицикловые констрейны и те, которые можно сунуть в игнор" - можно для чайника рассказать что это? мультициклы Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DmitryR 0 30 января, 2012 Опубликовано 30 января, 2012 · Жалоба И его еще дорабатывать сильно надо, но при добавлении чего-либо в него, количество ошибок снова растет. Еще раз: сделайте в floorplan в PlanAhead, разбейте проект на партиции - вы сможете предотвратить перемещение тех кусков проекта, которые уже размещены правильно. Не знаю что такое retiming. Где он включается? Register retiming, в настройках PAR. Осознаю, что добавление триггеров увеличивает скорость работы. Но как их добавить? В ручную через FPGAEditor? Нет конечно. У вас есть код типа: always @(posedge clk) begin a<=b+c+d+e+f+g+h+i; end То есть много логики в один такт. Вы из него делаете always @(posedge clk) begin a1<=b+c; a2<=d+e; a3<=f+g; a4<=h+i; a12<=a1+a2; a34<=a3+a4; a<=a12+a34; end Добавили 2 ступени триггеров. "Мультицикловые констрейны и те, которые можно сунуть в игнор" - можно для чайника рассказать что это?? Например, вы знаете, что enable некой группы триггеров у вас по дизайну работает четко не чаще, чем раз в два такта. Вы можете пути между этими триггерами объявить в два цикла, и компилятор будет знать, что эти пути можно укладывать в 5 ns, несмотря на тактовую в 400MHz. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alxkon 0 1 февраля, 2012 Опубликовано 1 февраля, 2012 · Жалоба Хочу рассказать о моем изумлении при встрече с одним уникумом, который достигал ошеломительных цифр применяя Матлаб. Он там разрисовывал макроячейку своей микросхемы и вел на основании такого элемента и её маски(для переноса!) моделирование в Матлабе. Он получал и фильтры и ФФТ на 600МГц тактовой. Сам контролировал укладку в чипе всех элементов. Интересно, а можно подробнее? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TRILLER 0 1 февраля, 2012 Опубликовано 1 февраля, 2012 · Жалоба Если честно, прочитал только завязку дискусии и последнюю страницу, так что может чего и пропустил. Но нет сил просто.. ) Так вот. Всё это, если честно, полный бред. И про 400МГц на V-4, и про 600(это вообще отжиг)) ). И даже фильтры на DSP не работают на таких частота, если их число больше, чем в одном столбце приходится на один фильтр. Для V-4 со скоростью -10 при 85% забитии кристалла максимум, что выжимал(хотя стараля, использовал только 2-х!! входовые мультиплексоры и т.д.) это 270 МГц. Дальше роутер начинает проводить совершенно нереальные соединения, и в итоге, ещё ухудшает времянку. Для -11, ну ещё 50 МГц - это потолок. Так что, поменьше иллюзий. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dimidrol 0 1 февраля, 2012 Опубликовано 1 февраля, 2012 · Жалоба Если честно, прочитал только завязку дискусии и последнюю страницу, так что может чего и пропустил. Но нет сил просто.. ) Так вот. Всё это, если честно, полный бред. И про 400МГц на V-4, и про 600(это вообще отжиг)) ). И даже фильтры на DSP не работают на таких частота, если их число больше, чем в одном столбце приходится на один фильтр. Для V-4 со скоростью -10 при 85% забитии кристалла максимум, что выжимал(хотя стараля, использовал только 2-х!! входовые мультиплексоры и т.д.) это 270 МГц. Дальше роутер начинает проводить совершенно нереальные соединения, и в итоге, ещё ухудшает времянку. Для -11, ну ещё 50 МГц - это потолок. Так что, поменьше иллюзий. Тут на самом деле не так все просто. Про 600 МГц я думаю имели ввиду только теоретическую скорость работы небольшой или плотноуложенной схемы. Просто в V4 даже такт такой не завести. Что касается 450 МГц и фильтра на DSP, так он у меня был еще и полностью комплЕксный высокго порядка, и одно умножение занимало 4 DSP48, и 4 столбца сразу было использовано. Но и архитектура этого фильтра была не простой, использующей все возможности архитектуры, другое дело что логики практически никакой больше не было использовано, поэтому и такие цифры. Многое зависит от плотности логики и качества разводочных ресурсов. Ув. des00 утверждает что у Alter'ы с этим получше чем у Xilinx, хотя мы это еще не проверили. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TRILLER 0 1 февраля, 2012 Опубликовано 1 февраля, 2012 · Жалоба И что, работал фильтр, занимающий 2 столбца на 400 МГц?! Извините, но не верю. Если можно, киньте усечённый кусочек( чего не жалко) на [email protected]). Мне было бы очень полезно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Мур 1 1 февраля, 2012 Опубликовано 1 февраля, 2012 · Жалоба Интересно, а можно подробнее? Это было пару лет назад. Знаю, что связывался с альтерой о применении параметров маски , после чего сделал эксперимент для всех вариантов масок, чтобы убедиться в выгодности и преимущества по быстродействию при переносе. Его любимым режимом был тогда ВИЗИВИНГ(как рисую, так и разводится!). Он отслеживал расположение внутренней топологии ФПЖА, чтобы оптимально легли ответственные ножки. Речь о "столбиках"(близко расположенные макроячейки) внутри ПЛИС. Так достигалось предельное быстродействие!.. У меня на это руки не дошли,-занят был, а потом поменял работу и связь только по тлф. По праздникам.... -------- Это бомба! Колюсь... Кстати, он утверждал, что в маске весь секрет! Что пользователю не дают возможности разогнать ячейку до предельного значения быстродействия!!!!!! На самом деле это из недокументированного.... Так что его заявление о 1000МГц при встрече на осенней выставке меня не смутили. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 1 февраля, 2012 Опубликовано 1 февраля, 2012 · Жалоба Ув. des00 утверждает что у Alter'ы с этим получше чем у Xilinx, хотя мы это еще не проверили. как бы начали проверять в соседней теме, но народ как то не шибко этим интересуется. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dimidrol 0 1 февраля, 2012 Опубликовано 1 февраля, 2012 · Жалоба И что, работал фильтр, занимающий 2 столбца на 400 МГц?! Извините, но не верю. Если можно, киньте усечённый кусочек( чего не жалко) на [email protected]). Мне было бы очень полезно. Конечно работал, собственно чему там не работать? Все элементы на этой частоте работают по даташиту, все полностью законвейерезировано было, разводочные ресурсы в основном использованы специальные, которые между DSP48 проложены. Выкладывать не буду, лень. Там половина в схематике была сделана - зеленый еще был. как бы начали проверять в соседней теме, но народ как то не шибко этим интересуется. пример не очень удачный наверно получился у вас, не заработал из коробки. может быть еще появится какой-нибудь, я бы попробовал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TABKP 0 2 февраля, 2012 Опубликовано 2 февраля, 2012 · Жалоба Продолжим. Ошибки побеждены. Минимальный запас по setup есть. Посмотрел как 400МГц часть разложилась на кристалл - схема раскинулась аж на пол кристалла. Есть желание сделать 2 вещи: 1) создать Pblock и указать чтобы вся 400МГц часть располагалась в этом блоке 2) создать partition с 400МГц частью, чтобы раз и навсегда отладить этот кусок и не зависеть от того как будет написана остальная часть проекта Читаю мануал к PlanAhead. Прочитал Hierarchical_Design_Methodology_Guide и PlanAhead_Tutorial_Design_Preservation. Да, и видео посмотрел с оф. сайта. Вроде все просто, но применить эти знания не могу. Не могу понять как выделить нужные компоненты проекта для создания partition - если коры идут отдельным списком, то компоненты написанные мной на VHDL автоматичеки разбиваются на примитивы. Нужно все примитивы компонента выискивать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TABKP 0 2 февраля, 2012 Опубликовано 2 февраля, 2012 · Жалоба Разобрался. В настройках компилятора в ISE надо галку поставить keep hierarchy. Создал один единственный компонент внутрь которого запихнул все, что связано с 400МГц. Pblock создал. Плохо что нельзя его создавать произвольным по форме - у меня почти все DSP48 использованы, поэтому блок получился длиной почти на вест кристал. После имплемента получил запас по setup 32пС. Затем этот же модуль назначил как partition. Снова сдела имплемент - и получил запас по setup равным 0. Это почему так? Ну да ладно. Нажал remote partitions. Вроде как должен был создаться компонент для вставки в свой проект, но я так и не понял где он и как его вставить в общий проект. Подскажите! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 27 2 февраля, 2012 Опубликовано 2 февраля, 2012 · Жалоба Приветствую! Плохо что нельзя его создавать произвольным по форме - у меня почти все DSP48 использованы, поэтому блок получился длиной почти на вест кристал. После имплемента получил запас по Почему нельзя - все можно - просто задаете несколько прямоугольников для одного pblock (Add Pblock rectange) можно даже не перекрывающихся. Так можно нарисовать какую угодно форму. Причем необязательно чтобы в контур для LUT попадали все DSP или BRAM - это независимые друг от друга контуры Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TABKP 0 3 февраля, 2012 Опубликовано 3 февраля, 2012 · Жалоба Так и не понимаю как сформированный partition из PlanAhead вставить обратно в ISE проект Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Мур 1 3 февраля, 2012 Опубликовано 3 февраля, 2012 · Жалоба Так и не понимаю как сформированный partition из PlanAhead вставить обратно в ISE проект След вашего пребывания в PlanAhead остается в *.ucf. Все там. Тупо перенесите в редакторе... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TABKP 0 3 февраля, 2012 Опубликовано 3 февраля, 2012 · Жалоба В UCF файле появился только констрейм AREA_GROUP, который относится к Pblock. А как с partition то быть. Мне надо чтобы модуль на 400МГц стал черным ящиком с неизменным размещением примитивов на кристалле. Кстати при попытке скомпилировать в ISE тот же проект с новым UCF (добавлен только AREA_GROUP) - ISE выдал что недостаточно ресурсов, в то время как Planahead нормально развел. Чудеса. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться