Jump to content

    

al1

Участник
  • Content Count

    122
  • Joined

  • Last visited

Community Reputation

0 Обычный

About al1

  • Rank
    Частый гость
  1. В далёком 2008 году конфигурировал систему: сервер Questa на линуксе Клиенты Questa на виндовсе Работает так: - вручную на сервере стартуем Questa - вручную на клиентах стартуем Questa и указываем слушать сервер - Сервер скриптом раздаёт задачи и ждёт их завершения --- Раздаёт так: --- есть общая для всех квест расшаренная директория --- Сервер копирует туда проект в новую директорию --- сервер через jobspy даёт команду клиенту компилировать, моделировать и т.д. - не уверен, но вроде после завершения задачи на клиенте сервер выдаёт новую Как работают скрипты уже не помню, но может наведёт на размышление. Делал сам, для себя, поэтому с оформлением текста не очень, выкладываю как есть P.S. Бред какой-то - не даёт вставить файлы с расширением .sh и .do, пришлось добавить .txt mentor.config.sh.txt runall_jobspy_file.do.txt
  2. -------------------------------------------------------------------------------- 1. HDL Designer: How to use Altera parts without using Megawizard? Solution You can use the Altera primitive without using the Megawizard. In this case you would use the "Add External IP" function is HDL Designer. In order to use this function, you must have access to the source file for the primitive that you wish to use, and you need to first compile the primitive in ModelSim, outside of HDL Designer. Then you need to map the Altera library in HDL Designer. To map the library, select "New Library" in the HDL Designer Project Manager and choose the option to create a new "Downstream Only" library. Then enter the path to your compiled Altera directory that you created with Modelsim. Click the Add button and then click Finish. Now you should be able to use the "Add External IP" function in HDL Designer to instantiate the primitive in your design. -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- 2. 10054.pdf --------------------------------------------------------------------------------
  3. Фальш путь? (False Path) Если это что надо, то оно описано в User Manual > Constraining and Synthesizing > Setting Timing Constraints > Setting False Paths
  4. Алгоритм такой: 1. сносим всё 2. ставим ПОСЛЕДНЮЮ версию EXP 3. Ставим ПОСЛЕДНЮЮ версию SV, причём при инсталляции выбираем Overlay и в качестве директории инсталляции указываем SDD_HOME Должно рабоать.
  5. <br /><br /><br /> Да, надо инсталлировать ADMS отдельно, и, открыв проект в HLA, в свойствах тестбенча переключить симулятор с HyperLynx Analog на Eldo или ADMS. Первое для чисто spice проекта, второе - для проекта содержащего кроме spice любые другие языки.
  6. Вот я и добрался до waveform. Но тут у нас свами суууууурьёзные расхождения. Начнём с альдека. Тут я согласен, замедление с диаграммами составляет 1.8 раза. Похоже на правду. Теперь Ms. что значит не видятся сигналы? У меня на верхнем уровне всё видится! там 4 сигнала. Я их вывел, через GUI и промоделировал. Только не маленько время, а максимальное - 2**28. Результат - 360.54 seconds. Напомню, без диаграмм у меня было 319.41 Итого замедление в 1.1 раза. Похоже на правду? По моему похоже! Сигналы живые, я проверил - меняются. Я почему такие осторожные формулировки даю, потому, что как мы убелились выше что Ms, что альдек, хитрожопые очень, в любой момент могут заоптимизировать чёнить и сказать что всё круто. ААААААААААААА! Озарение пришло!!! Я понял почему вы сигналы не видели!!! Код-то у вас с ошибками! Я вам тверже- твержу, что заголовок мой надо использовать, т.е. выводить сигналы из UUT! Проверил MS еще раз, но теперь с маленьким временм - 2**24 Без диаграмм - 19.07 seconds С диаграммами - 22.36 seconds Замедление в 1.2 раза Вот, я вас выше по тексту просил объяснить пару фактов, вот вам ещё один факт который потрудитесь, пожалуйста объяснить: если с моделсимом всё понято, замедление в 1.1 раза можно объяснить записью данных в базу диаграмм сигналов, то с альдеком вызывает удивление что простейшая операция записи данных в файл приводит к почти двухкратному замедлению производительности. Странно? Странно! А вот вам ещё тест: Возьмите МОЙ заголовок, время 2**28 и сравните альдек и молесим С ВЫВОДОМ сигналов. Рискну сделать прогноз: ваши резултатты для MS получатся следющие: NO_LOG 2**24 # Process time 31.89 * 1.15 = 36.67 seconds NO_LOG 2**28 # Process time 520.58 * 1.15 = 598.66 seconds Это медленнее альдека с диаграммами в ВАШИМ заголовком, но для меня пока не ясен ворос почему в альдеке двухкратная просадка при включении диаграмм сигналов. Посмотрим что будес с МОИМ зоголовком.
  7. Это уже интересно. Я уже близок к тому чтобы послать пример на ментор, но всё еще не могу сформулировать вопрос. Проблема вот в чём: Ваш оригинальный пример (NO_LOG 2**28) моделируется в моделсиме - 112.49 seconds (на моём компе) После модификации заголовка - 319.41 seconds На вашем компе тоже разница около трёх раз получилась. Логичный предположительный вывод: до модификации удаляется часть логики - поэтому быстрее. Теперь альдек: Ваш оригинальный пример (NO_LOG 2**28) моделируется в альдеке - 146.94s total. (на вашем компе) После модификации заголовка - 145.79s total. Т.е. как будем считать, что результаты равны или после модификации даже быстрее? И в том и в другом случае помогите мне, пожалуйста, объяснить данные результаты. P.S. Вот, вы говорите что я пустослов ибо мне лень скачать альдек и запустить скрипт. И сейчас я готов объяснить что обвинения ваши совершенно не справедливы. А не справедливы потому, что запустить скрипт и увидеть результаты это одно, а объяснить почему именно такие результаты - это совсем другое. Т.е. мне, тогда, надо рзабираться каие способы оптимизации есть у альдека, как они работают, и не является-ли данный примрер покозателем того что альдек "заоптимизировал в ноль" оба примера - и до и после модификации - в то время как моделсим - только первый. Я не настаиваю на этом, просто говорю что если бы я выдал некие результаты исследований, то я обязан был бы их грамотно объяснить. А это много дней исследовательской работы (т.е. внимательно изучения user manual-а от альдека). Тем более вы говорите что вы всё знаете. Вот и объясните, пожалуйста. P.S. 2 В качестве тестеров нужны люди которые могут не только получить некие результаты, но и объяснить почему результаты именно такие. P.S. 3 Ещё я запустил самый первый вариант, где не repeat используется, а #112000 $stop(2); Но с моим заголовком!!!! Только я подставил не 112000, а 268435456. А получил я это число вот как: в вашем старом примере задействовано 2**28 тактов, а каждый такт это 20ns. 2**28*20 = 5368709120 Но при попытке промоделировать #5368709120 $stop(2); - получил отлупу что число не укладывается в 32-х битный формат. Тогда я просто не стал умножать на 20, а взял 2**28=268435456, полуил время моделирования 15.65 seconds, ну и помножил его на 20, получил 313 секунд. Т.е. в ModelSim, и в первом варианте , когда #112000 $stop(2); и во втором, когда через repeat получаются равные резыльтаты - 319.41 и 313 ссответственно. Расхождение только из-за того что я подставлял не 5368709120, а 268435456. Наверное, возрожений не возникнет если я скажу что так и должно быть. А что же альдек? Цитирую: И вы кому-то рекомендуете ЭТИМ пользоваться? --------------------------- Ну ни фига себе у вас оптимально процесс налажен!!?? Сначала сгенерить туеву хучу логов, а потом написать скрипт который отсеит 99.99999999999% мусора. Наверное, десяток строк из 800 мегов текста. :cranky: Вам не стыдно такое про себя рассказывать? Вы же позиционипуете себя как хороший специалист!!! А потом удивляемся - а чё это у нас продукция неконкурентроспособная? Да потому что производительность труда в 10 раз хуже!!! А не проще сразу генерить ТОЛЬКО те логи которые нужны? Простите за резкие фразы, но я чуть со стула не упал когда это прочитал. В GUI моделсима в срмой нижней строке окна есть индикатор показывающий текущий момент моделирования, т.е. что симулятор жив.
  8. 1.5 гига логов позволяют выловить ошибку? (об этом иже) Сумнивааюсь. Ну а чё же вы тогда про OVM вспоминаете? Нипаняяятна :) Не используйте функций из ОС и всё будет одинаково. Вы знаете что такое библиотека Tk? Вы готовы поставить, скажем, $100 на то что функция вывода строки в поле вывода окна не использует системную функцию вывода данных на монитор? Просто я знаком с языком/библиотекой TCL/Tk (на которых построен GUI моделсима) и могу рассказать много интересного. (Кстати за это GUI моделстма и ругают) Именно по этому я не делаю таких радикальных выодов как вы. Про $100 я не шучу. А если HDL код не правильный - это тоже не волнует? Ок. про сравнение с/без диаграмм - чуть позже. Почему позже - объяснение в конце этого поста. Я вас тоже люблю. Но наезжать я ни на кого не собирался, если вы это так восприняли, то прошу меня простить. Моя задача найти и если нашёл, то указать на ошибку, ибо вдруг это не ошибка а я не прав. Давайте начнём с вас. (Обычно говорят: я крутой а ты кто?) Для начала расскажите вот что: при запуске вашего теста USE_LOG я получил .log файл 1.5 гигабайта! ПОЛТОРА ГИГАБАЙТА ЛОГОВ - это так и должно быть или я то-то неверно сделал? Расскажите мне, пожалуйста методику работы с логами такго объёма. И не надо ля-ля про то что это всего лишь тестовый пример. Если ваша задача просто показать что моделсим медленнее, так и скажите - я с вами сразу соглашусь - да, сформировать такой HDL который в MS будет моделиться медленнее всех принципиально возможно. Я это ни гда и не отрицал. ------------------------------ Всё что было выше (в этом моём посте) - неважно - пустая болтовня. Важно следующее. У мнея без логов получилось вот - что: # NO_LOG 2**28 # Process time 184.47 seconds NO_LOG 2**28 # Process time 112.49 seconds NO_LOG 2**28 al1_modelsim.zip # Process time 319.41 seconds Остальные сравнения я тоже запускал, но и их результатах я пока сомневаюсь по следующей причине. Объясняю. На вашей машине получилось 184.47 seconds На моей - 112.49 seconds Ок. Результаты похожи и меня всё устраивает, за исключением одного: я изменил заголовок файла uut.v и теперь он выглядит так (модифицированный проект приаттачен): module UUT(AB, DB, WR, ERR); output [15:0] AB; output [7:0] DB; output WR,ERR; И о чудо, время моделирования возросло до 319.41 seconds - в три раза! Т.е. у меня такое подозрение что vopt как-то слишком сильно "оптимизирует" проект (в кавычках - потому что это уже чересчур). Вы, вот, зря проигнорировали мой вчерашний пост что надо заголовок менять. Похоже что надо. Или я не прав? Ну, и, типа, сразу возникают подозрения, а не заоптимизировал-ли альдек проект тоже в ноль. (это не наезд - это предположение) Зпустите на альдеке модифицированный код - это всего 300 секунд. al1_modelsim.zip
  9. Ок. Если я правильно понял это новый проект? Сейчас начну с ним разбираться... Но а старый-то проект, вы подтверждаете или опровергаете мой вывод о 30-кратном преимуществе моделсима без $fmolitor ? Запустите его тоже еще раз на вашем новом оборудовании, только в модифицированном мной варианте. У вас получится 0.01 секунда для #112000 $stop(2); ? В очередной раз обясняю: сформулируйте чётко задачу! Что вы хотите? Сравнить скорость моделирования с aldec? aldek поддерживает OVM? Если вы хотите использовать OVM, то повышение производительности труда будет НЕ за счёт быстрой скорости моделирования. Скорость моделирования ввобще уменьшится. Смысл в другом. В чём именно объяснял уже не раз, могу повторить если надо. Вспомните процессоры. Раньше все гнались за частотой. Потом AMD-шникам первым пришлов голову что частота это не главное, а важна ещё и архитектура и они ввели так называемые индексы (или коэффециенты, хз как правильно). Сейчас скорость моделирования уже не главное. Уже не имеет значения сколько будет моделироваться проект, одну неделю или две - оба случая неприемлемы!!! 1. Ну если бы это был официальная рекомендация ментора, можно было-бы и посмеяться. 2. А так, посмеяться можно только над вами, раз вы не знаете что все маржруты проектирования IC работают под разными юниксами и линуксами, а windows не признаётся как ОС для рабочих станций. Для неграмотных - мат часть: существуют два понятия - 1. PC - персональный компьютер, как правило подразумевает ОС windows 2. Workstation - рабочая станция, ни какого виндавоза даже и не подразумевается. Это вы утверждаете или спрашиваете? Если спрашиваете, то надо разбираться, я в таки дебри не вникал, а нести отсебятину не привик. А если утверждаете, то что? Что на тесте где функция вывода в консоль занимает большОй процент от всего времени моделирования что-то работает медленее, а что-то быстрее? Так это бред, ибо вы сравниваете не скорость работы функций относящихся к ОС, а не к симуляторам. Нужно чтобы время на вывод в консоль составлято доли процента от общего времени моделирования. И, вообще, зачем вам выводить в консоль строки типа "действие такое-то - успешно"? Надо выодить только ошибки. Два варианта: 1. проект маденький Тогда он моделируется секнды и минуты и вам -О5 не нуден 2. Проект большой Тогда при использовании диаграмм сигналов вы будете проект делать годами, выискивая глазами на диграммах ошибку. Короче, вейвформы не нужны. Всё что вы хотите найти глазами на вейформах надо сформулировать ассертами. Один раз. И эта формулировка ОСЕГДА будет отслеживаться, а не только тогда, когда вы соизволите просмотреть диаграмму. В современных проектах формальная модель (ассерты) по объёму сравнима с HDL моделью. Да, работы в два раза больше, но проект вы отладите раз в 10 быстрее. Точно знаю что так делают в Intel: сначала пишется HDL модель, затем формальная (на ассертах). Прошу прощения, ну ни как, а то работа совсем встанет... Мне постоянно приходится изучать много нового материала. А он как правило на английском... да ещё и хрен найдёшь. Щас, вот, ввязался в перевод спецификации по SystemVerilog... (не весь, кончно, моя тольо часть) Короче разбираться в ещё одной системе только чтобы кому-то что-то доказать - совсем не катит. Я метор знаю хорошо, мне этого за глаза хватает. Считаю что кому надо, прочитав эту ветку уже смогут сделать выводы.
  10. Сорри за нескорый ответ, работу надо делать. ...приподмодифицировал :) uut.v Заголовок заменил на: module UUT (AB, DB, WR, ERR); output [15:0] AB; output [7:0] DB; output WR,ERR; ... это чтобы оптимизатор не выкидывал ничего Теперь моделирование времени #(112000*10000) $stop(2); выдаёт более реальные результаты: # ** Note: Data structure takes 1572880 bytes of memory # Process time 60.81 seconds # $stop : .//uut.v(55) # Time: 1120 ms Iteration: 0 Instance: /UUT Т.е. убедились что оптимизатор не порушил проект. А если вернуть время как было: #112000 $stop(2); то получаю ту же самою 0.01 секунду: # ** Note: Data structure takes 1572880 bytes of memory # Process time 0.01 seconds # $stop : .//uut.v(56) # Time: 112 us Iteration: 0 Instance: /UUT Далее просто методом подбора подогнал такое модельное время чтобы получить примерно 0.19s: #(112000*30) $stop(2); и получил # ** Note: Data structure takes 1572880 bytes of memory # Process time 0.19 seconds # $stop : .//uut.v(55) # Time: 3360 us Iteration: 0 Instance: /UUT Так что если стравнить с самым первым тестом альдека в этой теме годичной давности, то получается моделсим в 30 раз быстрее моделирует. Ну с учётом того что у меня оборудование более мощное - пусть будет в 28 раз быстрее, ибо я считаю что более новое оборудование может ускорить на несколько процентов, но не на порядки. :) P.S. Можт и ошибся где в расчтах - поправьте. P.S. 2 Вы, господин, des00, предлагали создать тему с описаниями стилей наиболее пригодных для разных симуляторов. Предлагаю первую запись для ModelSim Симулятор: ModelSim, Questa Задача: максимально быстрое моделирование Решения: 1. Не использовать системных вызовов 1.a. Если системные вызовы необходимы - использовать Linux. uut.v
  11. P.S. Вот ещё комментарий почему при отключенном fmonitor моделсим выдаёт настолько маленькое время моделирования - похоже моделсим проекта совсем заоптимизировал. Чтобы получить время побольше надо менять исходный код. Чуть позже попробую подредактировать проект...
  12. Обратился к гуру по поводу обещанного мной примера, естественно свои ни кто не даёт, но посмотрели выложенный в этой ветке modelsim.zip и, в итоге, в качестве примера который моделируется быстрее всех именно в ModelSim-е выкладываю модифицированный uut.v из того-же modelsim.zip, который ранее почему-то был признан как более быстрый в альдек. В модифицированном uut.v 1. время моделирования (строка 50) увеличено до 112000*1000000000, я пытался и больше, но возникает ошибка что превышен порог 32-х битного значения и 2. закомментирован вывод в консоль (строка $fmonitor). Результат - время моделирования варьируется от # Process time 0.01 seconds до # Process time 0.00 seconds Почему нужно нужно отключить $fmonitor? 1. это системный вызов, т.е. вызов функции операционной системы, а за скорость работы ВАШЕЙ операциооной системы разработчики не могут отчитываться. Подтверждением этого является тот факт, что моделирование со ВКЛЮЧЕННЫМ $fmonitor на моём компьютере работает существенно (в несколько раз) быстрее чем при первоначальном моделировании выполненном товарищем des00. Объяснить это только тем что я использовал более мощный компьютер нельзя!!! Сравните конфигурации. Тогда-бы у меня моделирование выполнялось на 30%, ну на 50% быстрее, но не в несколько раз! Объяснение оно - я использовал линукс, а в линкусе конкретно этот системный вызов ($fmonitor) выполняется быстрее. 2. само сравнение со включенным $fmonitor с альдеком является не корректным, т.к. моделсим, не сильно заморачиваясь выводит суммарное время моделирования, включая время на ожидание завершения системных функций, а как можно предположить из отчётов альдека - он вычленяет только то время которое тратится именно на сам процесс моделирования. Итог: как видно из результатов сравнения опубликованных выше по этой теме - в примере modelsim.zip моделсим на один или несколько порядков работает быстрее. Итог 2: на данном форуме несколько раз возникали отзывы о сравнении производительности утверждающие что ModelSim самый медленный симулятор, например, при моделировании после синтеза и с задержками. Как видно из единственного выложенного примера, скорее всего эти сравнения проводились с неверно сконфигурированным проектом. uut.v
  13. Скорее всего не будет, но он и в альдеке не промоделируется? "№;%:?*?:%;№"№; Ну ладно, я сам напросился, надо былао промолчать. :( Ок, постараюсь на следующей недели вспомнить где я их видел и выложить. Про прайсы, извините, не комне, а, вот, ModelSim 6.5 Series Product Comparison, это тот файл что я приаттачил? Там же две строчки?: SystemVerilog IEEE1800 Design и SystemVerilog IEEE1800 Verification SystemVerilog IEEE1800 Verification - действительно тока в квесте, а SystemVerilog IEEE1800 Design - я всегда считал что должен быть эквивалентен альдеку Опять же лично я, для себя образно разделяю: Design - это классы, а Verification - это ассерты Могу и ошибаться. Ну, вот, это дело! И если какие конструкции заработают в альдеке, но не заработают в моделсиме - вот тогда и можно будет говорить что альдек лучше (ибо квеста дороже). Согласен, это, как бы, надо сделать. Но толку? Я же всё равно не смогу опубликовать результаты исследований. И самое главное - я же не ставлю под сомнение ваши результаты. И, потом, я не могу быть специалистом во всём. (Точнее, могу, конечно, но тогда я буду плохим специалистом (и нервным :) )) Лучше я, действительно, потрачу время на поиск тестбенчей где MS быстрее всех, а вы подтвердите или опровергните. По моему пользы больше будет. QuestaCompare20090416.pdf
  14. Ну я-же написал в своём сравнении что результаты в квесте и моделсиме одинаковые. Ну да, вошёл в verilog в system verilog. Но вы уверены что его моделируют одни и те-же, не знаю как сказть... блоки, чтоли... счётного ядра квесты? А зачам тогда ключ -sv ? Я понимаю что лично вам нужен Sv. Но для моделирования предложенного вами теста-то он не нужен? Правильно? И для этого примера можно использовать ModelSim. Можно ведь? У меня работает! Ещё раз повторю - вопрос не технический. Даже если вы физически используете инсталлированную программу Questa, но моделируете только то что поддерживается в ModelSim (ваш тестовый примерчик), то по факту вы используете ModelSim. Questa - это моделирование проекта в котором используются конструкции из раздела SystemVerilog Verification. Идея понятна. Но я и не говорил что код плохой, т.к. лично меня это вообще мало волнует, ибо нет времени ещё и разбираться какой стиль кода для каких симуляторов лучше подходит. Наверное ни кто не будет спорить что каждый разработчик всегда подберёт такой тестбенч, что его симулятор будет самым быстрым. Например, я видел тесты где ModelSim обыгрывает более чем в 2 раза всех остальных, в т.ч. и после синтеза и с таймингами. Но я -же об этом молчу. Хотя могу вспомнить былое и найти таковые, если кому интересно. Просто мне интересно другое. эээ.... А ссылки на примеры не подкините? Повторюсь - качать и не надо. Просто в данном конкретном примере то в чём воделируется этот пример более правильно называть modelsim ибо расширения относящиеся к квесте не затрагиваются. ModelSim тоже поддерживает SV - "(пусть и более бедную)"- как вы сказали. Т.е. вопрос можно свормулировать так: приведите пример конструкций SV поддерживаемых в Active-HDL но не поддерживаемых ModelSim. НЕ УТВЕРЖДАЮ!!!! что таких примеров нет (а то сейчас опять накинутся что я MS хвалю)!!! Возможно есть, но мне не известны. Ну если там расширение у файла .sv, то кончно А кроме шуток, этот кодек в Active-HDL моделируется? Если да, то, конечно, итересно было-бы сравнить. С чем? А вот с чем: если этот-же кодек заработает с MS - то с моделсимом, а, вот, если нет - тогда уже с квестой.
  15. Движок один и тот-же, согласен - это факт. И мой тест это подтвердил. Просто если вам ножен Sv, то тогда и тесты надо выкладывать на Sv. Я не понимаю вашу логику.... "мне нужно одно" (язык SystemVerilog) а "сравнивать буду другое" (язык Verilog). Это тоже самое что сказать: мне нужна более как можно более быстрая машина и для этого я купил LancerEvoloution, но мой выбор хреновый, т.к. я сравнил Простой Lancer с двиглом 1.6 - он ваще не едет. Бред? Бред! Ну тогда уж 6.5 надо... И не квету а моделсим! сколько раз повторять... Или тогда расскажите чем альдек превосходит моделсим и почему его надо сравнивать именно с квестой? Здесь вопрос не технический - здесь вопрос цены и производительноси труда.