kincajou: (Default)
K ([personal profile] kincajou) wrote2012-03-15 09:59 pm

Орешек знаний твёрд, но мы не привыкли отступать

ненавижу фильтр Гилберта за то, что у меня не получается его реализовать. Ненавижу натсолько, что не успокоюсь, пока он не заработает

попутно прокачиваю скилл владения VHDL. Задумлся вот, можно ли на VHDL написать компилятор VHDL (хотя бы не железный, а так, на несинтезируемом подмножестве)?

(правильный ответ: конечно же можно! только это очень трудоёмкая и бессмысленная задача)

[identity profile] potan.livejournal.com 2012-03-16 03:56 am (UTC)(link)
Кстати, аппаратуру, особенно полностью синхронную, проще описывать на Haskell. Есть даже синтезируемое подмножество.

[identity profile] kincajou.livejournal.com 2012-03-16 06:55 am (UTC)(link)
Можно взглянуть на реализованные таким способом проекты? Или это из разряда "так возможно делать, но никто не делает"? ;)

Да, и как там с производительностью? на специальных тестах приближается к традиционным HDL, на всех прочих отстаёт в десятки-сотни-тысячи раз?

[identity profile] potan.livejournal.com 2012-03-16 07:35 am (UTC)(link)
Здесь есть примеры, взятые из реальных проектов.
Есть хаскелоподобнная коммерческая система bluespec. Википедия говорит, что они и чипы для роутеров делают - врядли они на чем-то другом их проектируют.
Вообще я редко встречал, что бы разработчики аппаратуры о своих инструментах говорили.

[identity profile] kincajou.livejournal.com 2012-03-16 07:48 am (UTC)(link)
как-то эти примеры меня не убеждают в особом "удобстве". Такая же тарабарщина, только разнообразных скобок ещё больше

[identity profile] thesz.livejournal.com 2012-03-17 09:49 am (UTC)(link)
Это же бета.

К тому же она уже позволяет контролировать сторон разработки больше, чем любой современный HDL (за исключением Bluespec, который просто нельзя просто так попробовать).

Я ожидаю, что дальше будет лучше.

[identity profile] kincajou.livejournal.com 2012-03-17 09:59 am (UTC)(link)
скобок поменьше. И сочетаний типа {:|**:[]} - это, быть может, и сокращает время на написание кода, но глаза же ломаются...

[identity profile] thesz.livejournal.com 2012-03-17 02:53 pm (UTC)(link)
По-моему, это уже придирки. Где вы это нашли?

[identity profile] kincajou.livejournal.com 2012-03-17 03:01 pm (UTC)(link)
я слегка утрировал

просто вот такие записи
(a :&: b) :|: (c :&: d)

[(a,b) | a <- [0..9], b <- [0..9]] $ \(a,b) -> do

как-то уж очень зубодробильно смотрятся. Хуже только регэкспы

Но, вполне возможно, это просто придирки.

[identity profile] thesz.livejournal.com 2012-03-17 09:48 am (UTC)(link)
Генерирует HDL.

[identity profile] kincajou.livejournal.com 2012-03-17 09:50 am (UTC)(link)
он тоже разный бывает. В смысле, можно навертетьтакого, что схема будет работоспособной, но ммммммеееееедлеенннннноооййййй....

[identity profile] thesz.livejournal.com 2012-03-17 02:52 pm (UTC)(link)
В целях оной поделки было "менять в привычном подходе к описанию схем как можно меньше". Короче говоря, эта штука добавляет систему типов Хаскеля и алгебраические типы поверх обычного описания нетлистов.

Это не Bluespec, который радикально меняет подход.

[identity profile] kincajou.livejournal.com 2012-03-16 07:08 am (UTC)(link)
вот интересно, если "по книжке" сделанный фильтр задерживает фазу сигнала в канале Q относительно канала I ровно на 180 (вместо 90) градусов, то не означает ли это, что я на самом деле налажал не в Q, а в этом самом I?.. задержка-то ведь в половину конвейера должна быть...