nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 01 Apr 2020 03:23



Reply to topic  [ 14 posts ] 
SimulIDE бесплатный симулятор электроники (PIC, AVR, цифра) 
Author Message
Junior
User avatar

Joined: 11 Oct 2018 01:52
Posts: 7
Location: г. Клинцы, Брянская обл.
Reply with quote
Здравствуйте, уважаемые форумчане!
Хочу поделиться информацией о бесплатном симуляторе электроники с неплохими, на мой взгляд, возможностями. Программа называется SimulIDE.
Постоянное место жительства: https://simulide.blogspot.com
Последняя версия: SimulIDE 0.3.12-SR3. Более новые версии на сайте patreon.com

Кратко о возможностях программы:
1. Симуляция схем в реальном времени
2. Симуляция микроконтроллеров PIC, AVR, Arduino
3. Симуляция цифровых схем
4. Симуляция аналоговых схем (ограниченно)
5. Широкий выбор измерительных инструментов (вольтметр, амперметр, осциллограф (одноканальный), 4-х канальный плоттер (к сожалению аналоговый), пробник, частотомер.
6. Возможность создания своих моделей на основе примитивов (я добавил в библиотеку более 100 микросхем серии 74, CD4000)
7. Гибкие настройки встроенных примитивов (количество входов, выходов, рабочие напряжения и другие)
8. Реальная симуляция светодиодов: яркость пропорциональна току. Работает ШИМ.
9. Встроенный редактор кода (я не пользовался)
10. Возможность подключения компилятора кода (я не пользовался)
11. Возможность отладки кода (я не пользовался)
12. Настройки параметров симуляции
13. Программа русифицирована достаточно полно.
14. Работает без установки (портативная версия)
15. Работает под Windows, Linux
16. Простой, интуитивно понятный интерфейс

и другие

Автор программы отзывчив к просьбам, к очередному релизу обязательно включает некоторые доработки (значительное количество моих просьб было выполнено). Ошибки и достаточно быстро исправляются.
В целом программа производит приятное впечатление.

Для начинающих электронщиков, думаю, программа будет полезна.

Несколько скриншотов программы
Внешний вид интерфейса программы и некоторые инструменты, модели:
Image

Полный список инструментов, моделей (коллаж):
Image

Созданная модель микросхемы CD4553:
Image

Модель в работе (трехразрядный частотомер):
Image

Симуляция Arduino (бегущая строка)
Image

Тот же проект, микросхемы в виде УГО:
Image

Еще одна бегущая строка с редактором кода:
Image

Более подробно с программой можно ознакомиться на официальном сайте или скачав ее.

Пока все. Кидайте камни.


09 Jan 2020 09:30
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 18286
Location: Silicon Valley
Reply with quote
Что прямо таки сам Santiago González к нам пожаловал? ;)

Или вы от имени и по поручению?

_________________
:eugeek: https://twitter.com/Shaos1973


09 Jan 2020 19:57
Profile WWW
Senior
User avatar

Joined: 04 Jan 2016 10:15
Posts: 109
Location: Russia, S.- Peterburg
Reply with quote
Поздравляю! Интересный инструмент.

Тестирование: Ubuntu Linux x86_64.

Пример: glcd8544_mega168

ERROR: Повторный запуск. В симуляторе не отображается изображение на индикаторе glcd8544. Повторная загрузка прошивки не помогает.

_________________
"Где просто, там ангелов со сто, а где мудрено, там ни одного" (С)


10 Jan 2020 05:49
Profile WWW
Junior
User avatar

Joined: 11 Oct 2018 01:52
Posts: 7
Location: г. Клинцы, Брянская обл.
Reply with quote
Shaos wrote:
Что прямо таки сам Santiago González к нам пожаловал? ;)

Или вы от имени и по поручению?


