Jump to content

Search the Community

Showing results for tags 'logisim'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Вопрос-Ответ. Для начинающих
    • Песочница (Q&A)
    • Дайте схему!
    • Школьникам и студентам
    • Начинающим
    • Паяльник TV
    • Обсуждение материалов с сайта
  • Радиоэлектроника для профессионалов
    • Световые эффекты и LED
    • Роботы и модели на ДУ-управлении
    • Автоматика
    • Самодельные устройства к компьютеру
    • Программное обеспечение
    • Автомобильная электроника
    • Системы охраны и наблюдения. Личная безопасность
    • Питание
    • Электрика
    • Промышленная электроника
    • Ремонт
    • Металлоискатели
    • Измерительная техника
    • Мастерская радиолюбителя
    • Сотовая связь
    • Спутниковое ТВ
    • КВ и УКВ радиосвязь
    • Жучки
    • Телефония и фрикинг
    • Высокое напряжение
    • Идеи и технологии будущего
    • Справочная радиоэлементов
    • Литература
    • Разное
  • Аудио
    • FAQ, Технологии и компоненты
    • Для начинающих
    • Источники звука
    • Предусилители, темброблоки, фильтры
    • Питание аудио аппаратуры
    • Усилители мощности
    • Акустические системы
    • Авто-аудио
    • Ламповая техника
    • Гитарное оборудование
    • Прочее
  • Микроконтроллеры
  • Товары и услуги
  • Разное
  • Переделки's ATX->ЛБП
  • Переделки's разные темы
  • Киловольты юмора's Юмор в youtube

Blogs

There are no results to display.

There are no results to display.

Marker Groups

  • Пользователи форума

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


ICQ


Skype


Интересы


Город


Сфера радиоэлектроники


Оборудование

