|
|
  |
Можно ли победить Timing Errors, На глобальном клоке 400МГц |
|
|
|
Jan 30 2012, 16:13
|
Профессионал
    
Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770

|
Цитата(TABKP @ Jan 30 2012, 17:28)  И его еще дорабатывать сильно надо, но при добавлении чего-либо в него, количество ошибок снова растет. Еще раз: сделайте в floorplan в PlanAhead, разбейте проект на партиции - вы сможете предотвратить перемещение тех кусков проекта, которые уже размещены правильно. Цитата(TABKP @ Jan 30 2012, 17:28)  Не знаю что такое retiming. Где он включается? Register retiming, в настройках PAR. Цитата(TABKP @ Jan 30 2012, 17:28)  Осознаю, что добавление триггеров увеличивает скорость работы. Но как их добавить? В ручную через 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 ступени триггеров. Цитата(TABKP @ Jan 30 2012, 17:28)  "Мультицикловые констрейны и те, которые можно сунуть в игнор" - можно для чайника рассказать что это?? Например, вы знаете, что enable некой группы триггеров у вас по дизайну работает четко не чаще, чем раз в два такта. Вы можете пути между этими триггерами объявить в два цикла, и компилятор будет знать, что эти пути можно укладывать в 5 ns, несмотря на тактовую в 400MHz.
|
|
|
|
|
Feb 1 2012, 08:32
|
Частый гость
 
Группа: Участник
Сообщений: 90
Регистрация: 16-11-10
Пользователь №: 60 920

|
Цитата(Мур @ Jan 24 2012, 17:24)  Хочу рассказать о моем изумлении при встрече с одним уникумом, который достигал ошеломительных цифр применяя Матлаб. Он там разрисовывал макроячейку своей микросхемы и вел на основании такого элемента и её маски(для переноса!) моделирование в Матлабе. Он получал и фильтры и ФФТ на 600МГц тактовой. Сам контролировал укладку в чипе всех элементов. Интересно, а можно подробнее?
|
|
|
|
|
Feb 1 2012, 11:17
|
Частый гость
 
Группа: Свой
Сообщений: 180
Регистрация: 17-02-09
Из: Санкт-Петербург
Пользователь №: 45 001

|
Если честно, прочитал только завязку дискусии и последнюю страницу, так что может чего и пропустил. Но нет сил просто.. ) Так вот. Всё это, если честно, полный бред. И про 400МГц на V-4, и про 600(это вообще отжиг)) ). И даже фильтры на DSP не работают на таких частота, если их число больше, чем в одном столбце приходится на один фильтр. Для V-4 со скоростью -10 при 85% забитии кристалла максимум, что выжимал(хотя стараля, использовал только 2-х!! входовые мультиплексоры и т.д.) это 270 МГц. Дальше роутер начинает проводить совершенно нереальные соединения, и в итоге, ещё ухудшает времянку. Для -11, ну ещё 50 МГц - это потолок. Так что, поменьше иллюзий.
|
|
|
|
|
Feb 1 2012, 11:44
|

Знающий
   
Группа: Свой
Сообщений: 747
Регистрация: 11-04-07
Пользователь №: 26 933

|
Цитата(TRILLER @ Feb 1 2012, 15:17)  Если честно, прочитал только завязку дискусии и последнюю страницу, так что может чего и пропустил. Но нет сил просто.. ) Так вот. Всё это, если честно, полный бред. И про 400МГц на V-4, и про 600(это вообще отжиг)) ). И даже фильтры на DSP не работают на таких частота, если их число больше, чем в одном столбце приходится на один фильтр. Для V-4 со скоростью -10 при 85% забитии кристалла максимум, что выжимал(хотя стараля, использовал только 2-х!! входовые мультиплексоры и т.д.) это 270 МГц. Дальше роутер начинает проводить совершенно нереальные соединения, и в итоге, ещё ухудшает времянку. Для -11, ну ещё 50 МГц - это потолок. Так что, поменьше иллюзий. Тут на самом деле не так все просто. Про 600 МГц я думаю имели ввиду только теоретическую скорость работы небольшой или плотноуложенной схемы. Просто в V4 даже такт такой не завести. Что касается 450 МГц и фильтра на DSP, так он у меня был еще и полностью комплЕксный высокго порядка, и одно умножение занимало 4 DSP48, и 4 столбца сразу было использовано. Но и архитектура этого фильтра была не простой, использующей все возможности архитектуры, другое дело что логики практически никакой больше не было использовано, поэтому и такие цифры. Многое зависит от плотности логики и качества разводочных ресурсов. Ув. des00 утверждает что у Alter'ы с этим получше чем у Xilinx, хотя мы это еще не проверили.
--------------------
|
|
|
|
|
Feb 1 2012, 12:06
|

Знающий
   
Группа: Свой
Сообщений: 815
Регистрация: 7-06-06
Из: Харьков
Пользователь №: 17 847

