Программное обеспечение для создания временных диаграмм

В моей профессиональной жизни мне иногда нужно создавать временные диаграммы для протоколов: UART , SPI и т. д . Однако я не могу найти хороших доступных программ. Какие программы можно для этого порекомендовать и каков опыт их использования?

Вот аналогичный вопрос о переполнении стека stackoverflow.com/questions/1524244/…
Не могли бы вы принять один, пожалуйста? Это поможет другим найти этот вопрос.

Ответы (13)

Быстрый поиск в Интернете выдает Drawtiming . Никогда не использовал его, но похоже, что он будет очень хорошо работать для кратких примеров из нескольких десятков тактов.

Если вы хотите рисовать в наборе инструментов, подобном Office, попробуйте OpenOffice.org , в частности, программу Draw . Если вы хотите создать наилучшую графику (и не возражаете, если это займет некоторое время), попробуйте Inkscape , предложенный digikata. Профессиональные таблицы данных, вероятно, лучше всего будут обслуживаться пакетом tikz-timing, предложенным jluciani, или более старым (но менее сложным) time.sty , оба с (La)TeX (попробуйте Lyx для более короткой кривой обучения, если вы новичок в TeX. Имейте в виду, что это крутая кривая, несмотря ни на что, но оно того стоит!)

Вы также можете попробовать смоделировать в GTKWave (или любом другом симуляторе схем с логическим анализатором): (источник: bec-systems.com )Пример скриншота волны GTK

но это больше ориентировано на моделирование Verilog/VHDL/схем, а не просто на рисование сигналов.

Можете ли вы отредактировать свой пост, чтобы объяснить, что вы успешно использовали для реализации диаграмм сигналов? Неясно, какие из приведенных выше рекомендаций у вас есть, а какие нет.
Я использовал OpenOffice и Inkscape, а также симулятор конкретного поставщика, очень похожий на GTKWave (но бесполезный без их оборудования, я не думал, что это будет полезно). Я использовал LaTeX для импорта изображений, созданных в Inkscape, но это потому, что я не знал о временных пакетах в то время. Как я уже сказал в своем посте, я не использовал Drawtiming.
Я использовал Drawtiming для автоматического создания временных диаграмм в параллельном потоке сборки с большим эффектом. Я рекомендую это.

WaveDrom — это бесплатный онлайн-движок для рендеринга цифровых временных диаграмм с открытым исходным кодом, который использует JavaScript , HTML5 и SVG для преобразования входного текстового описания WaveJSON в векторную графику SVG.

Инструмент, который я добавил в закладки, - http://www.timingtool.com/menu/tour/ttmain.php . Я не пробовал его и не изучал внимательно.

Если вы используете TeX и друзей, есть пакет синхронизации для среды изображений tikz (проверьте CTAN). Иногда с помощью инструментов TeX вы можете найти сценарии-оболочки или графические интерфейсы, которые могут создавать автономные изображения.

Документация по пакету tikz-timing находится по адресу http://www.tug.org/texmf-dist/doc/latex/tikz-timing/tikz-timing.pdf .

Инкскейп

Первая диаграмма может быть немного трудной, но после того, как вы настроите несколько шаблонов, она будет работать довольно быстро.

Я вижу, что теперь есть плагин под названием Timink для Inkscape для создания сигналов временной диаграммы.

Могу ли я предложить вам использовать любую форму диаграммы PERT или программу планирования - если она не поддерживает us или nS, просто притворитесь, что «дни» эквивалентны - это отличный способ найти проблемы со временем и наихудшие пути.

Microsoft Excel — программа 2D CAD для бедняков, и она хорошо сработала для меня. Выделите все ячейки, затем перетащите границы строки и столбца, пока количество пикселей не совпадет — это даст вам квадратные ячейки. Затем используйте панель инструментов «Рисование», чтобы добавить линии и фигуры. Опция привязки к сетке также должна быть включена.

Отредактируйте, чтобы добавить дополнительное объяснение для тех, кто понизил голос в комментариях ниже:

Blockquote Microsoft Excel не является ни программой САПР (это электронная таблица)..

MS Excel имеет множество функций, в том числе приличный пакет для рисования. Если вы будете использовать и изучать программное обеспечение, вы найдете то, о чем никогда не думали. Например, вы бы сказали, что Excel — это интерфейс программирования и пользовательский интерфейс для оборудования для сбора данных или интерфейс для создания отчетов для баз данных? Ответ заключается в том, что его можно использовать для этого, и я знаю это, лично внедряя такие приложения. Точно так же, как я лично применил Excel для создания 2D-чертежей, волновых форм и многого другого (кабели, планы этажей и т. д.).

...ни программа для бедняка...

Это имеется в виду в смысле разговорной речи: определение здесь . И я был бы поражен, если бы кто-то, кто занимается рисованием сигналов в своей профессиональной жизни, не получил копию Office, предоставленную его работодателем.

При рисовании, как вы предлагаете в Excel, вы не можете визуализировать переходы краев, кроме вертикальных линий...

Извините за прямоту, но это неправильно. Вот более подробное объяснение, которое вы можете попробовать сами. Начиная, как я описал выше, рассмотрим квадрат ABCD с координатами, начинающимися по часовой стрелке от верхнего левого угла квадрата. Если бы вы последовательно провели линию через точки DABC, у вас получилась бы первая половина прямоугольной волны. Однако, если вы проведете линию через DB, у вас будет угол подъема 45 градусов. Опция «Привязка к сетке» привязывается к точкам сетки, но не применяет угловые ограничения. Очевидно, это может быть расширено, чтобы сделать другие углы, выбрав другие координаты - использование сетки ячеек 2x2 в качестве вашей базы дает больше угловых вариантов и так далее. Например, я использовал это для рисования трапециевидных сигналов и самосинхронизирующихся манчестерских сигналов с регулируемым наклоном, а не только тактовых импульсов с рабочим циклом 50%.