Found 2 results

  1. В противоположность известных всем процессоров «Intel», марку которых довольно легко запоминать и выговаривать, «Койяанискаци» задумывался как процессор, имя которого сложнее произнести, чем разобраться в его архитектуре и научиться его программировать на самом элементарном уровне машинного кода редакторами дампа, чтобы проверить, действительно ли стоит прогибаться под радиолюбительские ТУ и невозможно сформировать красивую систему команд, понятную на уровне интуиции? Не имеется ввиду код стиля «O'Kей, процик, вычисли мне среднее факториальное», а планировался машинный код с минимальным уровнем вхождения в основы искусства его программирования, не требующего жёсткой зубрёжки и заучивания всех команд. Архитектура процессора Весь процессор основан на регистровом файле из четырёх функциональных групп по десять ячеек в каждой. Хотя операции АЛУ возможны над любыми ячейками, правила корректного оперирования с ними соблюдать необходимо более-менее строго. Здесь стоит просто запомнить логику и назначение этих функциональных групп: A₀…₉ - Аккумуляторы (A₀ хранит флажки статуса АЛУ) B₀…₉ - Base/База доступа к памяти (B₀ хранит Базу возврата из подпрограммы) C₀…₉ - Counter/Счётчик/Смещение байта в памяти (C₀ хранит Смещение возврата из подпрограммы) D₀…₉ - Devices/Доступные устройства с мгновенным откликом (можно организовать кеш) Так как процессор достаточно прост и не имеет встроенных аппаратных механизмов организации стековых операций, регистры B₀:C₀ сохраняют адрес, на котором была размещена операция обращения к подпрограмме. Программист при необходимости сам обязан позаботиться о всех операциях работы со стеком и описать их алгоритмом. Система команд Практически все команды кодируются WYSIWYG-стилем акына:«Что вижу, то значит». Шестнадцатеричная кодировка отчасти является аббревиатурой самой команды и всё задумывалось так, чтобы большинство команд просто совершали понятные действия. 00: HLT (останов программы) - крайне логичный и гармоничный код! 01: Приращение единицы к активному регистру-приёмнику 02…09: Префикс повтора операции от 2 до 9 раз или пропуск группы операций по условию 10…99: Используется BCD-код приращения к активному регистру-приёмнику - код 56 означает именно 56₁₀, а не 0x56₁₆ A0…A9, B0…B9, C0…C9: Безвременные префиксы выбора активного регистра указанной группы - A₀…A₉, B₀…B₉, C₀…C₉ соответственно D0…D9: Выбор активного устройства группы Devices - D₀…D₉ AA…AD, BA…BD, CA…CD, DA…DD: Безвременные префиксы выбора сочетания операндов для АЛУ-операций - A,A…D,D соответственно E0…E7: Обращение к расширению (Extension) через подпрограмму - CALL 0xE000…0xE700 F1…F9: Обращение к функции (Function) с указанным индексом - CALL 0xF100…0xF900 E8…EF: Условный префикс к исполнению кода следующей операции - Enable if SF/PF/CF/ZF F0: Завершение текущей функции (Function Over - как Game Over) AE/BE/CE/DE: Извлечение (Extract) данных из памяти в указанный регистр AF/BF/CF/DF: Запись/фиксация (Fix) данных указанного регистра в память FA…FF: Вызов прочих функций - CALL 0xFA00…0xFF00 0A/1A/2A…9A: АЛУ-операция "Сумма" (Add) над группой операндов - индекс правого операнда указывается явно 0…9 0B/1B/2B…9B: АЛУ-операция "Вычитание" (suB) над группой операндов - индекс правого операнда указывается явно 0…9 0C/1C/2C…9C: АЛУ-операция "Конъюнкция" (Conjunct/and) над группой операндов - индекс правого операнда указывается явно 0…9 0D/1D/2D…9D: АЛУ-операция "Дизъюнкция" (Disjunct/or) над группой операндов - индекс правого операнда указывается явно 0…9 0E/1E/2E…9E: АЛУ-операция "Исключающее ИЛИ" (Exclusive or/Eor/xor) над группой операндов - индекс правого операнда указывается явно 0…9 Основы программирования Однако, тут не стоит думать, что «процессор акына» совсем ничего не требует от продвинутого пользователя-программиста: Минимальный порог вхождения преодолеть всё-таки придётся… А значит, придётся чуточку поднапрячься и преодолеть порог! (Здесь подразумевается, что читатель уже имеет все базовые понятия и принципы, позволяющие ориентироваться в синтаксической конструкции и строить выражения…) Сложение величин из регистров A₁ и B₂ традиционно можно представить выражением «A1 += B2» или мнемонической записью «ADD A1,B2», которую и следует оформить в машинный код. Так как архитектура процессора предельно проста и организовалась на польской записи, буквально необходимо сначала предопределить используемые в операции операнды, чтобы потом произвести саму конкретную операцию вычисления. Так как используется сочетание регистров «A1» и «B2» в порядке «An,Bn», то под их определение следует указать машинный код AB₁₆. Выбор индексов на конкретных операндах выполняется кодами A1₁₆ и B2₁₆, что указывает на буквальность кодов. Так как индекс правого операнда равен двум, то в коде АЛУ-операции «Сумма» его следует указать явно в левой тетраде как 2A₁₆. Тем самым, становится очевидным размещения кода всего выражения как «A1 AB B2 2A». Но так как индекс B₂ указан явно в АЛУ-операции, байт команды «B2» можно исключить из цепочки, так как сам регистр B₂ не является приёмником результата и код сократится до одной из двух комбинаций записи «A1 AB 2A» или «AB A1 2A», так как от расположения префиксов перед операциями результат не изменяется и всё зависит от стиля программиста. 0000 A1 |----vv ;A1 выбирает регистр A₁ 0001 AB |------v ;AB задаёт порядок операндов A,B 0002 2A|ADD A1,B2;2A - ADD, где двойка выбирает индекс B₂ ^----------^ Выражение «A1 = A1 + B2 - B3 & B4 | B5 ^ B6» можно описать последовательностью «A1 AB 2A 3B 4C 5D 6E», так как в каждом следующем коде операции явно указан и индекс правого операнда, что позволяет писать код компактно и производительно. Максимально доступно каждому любителю Так как Logisim куда доступнее и проще того же Proteus и компактнее KiCAD, вся схема процессора разрабатывалась в рамках проекта именно Logisim, чтобы проект был по-детски прост и лёгок для использовании заинтересованными любителями. По предварительным подсчётам, если схему проекта попытаться собирать микросхемами серии 74xx или отечественной номенклатуры, понадобится порядка 250 корпусов... Скачать архив исходной схемы с прошивками можно по ссылке на странице проекта… Если смущает использование ПЗУ для дешифрации команд, имеется набросок схемы с использованием уровня комбинаторики, по которой можно осознать, что и красивую систему команд можно декодировать простейшим способом логических вентилей, без ущерба концептуальной задумки… Эмуляция? Никакого программного эмулятора не задумывалось специально, чтобы архитектурно процессор изначально готовился к реализации на физических макетных платах и не содержал в себе решений, которые аппаратно крайне сложно будет реализовывать в силу излишней вольности в эмуляторе. Вся схема разрабатывалась несколько лет в часы досуга эпизодически и несколько раз перерисовывалась вся с чистого листа.
  2. Доброго времени суток. У меня проблема, мне нужно сделать в программе Logisim кодовый замок (не собрать, просто на логике). В интернете есть всего одна схема замка (https://www.youtube.com/watch?v=cz1sd5DFmKc ) которая вроде как и работает, но схема LockControl показанная в начале видео не показана полностью. Не могли бы вы помочь в создании схемы.пожалуйста.
×
×
  • Create New...