Обо мне
Привет! Меня зовут Лис и это мой блог. Здесь я могу ныть и страдать, писать про код и обо всем.
Блог страдающего Лиса
Lorem ipsum hello dolor sit world amet

07 окт 2023 Сб Потрясающая производительность

Я так мало пишу на сайте и в блоге, раз в месяц, что можно сказать, что у меня производительность просто невероятна. Целый пост в один месяц, да и то, не информативный.
И вот это все, что я хотел сказать на сегодня.
Теги: Бред

07 сен 2023 Чт Я в постоянном поиске как создать процессор

И этот поиск никогда не остановится. Я всегда буду пытаться его сделать, но все прекрасно знают, что это ничем хорошим не закончится никогда. Может тогда мне попробовать все-таки сделать синтезатор AY аппаратно? Ведь это было бы хорошим достижением!
Тем более, это не настолько сложная вещь, насколько кажется. У меня есть готовый код, который я могу применить для верилога. Чего я постоянно боюсь... Просто надо начать и само по себе пойдет.
_0i8jNpdWZY.jpg
Теги: Процессор

21 июл 2023 Пт Ужасающее число ГРЭМА

На старт, внимание!

Все только и носятся с этим числом, как будто оно золотое, везде, куда не пойдешь, только и говорят, что о Грэме. И соленый прибой, и подруги поцелуй. В булочных только и разговоров, что о Грэме, и о числе. Там говорят о том, как чертовски здорово наблюдать за огромным огненным Числом, как оно тает в математическом безумии. И еле видимый свет знания, словно от свечи, горит где-то в глубине сознания сумасшедшего Математика в психушке… да, поэтично для двух обдолбанных оборванцев, которые решили вынести всем мозг и кассу в том числе. Но это оставим на потом, а сейчас хочу рассказать про число Грэма.
Начнем с того, что есть стрелочная нотация Кнута (и пряника). Об этом можно и Вики прочитать. Вот например, 3 \uparrow 3 , это 3 в степени 3, то есть, 3, умноженное три раза на себя, то есть, 3 \cdot 3 \cdot 3 = 27 . Двадцать семь... еще ничего не началось, а уже какой-то беспредел творится. Ладно, это только очистки от семечек. А что будет с семечками?

Поехаааали!

Если указать две стрелки подряд, например 3 \uparrow\uparrow 3 , то это будет обозначать уже целую башню, однако, башню еще не снесет, снос башни будет позже. Что за башня такая? Это вот что, 3 \uparrow\uparrow 3 означает, что башня из степеней будет равна 3, то есть, вот так 3 \uparrow (3 \uparrow 3) = 3^{3^3} или, если раскрыть 3 \uparrow 3 , это будет 27, правильно? Да, и тогда решение будет 3^{27} = 7625597484987 . Нехилово, да, аж ~ 7.6 триллионов? Это даже еще не семечки, а так, не кожура, ни очистки. Это чисто еще можно сосчитать хотя бы. А теперь начнутся семечки.
Возьмем на заметку, что вычислялось только 3 \uparrow\uparrow 3 , а что будет с 3 \uparrow\uparrow\uparrow 3 , это я скажу так, жесть что будет. Можно сказать, что 3 \uparrow\uparrow\uparrow 3 = 3 \uparrow\uparrow (3 \uparrow\uparrow 3) . Ощущается, что сейчас будет? Будет боль. Ну давайте раскроем, что ли. Итак, 3 \uparrow\uparrow 3 = 7625597484987 , это сосчитали, да... Итак, ну что теперь получается: 3 \uparrow\uparrow 7625597484987 , так... Ну и жесть. Хорошо, а теперь надо раскрыть 3 \uparrow\uparrow 7625597484987 и это вообще что такое, а? Это получается, что будет 3 в степени 3, которая в степени 3, которая в степени 3, и так далее, и так 7625597484987 раз. Это если записывать просто число, еще даже не вычисленное, то надо составить числовую башню от Земли до Марса! И это еще не вычисленная башня!
photo_2023-05-11_21-49-08.jpg
Вычо! Даже такое число вычислить уже не представляется реальным. Его вычислить НЕВОЗМОЖНО!

