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

ISE10.1 не хватает памяти

Во время синтеза проекта выполняемого на кристалле семейства Виртекс5 с завидной частотой вываливается ошибка, типа:

ERROR:Portability:3 - This Xilinx application has run out of memory or has encountered a memory conflict. Current memory usage is 3139152 kb. You can try increasing your system's physical or virtual memory. For technical support on this issue, please open a WebCase with this project attached at http://www.xilinx.com/support.

 

Поковырял xilinx.com, сказали, что надо в boot.ini поставить /3GB для увеличения виртуальной памяти для WindowsXP. Увеличил, результат тот же(выше как раз тот случай). ОЗУ в системе - 4GB. Может кто подскажет, c этим надо мириться или есть какие-то пути решения проблемы?

 

Кстати, а pagefile.sys - это виртуальная память? И чем она отличается от той, которую пользует ISE?

Прошу сильно не пинать на предмет - не там/не то написал или не обратился к специалисту, хотелось просто услышать совета.

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


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

Возможно на диске С мало места для виртуальной памяти...

В настройках компа можно задать больше объем или указать другой диск...

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


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

Возможно на диске С мало места для виртуальной памяти...

В настройках компа можно задать больше объем или указать другой диск...

 

Указывал, не спасает. В распоряжении имеются разделы по 100GB и больше. Ругается именно на ограничение виртуальной памяти прописываемой в буут.ини. Ставишь 3GB, пишет - мало 3GB, убираешь, пишет - мало 2GB.

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


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

Указывал, не спасает. В распоряжении имеются разделы по 100GB и больше. Ругается именно на ограничение виртуальной памяти прописываемой в буут.ини. Ставишь 3GB, пишет - мало 3GB, убираешь, пишет - мало 2GB.

 

Либо глюк синтезатора, либо реально мало 3 Гб. Больше чем 3 - сделать никак не удасться, ограничение системы по адресному пространству на один процесс. Единственный вариант - переходить на 64-разрядную платформу.

А какой емкости кристал и на сколько он в итоге заполняется? Где-то у них табличка была как раз на этот счет - необходимый объем памяти в зависимости от используемого кристалла.

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


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

Единственный вариант - переходить на 64-разрядную платформу.
Ну почему единственный? Можно разбить на модули и синтезировать их по отдельности. Верхний уровень будет собой представлять кучу black box'ов и соединений между ними.

 

Если синтезатору требуется больше 3Г памяти, то проект большой. Раздельный синтез -- это в любом случае разумный вариант. Сокращает время синтеза после изменения в одном модуле. Пересинтезировать нужно будет только его, а не весь дизайн.

 

Только в GUI этого не сделать. Тут рулит make.

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


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

Либо глюк синтезатора, либо реально мало 3 Гб. Больше чем 3 - сделать никак не удасться, ограничение системы по адресному пространству на один процесс. Единственный вариант - переходить на 64-разрядную платформу.

А какой емкости кристал и на сколько он в итоге заполняется? Где-то у них табличка была как раз на этот счет - необходимый объем памяти в зависимости от используемого кристалла.

 

Есть небольшая корелляция с размером кристалла. Ставил vlx330 - пореже выпадает, ставил vlx85 - почаще. Проект пока занимает порядка 22000 LUT, FF порядка 1000, что для vlx330, кажется порядка 10-15%. Табличку видел, там вроде требуется не более 1,5GB, даже, кажется в пике.

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


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

Во время синтеза проекта выполняемого на кристалле семейства Виртекс5 с завидной частотой вываливается ошибка, типа:

ERROR:Portability:3 - This Xilinx application has run out of memory or has encountered a memory conflict. Current memory usage is 3139152 kb. You can try increasing your system's physical or virtual memory. For technical support on this issue, please open a WebCase with this project attached at http://www.xilinx.com/support.

 

Примерно то же самое было, но под linux.

Пока проект был на высоком уровне (без использования примитивов и RLOC-ов) - то все ise10 синтезировалось. В модели все работало как надо. Но map-илось и par-илось криво - времянки не соответствовали ТЗ (xс3s4000, один их модулей с почти регулярной структурой объемом ~60% кристалла). Обконстрейнивание не помогло.

Переписали с использованием примитивов и uset и rpm - синтезирование стало вываливаливаться по out of memory. Смена чипсета (с честной поддержкой 4GB) и увеличение памяти до 4GB не помогли, подкручивание ядра linux также не помогло. Пришлось переползать на x86_64. В результате все заработало, но при этом xst при синтезировании отжирал чуть больше 5GB (физическая + своп).

 

ИМХО, x86_64 (под windows или linux) спасут. Или писать на более высоком уровне абстракции, положившись на синтезатор, мапер и иже с ними.

 

ЗЫ: Сейчас сменили платформу на i7 и памяти воткнули 12G (планок по 4GB не нашли :), linux x86_64 поставили и перешли на ise11 - проект собирается около часа. В железе работает в соответствии с ТЗ.

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


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

Вот только в пятницу долбался с V5LX85T: что-то мой микроскопический проект, синтезирующийся обычно около 30 секунд вдруг стал синтезироваться более 10 минут... в результате получил следующее - XST от ISE 10.1SP3 крайне плохо реагирует на память, описанную как двойной массив Std_Logic_vector (без разницы, описать «это» как одномерный массив одномерных массивов, или описать как двухмерный массив).

1. Как оказалось правильно надо описывать так: работу с внешними индексами описывать через for - generate, тогда можно обойтись внутри этого for уже одномерными массивами.

2. Уход от прямой двухмерной адресации (к for-generate с груде одномерных массивчиков) уменьшил объём потребляемой памяти на 40Мб, на каждом двухмерном массиве (и соответственно время синтеза).

3. Если приписать начальные значения регистру (который должен быть при синтезе воспринят как выходной регистр блочного ОЗУ) при двухмерной адресации, то на каждый двухмерный массив, XST сожрёт еще по 200Бм ОЗУ (и кучу времени). В то же время, если использовать for-generate и кучку одномерных массивов (в которых присутствуют начальные значения выходных триггеров), то на XST это никак не отражается (и ОЗУ он жрёт столько же, как и без начальных условий, и синтезирует такое же время).

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


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

А у меня с той же ошибкой вываливается PAR :crying: . Попробую ограничение вирт. памяти в 3Гб прописать. Чип - Virtex5 lx330t. Да и вообще наверно пора на 64-разрядные ОС мигрировать.

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


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

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

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

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

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

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

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

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

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

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