vak: (Default)
[personal profile] vak
Вот что происходит с альтеровским софтом Quartus II при попытке синтезировать простую схему асинхронного счётчика, содержащую LUTs с обратными связями.
Фатальная ошибка )
Это если поставить для таких ячеек параметр dont_touch="yes", иначе квартус их просто тихо выкидывает из схемы.

Current music

Jul. 26th, 2017 02:25 am
jamhed: (Default)
[personal profile] jamhed
Достойные продолжатели дела окончательно ушедших в астрал Autechre:



Вообще беседовали недавно, так возник вопрос что нового происходит в музыке? Скажем, за последние 3 года. И ответ как-то не очевиден. Есть достойные новые музыканты, и много их, но вот что бы звучало как-то радикально по другому (как те же Ae в 1997 в связи с освоенной программой MaxMSP), так такого вроде и нет. Или есть?

Erlang and tests.

Jul. 25th, 2017 04:47 pm
jamhed: (Default)
[personal profile] jamhed
Erlang в силу своих особенностей оказался прекрасный язык для написания функциональных тестов: достаточно просто выписывать что должно быть. Если что-то пошло не так, то всё просто рухнет как и задумывалось. Никаких там assert и прочей ереси. Пример:
-module(t_transfer_to_same_queue).
-export([main/0]).

