Перейти к содержанию
    

Койяанискаци - ТТЛ-процессор с душой акына

23 minutes ago, Alikberov said:

Мерцает, переключается, взаимодействует…

Я думал, что это неактуально. Modelsim или Icarus наше всё)

On 7/7/2020 at 11:02 AM, Alikberov said:

Тогда как в Logisim всякую дичь просто так впопыхах и как попало не прорисуешь, чтобы концептуальность наблюдалась…

Т.е. вы используете Logicsim как некий фильтр, который заставляет сто раз подумать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

54 минуты назад, haker_fox сказал:

Т.е. вы используете Logicsim как некий фильтр, который заставляет сто раз подумать?

Именнo!
Не имею же высшего инженерного образования и работаю с тем, что конкретно показывает в данный момент.

Вот в Icarus GTKwave выводит графики от шины адреса и шины данных в конкретный момент, прокручивая скроллером. И если где-то что-то не так - очень сложно вникнуть…
А в Logisim, если что-то не так на определённом такте, я просто пролетаю всю схему, охватывая её целиком. И смотрю, какой сигнал был лишний или отсутствовал. Врезаю вентиль И либо ИЛИ, чтобы подавить сигнал или добавить.
А по сухим графиком я часами телепатически пытаюсь понять, что пошло не так…

 

Например, Icarus Verilog мне посоветовали 10 лет назад.
И все эти годы я там барахтался, так как многие варианты моих процессоров жёстко сбоили и по GTK я часами тупил, пытаясь вникнуть в проблему.
А когда наткнулся на Logisim, в прошлом году решил просто ради прикола набросать этот WYSIWYG-процессор… И за неделю он у меня начал стабильно работать!

Поэтому, без визуального охвата принципиальной схемы обойтись не могу…

2 часа назад, Raven сказал:

4. Чтобы было понятнее, как это работает, на диаграмме хорошо бы представить хотя бы основные сигналы управления.

Так пойдёт?

             FETCH  (WAIT) DECODE+DO  WRITE RAM      FETCH DECODE+DO FETCH DECODE+DO
       |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
       ┌───┐t1 ┌───┐tw ┌───┐t3+┌───┐t4+┌───┐t5+┌───┐t1 ┌───┐t2 ┌───┐t1 ┌───┐t2 ┌───┐ 
CLOCK ─┘...└───┘T1 └───┘T2 └───┘T3+└───┘T4+└───┘T5+└───┘T1 └───┘T2 └───┘T1 └───┘T2 └
       |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
      ...........        ┌────────........┌──────........ ┌───────...........┌──────..
READY ───────────────────┘        ........┘      ........─┘       ...........┘      ..
       |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
            ┌───────────────┐                       ┌───────┐       ┌───────┐       ┌─
   M1 ──────┘       WAIT    └───────────────────────┘       └───────┘       └───────┘ 
       |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
                            ┌───────┐                       ┌───────┐       ┌───────┐ 
   M2 ──────────────────────┘       └───────────────────────┘       └───────┘       └─
       |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
                                    ┌───────┐                                         
   M3 ──────────────────────────────┘       └─────────────────────────────────────────
       |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
                                            ┌───────┐                                 
   M4 ──────────────────────────────────────┘       └─────────────────────────────────
       |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
 ADDR -<IP.......................IP><Bi:Ci....Bi:Ci><IP..........................IP>--
       |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
                ┌───────────────┐                       ┌───────┐       ┌───────┐
 READ ──────────┘               └───────────────────────┘       └───────┘       └─────
       |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
                                        ┌───────┐                                     
WRITE ──────────────────────────────────┘       └─────────────────────────────────────
       |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |

Это график из головы, по нему ориентировался при разработке Logisim-схемы, чтобы она по нему работала. А так как она отлажена, то и график - отражение поведения от блокнотной псевдографики до практического рабочего узла.

Изменено пользователем Alikberov

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 minutes ago, Alikberov said:

Врезаю вентиль И либо ИЛИ, чтобы подавить сигнал или добавить.

Так не тот же ли это хаос, только на другом уровне?

10 minutes ago, Alikberov said:

GTK я часами тупи

Мне Icarus в своё время тоже не понравился, но ведь есть же ещё отличный ModelSim.

10 minutes ago, Alikberov said:

И за неделю он у меня начал стабильно работать!

Как будете переносить всё это из Logisim в какой-нить SystemVerilog? Как будете писать тесты? (testbench) Ни лампочками же с кнопочками проверять работу столь сложной логической схемы...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

15 часов назад, haker_fox сказал:

Так не тот же ли это хаос, только на другом уровне?

