а не замутить ли нам недосимулятр?

Публичный форум для http://www.nedopc.org/nedopc

Moderator: Shaos

jdigreze
God
Posts: 1388
Joined: 02 Jan 2006 02:28
Location: Abakan

Re: а не замутить ли нам недосимулятр?

Post by jdigreze »

Lavr wrote:Может быть, через switch ... case ? Но как? Или есть какой другой метод?
Спросили, конечно, не меня, но самый быстрый метод - табличный. На входе и выходе же числа? Входное число является индексом в массиве, по которому находится число, которое на выход выдавать.
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: а не замутить ли нам недосимулятр?

Post by Lavr »

jdigreze wrote:Спросили, конечно, не меня, но самый быстрый метод - табличный.
Потому и спросили не тебя, а специалиста по С++, который пишет свой симулятор. :-?
То, что самый быстрый метод - табличный, я надеюсь, и дураку понятно... :wink:
jdigreze wrote:На входе и выходе же числа?
А вот этого никто не утверждал. Вероятно, булевы выражения на каждом пине...
А может быть беззнаковые целые... поэтому и вопрос к конкретному человеку.
iLavr
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: а не замутить ли нам недосимулятр?

Post by Shaos »

соглашусь, что табличный метод самый быстрый

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

табличку можно заполнить автоматически при генерации кода - например во входном языке каким-то образом указывать, что первые 4 цифровых входа это первый аргумент A со значениями от 0 до 15, вторые 4 цифровых входа это второй аргумент B со значениями от 0 до 15, ну и девятый вход C это типа третий аргумент со значениями 0 или 1, внутри квадратика функции пишем что-то типа S(0..31)=A(0..15)+B(0..15)+C(0..1) и наш симулятр генерит табличку для сишного кода с правильными значениями для каждой комбинации входных значений...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: а не замутить ли нам недосимулятр?

Post by Lavr »

Shaos wrote:соглашусь, что табличный метод самый быстрый
индекс можно сформировать из всех входов используя их как адрес в табличке
Вот если по входам идет скажем bool - по каждому, индекс и не очень-то удобно составлять... :-?
И если целое без знака - ну просто 0 и 1 - тоже индекс неудобно формировать.
Хотя я безусловно согласен - табличный метод самый быстрый, но как-то бы еще индекс создавать шустро надо...
iLavr
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: а не замутить ли нам недосимулятр?

Post by Shaos »

Для сумматоров и т.д. надо добавлять собирательные типы данных - типа uint4 (4-битное беззнаковое целое), либо перечисления (0..15) - тогда и индекс будет быстрее получаться ( c<<8|b<<4|a вместо c<<8|b4<<7|b3<<6|b2<<5|b1<<4|a4<<3|a3<<2|a2<<1|a1)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: а не замутить ли нам недосимулятр?

Post by Lavr »

А у Протезуса на 1 логический вход по сути может поступить 9 вариантов входного сигнала типа INT.
DSIM_State.gif
Создть из них табличный индекс? :o Да мне кажется, легче застрелиться... :lol:
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: а не замутить ли нам недосимулятр?

Post by Shaos »

индекс надо составлять из функционально необходимых величин, а если на входе мусор, то и на выходе будет мусор...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: а не замутить ли нам недосимулятр?

Post by Lavr »

Shaos wrote:индекс надо составлять из функционально необходимых величин...
А если ты внимательно посмотришь и прочитаешь текст, то увидишь, что все эти величины функционально необходимы.
Мусора среди них нет. Просто они дают различие, как могут быть сформированы лог. "0" и "1".
А заодно и что делать если лог. "0" "столкнулся" с лог. "1"... :wink:
iLavr
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: а не замутить ли нам недосимулятр?

Post by Shaos »

зачем симулировать грязные хаки? ;)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: а не замутить ли нам недосимулятр?

Post by Lavr »

Shaos wrote:зачем симулировать грязные хаки? ;)
Не знаю, зачем ты их симулируешь. :o Я лично "грязные хаки" не симулирую... :-?


Просто у нас настолько неплохой симулятор, что сквозь двоичный элемент легко проходит
троичный цифровой сигнал, и при этом правильно инвертируется! :lol:
BinInv.gif
Кстати... а ты не знал, что серьёзные логические симуляторы пишут в троичной логике? :wink:
Если хочешь - могу поведать... 8)
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: а не замутить ли нам недосимулятр?

Post by Shaos »

грязные, грязные хаки...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: а не замутить ли нам недосимулятр?

Post by Lavr »

Shaos wrote:грязные, грязные хаки...
Сочувствую тебе... помой их чтоле... ну не убивайся так - сердцу больно смотреть... :osad:
:mrgreen:

Вот смари кака красива штука! "Монтажное ИЛИ" называется!
durtyOR.gif
И пишут нам про него очень умные дятьки! 8)

А ты, выходит, что и просимулировать это не умеешь, так еще и "грязной хакой" обзывать норовишь? :wink:

Нет, Shaos... как и твой любимый землячок, - ТЫ НЕПРАВ! :mrgreen:
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: а не замутить ли нам недосимулятр?

Post by Shaos »

b2m wrote: 20 Aug 2012 05:19 Гипотетический вопрос.

А что, если взять готовый кроссплатформенный редактор схем (на жабе?), который сохраняет схему в формате, понятном для разбора и симуляции, а симуляцию сделать отдельной программой, которая будет считывать схему и симулировать её?

Вопрос больше в том, какой редактор наиболее подошёл бы в этом случае.
Вот прототип "недосимулятра" под ДОС - пока он лишь отрисовывает 2 схемы от Logisim - TRIADOR и NEDONAND:

http://nedopc.org/nedopc/files/LOGIGRAF.ZIP (129KB)

Это то, что я успел сделать за пару выходных дней (и ночей) - при необходимости могут быть добавлены и другие стандартные (и сторонние) блоки Logisim

Image

P.S. 7 декабря 2017 адаптировал код под Turbo-C 2.01, который считается freeware
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: а не замутить ли нам недосимулятр?

Post by Lavr »

Shaos wrote:он лишь отрисовывает 2 схемы от Logisim
А с форматом файла Logisim-а ты разобрался?
Может быть стОит сделать из него экспорт в PSpice?
iLavr
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: а не замутить ли нам недосимулятр?

Post by Shaos »

Lavr wrote:
Shaos wrote:он лишь отрисовывает 2 схемы от Logisim
А с форматом файла Logisim-а ты разобрался?
Ну я покрыл необходимый минимум, чтобы уметь прочитать 2 мои большие модели - по ходу можно добавлять функционала, чтобы покрыть всё
Lavr wrote:Может быть стОит сделать из него экспорт в PSpice?
SPICE на таких больших схемах будет виснуть похлеще логисима ;)
Как я уже говорил ранее - спайс для симуляции цифровых схем ненужен (ну разве что если только на самом последнем этапе верификации перед производством чипа)
Я тут за главного - если что шлите мыло на me собака shaos точка net