main() ->
	Queue = admin:new_queue(#{
		skills => #{ english => true },
		recipe => []
	}),

	Agent = test_lib:available(admin:new_agent(#{ skills => #{ english => true }})),
	{ok, InQueueCall} = call_sup:originate(Queue),
	UUID = test_lib:answer(Agent),
	test_lib:ensureTalking(UUID, InQueueCall),

	agent:rpc_call(Agent, <<"transfer_to_queue">>, [<<"ch1">>, Queue, #{ skills => [ <<"english">> ]}]),

	Agent1 = test_lib:available(admin:new_agent(#{ skills => #{} })),
	{'EXIT', {timeout, _}} = (catch agent:wait_for_call(Agent1)),

	agent:rpc_call(Agent, <<"end_wrapup">>, [<<"ch1">>]),

	UUID2 = test_lib:answer(Agent, <<"ch2">>),
	test_lib:ensureTalking(UUID2, InQueueCall).


Собственно весь тест. Из мозговыносящего здесь отсутствие понятия строки, binary() вместо неё, взаимозаменяемость в некоторых местах binary() и atom(), ну и отсутствие переменных (что только к лучшему).

О пересказах.

Jul. 25th, 2017 08:45 am
jamhed: (Default)
[personal profile] jamhed
Я смотрю что жанр "Рабинович напел" становится всё популярнее: видеоблоггеры пересказывают видеоблоггеров которые пересказывают ещё кого-нибудь, в том числе и пересказывают пересказы своих же пересказов. Самое удивительное в этом что оригиналы пересказов легко доступны в разных видах, и тем не менее. Удивительно же.
vak: (Default)
[personal profile] vak
Конфигурируем отладочный порт USB Bus Blaster для плат Altera FPGA DE10-Lite под линуксом.

(1) После установки Altera Quartus создаём файл /etc/udev/rules.d/51-altera.rules со следующим содержимым:
# Altera bus Blaster
SUBSYSTEM=="usb",\
ENV{DEVTYPE}=="usb_device",\
ATTR{idVendor}=="09fb",\
ATTR{idProduct}=="6001",\
MODE="0666",\
NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}",\
RUN+="/bin/chmod 0666 %c"
(2) Активируем новое правило:
$ sudo udevadm control --reload
(3) Копируем данные для работы альтеровского сервиса jtagd:
$ sudo cp /opt/Altera/16.1/quartus/linux64/pgm_parts.txt /etc/jtagd/jtagd.pgm_parts
(4) Чиним известную багу "Unable to read device chain - JTAG chain broken":
$ sudo apt-get install libudev1:i386
$ sudo ln -sf /lib/x86_64-linux-gnu/libudev.so.1 /lib/x86_64-linux-gnu/libudev.so.0
(5) Подключаем плату FPGA и проверяем, что порт работает:
$ /opt/Altera/16.1/quartus/bin/jtagconfig
1) USB-Blaster [4-1]
  031050DD   10M50DA(.|ES)/10M50DC

О феминистах.

Jul. 24th, 2017 10:49 am
jamhed: (Default)
[personal profile] jamhed
А вот эти вот, которые показывают боевых женщин с мечами и другими приспособлениями, они бои MMA хотя бы одним глазом видели? Про весовые категории там, например, может быть слышали?
vak: (Default)
[personal profile] vak
Измерил скорость работы асинхронного алгоритма вычисления наибольшего общего делителя на Xilinx FPGA. Цикл в 20 итераций выполняется чуть меньше чем за 500 наносекунд. Получается 25 нс на итерацию, или 40M итераций в секунду. Для сравнения, если собрать такую схему на рассыпухе (на микросхемах CD4007), будет 72 микросекунды на 20 итераций, или около 280k в секунду.

О пользе дебатов.

Jul. 21st, 2017 10:22 am
jamhed: (Default)
[personal profile] jamhed
Внезапно выясняется что оба ряженые марксисты: http://ros-sea-ru.livejournal.com/1451154.html, один наряжен борцуном-либералом, а другой -- офицером-монархистом. Вообще на территории бывшего СССР марксистов поразительно много. Часть из них (весьма незначительная) марксисты явные, а другая часть (существенно большая) марксисты неявные. Неявные марксисты это такие марксисты которые не совсем понимают свою марксистскость, они просто оперируют положениями марксизма в соответсвующем дискурсе считая это само собой разумеющимся, типа как физические законы Ньютона.

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

Фальшивые аисты

Jul. 20th, 2017 03:54 pm
jamhed: (Default)
[personal profile] jamhed
А для чего в Литве и Польше ставят столбы с фальшивыми аистами в фальшивых гнёздах?

Все они такие.

Jul. 20th, 2017 11:31 am
jamhed: (Default)
[personal profile] jamhed
> Я раскаиваюсь в том, что, осуществляя свою блогерскую деятельность и посетив Карабах, в своих репортажах допускал резкие, некорректные, необдуманные слова в адрес Азербайджана.

Да, об Азейрбайджане надо высказываться как о покойнике: либо хорошо, либо никак. А то поймают в Белоруссии и в тюрьму посадят, азербайджанскую. И не только об Азербайджане, кстати, есть еще и другие такие же страны.

Время наебениться

Jul. 19th, 2017 11:33 pm
vak: (Default)
[personal profile] vak
"Как мы здесь живём -
великая тайна.
Все кричат 'вира',
а выходит майна.
Бился лбом в бетон,
думал всё изменится.
Бог с ним...
Время наебениться."

Erlang and supervisors.

Jul. 20th, 2017 12:26 am
jamhed: (Default)
[personal profile] jamhed
Процессы Erlang советуют объединять в деревья при помощи link/1, и вообще использовать OTP. Однако в OTP имеется ровно одна абстракция под названием supervisor, которая умеет перезапускать другие процессы определённое число раз, и затем помирать от огорчения. И на этом всё. Если вдруг кому-то хочется перезапускать процессы не сразу, а через некоторое время, да ещё и менять это время, то стандартных абстракций в OTP нет (пишите сами). Вообще можно придумать много разных стратегий для супервизора, но реализована самая тупая (и бесполезная). Причем как это обычно водится в стандартном supervisor есть отдельная стратегия simple_one_for_one типа для упрощения, но объяснению которой посвящена половина руководства по supervisor вообще. Такая вот простота.

Всё течёт.

Jul. 18th, 2017 12:11 pm
jamhed: (Default)
[personal profile] jamhed
Опыт научил его мало-помалу, что пока с обывателем играешь в карты или закусываешь с ним, то это мирный, благодушный и даже не глупый человек, но стоит только заговорить с ним о чем-нибудь несъедобном, например, о политике или науке, как он становится в тупик или заводит такую философию, тупую и злую, что остается только рукой махнуть и отойти.
vak: (Default)
[personal profile] vak
Довёл я наконец до ума библиотеку асинхронных компонентов для Xilinx FPGA, и затолкал на плату пример вычисления наибольшего общего делителя. В большинстве случаев он даже корректно работает. :) Вводим с переключателей два шестнадцатеричных числа, нажимаем на кнопку, получаем результат. Вот как это выглядит:



Здесь НОД(0x34, 0x27) даёт результат 0xd. В десятичном виде это НОД(52, 39) -> 13.

Но иногда схема врёт. И это ожидаемо, так как для арифметических вычислений я полагаюсь на синтезатор Xilinx Vivado, а он без понятия, что надо генерить "позитивную" логику. Задействовать стандартные примитивы типа CARRY4 нельзя, потому что нарушается монотонность. Получаются вот такие глюки:



Можно видеть, что сигналы out_hidata и out_lodata иногда встают одновременно, и это ошибка. Долдно быть так:



Выход в том, чтобы не доверять арифметические вычисления стандартному синтезатору Verilog, а порождать нужную позитивной логики в структурном виде. Тогда синтезатор уже не сможет ничего испортить.
vak: (Default)
[personal profile] vak
Полезная вещь: интерактивная таблица химических элементов, в картинках.

http://elements.wlonk.com/ElementsTable.htm

О сословиях.

Jul. 16th, 2017 09:23 am
jamhed: (Default)
[personal profile] jamhed
> Короче, оказывается, что до хрена населения с низшими сословиями считает зазорным общаться.

Собственно как мерять низость и записывать в сословия. Известных способов не очень много: по рождению, по количеству денег, по востребованности населением. Какой только фигней люди не занимаются принимая участие в воображаемых соревнованиях.
vak: (Default)
[personal profile] vak
Наконец-то нашёл время обработать и выложить отсканированные схемы ЭВМ микро-БЭСМ. Огромное спасибо Татьяне Сапожниковой за присланные материалы.
  • Лист №1, формат A1: A, B, C, D, E, F, G, H
  • Лист №2, формат A1: A, B
  • Лист №3, формат A1: A, B
  • Лист №4, формат A1: A, B
  • Лист №5, формат A1: A, B
  • Лист №6, формат A1: A
  • Лист №7, формат A1: A
  • Лист №8, формат A0: A, B, C, D, E, F
  • Лист №9, рулон формата 3*A0: A, B, C
Весь проект можно скачать целиком по ссылке: micro-besm/archive/master.zip (106 Мбайт).

Бездны.

Jul. 14th, 2017 07:30 am
jamhed: (Default)
[personal profile] jamhed
Вот например ёж. Это халяль, харам, мубах или макрух? Без специального справочника не разберешься, а ведь ещё нужно принимать во внимание и мазхаб.

Туда и обратно.

Jul. 13th, 2017 11:04 pm
jamhed: (Default)
[personal profile] jamhed
su - $USER -c '/usr/bin/slock "sudo /usr/sbin/s2ram"'
vak: (Default)
[personal profile] vak

Почему-то не получается скомпилировать...
c:\dev>g++ helloworld.png
helloworld.png: file not recognized: File format not recognized
collect2: ld returned 1 exit status
Народ предлагает всякие разные решения проблемы.

Alkatraz

Jul. 13th, 2017 12:42 am
vak: (Default)
[personal profile] vak
После посещения тюрьмы Алькатрас стало понятно, кто первым придумал офисный стиль опенспейс.

Profile

ermouth: (Default)
ermouth

July 2017

S M T W T F S
      1
2345678
9101112131415
16171819202122
23242526 272829
3031     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 27th, 2017 04:40 am
Powered by Dreamwidth Studios