Search
Write a publication
Pull to refresh
4
0
Send message

Серебряная пуля для кремлевского демона

Reading time5 min
Views80K

image


Вот, наконец, в теме помех навигации мы и добрались до самого крутого и интересного. Причем, это интересное оказалось не таким уж сложным технически.

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

Реализация узла БПФ с плавающей точкой на ПЛИС

Reading time17 min
Views34K
Всем привет! В этой статье речь пойдет о реализации быстрого преобразования Фурье в формате с плавающей точкой на ПЛИС. Будут показаны основные особенности разработки ядра от самой первой стадии до готового конфигурируемого IP-ядра. В частности, будет проведено сравнение с готовыми ядрами фирмы Xilinx, показаны преимущества и недостатки тех или иных вариантов реализации. В статье будет рассказано о главной особенности ядра БПФ и ОБПФ — об отсутствии необходимости переводить данные в натуральный порядок после БПФ и ОБПФ для их совместной связки. В этой статье я постараюсь отразить всё тонкости реализации проекта под названием FP23FFTK, приведу реальные примеры использования готового ядра. Проект написан на языке VHDL и заточен под FPGA фирмы Xilinx последних семейств.


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

Как прорешать SICP: Отчёт о создании решебника для самого известного в мире задачника по программированию. Ботаны есть?

Reading time45 min
Views18K

(Хабр-Статья представляет собой авторский перевод доклада, представленного автором на Scheme Workshop 2020, проводившегося в рамках Международной Конференции по Функциональному Программированию, 28 августа 2020 года)

Эта статья -- своего рода "отчёт" по самому большому проекту, который я сделал в своей жизни по собственной инициативе. Я сделал полное, исчерпывающее решение всех задач из одной из самых извесных книг по программированию в мире "Структура и Интерпретация Компьютерных Программ" (Structure and Interpretation of Computer Programs -- SICP), за авторством Абельсона, Сассмана и Сассман.

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

Читать далее

Радости экспериментов с ISA и PCI

Reading time8 min
Views21K
С момента появления домашних компьютеров существует возможность расширять их функционал путём установки большего количества RAM, более ёмких накопителей, дополнительных комплектующих. Но только с появлением IBM PC привычной стала идея о полностью открытой модульной компьютерной системе. А именно, концепция карт расширения позволила пользователям компьютеров не зависеть от конфигураций систем, предлагаемых производителями. Подобные конфигурации можно было, в ограниченных пределах, расширять комплектующими, рассчитанными исключительно на эти системы. Благодаря универсальным картам расширения появились целые отрасли промышленности, они стали и причиной возникновения большого рынка любительских устройств, которые можно было подключать к компьютерам.



В первом IBM PC было пять 8-битных слотов расширения, подключённых прямо к процессору 8088. Компьютер IBM PC/AT был основан на процессоре 80286, в результате слоты стали 16-битными. С помощью слотов расширения к компьютеру можно было подключать практически всё что угодно: графические и сетевые карты, дополнительную память, какие-то особые платы. Хотя для этих слотов расширения и не существовало официального наименования, во времена PC/AT их называли, соответственно, PC-шинами и AT-шинами. А название Industry Standard Architecture (ISA) — это ретроним, который придумали создатели клонов PC.

Такая открытость ISA означала то, что можно было достаточно легко и дёшево создавать собственные ISA-карты. То же касалось и шины PCI, которая появилась после ISA и была такой же открытой. В результате до сих пор существует полная жизни экосистема, в которой есть место и любительским звуковым картам, рассчитанным на слоты PCI или ISA, и картам расширения, позволяющим оснастить IBM PC 1981-го года поддержкой USB, и много чему ещё.

С чего начать тому, кто в наши дни хочет заняться работой с ISA- и PCI-картами?
Читать дальше →

Реализация процессорной архитектуры из книги Чарльза Петцольда «Код. Тайный язык информатики»

Reading time6 min
Views8.3K

