В поисках неортодоксальных подходов к разработке хардвера, в частности в области асинхронной логики, я неожиданно для себя открыл интересный язык Balsa, и стоящую за ним методику, называемую 'Handshake Circuits'. Взгляните, вот программа вычисления наибольшего общего делителя на Бальсе:

Дальше она преобразуется в Verilog и синтезируется в собственно микросхему. Разве не прелесть? Не одним верилогом жив человек! :)
Бальса разрабатывалась в 1998-2010 годах в университете Манчестера. Её исходные тексты доступны на сайте университета на условиях лицензии GPL. Подход подробно описан в диссертации Andrew Barsley "Balsa: An Asynchronous Circuit Synthesis System".
procedure GCD (
input x: byte;
input y: byte;
output z: byte
) is
local
variable a, b: byte
begin
loop
x -> a || y -> b;
loop
while a /= b then
begin
if a > b
then a := (a - b as byte)
else b := (b - a as byte)
end
end
end;
z <- b
end
endПри компиляции она превращается в такую асинхронную схему:
Дальше она преобразуется в Verilog и синтезируется в собственно микросхему. Разве не прелесть? Не одним верилогом жив человек! :)
Бальса разрабатывалась в 1998-2010 годах в университете Манчестера. Её исходные тексты доступны на сайте университета на условиях лицензии GPL. Подход подробно описан в диссертации Andrew Barsley "Balsa: An Asynchronous Circuit Synthesis System".

no subject
Date: 2016-09-08 06:19 (UTC)no subject
Date: 2016-09-08 07:38 (UTC)no subject
Date: 2016-09-08 07:03 (UTC)no subject
Date: 2016-09-08 07:36 (UTC)no subject
Date: 2016-09-08 08:17 (UTC)Страшно расстроился. Спросить было некого.
no subject
Date: 2016-09-08 09:13 (UTC)Что один человек придумал, другой завсегда понять может.
Но не сразу. :)
no subject
Date: 2016-09-08 09:27 (UTC)no subject
Date: 2016-09-08 16:21 (UTC)no subject
Date: 2016-09-08 16:36 (UTC)no subject
Date: 2016-09-09 22:28 (UTC)'for' n:=2 'step' 1 'until' 100 'do' prime[n] := 'true';Или добавлять подчерк впереди:_for n:=2 _step 1 _until 100 _do prime[n] := true;После этого любой фортран или паскаль казался верхом элегантности.no subject
Date: 2016-09-09 22:11 (UTC)no subject
Date: 2016-09-09 22:39 (UTC)Несколько более высокий уровень: так называемые Handshake Circuits.
Смотрите раздел 2.2 (страницы 11-18) в статье Питерса: http://www.win.tue.nl/async-bib/pdf/Peeters96.pdf