Eсли взяли К155ЛА3, подали питание и заземлили ножку №1 - уже хаос, так как вывели кристалл из равновесия питанием и сигналом: Начался энтропийный процесс с прогревом…:buba:

А врезка вентиля в цепь - грешок куда меньше, чем вместо «if(x[0] & x[1] & x[2])» кошмарное «if(x[2:0] == 7)»: Это как вместо одной ЛА2 влепить две 555СП1

15 часов назад, haker_fox сказал:

Мне Icarus в своё время тоже не понравился, но ведь есть же ещё отличный ModelSim.

Вот тут статья повествует о ModelSim, а анимационные вырезки вставляются с Logisim… Это нормально?
Таки, да! Потому что в ModelSim анимацию сложнее сделать и управлять схемой сложнее…
(Хоть автор не афиширует, но, скорее всего, он - наш человек: Рисует и отлаживает мысли в Logisim, а потом концепцию прорабатывает в ModelSim…)

15 часов назад, haker_fox сказал:

Как будете переносить всё это из Logisim в какой-нить SystemVerilog?

Я же перенёс уже!:bye:
Не уж то пропустили ссылочку?
Всего 386 эффективных строк…


Сейчас лишь допиливаю и вношу энтропийный хаос: В схеме был строго счётчик инструкций с инкрементом, а в Verilog - регистр с сумматором на произвольный шаг при условном пропуске до 9 инструкций за 1 такт.
А это - уже бардак! Так как в Logisim подобные трюки - роскошь, а в ТТЛ - расход сумматоров. А в VeriLog - один значок «+». И это мне не нравится тем, что раздолье мне: Мозг начинает расслабляться, буянить вседозволенностью и всё стремительного двигается в раскардаш:whistle3:

 

P.S.: Обновил структурную…

Koyaanisqatsi-CPU.png

P.P.S.: Набросок эмулятора стиля «очень дёшево и очень сердито»…

Изменено пользователем Alikberov
Обновил структурную схему и добавил ссылку на эмулятор

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Несчастные PS/2 Y-сплиттеры заказал за $16... Жду уж лет восемь!


Это, который позволяет в свежий ПК (где совмещённый PS/2) мышь и клаву "пи-эс пополамовые" включить? За $16? Серьёзно?

Кабельные две розетки и вилка miniDIN, и не более получаса работы, как на аватаре ;-)

PS: озверел народ - переходник "штаны" за $16 покупать. "Ни одна вещь в мире не может стоить дороже $15" (c) чей-то ;-)

Изменено пользователем Obam

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 hours ago, Obam said:

PS: озверел народ - переходник "штаны" за $16 покупать.

А зачем PS/2 вообще нужен? Чем USB-шные агрегаты не устраивают?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кaк-то увидел видео «светомузыка из клавиатуры» и написал собственную утилиту на 9 клавиатур (видео): Поддерживает до 9 клавиатур со сценарием моргания или трекерные паттерны для моргания по нотам.

Потом увидел видео «две мышки на экране» и написал собственную утилиту на 9 мышек (видео): Поддерживает до 9 мышек с назначением произвольных действий на каждую.
То есть, можно правой кнопкой пятой мышки прибавлять громкость, а средней кнопкой седьмой мышки посылать «Ctrl+V» в Блокнот, даже если тот не активен…

 

А так как все клавиатуры и мышки - б/у или списанные с предприятий в утиль, то набрал USB-PS/2 переходники, чтобы проводить опыты.
Например, как на органе: Одна клавиатура печатает нижним регистром, вторая - верхним, третья - другой языковой раскладкой.

 

P.S.: Разве ещё не поняли, что Койяанискаци не на пустом месте появился, а от скуки и тесноты в программировании: Хочется железо оригинальное делать, а не просто моргать списанными клавиатурами в такт музыке…:boredom:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 minutes ago, Alikberov said:

Хочется железо оригинальное делать, а не просто моргать списанными клавиатурами в такт музыке…:boredom:

Ну просто гениально, слов нет! Действительно, или делать свой процессор или моргать светодиодами на клавиатуре. Третьего-то (и четвёртого и пятого) не дано.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

11 минут назад, haker_fox сказал:

Третьего-то (и четвёртого и пятого) не дано.

«Светодиоды на клавиатуре использовали для кражи данных»

 

Вообще-то я пытался моргать индикаторами клавиатуры, чтобы включённый в параллель пьезоизлучатель воспроизводил тональность. Программно с помощью ШИМ удавалось до ≈300 Гц получать звук.

 

Но, собственные процессоры - куда интереснее разрабатывать, чем оригинальное и никому ненужное ПО…:boredom:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

19 часов назад, Alikberov сказал:

 

Именнo!
Не имею же высшего инженерного образования и работаю с тем, что конкретно показывает в данный момент.