Наверное многие, из тех, кто увлекается изучением того, как работает компьютер на самом низком уровне читали такие книги как: Таненбаум "Архитектура компьютера" или Харрис, Харрис "Цифровая схемотехника и архитектура компьютера", которые безусловного являются объемлющими трудами и хорошими книгами для обучения. Но если вы не являетесь инженером, но всё равно хотите погрузиться в мир цифровых вычислений и более глубоко понять то, а как же работает компьютер. В этом вам сможет помочь книга Чальза Петцольда "Код. Тайный язык информатики", которая начинает свой рассказ от причин, по которым людям понадобился обмен информацией и её обработка , с какими проблемами при этом столкнулись и заканчивает рассказам об устройстве реальных операционных систем и процессоров и их архитектуру. При этом автором был отлично подобран уровень абстракции, которого он придерживался при написании. В каких-то моментах подробно описывая работу элементарных частей процессора, а в других рассказывая простыми словами о сложных вещах.

Читать далее

Как одним движением сжечь 10000$ и получить удар током

Reading time14 min
Views115K

Представим себе в сущности довольно-таки заурядную ситуацию: у вас сломался сетевой источник питания. Вы берете в руки мультиметр и измеряете напряжение на входе и выходе источника. На входе у вас честные 230 В переменного тока из розетки, а на выходе по нулям. Вы знаете, что ваш источник питания – импульсный, и вы в курсе про то, что транзисторами источника управляет ШИМ-контроллер, который очень легко идентифицируется на плате.
На столе у вас стоит новенький осциллограф Tektronix DPO 7254 или какой-нибудь LeCroy WavePro 7300A ценою более 10000$, и вы решаете посмотреть с его помощью сигналы ШИМ-контроллера, чтобы диагностировать его исправность или неисправность. На щупе осциллографа написано, что его максимально допустимое напряжение равно 1000 В, это с хорошим запасом больше напряжения в розетке. Непосредственно на самом осциллографе рядом с разъемами для подключения щупов написана цифра 400 V, кроме того, у вас щуп с делителем 1:100, что тоже вселяет уверенность, что все будет в порядке. Вы включаете осциллограф и пробуете подключить его щуп к плате источника питания, однако, как только вы касаетесь щупом осциллографа платы источника питания, проскакивает искра и раздается громкий ба-бах. Экран вашего новенького осциллографа безжизненно потухает, сам осциллограф не реагирует ни на какие кнопки, а комнату заполняет характерный запах сгоревшей электроники. Что же произошло? Почему сгорел осциллограф и как такого избежать? Обо всем этом читайте под катом.
Читать дальше →

Как мы снимаем видеоинструкции для решений Рутокен

Reading time11 min
Views4.1K

Мы решили продолжить наш цикл статей про разработку пользовательской документации, но на этот раз нам захотелось рассказать об еще одном способе создания инструкций для пользователей — это съемка видеороликов. Мы расскажем о процессе их производства: от возникновения идеи до загрузки ролика на YouTube-канал. У нас нет студии и профессиональных актеров, мы все делаем сами и хотим показать вам, что это не так сложно. Здесь вы найдете: идеи, готовые алгоритмы и, быть может, вдохновитесь на съемку своей видеоинструкции.

Вдохновляйтесь

Усилитель звукового сигнала мощностью 600 Вт

Reading time8 min
Views36K

В усилителе используется микросхема TPA3255 производства компании Texas Instruments. Это высокоэффективный, высококачественный четырехканальный усилитель класса D.

Принцип работы довольно простой, на вход микросхемы подается аналоговый сигнал, он преобразуется в PWM и подается на выходные силовые каскады.

Читать далее

Моделирование смешанных схем на System Verilog

Reading time7 min
Views12K

Жили были, не, не так… Однажды рано утром, придя в очередной раз на работу, я узнал, что у нас в серверной всего один ввод электропитания и он может отгорать. Целый день было нечего делать, и я решил написать статью на Хабр. Статья ориентирована на начинающих и праздно интересующихся.


Технология КМОП достигла такого уровня, что современные микросхемы представляют собой огромные и очень сложные структуры и системы, собранные из систем. В то же время, стоимость запуска в производство растет экспоненциально с уменьшением технологических норм. Поэтому, при разработке, требуется моделировать и верифицировать все в максимально возможном объеме. Идеальный случай, который даже иногда реализуется на практике, когда микросхема заработала с первого запуска.