Ни то, ни другое.
Я давно искал некую бесплатную альтернативу Proteus для образовательных целей. Пробовал Logisim, даже нарисовал в ней около 50 микросхем 155 серии, но не хватает в нем некоторых измерительных инструментов. Другие программы выглядят по-детски, либо неудобны в работе, либо не русифицированы. Первый раз с этой программой я столкнулся, когда она только появилась, но не разбирался с ней глубоко. Второй раз я с ней столкнулся на форуме Kazus, скачал сделал пару десятков моделей микросхем, черканул пару строк Santiago о том, что планирую продолжать делать модели для программы, предложил несколько доработок программы, нашел несколько багов .... С тех пор и занимаюсь этой замечательной программой. Сейчас она имеет достаточно серьезные возможности, и, если автор ее не забросит, то вскоре получится неплохой инструмент для проверки своих самоделок.
Недостатки в программе имеются, но они не столь критичны. Для образовательных целей эта программа самое то.


10 Jan 2020 06:06
Profile
Junior
User avatar

Joined: 11 Oct 2018 01:52
Posts: 7
Location: г. Клинцы, Брянская обл.
Reply with quote
askfind wrote:
Поздравляю! Интересный инструмент.

Тестирование: Ubuntu Linux x86_64.

Пример: glcd8544_mega168

ERROR: Повторный запуск. В симуляторе не отображается изображение на индикаторе glcd8544. Повторная загрузка прошивки не помогает.


Может быть дело в устаревшей версии?
Последняя стабильная версия SimulIDE_0.3.12-SR5
Есть еще нестабильная версия SimulIDE_0.4.13-RC4

В этих версиях устранены много ошибок и сделано много дополнений по сравнению с SimulIDE 0.3.11 Final.
Более новые версии будут выложены в общий доступ позднее.


10 Jan 2020 06:44
Profile
Senior
User avatar

Joined: 04 Jan 2016 10:15
Posts: 109
Location: Russia, S.- Peterburg
Reply with quote
FizikS wrote:

Может быть дело в устаревшей версии?
Последняя стабильная версия SimulIDE_0.3.12-SR5
Есть еще нестабильная версия SimulIDE_0.4.13-RC4

В этих версиях устранены много ошибок и сделано много дополнений по сравнению с SimulIDE 0.3.11 Final.
Более новые версии будут выложены в общий доступ позднее.


Запускал версию SimulIDE_0.3.12.SR3-Lin64.tar.gz

На сайте с разделе https://simulide.blogspot.com/p/downloads.html не обнаружил SimulIDE_0.3.12-SR5.

Где скачать?

_________________
"Где просто, там ангелов со сто, а где мудрено, там ни одного" (С)


13 Jan 2020 00:16
Profile WWW
Junior
User avatar

Joined: 11 Oct 2018 01:52
Posts: 7
Location: г. Клинцы, Брянская обл.
Reply with quote
askfind wrote:

Запускал версию SimulIDE_0.3.12.SR3-Lin64.tar.gz

На сайте с разделе https://simulide.blogspot.com/p/downloads.html не обнаружил SimulIDE_0.3.12-SR5.

Где скачать?


Ответил в личку.


13 Jan 2020 04:20
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 18286
Location: Silicon Valley
Reply with quote
А публике про этот секрет знать нельзя? ;)

_________________
:eugeek: https://twitter.com/Shaos1973


15 Jan 2020 22:09
Profile WWW
Senior
User avatar

Joined: 04 Jan 2016 10:15
Posts: 109
Location: Russia, S.- Peterburg
Reply with quote
Shaos wrote:
А публике про этот секрет знать нельзя? ;)


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

У автора имеется реализация троичных цифровых элементов. Можно "собирать" схемы на этой основе.

Конечно же необходимо тестировать и проверять.

_________________
"Где просто, там ангелов со сто, а где мудрено, там ни одного" (С)


16 Jan 2020 08:52
Profile WWW
Junior
User avatar

Joined: 11 Oct 2018 01:52
Posts: 7
Location: г. Клинцы, Брянская обл.
Reply with quote
Привет всем!

