Search
Write a publication
Pull to refresh
54
0

Пользователь

Send message

Гигатрон — самодельный микрокомпьютер без процессора

Reading time3 min
Views49K


Микрокомпьютер Gigatron — это минималистичный 8-битный ретро-компьютер построенный по необычному дизайну: в нём нет никаких сложных логических интегральных схем, нет даже микропроцессора! Его CPU построен на классических логических элементах серии 7400, также известных как микросхемы на ТТЛ-логике. По сути все элементы компьютера разом и есть процессор. Эти простые чипы не только формируют CPU, но ещё и выполняют все задачи, которые обычно требуют дополнительной периферии. Несмотря на простую и компактную конструкцию, Gigatron работает как 8-битный одноплатный микрокомпьютер, на котором можно играть в видеоигры.

Гигатрон — хобби-проект Уолтера Белгера, хакера, специалиста по информационной безопасности и ныне директора по информационной безопасности компании Philips. В этот понедельник 9 сентября Уолтер приезжает в наш Хакспейс, где будет рассказывать об устройстве Гигатрона, истории создания проекта и покажет его живьем.

Под катом подробнее про Гигатрон и анонс встречи с создателем в Москве.

Генерация звука на микроконтроллерах AVR методом волновых таблиц с поддержкой полифонии

Reading time12 min
Views34K
Микроконтроллеры AVR довольно дешевы и широко распространены. Наверно, с них начинает почти любой embedded разработчик. А среди любителей правит балом Arduino, сердцем которого обычно является ATmega328p. Наверняка многие задумывались: как можно заставить их звучать?

Если посмотреть на существующие проекты, то они бывают нескольких типов:

  1. Генераторы квадратных импульсов. Генерация с помощью ШИМ или дергать пины в прерываниях. В любом случае, получается очень характерный пищащий звук.
  2. Использование внешнего оборудования типа MP3 декодера.
  3. Использование ШИМ для вывода 8 битного (иногда 16 битного) звука в формате PCM или ADPCM. Поскольку памяти в микроконтроллерах для этого явно не достаточно, то обычно используют SD карту.
  4. Использование ШИМ для генерации звука на основе волновых таблиц, подобных MIDI.

Последний тип для меня был особенно интересен, т.к. почти не требует дополнительного оборудования. Представляю сообществу свой вариант. Для начала небольшое демо:



Заинтересовавшихся прошу под кат.
Читать дальше →

DIY от PVS-Studio: Геймификация достижений

Reading time3 min
Views5.4K
DIY от PVS-Studio: Геймификация достиженийЕсли быть честными, говоря о работе, то давайте признаемся: даже самое любимое дело может время от времени наскучивать, сводить на нет настроение и изматывать однообразностью. Поэтому в нашем офисе PVS-Studio мы стараемся раскрасить яркими красками наши будни. Сегодня будет рассказ об одном из таких нововведений — геймификации достижений нашего коллектива.
Читать дальше →

Веселая Квартусель, или как процессор докатился до такой жизни

Reading time18 min
Views5.6K


При отладке обычных программ, точки останова можно ставить почти везде и в достаточно больших количествах. Увы. Когда программа исполняется на контроллере, это правило не действует. Если идёт участок, в котором формируется временная диаграмма, то остановка всё испортит. А проход на низкой и на высокой частоте — это не одно и то же. Граничные условия — бич разработчиков. Или, скажем, шина USB. В NIOS II я с нею не работал, но на STM32 — это ужас. И хочется что-то посмотреть, и при остановке словишь таймаут. В общем, очень часто, несмотря на наличие передовой JTAG отладки, поведение программы в критичных по времени участках покрыто мраком. Как было бы здорово хотя бы после исполнения поглядеть, по какой цепочке прошла программа, какие ветвления сработали, а какие нет!

Ещё важнее знать историю развития исключений. На NIOS II мне этого делать не доводилось, а вот на Cyclone V SoC в ядре ARM — вполне. При отладке всё работает, а стартуешь программу из ПЗУ — получаешь исключение. Как в него вошли — видно, а какое развитие ситуации привело к этому — нет. Трассировка же срывает все покровы.
Читать дальше →