Так как мы живем в аналоговом мире, то даже цифровая микросхема должна уметь с этим миром общаться. Цифровые микросхемы содержат на кристалле десятки больших аналоговых блоков, таких как АЦП, ЦАП, ФАПЧ, блоки вторичного питания и т.д. Исключением из этого правила, вероятно, являются только большие процессоры, типа Core i и т.п., где все это хозяйство вынесено в чипсет.

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

Сверхдлинное преобразование Фурье на FPGA

Reading time13 min
Views21K
Всем привет!

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

В этой статье показана невозможность реализации «классической» схемы очень длинного БПФ даже на самых современных кристаллах ПЛИС и предложен алгоритм, позволяющий это сделать. Также пошагово рассмотрена основная идея алгоритма: от математической составляющей до создания законченного решения на базе ПЛИС с использованием внешней DDR-памяти. Статья затронет тонкости проектирования многоканальных систем обработки для подобного класса задач и, в частности, опишет мой практический опыт.


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

Самодельный светодиод из карбида кремния

Reading time2 min
Views73K
Эта статья описывает процесс создания работающего самодельного светодиода. Долгое время я думал, что создание активных электронных компонентов самому c нуля — неосуществимая задумка. Как же я ошибался. Галеновый (из сульфида свинца PbS. — Прим. перев.) диодный детектор относится к эпохе зарождения радио. Светодиод появился примерно в то же время. Это моя первая (на самом деле вторая, после галена) попытка создания полупроводника.


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

Доступное объяснение алгоритма коллапса волновой функции

Reading time9 min
Views41K
Алгоритм коллапса волновой функции (Wavefunction Collapse Algorithm) учит компьютер импровизировать. На входе он получает архетипичные данные и создаёт процедурно генерируемые данные, похожие на исходные.


(Источник)

Чаще всего он используется для создания изображений, но может также строить города, скейтпарки и писать ужасные стихи.


(Источник)

Коллапс волновой функции — это очень независимо мыслящий алгоритм, не требующий практически никакой помощи или инструкций извне. Вам нужен только пример стиля, которого нужно достичь, а всё остальное он сделает сам. Несмотря на свою самодостаточность, он на удивление прост. Он не использует никаких нейронных сетей, случайных лесов или чего-то другого, похожего на машинное обучение. Если разобраться с идеей, он станет для вас очень понятным и интуитивным.

Большинство реализаций и объяснений коллапса волновой функции — это полная, оптимизированная по скорости версия алгоритма. Разумеется, все они важны и необходимы, но в них сложно разобраться с нуля. В этом посте я буду объяснять всё понятным я простым языком, сосредоточившись на версии Wavefunction с ограничениями, которую я назвал Even Simpler Tiled Model. Кроме того, я выложил пример реализации ESTM на Github. Код в нём неэффективный и медленный, но очень хорошо читаемый и подробно прокомментирован. Как только вы разберётесь в технологии, лежащей в основе ESTM, то станете ближе к пониманию более сложных версий алгоритма. Если хотите понять алгоритм коллапса волновой функции, то эта статья будет хорошим началом.
Читать дальше →

Наша методика расчета стека печатных плат

Reading time7 min
Views29K
Пока мы заканчиваем последние приготовления к серийному выпуску сервера VESNIN, хочу провести образовательный эксперимент — опишу наши внутренние методики и рекомендации для расчёта стека печатных плат. С одной стороны, приятно, если наш опыт будет кому-то полезен. С другой, мы сами рады получить дельные комментарии, чтобы улучшить нашу практику. Если интересно прочитать и обсудить — добро пожаловать под кат.


Погрузиться в детали

Изобретаем велосипед или пишем персептрон на С++. Часть 1 и 2

Reading time7 min
Views16K

Изобретаем велосипед или пишем персептрон на C++. Часть 1


Напишем простую библиотеку для реализации персептрона на C++



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

Корректирующие коды «на пальцах»

Reading time11 min
Views78K

Корректирующие (или помехоустойчивые) коды — это коды, которые могут обнаружить и, если повезёт, исправить ошибки, возникшие при передаче данных. Даже если вы ничего не слышали о них, то наверняка встречали аббревиатуру CRC в списке файлов в ZIP-архиве или даже надпись ECC на планке памяти. А кто-то, может быть, задумывался, как так получается, что если поцарапать DVD-диск, то данные всё равно считываются без ошибок. Конечно, если царапина не в сантиметр толщиной и не разрезала диск пополам.


