SimulIDE бесплатный симулятор электроники (PIC, AVR, цифра)

Использование и разработка софта (преимущественно на ПЦ)

Moderator: Shaos

Post Reply
kalmar
Novelist
Posts: 32
Joined: 08 Dec 2024 20:47

Re: SimulIDE бесплатный симулятор электроники (PIC, AVR, цифра)

Post by kalmar »

Способ №2:
Плата работает вот с этой моделью. Она не сделана на логических элементах, а написана на скриптовом языке.
Буду переделывать остальные свои модели.
FizikS wrote: 10 Jan 2025 13:24 ЗЫ: Именовать модели лучше в транслите. Так понятней.
Ну, кому как...
Использую обозначения из документации на ЭВМ:
Attachments

M155.zip
(6.65 KiB) Downloaded 24 times

Снимок экрана от 2025-01-17 16-45-58.png
Снимок экрана от 2025-01-17 16-45-58.png (248.94 KiB) Viewed 1248 times

Снимок экрана от 2025-01-17 16-43-50.png
Снимок экрана от 2025-01-17 16-43-50.png (306.43 KiB) Viewed 1248 times

User avatar
FizikS
Maniac
Posts: 262
Joined: 11 Oct 2018 07:52
Location: г. Клинцы, Брянская обл.

Re: SimulIDE бесплатный симулятор электроники (PIC, AVR, цифра)

Post by FizikS »

Протестировал модель M155 на скриптах и на логических элементах. Результаты не очень...
1. M155 это К155ИД4. Она не имеет на выходах открытого коллектора. В ваших моделях ОК.
2. Поведение моделей разное. На скриптах симуляция очень медленная ( у меня получилось около 2-х % от реальной скорости) и многочисленные сообщения об ошибках. Вполне вероятно, что я неправильно что-то подключил.
3. По скриншотам видно, что у скриптовой модели отсутствуют "иголки" на выходах (следствие применения асинхронного счетчика).
4. При замене обычной модели на скриптовую и обратно, они исчезают из схемы, приходится заново подключать исчезнувшие элементы. Т.е. если схема большая и отлажена, замена моделей приведет к полному краху.
5. Скриптовая модель показала картинку на УГО (мелочь, но приятно).

Хотелось бы увидеть сравнение быстродействия и поведения этих моделей на вашей системе.

Модель на логике
Модель на логике
M155_Logic.PNG (71.81 KiB) Viewed 1210 times

Модель на скриптах
Модель на скриптах
M155_Script.PNG (69.69 KiB) Viewed 1210 times

kalmar
Novelist
Posts: 32
Joined: 08 Dec 2024 20:47

Re: SimulIDE бесплатный симулятор электроники (PIC, AVR, цифра)

Post by kalmar »

FizikS wrote: 20 Jan 2025 11:34 M155 это К155ИД4. Она не имеет на выходах открытого коллектора. В ваших моделях ОК
Почему-то был уверен, что у ИД4 открытый коллектор. Исправлю.
FizikS wrote: 20 Jan 2025 11:34 симуляция очень медленная ( у меня получилось около 2-х % от реальной скорости) и многочисленные сообщения об ошибках
У меня все то же самое. Это 155 серия, медленная. Если импульс на входе короче 30 нс, то модель не успевает его обработать, выдает сообщение об ошибке. Можно 0 нс сделать, иголки проходить будут, но это будет уже не 155 серия.
Попробую убрать сообщения. Это должно в какой-то мере улучшить производительность.
В общем-то я и не ожидал от скриптовых моделей хорошей производительности. Но нет выбора. Поддержка вложенных подсхем недоделана. И, похоже, не ожидается. Самостоятельно я не возьмусь ее дописывать, во всяком случае, не сейчас.
Тут либо так, либо уходить на протеус.
kalmar
Novelist
Posts: 32
Joined: 08 Dec 2024 20:47

Re: SimulIDE бесплатный симулятор электроники (PIC, AVR, цифра)

Post by kalmar »