Ограничения 16-битных игр и их воссоздание в Unity

Reading time10 min
Views15K
image

В нашем первом туториале по ретро-играм мы показали, как настраивать инструмент 2D Pixel Perfect и как создавалась графика в эпоху 8-битных игр. В этом посте мы перенесёмся в 16-битную эру. С помощью Mega Cat Studios мы узнаем, как создавать аутентичную графику для игр в стиле Sega Genesis (Mega Drive) и Super NES при помощи параметров, графических структур и цветовых палитр Unity.

Создание аутентичной графики в стиле Genesis


В этом разделе мы рассмотрим рабочий процесс создания графики, имитирующей картинку разных консолей. Здесь будет меньше ограничений, чем в 8-битном проекте и больше свободы при работе с цветом, но всё-таки у Genesis есть пределы. Мы считаем, что будет также полезно объяснить, как работало «железо» консоли, чтобы вы могли применить эти ограничения в собственном ретро-проекте.

Палитры и субпалитры


Переход от 8-битных к 16-битным консолям благодаря усложнению оборудования предоставил разработчикам больше возможностей. Тем не менее, принципы создания качественной NES-графики всё ещё остаются в силе. Вся графика по-прежнему хранится в тайлах, например, размером 8×8, и собирается из них в большие изображения — спрайты и элементы фона. Художники по-прежнему ограничены субпалитрами с общим прозрачным цветом, но 16 бита обеспечивают бОльшую гибкость работы с палитрами. Вас скорее всего порадует то, что у 16-битных консолей не было жёстко заданной цветовой палитры, то есть по сравнению с NES количество доступных цветов сильно расширилось.
Читать дальше →

Мой седьмой день с Haiku: распечатка, сканирование, сети

Reading time6 min
Views7.6K


TL;DR: Распечатка выглядит как привет из 90-х, Windows 3.x вызывает свои принтеры обратно. Сканирование удивительно "просто работает", по крайней мере при подключении USB. 3D печать в разработке. Поддержка сети вызывает смешанные чувства. Смартфоны у меня пока не заработали. Устройства с последовательным интерфейсом USB, в основном, работают.

Читать дальше →

Хакеры воруют и отмывают деньги через сервисы доставки еды и бронирования отелей

Reading time4 min
Views54K
картинка с xakep.ru

По долгу работы приходится копаться на андеграунд форумах в поиске свежей информации об уязвимостях, утечках паролей и другим интересным вещам. Иногда консультируем представителей силовых структур на тему новых уязвимостей, атак и схем нападения, случаются ситуации, когда “новинками” делятся силовики. Думаю многие разделят мою точку зрения касательно того, что если “схема” или “уязвимость” попала на форум, то, как правило, все “сливки” с нее уже давно кто то снял. Да и форумы вне зоны .onion супер серьезно воспринимать не стоит. Но в этот раз была найдена схема которая удивила своей относительной простотой и новизной. Собственно о том, как хакеры воруют и отмывают деньги через сервисы доставки еды и будет сегодняшний рассказ.
Читать дальше →

Мой шестой день с Haiku: под капотом ресурсов, иконок и пакетов

Reading time22 min
Views8.4K


TL;DR: Haiku — операционная система, специально разработанная для ПК, поэтому у нее есть несколько хитростей, делающих ее рабочее окружение намного лучше других. Но как оно работает?

Читать дальше →

Лес не сдается технологиям поиска, но инженеры наносят ответный удар

Reading time6 min
Views19K

Фото: «Лиза Алерт».

Если в лесу пропал человек, лучший способ его найти — отправить тренированных поисковиков на прочесывание. Ни одна технология поиска пока не может заменить людей. В начале лета мы писали про несколько команд, которые в рамках конкурса «Одиссея» разрабатывали решения для дикой природы. Многие инженеры полагались на беспилотники с камерами и компьютерное зрение, но столкнулись с не очевидными проблемами — плохая связь, низкая скорость обработки и передачи огромных данных, плотные кроны деревьев и многое другое.