Вот в Icarus GTKwave выводит графики от шины адреса и шины данных в конкретный момент, прокручивая скроллером. И если где-то что-то не так - очень сложно вникнуть…
А в Logisim, если что-то не так на определённом такте, я просто пролетаю всю схему, охватывая её целиком. И смотрю, какой сигнал был лишний или отсутствовал. Врезаю вентиль И либо ИЛИ, чтобы подавить сигнал или добавить.
А по сухим графиком я часами телепатически пытаюсь понять, что пошло не так…

 

Например, Icarus Verilog мне посоветовали 10 лет назад.
И все эти годы я там барахтался, так как многие варианты моих процессоров жёстко сбоили и по GTK я часами тупил, пытаясь вникнуть в проблему.
А когда наткнулся на Logisim, в прошлом году решил просто ради прикола набросать этот WYSIWYG-процессор… И за неделю он у меня начал стабильно работать!

Поэтому, без визуального охвата принципиальной схемы обойтись не могу…

Так пойдёт?


             FETCH  (WAIT) DECODE+DO  WRITE RAM      FETCH DECODE+DO FETCH DECODE+DO
       |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
       ┌───┐t1 ┌───┐tw ┌───┐t3+┌───┐t4+┌───┐t5+┌───┐t1 ┌───┐t2 ┌───┐t1 ┌───┐t2 ┌───┐ 
CLOCK ─┘...└───┘T1 └───┘T2 └───┘T3+└───┘T4+└───┘T5+└───┘T1 └───┘T2 └───┘T1 └───┘T2 └
       |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
      ...........        ┌────────........┌──────........ ┌───────...........┌──────..
READY ───────────────────┘        ........┘      ........─┘       ...........┘      ..
       |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
            ┌───────────────┐                       ┌───────┐       ┌───────┐       ┌─
   M1 ──────┘       WAIT    └───────────────────────┘       └───────┘       └───────┘ 
       |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
                            ┌───────┐                       ┌───────┐       ┌───────┐ 
   M2 ──────────────────────┘       └───────────────────────┘       └───────┘       └─
       |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
                                    ┌───────┐                                         
   M3 ──────────────────────────────┘       └─────────────────────────────────────────
       |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
                                            ┌───────┐                                 
   M4 ──────────────────────────────────────┘       └─────────────────────────────────
       |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
 ADDR -<IP.......................IP><Bi:Ci....Bi:Ci><IP..........................IP>--
       |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
                ┌───────────────┐                       ┌───────┐       ┌───────┐
 READ ──────────┘               └───────────────────────┘       └───────┘       └─────
       |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
                                        ┌───────┐                                     
WRITE ──────────────────────────────────┘       └─────────────────────────────────────
       |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |

Это график из головы, по нему ориентировался при разработке Logisim-схемы, чтобы она по нему работала. А так как она отлажена, то и график - отражение поведения от блокнотной псевдографики до практического рабочего узла.

 

Офтоп. Для быстрого и красивого рисования временных диаграмм рекомендую посмотреть это.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 минуты назад, dxp сказал:

Для быстрого и красивого рисования временных диаграмм рекомендую посмотреть это.

Недостaток в том, что OEM-псевдографикой диаграммы хранятся в Блокноте и легко вставляются кодом в форумы любые. Тогда как утилиты те генерируют картинку, которую нужно сохранять у себя и заливать в форумы, а также и не подредактируешь на-лету…
Скажем, для генерации формул из текста есть редакторы, а для электрических схем - нету. Пытался написать свой и запустить как сервис, но застрял…

Сейчас в модепопулярны облачные услуги и закачивать/устанавливать что-то - не айс…

 

P.S.: Но, всё равно… Спасибо! Опробую, когда отдохну…

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Там диаграмма - это текстовый конфиг, который храните, если хочется, в блокноте. Это не рисование в графическом редакторе. Если надо оперативно вставить, то просто открываете ссылку, вставляете из блокнота текст, мгновенно получаете диаграмму. И далее - либо в этой же проге сгенерить png, либо сграбить с экрана и вставить куда-там-надо. Зато читабельность диаграммы на три порядка выше. И подредактировать - прямо тут же на лету правкой символов в конфиге.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

15.07.2020 в 10:06, Raven сказал:

4. Чтобы было понятнее, как это работает, на диаграмме хорошо бы представить хотя бы основные сигналы управления.

Грaфики описал как-то так
Может и коряво, но хоть что-то, надеюсь, теперь понятнее…:paint3:

17 часов назад, dxp сказал:

Зато читабельность диаграммы на три порядка выше. И подредактировать - прямо тут же на лету правкой символов в конфиге.

O, таки да!
Спасибо!

Облачно и диск локально не мусорится - можно просто ссылку давать…
 