Впрочем, не так все плохо...
У меня просто компьютер медленный.
С иголками подумаю, что можно сделать.
FizikS wrote: 20 Jan 2025 11:34 При замене обычной модели на скриптовую и обратно, они исчезают из схемы
У элементов типа "Subcircuit" и "MCU" разные наборы свойств, поэтому они напрямую не взаимозаменяемы.
Attachments

m155.as.zip
(548 Bytes) Downloaded 26 times

Снимок экрана от 2025-01-20 21-43-03.png
Снимок экрана от 2025-01-20 21-43-03.png (43.17 KiB) Viewed 1188 times

Снимок экрана от 2025-01-20 21-45-38.png
Снимок экрана от 2025-01-20 21-45-38.png (64.49 KiB) Viewed 1188 times

Mixa64
Doomed
Posts: 477
Joined: 25 Aug 2009 14:02
Location: Москва

Re: SimulIDE бесплатный симулятор электроники (PIC, AVR, цифра)

Post by Mixa64 »

Был бы такой же дешифратор с ОК - он бы назывался М156.
User avatar
FizikS
Maniac
Posts: 262
Joined: 11 Oct 2018 07:52
Location: г. Клинцы, Брянская обл.

Re: SimulIDE бесплатный симулятор электроники (PIC, AVR, цифра)

Post by FizikS »

Так он и в СССР был: 555ИД5:

555ID5.PNG
555ID5.PNG (25.83 KiB) Viewed 1168 times

kalmar
Novelist
Posts: 32
Joined: 08 Dec 2024 20:47

Re: SimulIDE бесплатный симулятор электроники (PIC, AVR, цифра)

Post by kalmar »

Попробовал реализовать очередь событий на скриптовом языке, подобно тому, как это сделано для логических элементов.
Результаты не радуют...
Attachments

Снимок экрана от 2025-01-22 14-26-23.png
Снимок экрана от 2025-01-22 14-26-23.png (56.16 KiB) Viewed 1126 times

kalmar
Novelist
Posts: 32
Joined: 08 Dec 2024 20:47

Re: SimulIDE бесплатный симулятор электроники (PIC, AVR, цифра)

Post by kalmar »

Переделал очередь событий на основе кольцевого односвязного списка.
Уже лучше...
Attachments

Снимок экрана от 2025-01-22 18-46-10.png
Снимок экрана от 2025-01-22 18-46-10.png (41.05 KiB) Viewed 1114 times

M155.zip
(7.37 KiB) Downloaded 22 times

User avatar
FizikS
Maniac
Posts: 262
Joined: 11 Oct 2018 07:52
Location: г. Клинцы, Брянская обл.

Re: SimulIDE бесплатный симулятор электроники (PIC, AVR, цифра)

Post by FizikS »

Остается запихивать микросхемы комбинационной логики в ПЗУ или в контейнер "Функция". Тогда можно подсхемы делать из микросхем, а не из логических элементов. Последовательностные микросхемы нужно будет заменять их эквивалентами на триггерах, регистрах. Я подобным образом делал несколько дисплеев - они имеют в описании 74hc595 и размещены в группе "Led display". Микросхему 74hc595 я заменял на сдвиговый регистр и защелку. Синхронные счетчики (двоичные) легко заменяются сумматором и защелкой или ПЗУ и защелкой.
kalmar
Novelist
Posts: 32
Joined: 08 Dec 2024 20:47

Re: SimulIDE бесплатный симулятор электроники (PIC, AVR, цифра)

Post by kalmar »

Немного оптимизировал код, удалось выжать еще пару процентных пунктов к Real Speed. Но, похоже, это уже потолок для скриптовой модели.
А вот с функциями как-то все совсем грустно...
Attachments

Снимок экрана от 2025-01-23 01-57-49.png
Снимок экрана от 2025-01-23 01-57-49.png (37.43 KiB) Viewed 1091 times

kalmar
Novelist
Posts: 32
Joined: 08 Dec 2024 20:47

Re: SimulIDE бесплатный симулятор электроники (PIC, AVR, цифра)

Post by kalmar »

FizikS wrote: 22 Jan 2025 19:29 Синхронные счетчики (двоичные) легко заменяются сумматором и защелкой или ПЗУ и защелкой.
ПЗУ и защелкой не только счетчики заменяются. Это называется "Микропрограммный автомат". В процессорах на нем делают управление АЛУ и другими узлами.
kalmar
Novelist
Posts: 32
Joined: 08 Dec 2024 20:47

Re: SimulIDE бесплатный симулятор электроники (PIC, AVR, цифра)

Post by kalmar »

Перенес реализацию очереди событий в код программы...
Можно подвести итоги.
В порядке убывания Real Speed:
1. модель на ПЗУ (41%);
2. скриптовая модель с очередью событий в коде программы (38%);
3. модель на логических элементах (28%);
4. скриптовая модель с очередью событий в коде модели (22%);
5. модель на функциях (14%).
Впрочем, есть еще вариант - модель, встроенная в программу. Но такой пока не существует.
Attachments

Снимок экрана от 2025-01-24 13-10-21.png
Снимок экрана от 2025-01-24 13-10-21.png (44.54 KiB) Viewed 1040 times

User avatar
FizikS
Maniac
Posts: 262
Joined: 11 Oct 2018 07:52
Location: г. Клинцы, Брянская обл.

Re: SimulIDE бесплатный симулятор электроники (PIC, AVR, цифра)

Post by FizikS »

Можно сделать модель на встроенных примитивах:

M155_primitiv.PNG
M155_primitiv.PNG (52.75 KiB) Viewed 1033 times

Это должно еще немного поднять быстродействие.

Насчет встроенных моделей. Можно сделать предложение автору реализовать как встроенный примитив таблицу истинности. ПЗУ работает абсолютно так же, но это универсальная модель (ПЗУ/ОЗУ), а значит будет работать немного медленнее. Кроме этого есть проблема с созданием прошивки ПЗУ для реализации нужной функции. Встроенная таблица истинности должна будет иметь простой интерфейс для ввода данных (банально - заполнение таблицы). В этом случае получится универсальный и простой инструмент для создания сколь угодно сложных комбинационных схем. Этот компонент должен иметь настройки числа строк (зависит от числа входных переменных) и числа столбцов. Так же должен быть сигнал Chip Select (Out enable).
Думаю, это неплохая идея.
User avatar
fifan
Devil
Posts: 907
Joined: 06 Oct 2006 10:17
Location: г.Лянтор,Сургутского р-на,ХМАО
Contact:

Re: SimulIDE бесплатный симулятор электроники (PIC, AVR, цифра)

Post by fifan »

Возникли непонятки с микроконтроллером PIC16F628A. Касательно настройки прерываний не верно высчитывается время прерывания от таймера TMR0. Проверенно на другом микроконтроллере PIC16F886. Там всё нормально. Может не верно присваивается переменная OPTION_REG? В ней задаётся коэффициент деления. Или также не верно записывается число в регистр TMR0. Нет у кого-нибудь возможности исправит или проверить это?

Вот формулы для расчёта прерывания от TMR0:
F -Frequency of Operation (MHz)
t i - Time of Interrupt (ms)
TMR0 - Timer module (1...255)
PS<2:0> - Prescaler Rate Select bits - 0 is K=2, 1 is K=4, 2 is K=8, 3 is K=16, 4 is K=32, 5 is K=32, 6 is K=64, 7 is K=128, 8 is K=256

t i = (4 * K * (256-TMR0) ) / F
kalmar
Novelist
Posts: 32
Joined: 08 Dec 2024 20:47

Re: SimulIDE бесплатный симулятор электроники (PIC, AVR, цифра)

Post by kalmar »

FizikS wrote: 24 Jan 2025 12:00 Насчет встроенных моделей. Можно сделать предложение автору реализовать как встроенный примитив таблицу истинности.
Тоже думал о чем-то подобном. Наверное, проще будет свести все это к модели PAL и подключению компилятора типа palasm. А автора я бы попросил сделать возможность задавать произвольную "обертку" (package) для любого компонента схемы.
PS: Задавать напрямую таблицу истинности есть смысл только для небольшого количества входов. Если их будет, например, 32, то ПЗУ будет огромным. В то же время для задания произвольной логической функции для каждого выхода нужны всего две константы, независимо от количества входов.
Last edited by kalmar on 25 Jan 2025 09:55, edited 1 time in total.
Post Reply