|
Цитата(antsu88 @ Feb 1 2012, 11:32)  Интересно, а можно подробнее? Это было пару лет назад. Знаю, что связывался с альтерой о применении параметров маски , после чего сделал эксперимент для всех вариантов масок, чтобы убедиться в выгодности и преимущества по быстродействию при переносе. Его любимым режимом был тогда ВИЗИВИНГ(как рисую, так и разводится!). Он отслеживал расположение внутренней топологии ФПЖА, чтобы оптимально легли ответственные ножки. Речь о "столбиках"(близко расположенные макроячейки) внутри ПЛИС. Так достигалось предельное быстродействие!.. У меня на это руки не дошли,-занят был, а потом поменял работу и связь только по тлф. По праздникам.... -------- Это бомба! Колюсь... Кстати, он утверждал, что в маске весь секрет! Что пользователю не дают возможности разогнать ячейку до предельного значения быстродействия!!!!!! На самом деле это из недокументированного.... Так что его заявление о 1000МГц при встрече на осенней выставке меня не смутили.
|
|
|
|
|
Feb 1 2012, 13:21
|

Знающий
   
Группа: Свой
Сообщений: 747
Регистрация: 11-04-07
Пользователь №: 26 933

|
Цитата(TRILLER @ Feb 1 2012, 15:56)  И что, работал фильтр, занимающий 2 столбца на 400 МГц?! Извините, но не верю. Если можно, киньте усечённый кусочек( чего не жалко) на ZalilovTimur87@gmail.com). Мне было бы очень полезно. Конечно работал, собственно чему там не работать? Все элементы на этой частоте работают по даташиту, все полностью законвейерезировано было, разводочные ресурсы в основном использованы специальные, которые между DSP48 проложены. Выкладывать не буду, лень. Там половина в схематике была сделана - зеленый еще был. Цитата(des00 @ Feb 1 2012, 16:54)  как бы начали проверять в соседней теме, но народ как то не шибко этим интересуется. пример не очень удачный наверно получился у вас, не заработал из коробки. может быть еще появится какой-нибудь, я бы попробовал.
--------------------
|
|
|
|
|
Feb 2 2012, 08:12
|
Участник

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

|
Продолжим. Ошибки побеждены. Минимальный запас по setup есть. Посмотрел как 400МГц часть разложилась на кристалл - схема раскинулась аж на пол кристалла. Есть желание сделать 2 вещи: 1) создать Pblock и указать чтобы вся 400МГц часть располагалась в этом блоке 2) создать partition с 400МГц частью, чтобы раз и навсегда отладить этот кусок и не зависеть от того как будет написана остальная часть проекта
Читаю мануал к PlanAhead. Прочитал Hierarchical_Design_Methodology_Guide и PlanAhead_Tutorial_Design_Preservation. Да, и видео посмотрел с оф. сайта. Вроде все просто, но применить эти знания не могу. Не могу понять как выделить нужные компоненты проекта для создания partition - если коры идут отдельным списком, то компоненты написанные мной на VHDL автоматичеки разбиваются на примитивы. Нужно все примитивы компонента выискивать?
|
|
|
|
|
Feb 2 2012, 15:58
|
Участник

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

|
Разобрался. В настройках компилятора в ISE надо галку поставить keep hierarchy. Создал один единственный компонент внутрь которого запихнул все, что связано с 400МГц. Pblock создал. Плохо что нельзя его создавать произвольным по форме - у меня почти все DSP48 использованы, поэтому блок получился длиной почти на вест кристал. После имплемента получил запас по setup 32пС. Затем этот же модуль назначил как partition. Снова сдела имплемент - и получил запас по setup равным 0. Это почему так? Ну да ладно. Нажал remote partitions. Вроде как должен был создаться компонент для вставки в свой проект, но я так и не понял где он и как его вставить в общий проект. Подскажите!
|
|
|
|
|
Feb 2 2012, 17:09
|
Профессионал
    
Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643

|
Приветствую! Цитата(TABKP @ Feb 2 2012, 17:58)  Плохо что нельзя его создавать произвольным по форме - у меня почти все DSP48 использованы, поэтому блок получился длиной почти на вест кристал. После имплемента получил запас по Почему нельзя - все можно - просто задаете несколько прямоугольников для одного pblock (Add Pblock rectange) можно даже не перекрывающихся. Так можно нарисовать какую угодно форму. Причем необязательно чтобы в контур для LUT попадали все DSP или BRAM - это независимые друг от друга контуры Удачи! Rob.
|
|
|
|
|
Feb 3 2012, 06:35
|
Участник

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

|
Так и не понимаю как сформированный partition из PlanAhead вставить обратно в ISE проект
|
|
|
|
|
Feb 3 2012, 07:57
|
Участник

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

|
В UCF файле появился только констрейм AREA_GROUP, который относится к Pblock. А как с partition то быть. Мне надо чтобы модуль на 400МГц стал черным ящиком с неизменным размещением примитивов на кристалле. Кстати при попытке скомпилировать в ISE тот же проект с новым UCF (добавлен только AREA_GROUP) - ISE выдал что недостаточно ресурсов, в то время как Planahead нормально развел. Чудеса.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|