Моделирование логических схем (образовательная программа)

Processing, playback of audio and video
  • А можно узнать почему у тебя уже вторая программа в темных тонах? Я ничего против авторской задумки не имею, но лично мои глаза при работе с черным фоном быстрее устают, чем когда на белом фоне рисуется все.
  • Mario wrote:А можно узнать почему у тебя уже вторая программа в темных тонах?
    Просто мне кажется что от светлых тонов на мониторах будет быстрее выгорать люминофор :) На современные мониторы это врятли распространяется, но привычка писать темные программы осталась еще с DOS-вских времен.
  • схемы разводить, кстати удобно на темном фоне. Хотя было бы классно, если бы была возможность выбрать или "темную" или "светлую" темы.
  • Да и цветовую гамму приложения в целом. Иначе получается несколько вырвиглазно. За прогу - респект!
  • На ЖК мониторах чёрный цвет самый энергоёмкий...на ЭЛТ на оборот...
  • popovpa wrote:на ЭЛТ на оборот...
    "На оборот" это как? На задней крышке что ли?
  • Игорь, у тебя просто призвание браться за невозможные вещи.
    И делать их!

    Совет: надо сразу подумать о совместимости с имеющимися программами, особенно на уровне библиотек элементов.
    Иначе зазюзюкаешься каждую микросхему забивать в отдельный файл.
  • Я так понимаю, что это эмулирование именно логических элементов. Мне нравится Logisim, он хранит свои данные вот так:
    Spoiler:

    Code: Select all

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <project source="2.7.1" version="1.0">
    This file is intended to be loaded by Logisim (http://www.cburch.com/logisim/).
    <lib desc="#Wiring" name="0"/>
      <lib desc="#Gates" name="1"/>
      <lib desc="#Plexers" name="2"/>
      <lib desc="#Arithmetic" name="3"/>
      <lib desc="#Memory" name="4">
        <tool name="ROM">
          <a name="contents">addr/data: 8 8
    0
    </a>
        </tool>
      </lib>
      <lib desc="#I/O" name="5"/>
      <lib desc="#Base" name="6">
        <tool name="Text Tool">
          <a name="text" val=""/>
          <a name="font" val="SansSerif plain 12"/>
          <a name="halign" val="center"/>
          <a name="valign" val="base"/>
        </tool>
      </lib>
      <main name="main"/>
      <options>
        <a name="gateUndefined" val="ignore"/>
        <a name="simlimit" val="1000"/>
        <a name="simrand" val="0"/>
      </options>
      <mappings>
        <tool lib="6" map="Button2" name="Menu Tool"/>
        <tool lib="6" map="Ctrl Button1" name="Menu Tool"/>
        <tool lib="6" map="Button3" name="Menu Tool"/>
      </mappings>
      <toolbar>
        <tool lib="6" name="Poke Tool"/>
        <tool lib="6" name="Edit Tool"/>
        <tool lib="6" name="Text Tool">
          <a name="text" val=""/>
          <a name="font" val="SansSerif plain 12"/>
          <a name="halign" val="center"/>
          <a name="valign" val="base"/>
        </tool>
        <sep/>
        <tool lib="0" name="Pin">
          <a name="tristate" val="false"/>
        </tool>
        <tool lib="0" name="Pin">
          <a name="facing" val="west"/>
          <a name="output" val="true"/>
          <a name="labelloc" val="east"/>
        </tool>
        <tool lib="1" name="NOT Gate"/>
        <tool lib="1" name="AND Gate"/>
        <tool lib="1" name="OR Gate"/>
      </toolbar>
      <circuit name="main">
        <a name="circuit" val="main"/>
        <a name="clabel" val="8"/>
        <a name="clabelup" val="east"/>
        <a name="clabelfont" val="SansSerif plain 12"/>
        <wire from="(190,420)" to="(230,420)"/>
         <wire from="(230,60)" to="(230,100)"/>
        <wire from="(150,40)" to="(240,40)"/>
        <wire from="(280,50)" to="(290,50)"/>
        <wire from="(350,260)" to="(410,260)"/>
        <comp lib="0" loc="(100,270)" name="Clock"/>
        <comp lib="1" loc="(570,120)" name="Controlled Buffer">
          <a name="facing" val="south"/>
          <a name="width" val="8"/>
          <a name="control" val="left"/>
        </comp>
        <comp lib="4" loc="(160,330)" name="Counter">
          <a name="width" val="3"/>
          <a name="max" val="0x4"/>
        </comp>
        <comp lib="0" loc="(660,310)" name="Pin">
          <a name="facing" val="west"/>
          <a name="output" val="true"/>
          <a name="width" val="8"/>
          <a name="tristate" val="false"/>
          <a name="labelloc" val="east"/>
        </comp>
        <comp lib="0" loc="(740,180)" name="Pin">
          <a name="facing" val="west"/>
          <a name="output" val="true"/>
          <a name="width" val="8"/>
          <a name="tristate" val="false"/>
          <a name="labelloc" val="east"/>
        </comp>
        <comp lib="1" loc="(680,240)" name="NOT Gate"/>
        <comp lib="2" loc="(150,430)" name="Demultiplexer">
          <a name="selloc" val="tr"/>
          <a name="select" val="3"/>
        </comp>
        <comp lib="6" loc="(167,298)" name="Text">
          <a name="text" val="Счетчик команд"/>
        </comp>
        <comp lib="6" loc="(686,151)" name="Text">
          <a name="text" val="Сдвиговый регистр"/>
        </comp>
        <comp lib="2" loc="(260,170)" name="Multiplexer">
          <a name="width" val="8"/>
          <a name="enable" val="false"/>
        </comp>
        <comp lib="0" loc="(620,550)" name="Pin">
          <a name="output" val="true"/>
          <a name="width" val="8"/>
          <a name="tristate" val="false"/>
        </comp>
        <comp lib="2" loc="(700,560)" name="Multiplexer">
          <a name="width" val="8"/>
          <a name="enable" val="false"/>
        </comp>
        <comp lib="4" loc="(530,180)" name="RAM"/>
        <comp lib="1" loc="(410,540)" name="OR Gate">
          <a name="inputs" val="2"/>
        </comp>
        <comp lib="1" loc="(480,410)" name="NOT Gate">
          <a name="facing" val="north"/>
        </comp>
        <comp lib="2" loc="(710,410)" name="Multiplexer">
          <a name="width" val="8"/>
          <a name="enable" val="false"/>
        </comp>
        <comp lib="1" loc="(370,410)" name="OR Gate">
          <a name="inputs" val="3"/>
        </comp>
        <comp lib="0" loc="(60,240)" name="Pin">
          <a name="tristate" val="false"/>
        </comp>
        <comp lib="0" loc="(220,100)" name="Bit Extender">
          <a name="in_width" val="1"/>
          <a name="out_width" val="8"/>
        </comp>
        <comp lib="1" loc="(380,110)" name="OR Gate">
          <a name="width" val="8"/>
          <a name="inputs" val="2"/>
        </comp>
        <comp lib="0" loc="(280,130)" name="Pin">
          <a name="facing" val="south"/>
          <a name="width" val="8"/>
          <a name="tristate" val="false"/>
        </comp>
        <comp lib="4" loc="(130,180)" name="Register"/>
        <comp lib="1" loc="(330,290)" name="AND Gate">
          <a name="inputs" val="2"/>
        </comp>
        <comp lib="0" loc="(750,360)" name="Pin">
          <a name="facing" val="south"/>
          <a name="width" val="8"/>
          <a name="tristate" val="false"/>
        </comp>
        <comp lib="3" loc="(280,50)" name="Adder"/>
        <comp lib="0" loc="(760,290)" name="Pin">
          <a name="facing" val="west"/>
          <a name="output" val="true"/>
          <a name="width" val="8"/>
          <a name="tristate" val="false"/>
          <a name="labelloc" val="east"/>
        </comp>
        <comp lib="6" loc="(99,147)" name="Text">
          <a name="text" val="Регистр PC"/>
        </comp>
        <comp lib="4" loc="(670,180)" name="Shift Register">
          <a name="width" val="8"/>
          <a name="length" val="2"/>
        </comp>
      </circuit>
    </project>
    
  • XVilka wrote:схемы разводить, кстати удобно на темном фоне. Хотя было бы классно, если бы была возможность выбрать или "темную" или "светлую" темы.
    когда будет свободное время надо будет добавить выбор цвета, пока что нужно добавить инструменты для редактирования
    art_zh wrote:Совет: надо сразу подумать о совместимости с имеющимися программами, особенно на уровне библиотек элементов. Иначе зазюзюкаешься каждую микросхему забивать в отдельный файл.
    думаю что сделать конвертирование можно, но вот будут ли при этом совпадать пропорции элементов. В этом может быть основная проблема с переносом
    SoUrcerer wrote:Я так понимаю, что это эмулирование именно логических элементов. Мне нравится Logisim, он хранит свои данные вот так:
    посмотрел в интернете эту программу, интересная
  • Сделал небольшие доработки программы и отправил на svn ревизия 2462.
    Исправил небольшую ошибку с надписями.
    Добавил кнопки для рисования и стирания проводов. Провода рисуются по пикселям (клеткам), хотя конечно лучше было бы если рисовалось линиями, но пока нет времени на эксперименты.
  • IgorA wrote: посмотрел в интернете эту программу, интересная
    Особенно использование во "всевозможных" курсах обучения
    логики и созданию CPU. (поиск "Logisim circ"), но по моему
    "песочница" Javы для него "несколько" обременительна.

    P.S. Пожелание у пользователя должна быть возможность нарастить функционал,
    например используя, простейший язык программирования типа Лого.
    Самому близка и интересна эта тематика, как приложение сил прогера и пользователя.
  • Делал несколько обновлений программы в ревизиях 2482 и 2487 (добавил курсоры).
    Обнаружил ошибку предположительно в функции pole_cell_delete. Из-з чего возможны глюки при сохранении и при интенсивном редактировании схем.
    Kopa wrote:P.S. Пожелание у пользователя должна быть возможность нарастить функционал, например используя, простейший язык программирования типа Лого.
    Надо нарастить программу другими функциями, тогда и за Лого можно будет взятся. Пока что работа всех элементов задается таблицами, а это не удобно, когда у элемента много входных ног.
    Нашел эту ошибку не там где думал а в другой функции, скоро исправлю на svn.
  • В рев. 2523 добавил открытие цветов из ini файла
    Пока не все цвета можно задавать, только основные
    Файл bat не копирует в папку bin файл ini, потому по умолчанию цвета будут старые.
  • В качестве задела на будущее было бы хорошо иметь возможность увеличить масштаб. Если не произвольно, то хотя бы в целое число раз. Да даже в 2,4,8,16 уже для большинства случаев хватит. Не у всех идеальное зрение, но даже у тех кого оно хорошее спустя часы работы глаза устают, а увеличение масштаба позволяет меньше напрягать глаза.

    UPD Упс, я был не внимателен. Масштабирование уже есть. Меня смутило отсутствие скроллбаров.
  • Who is online

    Users browsing this forum: No registered users and 1 guest