irum4 0 17 января, 2005 Опубликовано 17 января, 2005 · Жалоба При больших проектах моделирование превращается в безделье в ожидании результата, а если допустил ошибку, начинаеш все сначала. Увеличение мощности машини к ощутимому результату не приводит. Какие варианты ускорения моделирования? Слышал, что у Альдека есть плата для аппаратного ускорения моделирования с программной поддержкой, но просят за нее как за "рідну маму" :blink: Как кто выходит из ситуации? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ilya79 0 17 января, 2005 Опубликовано 17 января, 2005 · Жалоба В свое время тоже очень интересовался, но запросили 130 тыс $ и желание сразу пропало :) Как я понял в этих платах от Aldec стоят Virtex-ы и ту часть проекта которую вы отладили в симуляторе синтезируется (кстати необходим ISE) и загоняется в железку. Оставшийся проект в симуляторе общаеться с этим модулем через PCI (т.е. он уже не моделируеться симулятором). Выходим из ситуации очень просто ChipScope :( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 214 17 января, 2005 Опубликовано 17 января, 2005 · Жалоба В свое время тоже очень интересовался, но запросили 130 тыс $ и желание сразу пропало :) Как я понял в этих платах от Aldec стоят Virtex-ы и ту часть проекта которую вы отладили в симуляторе синтезируется (кстати необходим ISE) и загоняется в железку. Оставшийся проект в симуляторе общаеться с этим модулем через PCI (т.е. он уже не моделируеться симулятором). <{POST_SNAPBACK}> Это получается что-то похожее на Synplicity Identify, т.е. RTL debuger, только завернутый в красивую упаковку и со всеми приятными дополнениями в виде платы. Дело, конечно хорошее, но не совсем то, о чем был первоначальный вопрос. Что касается решения проблемы времени моделирования, то я тоже сталкивался с подобной проблемой, когда запускаешь процесс и идешь пить чай. ;) Единственное решение, которое я нашел для себя (ввиду недоступности аппаратных ускорителей) - модульность проекта. В этом случае можно установив четкие межмодульные интерфейсы моделировать модули по отдельности. А это требует куда меньше времени на одну итерацию моделирования при поиске ошибки. К тому же искать ошибку в одном модуле гораздо проще, чем в проекте. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
one_man_show 0 17 января, 2005 Опубликовано 17 января, 2005 · Жалоба Согласен с makc, я тоже стараюсь разбивать проект на отъемлимые части, которые можно тестировать независимо. Но, как показывает практика, и с ними приходится "долго пить чай". Поэтому в последнее время приглядывался к Наноборд от Альтиум, но она гадость дороговата ($1200 в Москве). Потом остановился на облегченной версии за $100 (с доставкой вышло чуть дороже). Там варианты либо Циклон либо Спартан-3. Хотя не все так гладко, как хотелось бы, но все-таки на железе проверяешься. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 214 17 января, 2005 Опубликовано 17 января, 2005 · Жалоба to one_man_show Посмотрел на НаноБорд... Итересный инструмент, но я не очень понял, чем она может сильно помочь в реальной разработке. Да, на ней можно реально попробовать свой проект для FPGA, но ведь все-равно этот проект будет работать в другом окружении на реальной плате... Так может быть на этой плате развести разъем под JTAG и пользоваться инструментами типа ChipScope и Identify? Ведь в этом случае будет возможность отлаживать проект в реальных условиях, которые к в конце концов и являются целью. Понимаю, что развести JTAG не всегда возможно и/или хочется. Но без него, как без последовательного порта при отладке микроконтроллера - никакой отладочной информации, отладка "вслепую". :glare: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
3.14 0 17 января, 2005 Опубликовано 17 января, 2005 · Жалоба to maks Я правильно понял. Вы предлагаете оставлять в проекте нужные модули и симулировать. Если так, оно конечно логично, но не учитывает специфики физического размещения, иными словами годится только для функционального моделирования. А само функциональное моделирование и без разделения шустро считается. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
one_man_show 0 17 января, 2005 Опубликовано 17 января, 2005 · Жалоба To makc ПЛИС, установленную на Наноборд, можно иногда использовать как имитатор платы, на котороц будут Ваши компоненты, в том числе и другие ПЛИС. То есть Вы как бы в проекте ПЛИС рисуете будущую плату, в качестве обрамления используете не только необходимые для проекта компоненты, но и виртуальные измерительные инструменты: типа анализатора, генератора и т.п. Таким образом можно обкатать фрагмент большого проекта. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 214 17 января, 2005 Опубликовано 17 января, 2005 · Жалоба to maks Я правильно понял. Вы предлагаете оставлять в проекте нужные модули и симулировать. Если так, оно конечно логично, но не учитывает специфики физического размещения, иными словами годится только для функционального моделирования. А само функциональное моделирование и без разделения шустро считается. <{POST_SNAPBACK}> А если модули закрепить? ;) Что касается быстродействия функционального моделирования, если я правильно понят, то именно о проблеме с ним и был первоначальный вопрос по этой теме. Поэтому и было сказано про разделение. А уж на каком уровне и с какими условиями - нужно выбирать в зависимости от задачи. 2 one_man_show ПЛИС, установленную на Наноборд, можно иногда использовать как имитатор платы, на котороц будут Ваши компоненты, в том числе и другие ПЛИС. Не только можно, но и нужно. Только в определенных случаях может возникнуть проблема, что создание имитатора само по себе является по сложности такой же задачей, что и создание отлаживаемого устройства. А это тупик, т.к. становится непонятно, кто кого проверяет и как. :) К тому же все равно остается проблема репрезентативности полученных результатов... :huh: То есть Вы как бы в проекте ПЛИС рисуете будущую плату, в качестве обрамления используете не только необходимые для проекта компоненты, но и виртуальные измерительные инструменты: типа анализатора, генератора и т.п. Таким образом можно обкатать фрагмент большого проекта. Это-то все как раз понятно... :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
3.14 0 17 января, 2005 Опубликовано 17 января, 2005 · Жалоба to maks <А если модули закрепить? ;) > Я уже высказывался по этому поводу (думаю именно по этому смайлик). <Что касается быстродействия функционального моделирования, если я правильно понят, то именно о проблеме с ним и был первоначальный вопрос по этой теме.> Уш не знаю что это за проект, у которого функциональное моделирование занимает десятки минут, во всяком случае о моделировании его с PAR точно не имеет смысла (на пару порядков ввремя моделирования увеличится). Посему уверен на 99.99% что вопрос как раз о моделировании с PAR. Теперь соображение по поводу аппаратных ускорителей. Интересно, как там дела обстаят с "$task" типа "setup" "hold"? Склонен думать, что они просто "херятся", а это ОЧЕЬ ВЕРИ БЕД!!! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Troosh 0 17 января, 2005 Опубликовано 17 января, 2005 · Жалоба Недавно читал: А.Г. ЕРМОШКИН. Методы повышения быстродействия низкоуровневых моделей вычислительных комплексов, проектируемых с использованием ПЛИС. - "Высокопроизводительные вычислительные системы и микропроцессоры" - сборник научных трудов ИМВС РАН, 2003 г., стр. 111-118. (pdf - 183 KБ). http://www.imvs.ru/imvs/collect/2003/111_118.pdf Ссылка со страницы: http://www.mcst.ru/mcst/pub.shtml Удачи. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
irum4 0 17 января, 2005 Опубликовано 17 января, 2005 · Жалоба Ух ты! :w00t: И не ожидал такого оживленного обсуждения :) Теперь уточню по сути. Плату от Альдека мне правда предлагали не 130к$, а за 25к$. Обещали увеличение скорости моделирования в 7-10 раз. ChipScope и ему подобные я еще использовал, возможно оно и поможет сути дела. А теперь по сути. Делаем мы сейчас разработку. В ней на нескольких платах 13 300-х Виртексов(меньше нельзя) + SDRAM(пару десятков) + SRAM+LVDS+кабеля и т.д. Процессоров только нет. Слава Богу :) Понятно, что каждый проект откатывается на модели отдельно, более того каждый модуль моделируется. НО! Когда начинаеш собирать все вместе в проекте, начинаеш ловить нестыковки.А после этого хотелось бы и еще всю схемищу отмоделировать, между Виртексами тоже куча обратных связей, тем более что разработчик не один. Речь не идет даже об временном моделировании(это предел мечтаний), хотя LVDS-ы и кабеля(5нс на 1м) я учитываю при моделировании, хотя-бы функционалка проходила побыстрее. Теоретически такую разработку можно было бы сделать до изготовления плат. Да и отладка на реальном железе велась бы пошустрей. Теперь соображение по поводу аппаратных ускорителей. Интересно, как там дела обстаят с "$task" типа "setup" "hold"? Склонен думать, что они просто "херятся", а это ОЧЕЬ ВЕРИ БЕД!!! <{POST_SNAPBACK}> OOPS А что это такое Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
s_yakov 0 17 января, 2005 Опубликовано 17 января, 2005 · Жалоба 2 one_man_show Не только можно, но и нужно. Только в определенных случаях может возникнуть проблема, что создание имитатора само по себе является по сложности такой же задачей, что и создание отлаживаемого устройства. А это тупик, т.к. становится непонятно, кто кого проверяет и как. :) К тому же все равно остается проблема репрезентативности полученных результатов... :huh: К тому же сам такой имитатор также подлежит верификации и (возможно) метрологической аттестации. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
3.14 0 17 января, 2005 Опубликовано 17 января, 2005 · Жалоба to irum4 и maks Мда, никак не свыкнусь с мыслью, что люди все разные :), а так же их задачи и методы. Мне и в голову не приходило, что для FPGA кто то функциональный анализ делает (искренне каюсь) :). to irum4 А в деталях. На чем и как симулируете? Я так полагаю прикрутили в ModelSim (ActiveHDL) модельки периферии и крутите? <OOPS А что это такое > В Verilog модели (конечно это есть и в VHDL) есть часть задающая ограничения на время установления данных перед тактовым сигналом, время удержания данных после прихода тактового, и т.п. При работе, симулятор проверяет истинность этих ограничений и в случае нарушения подставляет "Х" (в простонародье метастабильность) , чем иногда усложняет жизнь (просто так "синхронизатор" не описать) ;), ну и соответственно в лог файле то же будут присутствовать ошибки и варнинги. Продолжая тему "железячного" моделирования. Я не представляю посредством чего возможен детектор метастабильности. Ведь в реальном устройстве нет "Х", разве что статистику собирать, но это совсем не просто да и долго. Потом, симуляция осуществляется для наихудшего случая (наименьшее напряжение питания, наибольшая температура), а заменяя симулируемую логику на моделируемую, мы избавляем себя от сего блага, еще присутствует технологический разброс... Я даже не говорю о том, что в Виртексной логике мало смысла моделировать Спартановскую, в силу следующего соображения. Все это говорит в пользу того, что подобные платы предназначены для ускорения функционального анализа, извините меня за такой вывод, если сам производитель пишет это здоровыми черными буквами. Теперь о своей "близкотелой" рубашке ;) У меня другая загвоздка при симуляции. Мы даже и не пытаемся симулировать работу блока, проще проверить на опытном образце (это я не к тому, что они такие сложные, просто такой уклад проектирования). Но собственные модули я стараюсь тестировать. Тлько всегда приходится выбирать, тратить время на нормальный тест или просто проверять в железе. В настоящее время выходит примерно так. Во время интенсивной работы над модулем, тестбенчами практически не пользуюсь, очень долго выходит (не считая времени создания заковыристого теста) симуляция на уровне PAR-а, проще тестировать "на месте". А вот когда все близко к устаканиванию, тогда следует погонять на тестбенчах для успокоения. Наверняка Вы и сами пробовали такие эксперименты: Смотриш по отчету PAR, такой то модуль (например умножитель) в "PERIOD" не вписывается % на 10-30. В железе как правило все ОК. Ради эксперимента создаеш тестик, пропускаеш тестовые значения, в моем случае, подставляемые в ручную 10 значений сосчитались правильно, а вот если подавать большую последовательность случайных чисел, тогда ошибки появятся. Вышеописанный пример я привел в пользу того, что нормальный тест - совсем не простое занятие и времени на его создание зачастую уходит гораздо больше. Вы, я думаю и сами знаете, просто наболело ;). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jodan 0 12 мая, 2005 Опубликовано 12 мая, 2005 · Жалоба Раз уж уже затронули тематику HES'ов от Алдека. Работал я с нимим, приятная штучка, должен заметить. Для малых проектов, конечно, смысла брать ее нет, да и, в принципе, зачем (25 тонн денюжек для баловства мало кто выделит), а вот на больших, очень даже ничего. В особенности после выпуска нового ДВМ с новой же дотебоард, поддерживается до 6 Гиг реальных моделей памяти (в железе). Попробуйте ка промоделить 6 Гиг сдрама, да симулятор просто загнется. И опять же возможность переходить на хард клок и прогонять весь проект не в режиме симуляции, а в режиме реальной работы (до 66 МГц) тоже приятный довесок. Получаешь a La девелопинг боард неотходя от кассы :) В общем, как говорится, кусочек счастья, за ваши деньги ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
irum4 0 12 мая, 2005 Опубликовано 12 мая, 2005 · Жалоба Раз уж уже затронули тематику HES'ов от Алдека. Работал я с нимим, приятная штучка, должен заметить. Для малых проектов, конечно, смысла брать ее нет, да и, в принципе, зачем (25 тонн денюжек для баловства мало кто выделит), а вот на больших, очень даже ничего. В особенности после выпуска нового ДВМ с новой же дотебоард, поддерживается до 6 Гиг реальных моделей памяти (в железе). Попробуйте ка промоделить 6 Гиг сдрама, да симулятор просто загнется. И опять же возможность переходить на хард клок и прогонять весь проект не в режиме симуляции, а в режиме реальной работы (до 66 МГц) тоже приятный довесок. Получаешь a La девелопинг боард неотходя от кассы :) В общем, как говорится, кусочек счастья, за ваши деньги ;) <{POST_SNAPBACK}> А можно поподробней описать технологию работы с платой. Насколько я знаю для нее необходим синтезатор и ISE (для Xilinx). Т.е. типа весь проект надо странслировать в эту плату. А сигналы, которые хочеш смотреть? Для каждого изменения нужна также перетрансляция или как? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться