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

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

Moderator: Shaos

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

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

Post by kalmar »

Способ №2:
Плата работает вот с этой моделью. Она не сделана на логических элементах, а написана на скриптовом языке.
Буду переделывать остальные свои модели.
FizikS wrote: 10 Jan 2025 06:24 ЗЫ: Именовать модели лучше в транслите. Так понятней.
Ну, кому как...
Использую обозначения из документации на ЭВМ:
You do not have the required permissions to view the files attached to this post.
User avatar
FizikS
Maniac
Posts: 264
Joined: 11 Oct 2018 00:52
Location: г. Клинцы, Брянская обл.

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

Post by FizikS »

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

Хотелось бы увидеть сравнение быстродействия и поведения этих моделей на вашей системе.
M155_Logic.PNG
M155_Script.PNG
You do not have the required permissions to view the files attached to this post.
kalmar
Novelist
Posts: 32
Joined: 08 Dec 2024 13:47

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

Post by kalmar »

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

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

Post by kalmar »

Впрочем, не так все плохо...
У меня просто компьютер медленный.
С иголками подумаю, что можно сделать.
FizikS wrote: 20 Jan 2025 04:34 При замене обычной модели на скриптовую и обратно, они исчезают из схемы
У элементов типа "Subcircuit" и "MCU" разные наборы свойств, поэтому они напрямую не взаимозаменяемы.
You do not have the required permissions to view the files attached to this post.
Mixa64
Doomed
Posts: 478
Joined: 25 Aug 2009 07:02
Location: Москва

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

Post by Mixa64 »

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

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

Post by FizikS »

Так он и в СССР был: 555ИД5:
555ID5.PNG
You do not have the required permissions to view the files attached to this post.
kalmar
Novelist
Posts: 32
Joined: 08 Dec 2024 13:47

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

Post by kalmar »

Попробовал реализовать очередь событий на скриптовом языке, подобно тому, как это сделано для логических элементов.
Результаты не радуют...
You do not have the required permissions to view the files attached to this post.
kalmar
Novelist
Posts: 32
Joined: 08 Dec 2024 13:47

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

Post by kalmar »

Переделал очередь событий на основе кольцевого односвязного списка.
Уже лучше...
You do not have the required permissions to view the files attached to this post.
User avatar
FizikS
Maniac
Posts: 264
Joined: 11 Oct 2018 00:52
Location: г. Клинцы, Брянская обл.

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

Post by FizikS »

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

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

Post by kalmar »

Немного оптимизировал код, удалось выжать еще пару процентных пунктов к Real Speed. Но, похоже, это уже потолок для скриптовой модели.
А вот с функциями как-то все совсем грустно...
You do not have the required permissions to view the files attached to this post.
kalmar
Novelist
Posts: 32
Joined: 08 Dec 2024 13:47

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

Post by kalmar »

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

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

Post by kalmar »

Перенес реализацию очереди событий в код программы...
Можно подвести итоги.
В порядке убывания Real Speed:
1. модель на ПЗУ (41%);
2. скриптовая модель с очередью событий в коде программы (38%);
3. модель на логических элементах (28%);
4. скриптовая модель с очередью событий в коде модели (22%);
5. модель на функциях (14%).
Впрочем, есть еще вариант - модель, встроенная в программу. Но такой пока не существует.
You do not have the required permissions to view the files attached to this post.
User avatar
FizikS
Maniac
Posts: 264
Joined: 11 Oct 2018 00:52
Location: г. Клинцы, Брянская обл.

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

Post by FizikS »

Можно сделать модель на встроенных примитивах:
M155_primitiv.PNG
Это должно еще немного поднять быстродействие.

Насчет встроенных моделей. Можно сделать предложение автору реализовать как встроенный примитив таблицу истинности. ПЗУ работает абсолютно так же, но это универсальная модель (ПЗУ/ОЗУ), а значит будет работать немного медленнее. Кроме этого есть проблема с созданием прошивки ПЗУ для реализации нужной функции. Встроенная таблица истинности должна будет иметь простой интерфейс для ввода данных (банально - заполнение таблицы). В этом случае получится универсальный и простой инструмент для создания сколь угодно сложных комбинационных схем. Этот компонент должен иметь настройки числа строк (зависит от числа входных переменных) и числа столбцов. Так же должен быть сигнал Chip Select (Out enable).
Думаю, это неплохая идея.
You do not have the required permissions to view the files attached to this post.
User avatar
fifan
Devil
Posts: 909
Joined: 06 Oct 2006 03:17
Location: г.Лянтор,Сургутского р-на,ХМАО

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 13:47

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

Post by kalmar »

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