v_mirgorodsky 0 26 сентября, 2006 Опубликовано 26 сентября, 2006 · Жалоба Есть ActiveHDL 7.1, Synplify 8.4 и Quartus 5.1. Все это хозяйство используется для создания firmware для EP2C8F256. На ранних стадиях проекта все было хорошо, поскольку синтезировались/компилировались только небольшие части всей системы. Ближе к завершению все больше и больше блоков подключается в финальную сборку для отработки вопросов совместного функционирования в пределах всей системы и все больше и больше времени уходит на компиляцию. Проект, как обычно, затянут констрейнами по самое "не могу". Синтез Synplify занимает, обычно, до 5 минут, раскладка в чип Quartus'ом - еще 20 минут. Попытки включить инкрементальную компиляцию в Quartus приводят просто к невыполнению требований по рабочим частотам. В теории, с этим можно было жить - сильно страдает эффективность работы, но сама работа не останавливается. Однако пару часов назад Synplify "подарил" еще один подарок. На пятом десятке исходных файлов он начал ругаться на переполнение внутренних таблий маппера и вылетать с критической ошибкой. Попытка синтезировать части проекта Synplify, а окончательную сборку производить самим Quartus из ранее генеренных VQM ни к чему не привела - VQM пересекаются по именам используемых примитивов, а это в свою очередь выводит Quartus из душевного равновесия. Конечно, можно ручками поменять названия нескольких примитивов в VQM'ах и добиться сборки проекта, однако это отнимает значительную часть времени и не всегда безопасно, поскольку контекстный поиск и замена одних имен на другие может сработать не правильно. Да и сборка проекта из VQM результируется в увеличении занимаемых ресурсов, поскольку Quartus все же не так эффективно вырезает "лишнюю" логику из проекта. Что-то подсказывает, что мы что-то делаем неправильно. EP2C8F256 - не самая большая микросхема, а рабочая станция на P4 3GHz с гигом памяти на борту не самый медленный компьютер. Во время компиляции Quartus использует порядка 800МБ памяти и дисковый своп не трогает, т.е. на данном этапе увеличение количества памяти ни к чему не приведет. Использование двухпроцессорных конфигураций также бессмысленно, поскольку компиляция в Quartus однопоточная. Возможно, ситуацию может улучшить новый Core 2. Изучая его микроархитектуру в своей программистской ипостаси мне очень понравились его растактовки по машинным инструкциям и возможностям параллелизма вкупе с внеочередным исполнением инструкций. Да и мой кодек, оптимизированный под P4, показал более чем двойное увеличение увеличение производительности на Core 2 на каждом ядре. Может и Quartus'у с Synplify'ем полегчает? Вот, собственно, и вопросы: 1. Кто как борется с большими проектами - более 6-7 тысяч логических ячеек для чипов Altera? 2. Кто какое железо использует под разработкой и есть ли реальные впечатления от использования Core 2? 3. Как помирить Synplify с большим количеством файлов исходников? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 17 26 сентября, 2006 Опубликовано 26 сентября, 2006 · Жалоба Синтез Synplify занимает, обычно, до 5 минут, раскладка вчип Quartus'ом - еще 20 минут. И вы называете это большим проектом??? На пятом десятке исходных файлов Что ж так много-то? Может, вам пересмотреть структуру проекта? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 26 сентября, 2006 Опубликовано 26 сентября, 2006 · Жалоба Вот, собственно, и вопросы: 1. Кто как борется с большими проектами - более 6-7 тысяч логических ячеек для чипов Altera? 2. Кто какое железо использует под разработкой и есть ли реальные впечатления от использования Core 2? 3. Как помирить Synplify с большим количеством файлов исходников? У меня сейчас 9К ячеек. Все собирается за 10 с половиной минут (синтез+фиттер+фссемблер+тайминг-аналайзер). Машина состоит из двух 275-х оптеронов и 4 гига памяти. Квартус 64-битный. Синплифи не используется в принципе, ибо ничего полезного не дает. И это разве большой проект? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
v_mirgorodsky 0 26 сентября, 2006 Опубликовано 26 сентября, 2006 · Жалоба У меня сейчас 9К ячеек. Все собирается за 10 с половиной минут (синтез+фиттер+фссемблер+тайминг-аналайзер). Машина состоит из двух 275-х оптеронов и 4 гига памяти. Квартус 64-битный. Так 64-битный Квартус дает существенный выигрыш по быстродействию? А под какой ОС собираете? У нас тоже можно добиться 10 минут, если повыключать оптимизацию Квартуса - особенно много занимает комбинаторный ресинтез и ретайминг регистров. Однако проект после этого не работает на требуемых частотах. У нас используется самый медленный чип семейства, а рабочие частоты все в районе 130MHz. Вот и приходится извращаться с оптимизацией и ресинтезом. Синплифи не используется в принципе, ибо ничего полезного не дает. У нас проект синтезированный с VHDL Квартусом разгоняется до 125MHz, то же самое после Synplify - 130 с лишним. После имплементации Quartus only занимает в среднем на 5-10% ячеек больше, чем после Synplify. Ну не умеет Quartus нормально синтезировать VHDL :cranky: Что ж так много-то? Может, вам пересмотреть структуру проекта? Устройство большое, или скорее, разноплановое. Обычно мы стараемся в одном файле размещать не более одного entity, но даже и в этом случае средний размер файла редко меньше 10-15kB - ну болтливый язык VHDL - ну что с ним сделаешь ;) И вы называете это большим проектом??? Может быть он и маленький, но опыта работы с более крупными у нас еще не было. Потому и пытаемся научиться. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 26 сентября, 2006 Опубликовано 26 сентября, 2006 · Жалоба Так 64-битный Квартус дает существенный выигрыш по быстродействию? А под какой ОС собираете? У нас тоже можно добиться 10 минут, если повыключать оптимизацию Квартуса - особенно много занимает комбинаторный ресинтез и ретайминг регистров. Однако проект после этого не работает на требуемых частотах. У нас используется самый медленный чип семейства, а рабочие частоты все в районе 130MHz. Вот и приходится извращаться с оптимизацией и ресинтезом. ОС FC4 x86_64 smp. Проц я перепутал - оптероны 270-е, а не 275. 64 битный квартус дает у меня увеличение скорости где-то в 1.3-1.5 раз по сравнению с 32-битным на той же платформе. А хотите использовать синтезатор квартуса в полную силу - так таймквест включите. Вроде должен все констрейны упихать. И при этом физические оптимизации возможно удасться не использовать. Я им не пользуюсь, так как мне скорость пофигу, у меня просто проверка функциональности перед запихиванием в asic. З.Ы. Включил все ресинтезы, дупликации и ретайминги - стало на 3.5 минуты дольше. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
v_mirgorodsky 0 26 сентября, 2006 Опубликовано 26 сентября, 2006 · Жалоба Я им не пользуюсь, так как мне скорость пофигу, у меня просто проверка функциональности перед запихиванием в asic.А вы попытайтесь его еще по частоте "нагнуть" почти до насыщения выбранного семейства, и удовольствие превратится в ниже среднего - будет тех самых 20 минут а то и больше. Да и используемый вами Stratix это все таки машинка немного другого порядка нежели Cyclone II. Если я правильно вас понял, то никаких фичей типа инкрементальной компиляции или back-annotation использовать не получается? Жаль, поскольку в документации обещают серьезное уменьшение времени компиляции без ухудшения результатов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 26 сентября, 2006 Опубликовано 26 сентября, 2006 · Жалоба А вы попытайтесь его еще по частоте "нагнуть" почти до насыщения выбранного семейства, и удовольствие превратится в ниже среднего - будет тех самых 20 минут а то и больше. Да и используемый вами Stratix это все таки машинка немного другого порядка нежели Cyclone II. Если я правильно вас понял, то никаких фичей типа инкрементальной компиляции или back-annotation использовать не получается? Жаль, поскольку в документации обещают серьезное уменьшение времени компиляции без ухудшения результатов. Попытался - так что констрейны не сошлись. Время почти не изменилось. Использую я на данный момент циклон (не 2), а не стратикс. Инкрементальная компиляция вкупе с LogicLock и партишенами работает на ура и без проблем, но я не юзаю, меня на таких небольших проектах все устраивает и без них. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 26 сентября, 2006 Опубликовано 26 сентября, 2006 · Жалоба хмм а что нибудь вроде Modular design или RPM в альтере нет ? развести блок 1 раз, записать размещение, и потом он не будет переразводиться :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 17 26 сентября, 2006 Опубликовано 26 сентября, 2006 · Жалоба Что ж так много-то? Может, вам пересмотретьструктуру проекта? Устройство большое, или скорее, разноплановое. Ну и что? Но, по-моему, пять десятков файлов --- это многовато для такого дизайна. Обычно мы стараемся в одном файле размещать не более одного entity, Правильно. но даже и в этом случае средний размер файла редко меньше 10-15kB - ну болтливый язык VHDL - ну что с ним сделаешь ;) Это вообще ни при чем. Кого интересует размер файла? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 26 сентября, 2006 Опубликовано 26 сентября, 2006 · Жалоба хмм а что нибудь вроде Modular design или RPM в альтере нет ? развести блок 1 раз, записать размещение, и потом он не будет переразводиться :) Я же только что написал - LogicLock с партишенами. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
maior 0 26 сентября, 2006 Опубликовано 26 сентября, 2006 · Жалоба ...пару часов назад Synplify "подарил" еще один подарок. На пятом десятке исходных файлов он начал ругаться на переполнение внутренних таблий маппера и вылетать с критической ошибкой. ..... ....Как помирить Synplify с большим количеством файлов исходников? Было подобное, изучил проблему, пришел к выводу, что все версии Синплифай начиная с 8.0 и вплоть до 8.5 имеют багов больше чем "дозволено". Вероятность их проявления как раз тем выше, чем сложнее проект (мои проекты действительно были сложными со всех точек зрения!). Нормальная версия Синплифай (допустимое количество багов) - 8.6.1. С ней пока проблем нет. Алдек также нужно проапгрейдить в соответствии с используемыми версиями Синплифай и Квартус (библиотеки, design flow). Несколько проектов перевел на Квартус 6.0сп1. Проблем нет, похоже, PAR идет на ~20% быстрее. Да, использую Windows. Проекты на Стратиксах. Если проект на верилоге - от хорошо разводится одним Квартусом (и синтез, и PAR). Если на VHDL - лучше использовать сторонний синтезатор. Но у шестого VHDL стал также лучше (имхо, подробно проверить это еще не было возможности). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 26 сентября, 2006 Опубликовано 26 сентября, 2006 · Жалоба Вот ради интереса отбросил в сторону лень, написал SDC к проекту, включил таймквест, задал партиции и логиклок регионы - и тайминги стали такими, какими никогда не были, и время компиляции сократилось. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Styv 0 9 октября, 2006 Опубликовано 9 октября, 2006 · Жалоба Вот ради интереса отбросил в сторону лень, написал SDC к проекту, включил таймквест, задал партиции и логиклок регионы - и тайминги стали такими, какими никогда не были, и время компиляции сократилось. А можно поподробнее как это Вы делаете? Желательно по шагам. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hobgoblin 0 29 марта, 2007 Опубликовано 29 марта, 2007 · Жалоба Добрый день. Возник вопрос, частично перекликающийся с этой темой. Нужно выбрать компьютер для создания больших проектов под Virtex 4 в ISE. Посоветуйте, какое лучше взять железо, если работать под XP, чтобы синтез с моделированием работали пошустрей. И может быть, есть какие-то другие варианты связок операционка-железо-софт, дающие оптимальное время синтеза/моделирования. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Doka 4 29 марта, 2007 Опубликовано 29 марта, 2007 · Жалоба hobgoblin написаное тут применимо к теме (только надо учесть что ISE не поддерживает многопроцессорность) ЗЫЖ хотя многие средства для ASIC/FPGA это уже умеют Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться