Как стать автором
Обновить
2
0
Mykola Konovalenko @WoLandN

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

Отправить сообщение

Система Оберон, реализованная на доступной FPGA-плате

Время на прочтение11 мин
Количество просмотров15K
by Niklaus Wirth
Professor (retired)
Swiss Federal Institute of Technology (ETH)
Zurich, Switzerland

В 1988 году мы с Юргом Гуткнехтом завершили и опубликовали язык программирования Оберон [1, 2], который являлся преемником двух других языков, Паскаля и Модулы-2, разработанных мной ранее. Язык Оберон был спроектирован нами изначально как более рациональный и эффективный, чем Модула-2, что облегчило студентам академической системы образования освоение компьютерной науки. Не останавливаясь на достигнутом, в 1990 году мы построили современную операционную систему (ОС) Оберон для рабочих станций, использующую окна и возможности для обработки текстов. Затем мы опубликовали книгу, раскрывающую детали как компилятора Оберона, так и одноимённой ОС. Книга, названная «Проект Оберон», включала в себя исходные тексты системы.

Несколькими годами позднее мой друг Пол Рид предложил мне издать репринт книги, в силу её значимости для изучения системной архитектуры и дающей хорошую стартовую точку для желающих строить надёжные системы c нуля.
Читать дальше →
Всего голосов 33: ↑26 и ↓7+19
Комментарии20

Расчет временных ограничений для ПЛИС простым языком

Время на прочтение12 мин
Количество просмотров12K
Здравствуйте. Эта статья написана для самых-самых новичков в мире ПЛИС, которые пока что совсем не знают что такое STA (static timing analysis). В ней я попытаюсь максимально просто и наглядно рассказать что такое временны́е ограничения (timing constraints), накладываемые на проекты под ПЛИС.

Статья создана на основе собственного опыта попыток объяснить самому себе, студентам-практикантам и любопытным коллегам эту тему так, чтобы не погружаться в заумные академические дебри, а максимально просто и прозрачно, бытовым языком. Я учился работать с ПЛИС без учебы и подготовки по этой теме и знаю по своему опыту насколько трудно что-то понять не имея теоретического базиса в этой теме и в схемотехнике. Для опытного плисовода описанное — элементарно. Но для какого-нибудь студента четвертого курса статья будет полезной и поможет разобраться во всех этих слэках, сетапах и холдах.
Читать дальше →
Всего голосов 38: ↑38 и ↓0+38
Комментарии15

Как облегчить себе жизнь при использовании Git (а также подборка материалов для глубокого погружения)

Время на прочтение13 мин
Количество просмотров34K

Tree of Dragons II by surrealistguitarist

Для тех, кто каждый день использует Git, но чувствует себя неуверенно, команда Mail.ru Cloud Solutions перевела статью фронтенд-разработчика Шейна Хадсона. Здесь вы найдете несколько трюков и советов, которые могут немного облегчить работу с Git, а также подборку статей и мануалов более продвинутого уровня.
Читать дальше →
Всего голосов 64: ↑63 и ↓1+62
Комментарии12

Работа с SD-картой по интерфейсу SPI. Реализация на VHDL

Время на прочтение17 мин
Количество просмотров30K
Привет, Habr! Однажды на работе мне досталась задача оценить возможность реализации хранения данных на SD-карте при подключении ее к FPGA. В качестве интерфейса взаимодействия предполагалось использование SPI, так как он проще в реализации. Полученным опытом хотелось бы поделиться.


Читать дальше →
Всего голосов 31: ↑31 и ↓0+31
Комментарии39

Как настроить китайский левитрон

Время на прочтение5 мин
Количество просмотров49K
В данной статье рассмотрим электронную начинку подобных устройств, принцип работы и метод настройки. До сих пор мне встречались описания готовых фабричных изделий, очень красивых, и весьма не дешевых. Во всяком случае, при беглом поиске цены начинаются от десяти тысяч рублей. Я предлагаю описание китайского набора для самостоятельной сборки за 1.5 тысячи.

image
Всего голосов 130: ↑129 и ↓1+128
Комментарии81

Делаем ионизатор воздуха менее, чем за $10

Время на прочтение9 мин
Количество просмотров60K
Перевод статьи из блога индийского инженера Амальдева В.



Этот проект вызревал у меня в голове порядка двух лет, и я всё никак не мог им заняться. В проекте нет ничего сложного или слишком технологичного. Любой человек, умеющий мастерить что-либо руками, должен с ним справиться без особых проблем. Я выложил весь проект в свободный доступ, и у вас должно получиться заказать все запчасти и собрать свой прибор, потратив менее, чем $10.