В итоге ни одно решение с компьютерным зрением не прошло в финал конкурса. Но технические эксперты говорили — если бы команды объединили усилия, вместе собрали датасет и обучили на нем алгоритмы, у компьютерного зрения мог быть шанс.

На прошлой неделе, 9 августа поисковый отряд «Лиза Алерт» вместе с «Билайном» объявили о запуске инструмента, который будет искать людей на фотографиях с беспилотников. Мы сходили на пресс-конференцию, приуроченную к запуску, и узнали, как он работает.

Первые опыты использования потокового протокола на примере связи ЦП и процессора в ПЛИС комплекса Redd

Reading time19 min
Views6.5K


В предыдущих статьях мы уже познакомились с шиной Avalon-MM, где MM означает Memory Mapped, то есть проецируемая на память. Эта шина вполне себе универсальная. К ней может быть подключено несколько ведущих (Master) и несколько ведомых (Slave) устройств. Мы уже подключали сразу два ведущих устройства (Instruction Master и Data Master), потому что у процессора NIOS II гарвардская архитектура, так что шины команд и данных у него разные, но многие авторы для упрощения разработки ПО снаружи подключают их к одной и той же общей шине.

Если какой-то блок на шине имеет функциональность прямого доступа к памяти (DMA), то он также будет содержать ведущее устройство для шины.

Собственно, на этом факте (много ведущих, много ведомых) и основано главное неудобство данной шины. Когда мы проектировали своё ведомое устройство, нам приходилось декодировать адрес. Когда же мне доводилось делать своего ведущего, возни с арбитражем было существенно больше. А ведь красной нитью через весь цикл статей идёт утверждение, что разработка под Redd — вспомогательная часть проекта, она не должна требовать слишком много трудозатрат. И если можно освободиться от рутины, мы должны от неё освободиться.
Читать дальше →

DisplayPort-LVDS

Reading time4 min
Views30K
Доброго времени суток, Хабр!



И снова хочу предложить Вашему вниманию проект аппаратного конвертера, но теперь уже DisplayPort-LVDS построенный на одной (!) микросхеме NXP.
Читать дальше →

Самодельная лазерная установка на парах меди “Lightsaber” – часть 3, заключительная

Reading time6 min
Views17K
Я решил составить краткую шуточную инструкцию для начинающих некромантов, которые захотят поднимать из мертвых лазеры на парах меди. Виктор Франкенштейн «вдыхал жизнь» в мертвецов, а мы проделаем то же самое с мертвой лазерной трубкой.

image
Читать дальше →

Всего лишь проведи карточкой: как в Нью-Йоркском метро используют OS/2

Reading time6 min
Views9.5K

Винтажные технологии десятилетиями работали в структурах нью-йоркского метро – и иногда всплывали неожиданным образом. Статья для фанатов OS/2


Нью-йоркец и турист заходят на станцию метро «42 улица», также известную, как «Таймс-сквер». Звучит как начало анекдота. На самом деле нет: один из них радуется, что попал туда; другого эта ситуация ужасно раздражает. Один знает, как выбраться оттуда с максимальной скоростью. Другой нет – он не говорит по-английски. Нью-йоркец и турист – люди разные, но в данный момент они едины. Обоих подвергнут причудам работы транспортной компании Metropolitan Transportation Authority (MTA) и неслыханной надёжности операционки средней успешности начала 1990-х.

В средний рабочий день в 2016 году нью-йоркская подземка перевозила 5,7 млн человек [для сравнения: у московского метро этот показатель составляет 6,7 млн / прим. перев.]. Это был самый высокий из средних показателей с 1948 года. Если спросить среднего нью-йоркца, он, скорее всего, скажет: «И всё?» Неверие понятно, поскольку в городе живёт 8 млн постоянных жителей, а во время пиковых часов или праздников количество людей иногда раздувается до 20 млн. Видимо, очень многим нравится ловить такси.
Читать дальше →

Как в 1995 году писали игры для Sega Saturn

Reading time8 min
Views14K
Это документ, написанный мной в 1995 году, когда я работал над первой игрой студии Neversoft: Skeleton Warriors. Это была первая игра, в которой я не использовал язык ассемблера 68K.