Попробуем вместе создать какую-нибудь модельку для SimulIDE.
Для определенности рассмотрим создание троичного инвертора. На его основе можно будет создать достаточно много других интересных моделей.
Как известно, схем инверторов несколько. Можно выбрать любую и попробовать её воплотить в модель.
1. Схемы на транзисторах либо неэкономичны, либо сложны, что негативно скажется на скорости симуляции.
2. Схемы на оптопарах пока не представляется возможным сделать, т.к. не позволяет программа
3. Остаются схемы на ключах. Самые популярные схемы на ключах DG403, но их нет в программе. Я собрал модельки ключей DG401, DG403, DG405. Они работают с аналоговыми сигналами, но на них я не пробовал делать троичные элементы (DG403 имеет в составе 4 аналоговых ключа, я их заменял мультиплексорами, а для инвертора потребуется всего один мультиплексор)

Выбор мультиплексора в качестве основного элемента троичного инвертора объясняется тем, что мы в зависимости от входного сигнала должны подать на выход один из трех сигналов: +5V, -5V, 0V. Т.о. с количеством входов мультиплексора определились: 4 информационных входа, 2 адресных входа. Т.к. сигнал будет +/- 5V, то мультиплексор должен быть аналоговый. Такой как раз среди примитивов SimulIDE имеется. Осталось определиться со схемой управления. Она должна быть как можно проще и содержать минимум аналоговых компонентов. Немного подумав, я остановился на схеме из двух инверторов (в идеале, конечно с триггерами Шмитта на входе), двух диодах, стабилитроне и резисторе.
Набросок схемы приводить не буду - смотрите готовый результат.
На этом думать головой прекращаем, начинаем думать руками...

На рисунке отмечены элементы, которые нам потребуются (это для тех, кто вообще первый раз видит симулятор ...)
Image

Переносим их на рабочее поле.
Наша цель - сделать схему согласно рисунку (верхнему или нижнему):
Image

Элементы на схеме немного отличаются от выбранных. Недоразумение исправляется настройкой свойств элементов. Для этого переходим на закладку "Свойства" панели инструментов или выбираем в контекстном меню выбранного элемента.

Приступим:
1. "Fixed Voltage" - этот элемент используется как вход в моделях (можно и некоторые другие примитивы, но этот удобнее тем, что перед созданием модели мы можем протестировать собранную схему). Настройки:
а) Идентификатор: X - по идентификаторы программа определяет входы-выходы модели
б) Показать идентификатор: true - сделать его видимым (необязательно, но при большом их количестве схема нагляднее)
в) Показать в вольтах: false - отключаем отображение напряжения.

2. "Diode" - диод. Настраиваем 2 диода одинаково:
а) Порог: 0,1 - прямое напряжение (имитируем диод Шоттки)

3. "Diode" - тоже диод, но из него делаем стабилитрон.
а) Напряжение стабилизации: 4 . После ввода изображение диода станет стабилитроном. Стабилитрон можно не ставить, но придется увеличить прямое напряжение у диода слева до 6 вольт.
б) Порог: 0,1

4. "Buffer" - буфер. Настройками превращаем в инвертор. Настроек много, некоторые придется изменять для достижения правильности работы инвертора.
а) Низкое входящее напряжение: 1 (возможно, придется подбирать)
б)Инвертированный: true - эта опция и превращает буфер в инвертор

5. "MuxAnalog" - аналоговый мультиплексор
а) Address Bits: 2 - два адресных входа, соответственно - 4 информационных

6. "Probe" - измерительный щуп. Является выходом модели. (Пардон поздно заметил, что на рисунке "6" дублируется. Думаю, разобраться можно)
а) Идентификатор: Y

6. "Rail" - линия питания. Делаем -5V:
а)Напряжение: -5

7. "Rail" - линия питания. (На нижней схеме). Этот элемент установлен вместо символа "Земля". В прошлых версиях программы есть ошибка, которая не позволяет использовать символ "Земля" в моделях. Лучше сделать как на нижнем рисунке. Ошибка устранена в последней версии программы.
а)Напряжение: 0

8. "Resistor" - резистор
а) Сопротивление: 1000 - программа сама переставит в 1 кОм.

Все настройки сделаны. Переходим к созданию графической части моделей.