Предыстория


Я сейчас живу в Мумбаи, в квартире, выходящей окнами на очень загруженную дорогу. И с момента моего заезда сюда я борюсь с пылью, которая оседает на всём, стоит мне открыть окна. Еженедельная уборка квартиры отнимает много сил. И я решил купить очиститель воздуха для комнаты. А потом подумал: а насколько сложно будет собрать очиститель самому? Я провёл исследование и решил, что нужно сделать себе ионизатор (кстати, ионизатор и очиститель – это два разных устройства, но об этом позже). Однако потом я зарылся в текущих проблемах и так его и не собрал.
Всего голосов 63: ↑54 и ↓9+45
Комментарии99

Попытка решить проблему выбора авиабилетов перед отпуском

Время на прочтение3 мин
Количество просмотров9K

Привет всем! Хочу немного рассказать про то, как я делал, сделал и буду делать (наверное) в свободное время очередной travel-сервис для поиска авиабилетов.


Скриншот одной из страниц:


image

Читать дальше →
Всего голосов 13: ↑11 и ↓2+9
Комментарии22

Vivado: Picasso mode

Время на прочтение9 мин
Количество просмотров3.2K

Аннотация


Безумию все возрасты покорны


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


Такой необычный «маршрут проектирования» был реализован еще полтора года тому назад, но вот только сейчас пришла мысль оформить его в виде заметки, в которой имеется небольшая практика применения Tcl скриптов для управления средой проектирования, в данном случае Vivado. Однако при небольших доработках все легко может быть адаптировано под другие среды разработки, например Quartus II.


Читать дальше →
Всего голосов 17: ↑16 и ↓1+15
Комментарии1

Нововведения языка SystemVerilog

Время на прочтение4 мин
Количество просмотров31K
image

В данной статье показаны некоторые нововведения языка SystemVerilog в области организации данных по сравнению с Verilog-2001 для синтезируемого подмножества языка.

История SystemVerilog довольна длина и туманна. Начавшись после принятия стандарта Verilog-95, она вылелась в Verilog-2001. Однако язык не слишком подходил для верификации, инженеры использовании языки семейства «E» — VERA, Testbuider. В современном виде SystemVerilog появился после 2005 года. Сейчас средства синтеза и моделирование такие как Quartus II, ISE, ModelSim/QuestaSim уверенно поддерживают SystemVerilog. Стандарт называется IEEE 1800-2012.

Прим. Эта статья давно написана, но не опубликована. Надеюсь будет полезна начинающим.
Читать дальше →
Всего голосов 21: ↑20 и ↓1+19
Комментарии9

Трактат о Pinе. Мысли о настройке и работе с пинами на С++ для микроконтроллеров (на примере CortexM)

Время на прочтение15 мин
Количество просмотров8.1K

Последнее время я сильно увлекся вопросом надежности софта для микроконтроллеров, 0xd34df00d посоветовал мне сильнодействующие препараты, но к сожалению руки пока не дошли до изучения Haskell и Ivory для микроконтроллеров, да и вообще до совершенно новых подходов к разработке ПО отличных от ООП. Я лишь начал очень медленно вкуривать функциональное программирование и формальные методы.


Все мои потуги в этих направлениях это, как было сказано в комментарии ради любви к технологиям, но есть подозрение, что сейчас никто не даст мне применять такие подходы (хотя, как говориться, поживем увидим). Уж больно специфические навыки должны быть у программиста, который все это дело будет поддерживать. Полагаю, что написав однажды программу на таком языке, моя контора будет долго искать человека, который сможет принять такой код, поэтому на практике для студентов и для работы я все еще по старинке использую С++.


Продолжу развивать тему о встроенном софте для небольших микроконтроллеров в устройствах для safety critical систем.


На этот раз попробую предложить способ работы с конкретными ножками микроконтроллера, используя обертку над регистрами, которую я описал в прошлой статье Безопасный доступ к полям регистров на С++ без ущерба эффективности (на примере CortexM)


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


using Led1Pin = Pin<Port<GPIOA>, 5U, PinWriteableConfigurable> ;
using Led2Pin = Pin<Port<GPIOC>, 5U, PinWriteableConfigurable> ;
using Led3Pin = Pin<Port<GPIOC>, 8U, PinWriteable> ;
using Led4Pin = Pin<Port<GPIOC>, 9U, PinWriteable> ;
using ButtonPin = Pin<Port<GPIOC>, 10U, PinReadable> ;