Фото сделано примерно в то время. Комплект разработчика (dev kit) («Small Box» и ICE) стоит справа от меня.


Состояние игры


В представленном ниже документе вкратце описывается состояние кода Skeleton Warriors для Sega Saturn, а также упоминаются некоторые из множества аспектов, которые нужно было ещё сделать.

Документ нужен был, чтобы ускорить Дэну, Кену и Джеймсу знакомство с уже готовым кодом, объяснить им назначение каждого модуля и взаимодействие между ними. Также он позволил мне оценить печальное состояние этого кода, и, надеюсь, заставил меня взяться за ум.

Также я немного рассказываю о встраивании данных (файлы .GOV и .GOB) в программу, и о том, что мы будем делать в будущем.

Оборудование для разработки


Наша целевая платформа — Sega Saturn, имеющая два Risc-микропроцессора SH2 и один 68000. Пока мы используем только основной процессор Master SH2, вспомогательный slave SH2 будет использоваться, когда мы разберёмся, как это сделать. 68000 применяется для управления звуковым чипом, нам не пришлось писать для него код, потому что он будет использовать предоставленную Sega звуковую библиотеку.
Читать дальше →

ПЗС линейка: с чем ее едят

Reading time7 min
Views31K

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

Autodesk Maya: полезные базовые функции для работы с 3Д моделями и их тестирования

Reading time10 min
Views96K

Недавно я столкнулся лицом к лицу с таким зверем как Autodesk Maya. За плечами у меня не было опыта в работе с 3Д моделированием и пришлось в экстренном порядке прокачиваться, начиная с основ, а также ознакомится с функциональностью данного ПО, чтобы проверить работу плагина (QA), который экспортил всё содержимое сцены в определенный формат. Эта статья рассчитана на людей без опыта либо с минимальным в Autodesk Maya и призвана познакомить вас с полезными функциями и редакторах, которые можно в ней найти. Если же вы не нашли функцию/редактор, который считаете полезным, то либо я с ним еще не работал, либо он не пригодился для моих нужд. Расскажите о них и о реальных случаях их применения в комментариях :-)


Статья разделена на секции, каждая из которых относится к одному из аспектов 3Д модели:


  1. Общие инструменты
  2. Работа с геометрией (полигональной сеткой)
  3. Работа с текстурами
  4. Работа с анимацией
  5. Shelf Editor, Shelves и немного о MEL (Maya Embedded Language)

image

Читать дальше →

Как разрабатываются и производятся процессоры: будущее компьютерных архитектур

Reading time9 min
Views16K
image

Несмотря на постоянные усовершенствования и постепенный прогресс в каждом новом поколении, в индустрии процессоров уже долгое время не происходит фундаментальных изменений. Огромным шагом вперёд стал переход от вакуума к транзисторам, а также переход от отдельных компонентов к интегральным схемам. Однако после них серьёзных сдвигов парадигмы такого же масштаба не происходило.

Да, транзисторы стали меньше, чипы — быстрее, а производительность повысилась в сотни раз, но мы начинаем наблюдать стагнацию…

Это четвёртая и последняя часть серии статей о разработке ЦП, рассказывающей о проектировании и изготовлении процессоров. Начав с высокого уровня, мы узнали о том, как компьютерный код компилируется в язык ассемблера, а затем в двоичные инструкции, которые интерпретирует ЦП. Мы обсудили то, как проектируется архитектура процессоров и они обрабатывают инструкции. Затем мы рассмотрели различные структуры, из которых составлен процессор.

Немного углубившись в эту тему, мы увидели, как создаются эти структуры, и как внутри процессора совместно работают миллиарды транзисторов. Мы рассмотрели процесс физического изготовления процессоров из необработанного кремния. Узнали о свойствах полупроводников и о том, как выглядят внутренности чипа. Если вы пропустили какую-то из тем, то вот список статей серии:

Часть 1: Основы архитектуры компьютеров (архитектуры наборов команд, кэширование, конвейеры, hyperthreading)
Часть 2: Процесс проектирования ЦП (электрические схемы, транзисторы, логические элементы, синхронизация)
Часть 3: Компонование и физическое производство чипа (VLSI и изготовление кремния)
Часть 4: Современные тенденции и важные будущие направления в архитектуре компьютеров (море ускорителей, трёхмерное интегрирование, FPGA, Near Memory Computing)
Читать дальше →

Разработка программ для центрального процессора Redd на примере доступа к ПЛИС

Reading time14 min
Views3.6K
В прошлой статье я сказал, что нам пора переходить к потоковым протоколам. Но начав подготовку рассказа о них, я понял, что сам плаваю в одной очень важной теме. Как уже отмечалось, у меня с Линуксом достаточно своеобразные отношения. В общем, я понял, что сам не могу создать с нуля приложение на С++, которое удовлетворяло бы всем принципам программирования для Redd. Можно было бы попросить кого-то сделать это, а затем просто воспользоваться готовым шаблоном, но цикл статей призван научить всех вести разработку под Redd с нуля. Поэтому я попросил своего начальника (большого специалиста по Линуксу), и он разъяснил мне, что за чем нажимать. Затем я чуть переосмыслил его слова и теперь считаю нужным зафиксировать все знания письменно. Это избавит таких, как я, от мучительных раздумий: «Так… Что он сделал – понятно, но как мне это повторить?». В общем, кто работает под Линуксом, можете пробежать следующие два раздела по диагонали. Вряд ли вы найдёте там что-то новое (дальше – найдёте). А остальным я предлагаю на выбор две методики разработки, которые соответствуют декларируемым принципам работы под Redd: низкие трудозатраты на разработку и удалённая отладка.


Читать дальше →

Методы сопряжения электрических соединений при трассировке дифференциальных пар на печатных платах

Reading time5 min
Views10K
В публикации приводится описание метода сопряжения электрических соединений при трассировке дифференциальных пар на печатных платах. Основу метода составляет техника генерации и применения шаблонов подключения печатных проводников дифференциальной пары к трассируемым контактам электронных компонентов с минимизацией длины несопряженных участков.
Читать публикацию

Как разрабатываются и производятся процессоры: изготовление чипа

Reading time9 min
Views54K
image

Это третья статья из серии о проектировании ЦП. В первой статье мы рассмотрели архитектуру компьютера и объяснили его работу на высоком уровне. Во второй статье говорилось о проектировании и реализации некоторых компонентов чипа. В третьей части мы узнаем, как архитектурные проекты и электрические схемы становятся физическими чипами.

Как превратить кучу песка в современный процессор? Давайте разберёмся.

Часть 1: Основы архитектуры компьютеров (архитектуры наборов команд, кэширование, конвейеры, hyperthreading)
Часть 2: Процесс проектирования ЦП (электрические схемы, транзисторы, логические элементы, синхронизация)
Часть 3: Компонование и физическое производство чипа (VLSI и изготовление кремния)
Часть 4: Современные тенденции и важные будущие направления в архитектуре компьютеров (море ускорителей, трёхмерное интегрирование, FPGA, Near Memory Computing)

Как говорилось ранее, процессоры и вся другая цифровая логика составлены из транзисторов. Транзистор — это переключатель с электрическим управлением, который может включаться и отключаться подачей или отключением напряжения на затворе. Мы сказали, что существует два вида транзисторов: nMOS-устройства пропускают ток, когда затвор включён, а pMOS-устройства пропускают ток при выключенном затворе. Базовая структура процессора — это транзисторы, созданные из кремния. Кремний — это полупроводник, потому что он занимает промежуточное положение — не проводит ток полностью, но и не является изолятором.

Чтобы превратить кремниевую пластину в практическую электрическую схему добавлением транзисторов, производственные инженеры используют процесс под названием "легирование". Легирование — это процесс добавления в базовый субстрат кремния тщательно выбранных примесей для изменения его проводимости. Цель заключается в том, чтобы изменить поведение электронов так, чтобы мы могли ими управлять. Существует два вида транзисторов, а значит, и два основных вида легирования.
Читать дальше →

Information

Rating
Does not participate
Date of birth
Registered
Activity