Думаешь, конец?

И это что, конец? Как бы не так. Это не то что не конец, это даже не начало. Мне даже страшно говорить, что дальше будет. Есть число, которое называется g_1 и оно равно 3 \uparrow\uparrow\uparrow\uparrow 3 . Короче, что такое это число? Ну, надо разложить сначала верхнюю часть: 3 \uparrow\uparrow\uparrow (3 \uparrow\uparrow\uparrow 3) — тут можно сказать, просто. А теперь смотрите, что за туфта получается уже. Во-первых, тут число 3 \uparrow\uparrow\uparrow 3 — якобы можно раскрыть, это вот та самая башня из троек, возведенных друг в друга и простирающихся до Марса. Мне страшно дальше говорить, честно, меня это пугает!
А теперь смотрите что получается, если взять за X это вот огромное число, которое представляет собой башню до Марса, надо построить 3 \uparrow\uparrow\uparrow X и это равно... да вы с ума сошли!? Это значит, что нам нужно построить башню из вот таких чисел 3 \uparrow\uparrow (3 \uparrow\uparrow (3 \uparrow\uparrow (.... 3 \uparrow\uparrow 3 ...) , и причем эта башня будет размером с мегакошмарное число X , которое было раньше вычислено. Грэм был настоящим математическим извращенцем.
Ладно, вот представим, что число башня будет размером в то неописуемое число, так надо же еще вычислить 3 \uparrow\uparrow X , а как мы помним, это означает количество X башен для числа 3. Ладно, допустим, мы добрались до последнего числа из количества башен, которое уже представить невозможно, а там будет 3 \uparrow\uparrow 3 = 27 . Хорошо, теперь откатимся назад на предпоследнюю башню, и там 3 \uparrow\uparrow 27 , то есть, это 27 башен числа 3... 27 башен! Это число уже никогда не вычислить, и ладно бы, не вычислить, так надо еще 3 \uparrow\uparrow Y возвести, где Y — это то полученное ранее число, состоящее из нехилого числа башен. То есть, это 3 с количеством башен неописуемого количества башен, и так, считая с конца, возводя башни в башни и башнями погоняя, мы доберемся наконец, до первой 3 \uparrow\uparrow M , где M — то число, которое из невыносимого количества башен состоит, и получим такое число башен, которые не влезут не то что в Вселенную, ни даже вообще ни во что, мыслимое и немыслимое.

Разрыхлитель мозгов

И знаете что? Это только число g_1 . У меня уже у самого мозг взорвался. А теперь пришло время по-настоящему повеселиться. Вы ведь представляете, что происходит с 3 \uparrow\uparrow\uparrow\uparrow 3 ? Я не особо. А что будет, если количество нотации Кнута будет 6, 10, 100 или например, миллиард? Нет? И я нет. А Грэм, как бы в насмешку, не остановился на этом и количество знаков Кнута он сделал равным g_1 и полученный результат назвал g_2 . Вызывайте скорую, тут человеку плохо!
Думаете, я закончил на этом? Нет! Дело в том, что есть число g_3 , которое равно 3, возведенное в число Кнута аж g_2 раз. И ну так 64 раза, собственно. g_{64} = 3 количество стрелок Кнута здесь g_{63} 3. Очуметь не встать.
Я уже давно лежу и мне плохо, несмотря на дебильную улыбочку на лице. Это потому что я с ума сошел от такого натиска.

21 июл 2023 Пт Просто с утра сделал еще один генератор

Ничего особенного в нем нет, просто еще один генератор шаблонов для верилятора, чтобы можно было не заморачиваясь, одной кнопкой нажать и все чтобы было хорошо и всем. Для меня это просто возможность легко разворачивать никому не нужные проекты за несколько секунд. Только, все понимают, что то что я делаю... а ладно, уже сотню раз говорил об этом. Не знаю, смогу ли опять что-то создавать, или нет. Все время хочется сделать что-то очень простое, но в то же время, эффектное. Демки там разные, мини-арты кодовые, что-то в этом роде. Но мне лень. Даже текст дописать лень.
Теги: ПЛИС

20 июл 2023 Чт В любой непонятной ситуации...

Создавай процессор Zilog 80 на верилоге. Это все что я смогу сказать на сегодня, ведь идей у меня больше нет, а если даже они и есть, то я их все равно откладываю на завтра, а завтра уже откладываю на послезавтра, и так до бесконечности. Существует цитата мудрых и великих людей:
Я же Вам говорю: "Приходите завтра..." А Вы все время приходите сегодня!
Я не могу с этим не согласиться. Это прямо в самую точку попали. Оно. Прямо идеально.
Поэтому, когда я собираюсь что-то делать, то ничего у меня не получается постоянно, потому что делать ничего не хочется, смысла нет, и еще миллион отмазок разного сорта и качества. Поэтому надо создавать что-то простое, перекладывать кубики с левой стороны на правую, с правой — на левую, и снова опять, как out-ист, туда да сюда, туда да сюда перекладывать из пустого в порожнее, и обратно.
Я уже написал целую кучу вариантов этого процессора и все остановиться никак не могу, потому что мне тут нравится не цель, а просто сам процесс написания, то есть, раз в полгода надо брать снова и снова все с нуля писать, как обычно, и не дописывать до конца, чтобы потом перетереть и снова начать, и снова и снова. Есть такой человек, его назвали Сизиф, так он постоянно камень на гору таскает, но никак не дотащит, потому что сверху какой-то чёрт стоит и сбрасывает камень обратно вниз, и Сизифу надо спускаться, и снова таскать. Так оно и тут, бесконечная бессмысленная, ненужная работа, но мне вообще-то нравится этот камень из кремния таскать и сбрасывать.
Вот такие вот дела.

08 июн 2023 Чт Начал было делать проект

Да, я было начал его делать и как-то перестал, хотя уже половину написал, даже более чем половину, и остановился. Все же, хорошо бы его продолжить. В статье, которую я писал, рассказал как с помощью кода на Си++ сделать так, чтобы показывался экран, который генерируется верилогом. У меня какая вообще задача была, это создать процессор 6502 с нуля на верилоге, и не только процессор, но еще и видеопроцессор, который был в Денди. И рассказать об этом на Youtube, где уже на данный момент откуда-то пришли 13 подписчиков. Там всего лишь 4 видео, а люди почему-то подписываются. Не знаю, даже. Надо бы мне продолжить рассказывать про код, про то, как я его делаю, записывать видео по этому. Хотел писать видео на основе собственных статей, конечно же.
А может даже, немного отвлечься именно от верилога и попрограммировать какие-нибудь небольшие игры, для развлечения. Игры такого плана, которые я делал с лисом, который по лесу бегал. Это что-то вроде длинного видео, где разрабатывать буду что-то. Может быть, я даже так и сделаю, потому что давно уже не делал, а хочется уже, на самом деле, попрограммировать какие-нибудь красивые штуки. Лучше все делать на OpenGL + SDL2, конечно же.
Хочу еще комп себе обновить, на самом деле. Давно не обновлял его, 11 лет комп уже работает у меня, и между прочим, стабильно работает. Порядок бы на дисках навести, к тому же. Да, только сколько времени я буду наводить этот порядок, не знаю. Огромный бардак на дисках, везде все разбросано, а собирать неохота.

27 мая 2023 Сб Что-то я долго сюда не писал

Мне писать то нечего было, не вел сайт, ничего не делал почти два месяца. Да что почти, два месяца и не писал. Недавно вот только начал опять что-то делать, чуть поправил сайт кое-где, и написал пару программ по трехмерному бейсику. Довольно интересная задача, конечно, по бейсику была, где нужно трехмерный графоний сделать. Я сделал, только скорость не устраивает, конечно. Надо переписать либо на ассемблер, либо на Си. Лучше на Си, потому что асм хоть и хорош, но уж слишком медленный и писать на нем тяжело.
Буду улучшать сайт постепенно. Сделал вот на сайте некоторые улучшения, чтобы проще было статьи синхронизировать, а еще надо бы доделать так, чтобы медиафайлы загружались нормально.
Еще, связанная с трехмерной графикой, тема. Мне давно хочется сделать полноценное 3Д, и при этом я пробую разные платформы. Например, можно было бы попробовать сделать трехмерный ускоритель именно на Verilog, если это получится у меня.
Теги: Сайт

30 мар 2023 Чт Об архитектуре FAT32SD

Уровень 1. Физический. Модуль для общения по SPI на физическом уровне. Обработка команд от вышестоящего над ним контроллера. Команды такие a) Инициализация SPI через 80 тактов на частоте 100 кГц, b) Прием и отсылка байта данных, c) Включение и выключение устройства.
Уровень 2. Транспортный. Контроллер чтение и записи на диск. Полный цикл инициализации устройства, то есть, включение, отсылка команд, получение данных, чтение и запись секторов с опорой на 512 байтный буфер.
Уровень 3. Прикладной. Работа с файловой системой FAT16/32, при помощи уровня 2 осуществляется передача данных по секторам, запрос имени файла, поиск файлов на диске, чтение в память или из памяти (sram).
Принцип работы.
Сначала в память записывается имя файла (неограниченное количество символов), дается ссылка, куда читать и писать (в ту же память, возможно или другую), отсылается команда. Например — чтение файла, получение списка всех файлов в директории, запись файла, создание директорий и т.д. Пока контроллер работает, он будет BSY=1. Работать он может долго, так что надо будет проверять BSY статус.
Не знаю, надо ли сделать вызов Interrupt. Может сделаю. Если дойду до этого вообще!