В самом низу панели инструментов "Компоненты" ищем примитив "Package" и переносим 2 этих элемента на рабочее поле недалеко от схемы. в свойствах одноuj из них устанавливаем опцию "Logic Symbol" равную false
Поясню: в программе модели имеют 2 изображения - как логический символ (некое УГО компонента) и вид микросхемы в корпусе DIP сверху. Изначально было только вид микросхемы сверху, пришлось попросить автора сделать и логические символы. Так схемы выглядят понятнее. К логическим символам можно и придраться, но такое изображение лучше вида микросхемы.

Формируем выводы (начнем с логического символа):
Подводим курсор к левой границе прямоугольника курсор и, удерживая Shift, жмем левую кнопку мыши. У прямоугольника появляется вывод и рядом контекстное меню:
Image

Здесь:
а) Pin Name: X - имя контакта, отображаемое на изображении модели
б) ID: X -Id вывода. Должно совпадать с ID соответствующего элемента схемы (в данном случае вход инвертора).
Pin Name и Id совпадать не обязаны. Но лучше пусть будут одинаковы - в дальнейшем будет меньше ошибок.

в) Invert Pin - выставляем, если вывод инверсный ( на модели будет кружок у вывода ). При этом перед Id появляется символ "!". Если Id изначально содержит "!", то изменений не происходит.
г) Unused Pin - изменяет цвет вывода на синий. Используется для вида корпуса микросхемы, помечает неиспользованные выводы (питание, общий, NC) - оставляем пустым
Жмем "Ок"
В свойствах элемента меняем опцию "Высота" на 2 - уменьшаем размеры прямоугольника по высоте.

Аналогичным способом формируем вывод напротив входа "X". Но подписываем его "Y". Отмечаем чекбокс "Invert Pin", убираем "!" перед "Y"