Как нетрудно догадаться, ко всему этому причастны корректирующие коды. Собственно, ECC так и расшифровывается — «error-correcting code», то есть «код, исправляющий ошибки». А CRC — это один из алгоритмов, обнаруживающих ошибки в данных. Исправить он их не может, но часто это и не требуется.


Давайте же разберёмся, что это такое.


Для понимания статьи не нужны никакие специальные знания. Достаточно лишь понимать, что такое вектор и матрица, как они перемножаются и как с их помощью записать систему линейных уравнений.


Внимание! Много текста и мало картинок. Я постарался всё объяснить, но без карандаша и бумаги текст может показаться немного запутанным.

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

SamsPcbCalc, часть 1: Волновое сопротивление микрополосковой линии, Гарольд Уилер и Эрик Богатин

Reading time6 min
Views10K
Сейчас занимаюсь разработкой калькулятора для печатных плат и изучаю расчетные модели, которые стоят за табличными формулами. Добрался до волнового сопротивления микрополосковой линии и решил рассказать про модель Гарольда Уилера и то, как его Эрик Богатин недооценил, а оказалось, что у меня тут публикаций на тему волнового сопротивления вообще не было, поэтому сначала немного теории, а потом к восстановлению справедливости.
Читать дальше →

Чесночно-луковый хостинг: как поднять веб-ресурс, чтобы не отобрали домен

Reading time6 min
Views26K


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

Глобальный DNS — прекрасная вещь, пережившая не одно десятилетие. Но у него есть фундаментальная проблема — ваш домен могут просто разделегировать, если вдруг решат, что вы что-то нарушили. Ну или у кого-то с деньгами и связями будет на вас зуб. Историю того же torrents.ru все помнят. Если по каким-то причинам вы хотите убрать подобные риски — можно посмотреть в сторону оверлейных сетей, у которых просто нет регулятора, способного разделегировать доменное имя. Поэтому будем поднимать onion- и i2p-веб-ресурсы.
Читать дальше →

НЛО воровало аватарки здесь

Reading time2 min
Views29K
image

24 июня Хабр отмечал международный день НЛО. Но это не точно, потому что некоторые его празднуют и 2 июля. В принципе, ничего не помешает отметить дважды — команда Хабра, возможно, так и поступит. По традиции в этот день люди запасаются телескопами, выезжают на природу, избегают городской засветки и смотрят на небо в поисках необъяснимого.

Наверняка мы знали только одну вещь. Чтобы встретиться с НЛО, достаточно было упомянуть юзера UFO в комментариях к этому посту.
Читать дальше →

Как самостоятельно изготовить электронную подпись

Reading time10 min
Views66K

Оговорюсь сразу — я почти дилетант в вопросах, связанных с электронной цифровой подписью (ЭЦП). Недавно, движимый естественным любопытством, я решил немного разобраться в этом и нашел в Интернете 100500 статей на тему получения сертификатов ЭЦП в различных удостоверяющих центрах, а также многочисленные инструкции по использованию различных готовых приложений для подписания документов. Кое-где при этом вскользь упоминалось, что неквалифицированную подпись можно изготовить самостоятельно, если воспользоваться услугами «опытного программиста».


Мне тоже захотелось стать хоть немного «опытным» и разобраться в этой кухне изнутри. Для интереса я научился генерировать PGP-ключи, подписывать документы неквалифицированной подписью и проверять ее достоверность. Понимая, что никакой Америки не открыто, я, тем не менее, предлагаю этот краткий туториал для таких же, как и я, дилетантов в вопросах работы с ЭЦП. Я постарался особо не углубляться в теорию и в детали, а написать именно небольшое и краткое введение в вопрос. Тем, кто уже работает с ЭЦП, это вряд ли будет интересно, а вот новичкам, для первого знакомства — в самый раз.

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

Разработка и производство троичных микросхем на обычном техпроцессе CMOS

Reading time6 min
Views21K


Многие утверждали, что строят троичный компьютер из дискретных компонентов, однако некоторые разрабатывают и заказывают троичные микросхемы уже прямо сейчас :)
Читать дальше →

Information

Rating
4,054-th
Registered
Activity