14 мар 2023 Вт Мне как-то нечего писать сюда

Обнаружил то, что спустя два месяца я полностью выдохся и мне нечего писать в свой блог. Продолжаю постепенно делать то, что делал, это процессор AVR, вот к примеру, сегодня я сделал вывод стартового экрана для Award Modular, и это оказалось не так сложно. У меня нет до сих пор модуля SDRAM, так что тест памяти будет невозможен, но с другой стороны, его легко можно будет сделать просто так, без всякого теста памяти, а просто счетчиком.
Проснулся я сегодня с мыслью о трехмерной графике, и опять понимания, что ничего не выйдет, начал снова задавать один и тот же вопрос, который задаю уже на протяжении столетий — 3ой4? Ну зачем мне эта трехмерная графика, когда я не могу ничего сделать в трехмерном пространстве. Куб вращать? Надоело уже постоянно его вращать, без конца только и занят кубовращением бессмысленным. Можно же уже и перестать это делать и нормальное что-то давно сделать, но нет же, я вращаю кубы налево и направо, сверху вниз.
Когда-то давно была идея сделать на верилоге этот куборотор, но есть одна колоссальная проблема, которая заключается в том, что это далеко не так просто, вообще. Сделать на верилоге трехмерный ускоритель... это же ужасно трудно, и все равно, зачем оно мне так надо? Ну вообще же не надо совершенно! Не нужно, не нужно, не нужно... а хочется. Никак не могу убедить себя в том, что мне это не нужно, потому что все время хочется сделать и все тут. Ну как же быть то...
Вся эта затея с трехмерной графикой мне кажется идиотской. facepalm
Вот реально, допустим, ну сделаю я к примеру, кубы. И что дальше то, что дальше делать буду? На этом все, кубы и это все, на что я способен? Больше нет ничего, кроме кубов? Мне даже обычную трехмерную модель загрузить сложно, не то что все остальное сделать. У меня еще есть одна странная мысль, которая заключается в том, чтобы сделать симулятор космического полета к другим планетам и даже звездам. Для этого потребуется создать трехмерный космический корабль и я не знаю, как это сделать, ведь его нужно делать, а как, неизвестно. Сделать на ПЛИС такую штуку, типа, вылетаешь с планеты и летишь куда-то за определенное время. Мысли сумбурны и не оформлены, да и постоянное ощущение, что мне это не будет нужно. И это и правда, мне не будет нужно, это так.
Может, сделать рейтрейсинг на ПЛИС?.. А зачем.. нет, я все-таки упираюсь в одну и ту же фразу — зачем? Нет никакого смысла, незачем, а если это так, то тогда может, просто отпустить эту тему? Не все так просто! Я не могу ее отпустить. Уже сколько раз пытался, но не могу. dash3
Единственное, что я понял за все время, что занимаюсь плисами и верилогом, это только одно, мне все это не нужно. Ни верилог, ни плис, ни програмирование, ни вообще что-либо, кроме бесконечного прослушивания музыки. А раз так, то мне надо сделать аудиоплеер!
— А зачем?
Ахахахаха! Вот именно, а зачем, зачем, зачем, зачем? Этот дебильный вопрос не отпускает. Даже такую важную штуку для меня, как музыка, я не хочу делать, не вижу смысла. А зачем? Есть же комп. Для чего мне надо напрягаться и делать что-то, когда я просто одену наушники и буду прослушивать себе спокойно любую музыку.
Ответ на вопрос "Зачем" есть только один "Шутки ради". Больше мне делать все это незачем.

10 мар 2023 Пт Подключил почти все

Осталось сделать sdram и было бы хорошо, если не было бы так страшно. Мне кажется, что эта история с sdram — это такая же история, что с алгоритмами сортировки, которые я никак сделать не мог только потому, что мне было страшно их читать, а на деле оказалось, что я придумал проблему. Планирую я эту sdram сделать через icarus, с проверкой на реальной схеме тут же, причем можно сделать такой мини-процессор, чтобы точно быть уверенным в том, что работать будет. Я хочу использовать эту память в проекте, где у меня avr процессор.
Как приблизительно она будет работать.
  • При получении сигнала WE, останавливать процессор и выполнять запись в память
  • При получении RD=1 немного сложнее будет, надо чтобы он сразу же останавливал процессор
Почему с RD сложнее, так это потому, что читается память на обратном фронте, вот в чем соль. Тут надо переделать в процессоре выставление RD перед тем, как читать из памяти, а не на обратном фронте. Надо думать еще тут.
При чтении и записи в память, я буду использовать порты, как наиболее удобный метод. То есть, выставлять адрес в порт, и потом последовательно считывать оттуда или писать. Этот способ наиболее быстрый, на самом деле, хотя можно еще и маппить на память, но я так делать не хочу, лучше делать обмен с внешними девайсами через порты делать и я буду думать, как сделать это намного лучше.
Полагаю, у меня будет несколько ревизии памяти. Видимо, первую ревизию стоит сделать как можно проще. Подумал, что можно сделать так.
  • Выставляется адрес через порты
  • Если записываем, то пишется байт в порт
  • Делается запись команды - RD/WR в какой-то из портов
  • Ожидается результат через статус BSY
  • Читается байт данных из порта (если читаем)
Это похоже на тот же самый механизм SPI SD, что я делал. Это первая ревизия контроллера памяти, где я управляю памятью как если бы это было внешнее устройство.
Обычно память маппят на общее адресное пространство, что правильно так делать, но не в этом случае. Мне просто нужен доступ в память любым методом, и это — один из них. Так что буду его делать.
clk.PNG
Дело в том, что память работает на частоте 100 мгц, так что я буду фиксировать статус BSY только на негативном фронте CLK100 во время CLK25=0 (третий такт от начала). Это позволит избежать многих проблем.
Теги: Дневник