Обо мне
Привет! Меня зовут Лис и это мой блог. Здесь я могу ныть и страдать, писать про код и обо всем.
Календарь записей
Май 2024
ПнВтСрЧтПтСбВс
12345
6789101112
13141516171819
20212223242526
2728293031
Теги
Блог страдающего Лиса
Lorem ipsum hello dolor sit world amet

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 (третий такт от начала). Это позволит избежать многих проблем.
Метки: Дневник

09 мар 2023 Делаю кучу шаблонов

Решил, что на сайте у меня будет куча шаблонов и билдов разных мастей для всего подряд. Сделал целый ворох этих шаблонов для своей девборды DE0. Навернул, например, код, где с помощью процессора AVR можно обновлять видеопамять не напрямик, а через запись в порты с автоинкрементом. Это позволит сделать так, чтобы общая память оставалась целой как можно больше. Это касается только записи, но не чтения, с этим пока что не сделал и не знаю, пока нужно ли это делать. Предполагаю, что в основном это будет касаться именно записи — для будущего, там где буду делать видеоадаптер.
Творческий день очень был, и на работе тоже, кстати получилось что-то сделать более-менее. Что хочу сделать то? Ну хотя бы тот самый муляж биоса для начала, а для этого мне требуется изменять знакогенератор, чтобы вывести тот самый Award Mordular. Я делал для софт-процессора Z80, но это такая тягомотина... оно не стоит потраченных на него усилий, когда можно сделать тоже самое, но гораздо быстрее и проще.
Как обычно, сегодня я не выспался, и вчера и позавчера и как всегда.
Метки: Дневник

08 мар 2023 Делаю шаблоны кода

Сегодня сделал заготовку, стартовый проект, можно сказать, шаблон для AVR процессора. Я оснастил его простым видеоадаптером, который берет данные для знакогенератора из 2К ROM, а данные для 80 x 50 символьной сетки из 4Кб общей памяти процессора. Сама по себе организация памяти это 64Кб для ROM + 64K для RAM. Конечно же, на девборде DE0, 130К из 308К возможных — я специально оставил там места для 125К видеоадаптера 640 x 400 x 16 цветов.
Вот такие вот технические характеристики устройства. Занимает этот процессор 1550 ALM (это примерно 3000 LE), не скажу, чтобы прямо значительно, но чем больше ALM/LE, тем дольше синтез проекта занимает по времени, так что, лучше делать процессоры небольшими, чтобы быстрее компилировался.
Это лишь первая итерация. Вторая итерация проекта будет включать в себя поддержку PS/2 Keyboard, SDCARD, но пока что без SDRAM, потому что я еще никак доделать не могу, но обязательно нужно. Вообще, у меня в планах сделать видеокарту, которая управляется командами и буфером команд, то есть, процессор складывает необходимые данные в буфер команд и дает команду на обработку, а видеопроцессор это все дело выполняет. Запись в память происходит через порты, последовательно, чтобы ускорить передачу.
У меня сегодня появилась идея такая, сделать фейковый процесс инсталяции Windows 98, и проверить на нем как раз вот это все, все возможности контроллера видеопроцессора. В будущем, я обязательно должен освоить работу с SDRAM, это прямо реально нужно мне, очень нужно! Может даже и сделаю этот SDRAM в ближайшее время как раз. Надо еще дописать все остальное, такое как тестбенчи и верилятор. Это небольшая проблема, но все-таки, надо написать шаблон для верилятора именно отдельный поначалу, чтобы потом его легко было мержить с другими проектами.
И да, у меня только завтра и послезавтра рабочий день, а потом долгожданный отпуск yahoo
Метки: Дневник, Разработка

07 мар 2023 Скоро отпуск на 14 дней

Давно я ждал этот отпуск и надеюсь, что он пройдет нормально, а не как обычно. Хочется вот писать рассказы разные, да никак не позволяет мне фантазия и не только. Хотя, в основном, фантазия, конечно же. Идеи в каком-то роде, есть даже, а реализация их всегда сложная. К тому же, почему я пишу рассказы, я уже и ранее объяснял, чтобы на это время уйти в другую реальность, мыслями оказаться в другой сфере.
Из того, что сегодня мне удалось сделать, это лишь только прием скан-кодов и разбор их на нажатие кнопки, сохранение в буфере, но и только, более ничего. На самом деле, это тоже неплохо, только вот при получении кнопок их скан-коды выходят именно такие, которые пришли от клавиатуры, а это AT&T, их надо преобразовывать в ASCII, с учетом, кстати говоря, чтобы реагировало на нажатие SHIFT. Это не так все просто сделать, скорее, муторно, долго. Главное то, что принимает коды клавиш и то уже спасибо. Проверил на ПЛИС, да, все работает нормально, пока что. Попробую для начала сделать просто, а сложнее мне и не нужно. Нужно раздобыть преобразование в ASCII.
Хочу сделать модуль SDRAM, в данном случае, немного посложнее, чем просто модуль, пусть он будет совмещен с видеокартой, выводом на экран. Как я и говорил, это непросто будет, но ведь я уже делал такой модуль раньше, так что, почему бы я не сделал бы еще раз его? У меня для этого есть все возможности! Просто надо начать делать да и все, к тому же, у меня сейчас есть и верилятор, где я бы мог проверить работу модуля.
Метки: Дневник