Обратите также внимание, что вы не ограничены прямыми линиями — кривые очень просты. Копирование-вставка (CTRL-C, CTRL-V) и возможность вращать и группировать объекты упрощают работу с более сложными формами. Другой пример из моего опыта: если вы можете нарисовать одну полусферу, вы можете превратить ее в двойную спираль экранированной витой пары на схеме кабеля в кратчайшие сроки (почти буквально: я перенес концепцию ручной волны в PDF-файл). копия чертежа за 45 минут, включая время, затрачиваемое на отправку онлайн-запросов на расценки поставщикам кабелей). Для сигналов одни и те же вещи могут создавать синусоидальную волну или амплитудно-модулированный сигнал.

Если вам нужно что-то действительно сложное, отключите опцию привязки к сетке, нарисуйте свою штуку, затем снова включите привязку и перетащите штуку на место. Не забывайте, что вы также можете изменять размер нарисованных объектов.

Microsoft Excel не является ни программой САПР (это электронная таблица), ни программой для бедняка (она стоит 150 долларов, согласно office.microsoft.com). При рисовании, как вы предлагаете в Excel, вы не можете визуализировать переходы краев, кроме вертикальных линий, что неприемлемо для профессиональной временной диаграммы.
за 200 долларов в год вы можете иметь все продукты Microsoft. На самом деле, в большинстве компаний, в которых я работал, Excel доступен. Когда я искал инструменты UML для улучшения рисунков, они стоили 5 и более штук за место. Для нескольких очень простых временных диаграмм мне пришлось использовать Excel.
@Kortuk Да, я понимаю, что у большинства компаний есть Office * И * Internet Explorer 6. Не поощряйте практику. Кроме того, не уверен, что вы искали для инструментов UML, более половины инструментов, перечисленных на en.wikipedia.org/wiki/… , бесплатны и имеют открытый исходный код.
Приложив усилия, время и воображение, Excel может нарисовать многое из того, что нужно.
Невероятно, что это получает 7 (!) голосов. Некоторые люди, очевидно, никогда не видели/не создавали настоящую временную диаграмму!

TimingEditor выглядит простым в использовании и создает приличные файлы SVG.

введите описание изображения здесь

Первым предложением, которое я увидел здесь, был Inkscape. Программа для рисования! Вот я и подумал, а почему бы и не в Excel, с его помощью тоже можно рисовать? Похоже, что кто-то действительно предложил это! И что 7 человек сочли это полезным предложением! Думаю, мне нужно прилечь на минутку.
Причина, по которой существует так много различного программного обеспечения, заключается в том, что каждая задача имеет свои собственные требования, и каждое программное обеспечение пытается удовлетворить требования для конкретной задачи. Если вы используете Excel для рисования временных диаграмм, вы можете подумать: «Видите, это тоже работает», но на самом деле это сделает меньше, чем карандаш и бумага. По крайней мере, с помощью карандаша вы можете справиться с самой основной функцией дизайнеров тайминга: зависимостями сигналов.

Во всяком случае, теперь, когда я избавился от этой нагрузки, я бы посоветовал взглянуть на TimingDesigner , хотя я не совсем знаком с последней версией. Ни в коем случае не дешевый, и я бы не предложил его, если бы он не был для профессионального использования.

Я не знаю Timingdesigner, но +1 за «правильный инструмент для правильной работы». Согласен, что карандаш более универсален, чем Excell.

Я делаю многие из этих вещей, используя PostScript , moveto, lineto, lineto, moveto и т. д. Оттуда вы можете преобразовать его во что угодно: JPEG, PNG и т. д ., или встроить его непосредственно в документ PostScript, тогда это может стать PDF - файл .

PostScript допускает использование всех бесплатных инструментов и не зависит от операционной системы, поэтому вам не нужно покупать тот или иной Office или Excel . Ghostscript и Ghostview — ваши друзья.

SVG , вероятно, является еще одним форматом/языком, который вы также можете использовать. Это бесплатно, открыто и конвертируется во что угодно.

Я тоже это делаю. Я создам скрипт для генерации этих типов документов, используя Perl + TeX + METAPOST (или другие инструменты командной строки). Когда данные изменяются, я набираю «сделать», и изменения распространяются.

TimeGen стоит менее 100 долларов США (Lite), 500 долларов США (Pro). Я не использовал его.

Я искал кое-что в последние пару дней и пробовал здесь ряд предложений, ни одно из которых не работало удовлетворительно (или в некоторых случаях вообще) для меня или не рисовало стрелки времени.

В конце концов я нашел это:

https://waveme.weebly.com/

Который я могу порекомендовать. Это достаточно интуитивно понятно, и на веб-сайте есть достойные видеоуроки. Работает на Windows и на Linux под Wine.

Я использовал два инструмента:

  1. Synapticad Timing charter pro — это дорого, но настолько многофункционально, что мой друг разработал чип, используя режим стимулирования Verilog.

  2. Анализатор времени - бесплатный, находится в постоянном развитии, автор реагирует на изменения и основан на Java, поэтому он переносим.

Visio всегда хорошо работал для меня и был одним из основных средств документации как для FPGA (хронометраж и блок), так и для системных диаграмм на одном из моих мест работы.

Самое приятное в Visio то, что вы можете создавать шаблоны и формы, которые позволяют создавать унифицированные временные диаграммы.