Pull to refresh
1
0.7
Send message

Встраивание Haskell: компиляторы и компиляция компиляторов

Reading time5 min
Views4.1K

Эта статья является переводом поста Chris Hodapp Embedding Haskell: Compilers, and compiling compilers В своём посте автор рассматривает различные подходы к использованию Haskell для написания кода для встраиваемых систем. Предоставим слово автору.


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


Этот блог посвящен использованию Haskell со встраиваемыми системами. Что это хотя бы значит? Мы видим пару широких категорий (которые отражают слайды на последней странице, а также наша страница ссылок):


  • Полная компиляция: компиляция кода на Haskell для встраиваемого назначения.
  • Ограниченная компиляция: компиляция некоторого ограниченного подмножества кода на Haskell для встраиваемого назначения.
  • Хостинг EDSL и компилятора: хостинг в Haskell, EDSL и компилятор для встраиваемого назначения.
Читать дальше →
Total votes 10: ↑8 and ↓2+12
Comments3

Verilog. Цифровой фильтр на RAM

Reading time5 min
Views24K
Что делать, если нужно разместить большой цифровой фильтр на FPGA? А если плата уже разведена? Железо старое? В проекте осталось мало места? В этом топике будет рассмотрена одна из возможных реализаций цифрового КИХ фильтра на FPGA Altera Cyclone II EP2C15. По сути это продолжение вот этой темы из песочницы.
Будет рассказано, как сделать сдвиговый регистр на RAM, уменьшив при этом затраты LE, и как из этого получить цифровой фильтр.
Читать дальше →
Total votes 14: ↑13 and ↓1+12
Comments0

Искусство отладки FPGA: как сократить срок тестирования за счет грамотной разработки

Reading time15 min
Views6K

Давайте попробуем оптимизировать самый времязатратный этап разработки устройств на базе ПЛИС — отладку прошивки. В этой статье мы расскажем о принципе 20/80 при планировании времени, рассмотрим инструменты для отладки FPGA, вспомним Гордона Мура и Уинстона Черчилля (да-да), затроним отладку сложных распределенных систем и внешних интерфейсов, а в конце — разберемся с типичными ошибками и поделимся полезными практическими советами.

Для начала рассмотрим типовой цикл разработки и моделирования FPGA-прошивки:

Читать далее
Total votes 16: ↑16 and ↓0+16
Comments6

Пишем загрузчик ПЛИС в LabVIEW. Часть 2

Reading time12 min
Views6.6K

Загрузка конфигурации в ПЛИС через USB или разбираем FTDI MPSSE
Пишем загрузчик ПЛИС в LabVIEW. Часть 1




В первой статье мы обкатали алгоритм загрузки на старом добром Си, во второй статье разобрались, как в LabVIEW можно организовать программу и реализовать простой интерфейс пользователя. В этот раз мы познакомимся с новыми приемами работы в LabVIEW, разберем особенности обработки ошибок и завершим проект: реализуем протокол загрузки файла конфигурации в ПЛИС.
Добро пожаловать!
Total votes 18: ↑18 and ↓0+18
Comments12

Непоследовательный компьютер

Reading time2 min
Views17K
Двое английских учёных Peter Bentley и Christos Sakellariou создали компьютер, который подобно мозгу человека выполняет инструцкии не последовательно, а сегментами в случайном порядке.
По словам учёных, такой механизм позволяет этому компьютеру адаптироваться к критическим ситуациям и обходить их без остановки работы.
Читать дальше →
Total votes 26: ↑22 and ↓4+18
Comments14

Домашка по арифметике

Reading time11 min
Views7.7K
Лёшенька, Лёшенька, сделай одолжение!
Выучи, Алёшенька, таблицу умножения !

Агния Барто


Сначала задачка для первоклассника. Дано некоторое положительное число. Нужно умножить на него другое число, заранее неизвестное. Вопрос, как посоветуют это сделать благородные доны ??? Бывалый разраб наверняка скажет, мол мужик, ставь умножитель и не парь мне мОзги. И возможно будет в корне неправ! Ибо кроме монстров от Alterra и Xilinx существует ещё и такое замечательное семейство как iCE-40 от Lattice. Ультрамикропотребляющее. Очень дешевое. Да вот беда, больно мелкие они, и увы, умножителей там нет. Я столкнулся с этим года 4 назад, когда портировал некий ADPCM-кодек с ассемблера adsp-2185 на такой кристалл.
Читать дальше →
Total votes 17: ↑16 and ↓1+19
Comments23

Разработка и тестирование целочисленного сумматора с AXI-Stream интерфейсами. Часть 3

Level of difficultyEasy
Reading time10 min
Views1.9K

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

Читать далее
Total votes 19: ↑19 and ↓0+19
Comments0

Разработка многоканального SDR

Reading time7 min
Views17K
Расскажу о своем опыте разработки цифрового многоканального широкополосного приемника.

Много лет работаю в области создания средств захвата и обработки сигналов от бортовых и береговых навигационных РЛС. Примерно года два назад выпустил последнюю, на сегодняшний день, версию нашей платы RVAQ (Radar Video AcQuisition) и задумался, чем в жизни заняться дальше. Хотелось чего-то нового и неизведанного. Выбор пал на неохваченную мной до сих пор область — цифровой радиоприем с легким заходом в СВЧ-область.

Это первая глава, посвященная начальной постановке задачи.
Читать дальше →
Total votes 23: ↑22 and ↓1+21
Comments38

Как я делал лучшие арифметические ядра и сделал лучший селектор (демультиплексор)

Level of difficultyMedium
Reading time3 min
Views7K

Небольшой рассказ о том, как я делал арифметические ядра и сделал лучший селектор (декодер адресов).

Что, опять?
Total votes 23: ↑19 and ↓4+21
Comments12

Программирование паяльником, пыльное железо и тонны легаси? Как на самом деле устроена разработка ПО в телекоме

Level of difficultyEasy
Reading time10 min
Views6.8K

Хабр, привет! Недавно я спросил нескольких коллег — вчерашних студентов, как они представляли себе разработку в телекоме до того как пришли в эту сферу. Их ответы были очень далеки от реальности. Многие считали, что разработка в телекоме — это возня со старым пыльным железом на чердаках и в подвалах. Внедрять новые и современные решения невозможно из-за тонн легаси, в сторону которого все боятся даже дышать. А большинство коллег — бородатые деды, которые программируют паяльником и строго следуют парадигме каскадной разработки. Да и задачки в целом довольно скучные: перекладываешь байты — и, в общем-то, больше ничего не происходит. Нечего будет рассказать внукам, когда сам станешь бородатым дедом.

Мой сегодняшний пост — рассказ о том, что на самом деле происходит в разработке телекоммуникационного оборудования для сотовых сетей с точки зрения программиста, и почему эта работа чертовски вдохновляет.

Читать далее
Total votes 18: ↑17 and ↓1+22
Comments10

«Возрождение ИИ» – не более, чем дорогое железо и реклама, брошенные на реализацию старой идеи

Reading time6 min
Views23K

Никакого духа в машине нет



В последние несколько лет СМИ захлестнули преувеличенные описания технологий искусственного интеллекта (ИИ) и машинного обучения (МО). Кажется, что ещё ни разу в области информатики не было такого, чтобы столько смехотворных заявлений делало такое количество людей, обладающих таким малым представлением о происходящем. Для любого человека, активно занимавшегося передовым компьютерным оборудованием в 1980-х, происходящее кажется странным.

В номере The Atlantic за этот месяц интеллектуал высокого полёта и автор бестселлеров "Sapiens. Краткая история человечества" и " Homo Deus: Краткая история завтрашнего дня", Юваль Ной Харари описывает влияние ИИ на демократию. Самым интересным аспектом статьи является чрезмерная вера Харари в возможности современных технологий ИИ. Он описывает товарища Google, программу для игры в шахматы от компании DeepMind, как «творческую», «обладающую воображением» и «гениальными инстинктами».
Читать дальше →
Total votes 47: ↑35 and ↓12+23
Comments63

Intel Broadwell Xeon E3-1200 v4 — все что надо знать про новую линейку Xeon и eDRAM

Reading time5 min
Views32K
Intel недавно представила обновленную линейку новых четырехъядерных процессоров Intel Broadwell Xeon E3-1200 v4. Серия серверных процессоров Intel Xeon E3-1200 v3 появилась на рынке во 2-м квартале 2013 года и и была тихо обновлена во втором квартале 2014 года на модели типа Е3-1231 v3. Теперь анонсированы Xeon v4. Разберемся: что же нового предлагает нам Intel?



В терминологии стратеги «тик-так», Broadwell это «тик»: производитель использовал архитектуру Haswell в 14-нанометровом исполнении. «Тик» не предполагает революционных изменений. Аналитики считают, что в этой фазе Intel допиливает известные технологии, а улучшения будут косметические. По спецификации Broadwell обеспечивает пониженное энергопотребление и сопоставимую с процессорами предыдущего поколения общую производительность.
Читать дальше →
Total votes 13: ↑12 and ↓1+11
Comments9

Немного Intel Xeon Phi теперь может получить каждый

Reading time3 min
Views40K
Intel Xeon Phi — уникальный процессор, как никто другой раскрывающий все преимущества параллельного исполнения задач. Созданный по технологии Intel Many Integrated Core (MIC), он предоставляет вам несколько десятков мощных вычислительных ядер и порядочный кусок интегрированной высокоскоростной памяти. Думаю, что многие программисты, как начинающие, так и опытные, хотели бы «погонять» свой код на таком процессоре, чтобы найти его узкие места, оценить влияние параллелизма на производительность и так далее. Останавливает одно: стоимость самой младшей модели Xeon Phi составляет $2500, и это только сам процессор. Навряд ли многие рискнут приобрести такую систему для личных нужд, а нужда такая, как уже говорилось, бывает.