03 мар 2023 Доделал этот Award Modular

Или, проще говоря, Energy Star EPA POLLUTION PREVENTER наконец-то готов.
Снимок экрана от 2023-03-03 21-47-35.png
Сколько же я пытался разобраться в этом, сколько страдал. Сегодня еще сделал функцию деления 16-битного числа HL на DE, с результатом в HL и остатком в DE. Потребовалось дополнительные 2 байта памяти для этого действия.
Позже попробую сделать вывод на экран прогресса проверки "памяти", так сказать, а далее хочу сделать так, чтобы можно было легко запустить синий экран великого Биоса и не париться сильно с этим вопросом, сделать все этим менюшки там фейковые. Все это только для того, чтобы у меня был вывод биоса и ощущение того, что наконец-то доделал то что хотел.
Прошло ровно 2 месяца как я каждый день что-то записываю в блоге, не пропуская ни одного дня. Начал 4 января, а сейчас уже 3 марта. Это меня радует, хоть я и обещал, что писать могу не всегда, но мне пока что есть о чем писать.
Метки: Дневник, Разработка

02 мар 2023 Особо ничего нового

Сегодня день, в котором ничего такого не произошло, просто работал, что-то делал, выполнял определенные задачи. Часто размышляю о том, что бы мне хотелось сделать на ПЛИС, и даже если и думаю, то все эти проекты довольно сложные для их реализации. К примеру думал о том, чтобы сделать нейросеть. Как можно вспомнить, искусственная нейросеть опирается на нейроны, реализованные через сигмоиду, то есть вот такую функцию
P(t) = \frac{1}{1 + e^{-t}}
Она сложна по двум причинам для своей реализации. Во-первых, тут требуется найти экспоненту дробного числа, что уже само по себе непростое дело, и, во-вторых, требуется разделить число. Сложность вычисления очень велика для каждого нейрона.
Как вообще вычислять это дело? К примеру, экспонента может быть разложена следующим образом:
e^{1.75} = e^1 e^{0.5} e^{0.25}
Для нейронной сети хорошо бы использовать float-point, но вполне даже может пригодиться число половинной точности, так что количество умножении может быть к примеру, 10 или 11, по количеству двоичных чисел в мантиссе. Значит, 11 тактов придется потратить на то, чтобы возвести экспоненту в степень. Однако, это не все! Как минимум, надо сделать деление, и на деление тоже тратится 11 тактов (длина мантиссы). Кстати, в случае с отрицательной экспонентой, то есть, при возведении в степень отрицательного значения, можно лишь взять другой набор значений.
Получается, чтобы вычислить один нейрон, потребуется минимально 22 такта + то количество тактов, которое нужно для сложения и умножения весов на входящие значения. Допустим, что мы даже так, тратим 50 тактов на вычисление одного нейрона, то сколько нейронов можно будет вычислить в секунду? На частоте 25 мгц это будет 500 тыс нейронов. Это в целом, неплохо, если нейросеть не делать очень большой.
У меня постоянный запар какой-то идет по оптимизации, чем бы ни занимался, хочется сделать все с максимальной скоростью. В итоге же я ничего не делаю! Да сколько можно то! Надо просто брать и делать и вообще на все плевать, хоть медленно, но сделать, чтобы работало.
Метки: Дневник

01 мар 2023 Сегодня 1 марта

Продолжил делать программу для того, чтобы получить полноценный экран с Award Modular, но пока что сегодня смог сделать совсем немного.
Снимок экрана от 2023-03-01 19-58-45.png
Что смог сделать, так это нарисовать вот этого человечка, выложив плитку из 6 символов. Следующая задача будет в том, чтобы наавардить да намодулярить еще Energy Star, и это не так просто будет. Всего он занимает 102 символа, среди них уникальных 76, поэтому, займет 76*16 + 102 = 1318 байта в памяти. Очень много памяти тратится, но я знаю, что делаю, потому что делаю совсем немного, так что все нормально.
И еще, может быть я даже перестану каждый день сюда писать, но это неточно. Пока будет интересно, буду писать, потому что хочу, чтобы у меня была полная история жизни, чтобы потом было что читать.
Метки: Дневник

22 фев 2023 Писал рассказы