//Этот вызов развернется в  2 строчки
// GPIOA::BSRR::Set(32) ; // reinterpret_cast<volataile uint32_t *>(0x40020018) = 32U 
// GPIOС::BSRR::Set(800) ; // reinterpret_cast<volataile uint32_t *>(0x40020818) = 800U 
 PinsPack<Led1Pin, Led2Pin, Led3Pin, Led4Pin>::Set() ; 

//Ошибка компиляции, вывод к которому подключена кнопка настроен только на вход
ButtonPin::Set() 

auto res = ButtonPin::Get() ; 
Читать дальше →
Всего голосов 11: ↑10 и ↓1+9
Комментарии181

A City Without Traffic Jams

Время на прочтение55 мин
Количество просмотров4K

Chapter 2.
(the link to Chapter 1)

The Art of Designing Road Networks


Transport problems of a city through the eyes of a Computer Scientist


If I were recommended an article with the title “The Art of Designing Road Networks,” I would immediately ask how many road networks were built with the participation of its author. I must admit, my professional activity was far from road construction and was recently associated with the design of microprocessors where I, among other responsibilities, was engaged in the resource consumption of data switching. At that time my table stood just opposite the panoramic window which opened up a beautiful view of the long section of the Volgograd Highway and part of the Third Transport Ring with their endless traffic jams from morning to evening, from horizon to horizon. One day, I had a sudden shock of recognition: “The complexities of the data switching process that I struggle with on a chip may be similar to the difficulties the cars face as they flow through the labyrinth of road network”.
Probably, this view from the outside and the application of methods that were not traditional for the area in question gave me a chance to understand the cause of traffic jams and make recommendations on how to overcome the problem in practice.
Read more →
Всего голосов 13: ↑13 и ↓0+13
Комментарии2

Почему вам стоит разгонять оперативную память (это легко!)

Время на прочтение5 мин
Количество просмотров179K


Любая программа на ПК использует для работы оперативную память, RAM. Ваша RAM работает на определённой скорости, заданной производителем, но несколько минут копания в BIOS могут вывести её за пределы стандартных спецификаций.

Да, скорость работы памяти имеет значение


Каждая запускаемая вами программа загружается в память с вашего SSD или жёсткого диска, скорость работы которых гораздо ниже, чем у памяти. После загрузки программа обычно остаётся в памяти некоторое время, и CPU получает к ней доступ по необходимости.

Улучшение скорости работы памяти может напрямую улучшить эффективность работы CPU в определённых ситуациях, хотя существует и точка насыщения, после которой CPU уже не в состоянии использовать память достаточно быстро. В повседневных задачах несколько дополнительных наносекунд не принесут вам особой пользы, но если вы занимаетесь обработкой больших массивов чисел, вам может помочь любое небольшое увеличение эффективности.
Читать дальше →
Всего голосов 22: ↑19 и ↓3+16
Комментарии20

Устройство файла UEFI BIOS, часть полуторная: UEFI Platform Initialization

Время на прочтение6 мин
Количество просмотров89K
В первой части этой статьи мы познакомились с форматом UEFI Capsule и Intel Flash Image. Осталось рассмотреть структуру и содержимое EFI Firmware Volume, но для понимания различий между модулями PEI и драйверами DXE начнем с процесса загрузки UEFI, а структуру EFI Firmware Volume отставим на вторую часть.
Читать полуторную часть
Всего голосов 39: ↑37 и ↓2+35
Комментарии11

Как запускается сервер

Время на прочтение9 мин
Количество просмотров70K

Запуск сервера — длинная и сложная последовательность действий, зависящая от аппаратной составляющей, настроек и используемого программного обеспечения. Многие, даже опытные и квалифицированные системные администраторы, плохо себе представляют, что именно происходит в процессе запуска сервера, поэтому мы решили разобрать этот процесс детально.
Читать дальше →
Всего голосов 85: ↑74 и ↓11+63
Комментарии76