Кстати, чтобы в форумы вставлять embed-ссылки на короткие аккорды как-то написал вот это: Прямо в ссылке кодируются ноты простым языком.
(Надоели новомодные xml-форматы MusicXML, где одна нота описывается сотней строк…)
Но, тоже не довёл до ума: Тяжело данный синтаксис точно распарсить…
(Под Койяанискаци подобный плеер пригодилось бы написать, но до сих пор не разобрался со всякими триолями: Те партитуры играют с грубейшими ошибками в JavaScript…)
 

Например, вот файл плеера…
Который год до ума не доведу из-за музыкальной безграмотности…
А ведь, как технология 70-х первых музыкальных компьютеров очень любопытна и компактна (не то, что тот XML)…
Интересно, имеются ли программисты с музыкальным образованием где-то на форумах, чтобы отладить это…

sol20mus.zip
 

P.S.: Проблема в том, что я на досуге занимаюсь не одной идеей, а десятком идей.
Если где-то застреваю намертво - переключаюсь на следующие.
Как я уже говорил, Койяанискаци набросал и отладил прошлой весной, а этой весной, спустя год, довёл до ума, составил описание и опубликовал…
Эмулятор теперь нужно дорабатывать, чтобы код отлаживать легче было…
Потому и двигается у меня всё медленно, если где-то застрял и не гуглится решение…

Изменено пользователем Alikberov
Добавил диаграмму сигналов

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А зачем PS/2 вообще нужен? Чем USB-шные агрегаты не устраивают?


Во-первЫх, ничем не хуже USB, а отсутствующий hot-plug, за почти 25 лет пользования PS/2, не припомню, чтоб понадобился.
Во-вторых, если в свежем ПК есть PS/2, а наличествующие мышь и "клава" исправны, привычны (и вообще, в те времена покупались в категории выше средней), то грех не соорудить разветвитель-"штаны"; а уж если экономятся $16, то просто - must do it ;-)
В-третьих, по нынешним временам, imho, сколько бы usb-портов на материнке ни было, а +2 свободных это аргумент ;-)

можно правой кнопкой пятой мышки прибавлять громкость, а средней кнопкой седьмой мышки посылать «Ctrl+V» в Блокнот


Осталось только отрастить пятую и седьмую руки ;-)
Разве что фильм "Муха" намекает: при наличии стольких конечностей будет не до компьютера и мышек \-8Ж

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

16.07.2020 в 05:57, haker_fox сказал:

А зачем PS/2 вообще нужен? Чем USB-шные агрегаты не устраивают?

Oдин момент был…
По натуре - я консерватор: Использую технику до отказа, пока хоть как-то дышит.
До 2008 у меня стоял Pentium-90MHz 48Mb-RAM, который я отправил в запас под стол, так как попался Pentium-IV 512Mb, который сгорел южником в 2012 и пол года я сидел вообще без ничего - отдыхал и копил… Копил на Core-i7, но не докопил и в 2013 купил GA-F2A85X и две линейки DDR3 по 8Gb. До сих пор напрягает, так как 16 Гб в наши дни - слишком мало и система достаёт сообщениями о нехватке ресурсов (файл подкачки отключил)…
И вот на эту GA-F2A я не смог установить Windows'7, так как та отказывалась работать с любыми USB на материнке.
Работал только через PS/2, попеременно переключаясь то на мышь, то на клавиатуру, пока устанавливал Windows'7, так как Y-переходника в комплекте не было. А когда систему установил и попытался обновить USB-драйвера через интернет, то ничего не получилось и пришлось идти на рынок покупать пиратский Windows'8 x86 просроченный с перезагрузкой каждые 2 часа и BSOD'ами на не прогретом железе. Пока не скачал Windows'8.1 x64…

 

До сих пор иногда USB отваливаются на холодном железе и требуется ребут. И если бы ни клавиатура PS/2, пришлось бы тупо жать RESET!

 

Не доверяю я USB 3.0 поэтому и ищу штаны, чтобы клавиатуру и мышь сразу иметь в PS/2. Но у нас на рынках - всё USB. Никаких Y-разветвителей PS/2 нету… А самому кустарить - не хочу. Накустарился ещё на РАДИО-86РК с его ППА DD14…
Хочу, чтобы компьютер выглядел навороченным, но без кустарей…

4 часа назад, Obam сказал:

Осталось только отрастить пятую и седьмую руки ;-)

Есть такая игра местного разработчика - Voxario
И там я как раз своей утилитой и воспользовался тремя мышками, доделанными до подобия педалей, чтобы на диване сидеть и летать по территориям.
К тому-же, «Alt+Tab» тоже подтягивал и переключался на трансляции новостей.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...