Возвращаемся к прямоугольнику, изображающему корпус микросхемы. Согласно написанному выше приводим вид корпуса, как на рисунке (можно сделать и 8 ножек в корпусе, это не принципиально. Синие выводы в симуляции никак не участвуют. Их ставят для более полной схожести с настоящим корпусом.
Если все правильно сделано, то должно получиться так:
Image
Название моделей могут быть иные. Оставляем как есть.

Исправить выводы можно, нажав правой кнопкой мыши на границе корпуса и вывода. В контекстном меню доступны команды: Move Pin, Edit Pin, Delete Pin

Обязательно сохраняем свою работу: [Ctrl+Shift+S] указываем папку для сохранения и вводим имя, например ternary_NOT.

Создаем модели (Описываю способ для последней версии программы, в более старых немного сложнее): В свободном месте рабочего стола программы жмем правую кнопку мыши и выбираем пункт "Создать подсхему". В папке с сохраненной схемой появятся 3 новых файла:
ternary_NOT.subcircuit - собственно модель
ternary_NOT.package - изображение модели в виде микросхемы DIP
ternary_NOT_LS.package - логический символ модели
Эти файлы текстовые, при необходимости их можно подправить в блокноте (разобраться в них несложно).

Внедрим модели в программу. В программе место для хранения троичных моделей не предусмотрено. Поэтому исправим это безобразие:
заходим в папку с установленной программой, отыскиваем в ней папку "data" (путь к ней: SimulIDE_0.3.12-SR5_Win32\share\simulide\data\) и создаём в ней каталог ternary. Копируем в него упомянутые выше 3 файла.
В папке "data" создаем файл "ternary.xml" и копируем туда содержимое:

Code:
<!DOCTYPE SimulIDE>
<itemlib>
    <tag>QT_TRANSLATE_NOOP("xmlfile","Logic")</tag>
   
    <itemset category="Logic" type="">
        <item name="Ternary logic"  package=""  subcircuit=""  icon="ic2.png" ></item>
    </itemset>
   
    <itemset category="Logic/Ternary logic" type="Subcircuit">
   <item name="T_not" package="ternary/ternary_not" subcircuit="ternary/ternary_not" info=" ternary logic NOT" />
   
</itemset>

</itemlib>


Собственно информация о новой модели размещена в строке:
<item name="T_not" package="ternary/ternary_not" subcircuit="ternary/ternary_not" info=" ternary logic NOT" />

Я думаю, разобраться несложно, что означают слова в ней.

После перезапуска программы в самом конце списка моделей появится пункт с новой "Микросхемой"

Настала пора испытать модель.
Собираем схему и запускаем симуляцию:
Image

Приведенную схему я собирал в Proteus, и она показала отличные результаты. На 1 МГц заметны задержки, но в целом все отлично:
Image

Известно, что при помощи мультиплексора можно синтезировать достаточно сложные логические функции, поэтому на основе приведенной схемы несложно создать и другие логические элементы: буфер, AND, NAND, OR, NOR и другие.
Тест элемента AND:
Image

PS: Я не электронщик, не программист, так что извиняйте, если чего сделал неправильно.
PPS: Троичную систему SimulIDE не очень любит: часто зависает, иногда иногда ведет себя неадекватно. Триггер так и не смог запустить нормально (на двух элементах и на трех элементах). Будем работать дальше.
PPPS: Не прощаюсь...


22 Jan 2020 15:57
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
FizikS wrote:
1. Схемы на транзисторах либо неэкономичны, либо сложны, что негативно скажется на скорости симуляции.

Схемы на транзисторах очень просты и рядом с DG403 - просто сверх-экономичны! :o
Attachment:
Tri.gif
Tri.gif [ 6.03 KiB | Viewed 1084 times ]

И симулируются они даже на моём древнем PII 366 очень даже шустро! :kruto:

Так что, Вы, видимо, хороших схем на транзисторах не симулировали, поэтому такую ерунду
тут нам и пишете... :osad:

_________________
iLavr


22 Jan 2020 16:13
Profile
Senior
User avatar

Joined: 04 Jan 2016 10:15
Posts: 109
Location: Russia, S.- Peterburg
Reply with quote
Отличная статья!

_________________
"Где просто, там ангелов со сто, а где мудрено, там ни одного" (С)


23 Jan 2020 01:10
Profile WWW
Senior
User avatar

Joined: 04 Jan 2016 10:15
Posts: 109
Location: Russia, S.- Peterburg
Reply with quote
FizikS wrote:
Привет всем!

PS: Я не электронщик, не программист, так что извиняйте, если чего сделал неправильно.
PPS: Троичную систему SimulIDE не очень любит: часто зависает, иногда иногда ведет себя неадекватно. Триггер так и не смог запустить нормально (на двух элементах и на трех элементах). Будем работать дальше.
PPPS: Не прощаюсь...


С моделированием настоящего физического RS-триггера есть хитрости!

Наиболее полная статья здесь: http://www.softcraft.ru/auto/ka/rsm/rsm01/

"Искусство программирования ... RS-триггера?!"

Quote:
Даже сложная задача переходит в разряд элементарных, когда становится известным ее решение. Или порой она кажется столь простой, что жаль тратить нее время, но вдруг выясняется, что решить ее не так-то уж и легко! Задача моделирования работы RS-триггера пример того и другого случаев. В [1] она была предложена в качестве теста на проверку параллельных свойств дискретных систем. Но со временем выяснилось, что не всем ясен смысл этого теста, да и сама проблема реализация RS-триггера вызвала определенные трудности. При обсуждении проблемы моделирования триггера многим эта задача кажется элементарной! Но, пожалуй, даже на одной руке много пальцев, чтобы перечислить тех, кто успешно довел ее решение до конца.


Attachments:
rsm01.zip [65.79 KiB]
Downloaded 27 times

_________________
"Где просто, там ангелов со сто, а где мудрено, там ни одного" (С)
23 Jan 2020 01:36
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
askfind wrote:
С моделированием настоящего физического RS-триггера есть хитрости!
...
"Искусство программирования ... RS-триггера?!"

Господа! Да вы что? :o Троичный триггер делается очень просто! :roll:

Image

_________________
iLavr


23 Jan 2020 07:25
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 14 posts ] 

Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.