Сегодня я то и делал, что писал рассказы то утром, то вечером, но эти рассказы как обычно, складирую просто так. Почитал я те, которые ранее написал и могу сказать, что мне нравится, у меня творческий такой период пошел, в котором я пишу много всякого. После того как создал этот блог, прямо разошелся делать каждый день и сделал это даже традицией, не хочется пока что пропускать ни одного дня, ни написав что-нибудь.
Как и обычно, целый день мне хочется спать и более ни о чем не мыслю, как о том, чтобы поспать, но как только собираюсь в сны, то нахожу тысячу причин, чтобы посидеть за компом и чего-то поделать. Все это потому, что мне не хочется пропускать ни одной секунды драгоценного времени, но вместо этого сижу втыкаю в монитор и пропускаю еще больше времени, если я бы просто поспал. Бред...
Когда перечитывал рассказы, то захотелось дописать еще их и сочинил еще одну главу, и пока сочинял, пришла мысль как сделать еще одну, и вообще какой-то сюжет начал вырисовываться потихоньку, между прочим. Интересно так, я создаю свой собственный фентези-мир (так сказать), там правда нет никаких фей, мечей и магии пока что, но вдруг появятся еще. Насчет магии неизвестно, но мысли есть, но что-то не хочется ее примешивать никуда. Пусть это просто будет обычный мир с необычным антуражем, ведь вообще, для чего это все пишется? Для того, чтобы попытаться убежать от реальности как можно дальше и не думать абсолютно ни о чем плохом. Это значит, что мой мир, который я придумал, не будет агрессивным. Вообще никак! Не хочу я этого, хочу мира, тепла, уюта и маленьких радостей. Но сюжет там, все-таки, будет, пусть и не особо большой.
Вот такие вот дела, надеюсь, что получится дописать до конца хотя бы одну историю свою, а то вечно ничего завершить не могу. Потом оформлю в книгу и буду ее читать.
Метки: Дневник

21 фев 2023 Я постоянно чего-то боюсь

И это касается не того общего страха за туманное будущее, который меня постоянно терзает, а вообще из-за всего, вот к примеру, не могу делать что-то на ПЛИС, потому что понимаю, что как обычно, когда начну делать, ничего доделать не смогу и постоянно мои проекты какие-то очень огромные получаются. Давно хочу сделать рисование треугольников на языке программирования электронных схем Verilog, а ничего не удается, потому что мне то лень, то еще как-то делать не хочется, то я боюсь чего-то бесконечно.
Чего бояться мне? Просто надо делать, да и все. Но думаю, вот какая причина, по которой делать мне сложно, это само по себе, архитектурное решение. Просто, эти треугольники работать будут крайне медленно, в то время, когда есть быстродействующие видеокарты. Второе — это память, которой тоже надо очень много, не то что мегабайты, а гигабайты. Памяти вообще мало не бывает никогда и чем ее больше, тем лучше.
Еще я как-то утратил интерес к теме программирования на верилоге. Раньше было какое-то стремление сделать процессоры, а когда сделал, уже особо то и не хочется этим заниматься больше, ибо все что я хотел, достиг. Расширять возможности достигнутого не сильно тянет, мне и того, что сделал, вполне достаточно для полного счастья.
А вот с видеокартой так давно хотелось все это доделать и я не думаю, что достиг предела того, что хотел, потому что периодически появляется желание перевести геометрию этого мира хотя бы частично в геометрию в трехмерном математическом пространстве. Еще мне всю жизнь хочется сделать виртуальный мир, в котором бы жили NPC, и с которым можно было бы взаимодействовать. Опять, кажется, а чего бы мне не делать, раз хочется? Это все из-за страха, что сделать не смогу, что когда начну делать, получится не то совершенно, что проект слишком велик для меня, и так далее и в таком вот духе.
Это страх сделать шаг и двигаться в направлении цели. Путь очень велик, меня пугает его длина, кажется, что будто бы не дойду до конца. Но ведь лучше двигаться хоть в каком-то направлении, пусть даже не достигнув конца пути. А кто говорит о том, что у него есть конец? Если он есть, то в любом случае недостижим. Путь всегда будет впереди и он никогда не закончится. Ну и что стоять теперь на месте?
Да пусть ничего не получится, это не должно меня страшить. Но все-таки, страшит и еще появляется такое ощущение бесцельности и бессмысленности, отчего сразу же опускаются руки. Что мне делать в этом случае, какую великую идею найти? Вот не хочется делать, не вижу цели! Но надо заставить себя, тогда. Это ощущение бесцельности тоже ложное. Надо вспомнить о том, почему я выбрал путь, по которому пошёл и продолжать по нему ну пусть не идти даже быстро, а еле-еле передвигаться, но всё же, хотя бы какое-то движение делать.
Метки: Дневник
<< Ранние записи | Поздние записи >>