Права в Linux (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

Время на прочтение21 мин
Количество просмотров532K
Всем привет. Это перевод статьи из книги RedHat RHCSA RHCE 7 RedHat Enterprise Linux 7 EX200 and EX300.

От себя: Надеюсь статья будет полезна не только начинающим, но и поможет более опытным администраторам упорядочить свои знания.

Итак, поехали.

image
Читать дальше →
Всего голосов 63: ↑57 и ↓6+51
Комментарии32

Политкорректность проникает в Россию через книги про проектирование чипов на SystemVerilog для не-начинающих

Время на прочтение11 мин
Количество просмотров19K
Наконец-то в России вышел учебник по SystemVerilog уровнем выше чем для начинающих. Учебник описывает технологии и приемы, которые спрашивают на интервью в NVidia, Intel, AMD, Apple и другие электронные компании: использование concurrent assertions и functional coverage, что сейчас требуют не только от инженеров по верификации, но и от дизайнеров микросхем; алгоритм работы симулятора с дельта-циклами; вменяемое объяснение static timing analysis; схемы коммуникации аппаратных блоков через аппаратные очереди; реализацию этих коммуникаций с помощью конечных автоматов с трактами данных и т.д.

В главе про последнее российского читателя может озадачить упоминание «политкорректной системы». Что бы это значило? Это вероятно намек на казус, который произошел в округе Лос-Анжелес в 2003 году. Чиновники Лос-Анджелеса попросили производителей, поставщиков и подрядчиков прекратить использование терминов «master/slave» («хозяин» и «раб») в отношении компьютерного оборудования, так как одному из работников округа эти термины напомнили про рабовладельческое прошлое.

Сейчас авторы технической литературы избегают терминов master/slave. В современной Америке работают и афро-американские инженеры (например София Мвокани из Камеруна — на фото слева), и использование старых терминов выглядит архаично, как выглядели бы например термины «пан/холоп» в украинской технической литературе вместо принятых «провідний/ведений» (рус. «ведущий/ведомый»).

Это не первый раз, когда в российском электронном образовании появляется тема борьбы афро-американцев за гражданские права. Например Татьяна Волкова, известный специалист по образованию в электронике, носит маечку с эмблемой «Черных Пантер», калифорнийского движения, которое в свое время сочло мирный протест недостаточным, и занялось вооруженным протестом.



Полное изображение эмблемы под кожанкой Татьяны Александровны — под катом, но в основном я буду рассказывать про дельта-циклы и конечные автоматы:
Читать дальше →
Всего голосов 43: ↑32 и ↓11+21
Комментарии47

Kali Linux NetHunter на Android: зачем и как установить

Время на прочтение8 мин
Количество просмотров179K

Здравствуй, мой любознательный друг! Наверняка тебя посещали мысли о том, как хакать все вокруг, не привлекая лишнего внимания санитаров службы безопасности и окружающих, быть похожим на героев фильмов, взламывающих системы просто с мобильного устройства, или как прокачать свою мобильность с минимальной потерей функционала? У меня для тебя хорошие новости.


Читать дальше →
Всего голосов 41: ↑31 и ↓10+21
Комментарии19

Текстовый VGA модуль на VHDL

Время на прочтение11 мин
Количество просмотров17K
В этой статье я представлю текстовый VGA модуль, написанный на VHDL. Этот модуль может быть полезен при отладке платы, и занимает относительно немного места.

Общие характеристики


Модуль работает на тактовой частоте 50 МГц.
Выдает картинку с разрешением 640х480 с частотой 60Гц.
Размер символа 8х16 точек. На экране 80х25 символов.
Палитра на 32 цвета.

Занимаемые ресурсы в ПЛИС:


Читать дальше →
Всего голосов 29: ↑27 и ↓2+25
Комментарии9

Недостатки RISC-V

Время на прочтение6 мин
Количество просмотров29K
Изначально я написала этот документ несколько лет назад, будучи инженером по проверке ядра исполнения команд (execution core verification engineer) в ARM. Конечно, на моё мнение повлияла углублённая работа с исполнительными ядрами разных процессоров. Так что делайте на это скидку, пожалуйста: может, я слишком категорична.

Однако я по-прежнему считаю, что создатели RISC-V могли справиться гораздо лучше. С другой стороны, если бы я сегодня проектировала 32-или 64-разрядный процессор, то, вероятно, реализовала бы именно такую архитектуру, чтобы воспользоваться существующим инструментарием.

Статья изначально описывала набор команд RISC-V 2.0. Для версии 2.2 в ней сделаны некоторые обновления.
Читать дальше →
Всего голосов 42: ↑39 и ↓3+36
Комментарии53

Пишем простую нейронную сеть с использованием математики и Numpy

Время на прочтение8 мин
Количество просмотров29K

Зачем очередная статья про то, как писать нейронные сети с нуля? Увы, я не смог найти статьи, где были бы описаны теория и код с нуля до полностью работающей модели. Сразу предупреждаю, что тут будет много математики. Я предполагаю, что читатель знаком с основами линейной алгебры, частными производными и хотя бы частично, с теорией вероятностей, а также Python и Numpy. Будем разбираться с полносвязной нейронной сетью и MNIST.
Читать дальше →
Всего голосов 18: ↑13 и ↓5+8
Комментарии12
1

Информация

В рейтинге
Не участвует
Откуда
Киев, Киевская обл., Украина
Зарегистрирован
Активность