Теперь жизнь энтузиастов становится немного проще. Образовательный центр Colfax Research при финансовой поддержке Intel запустил программу удаленного доступа до кластера серверов на базе Intel Xeon Phi. Детали программы — под катом, но сначала коротко о самом Intel Xeon Phi — давненько мы на эту тему не писали.
Читать дальше →
Total votes 25: ↑24 and ↓1+23
Comments16

Как изучить Haskell всего за 15 лет

Level of difficultyMedium
Reading time9 min
Views14K

Haskell — это язык программирования, изобретённый в 20-м веке шотландскими логиками в качестве пранка (вероятно). Примерно пятнадцать лет назад я начал изучать Haskell по причинам, которые уже и не упомню. Сегодня я наконец написал полезную программу на Haskell и уверен, что смогу сделать это снова, если мне когда-нибудь понадобится ещё одна компьютерная программа.

Я не знаю, как изучал функциональное программирование в целом и Haskell в частности. В 2006-м я следил за проектами why the lucky stiff и читал передовой тамблелог Леа Нойкирхен Anarchaia, и какой-то из этих источников познакомил меня с миром за пределами ООП. В декабре 2006 года Леа опубликовала на Anarchaia ссылку на Pandoc, и тогда я впервые узнал о своём любимом ПО и языке, на котором оно было написано.
Читать дальше →
Total votes 43: ↑38 and ↓5+52
Comments9

Open Research Knowledge Graph: новый подход к научной коммуникации

Level of difficultyMedium
Reading time3 min
Views1.1K

На сегодняшний день для представления и обмена результатами исследований мы используем методы, которые были разработаны много веков назад. С момента зарождения современной науки (публикации первого научного журнала "Transactions of the Royal Philosophical Society", 1665 г.) мы используем все тот же метод передачи научных знаний – статьи. Немецкая национальная научно-техническая библиотека TIB и исследовательский центр L3S при Университете Лейбница в Ганновере изобретают новый подход к научной коммуникации. Вместо того чтобы представлять исследования в виде статичных PDF файлов, они работают над динамическим графом знаний - Open Research Knowledge Graph, где научные идеи, подходы и методы представлены в структурированном машиночитаемом формате.

Читать далее
Total votes 8: ↑8 and ↓0+8
Comments2

Задача, от которой отказался Ричард Фейнман

Reading time4 min
Views60K
В замечательной книге «Вы, конечно, шутите, мистер Фейнман!» есть эпизод, который привел меня к небольшой практической работе, что и послужило основой для создания данной статьи. А началось все с этого момента:
” Пол проходит по столовой, где все просто стоят на ушах. “Эй, Пол! – кричат они. – Фейнман – просто супер! Мы даем ему задачу, которую можно сформулировать за десять секунд, и он за одну минуту дает ответ с точностью до 10 процентов. Дай ему какую-нибудь задачу!” Почти не останавливаясь, он говорит: “Тангенс 10 градусов в сотой степени”. Я влип: для этого нужно делить на число пи до ста десятичных разрядов! Это было безнадежно!”.
Читать дальше →
Total votes 93: ↑67 and ↓26+41
Comments33

sin 1° на калькуляторе

Reading time5 min
Views82K
Важное уточнение — калькулятор обычный, без кнопки sin. Как в бухгалтерии или на рынке.

Калькулятор Casio

Под катом три разных варианта решения из разных эпох, от древнего Самарканда до США времён холодной войны.
Читать дальше →
Total votes 103: ↑100 and ↓3+97
Comments44

Как не стоит вычислять матричную экспоненту

Reading time8 min
Views32K
Пост написан под влиянием поста пользователя pchelintsev_an.

В данной статье я постараюсь рассказать, с какими вычислительными трудностями можно столкнуться, если пойти по «наивному» пути вычисления матричной экспоненты. Статья может быть полезна тем, кто хотел бы познакомиться с вычислительной математикой, но уже знаком с такими понятиями как система обыкновенных дифференциальных уравнений и задача Коши. Эксперименты проводились с использованием системы GNU Octave.
Что еще за матричная экспонента
Total votes 47: ↑45 and ↓2+43
Comments21

Почему юнит-тесты не работают в научных приложениях

Reading time7 min
Views8.2K
В этой статье я хочу поделиться своим опытом разработки научных приложений, и рассказать, почему Test-Driven Development и юнит-тесты не являются панацеей, как принято считать в последнее время, по крайней мере с точки зрения нахождения программных ошибок. Почему же?
Читать дальше →
Total votes 97: ↑80 and ↓17+63
Comments60

Information

Rating
1,735-th
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity