Пример направленного роста. Эволюция отрезка

Эта часть описания функции переходов определяет функционирование сумматоров.

  1. // Эта часть описания функции переходов определяет функционирование сумматоров.
  2. XXXXX, XXXX => 0XXXX // сбросить ком. бит у всех элементов
  3. X0011, XXXX => 1XXXX // если элемент является "верхним слагаемым" и значение разряда числа равно "1", установить коммуникационный бит.
  4. X01XX, XXXX => X010X // сбросим признак модификации у элементов сумматора
  5. X0100, 1XXX => 00111 // если в немодифицированном "сумматоре" значение разряда числа равно "0", а у верхнего слагаемого - "1", то установить в "сумматоре" значение "1", установить признак модификации и сбросить признак переноса.
  6. X0101, 1XXX => 10110 // если в немодифицированном "сумматоре" значение разряда числа равно "1", и у верхнего слагаемого - "1", то установить в "сумматоре" значение "0", установить признак модификации и установить признак переноса.
  7. [A] X01X1, X1XX => 101XX // лавинный такт. Если в "сумматоре" значение разряда числа равно "1" и признак переноса из предыдущего разряда равен "1", установить признак переноса.
  8. X01XX, XXXX => X010X // сбросим признак модификации у элементов сумматора
  9. X0100, X1XX => X0111 // если в немодифицированном "сумматоре" значение разряда числа равно "0", а признак переноса - "1", то установить в "сумматоре" значение "1" и установить признак модификации.
  10. X0101, X1XX => X0110 // если в немодифицированном "сумматоре" значение разряда числа равно "1", и у верхнего слагаемого - "1", то установить в "сумматоре" значение "0", установить признак модификации.
  11. X100X, X0XX => X1000 // если нет переноса из самого старшего разряда, то в элементе переноса/переполнения записать "0".
  12. X100X, X1XX => X1001 // если есть перенос из самого старшего разряда, то в элементе переноса/переполнения записать "1".
  13. // Дальнейшая часть описания определяет рост отрезка. Эта часть не обязательно должна быть расположена непосредственно после предыдущей части, описывающей сумматоры.
  14. XXXXX, XXXX => 0XXXX // сбросить ком. бит у всех элементов
  15. X1001, XXXX => 1XXXX // если элемент переноса/переполнения содержит единицу - установить ком. бит.
  16. [A] X1100, ~0000 => 11100 // лавинный такт. Если хотя бы у одного из соседей элемента отрезка установлен ком. бит, установить коммуникационный бит.
  17. X1010, ~0000 => X1011 // если хотя бы у одного из соседей точки горизонтального прироста установлен ком. бит, превратить элемент в точку вертикального прироста.
  18. XXXXX, XXXX => 0XXXX // сбросить ком. бит у всех элементов
  19. X1010, XXXX => 11100 // превратить точку горизонтального прироста в элемент отрезка и установить ком. бит
  20. X0000, X1XX => 01010 // если у элемента пустого пространства элемент справа был точкой горизонтального прироста, превратить элемент в точку горизонтального прироста.
  21. XXXXX, XXXX => 0XXXX // сбросить ком. бит у всех элементов
  22. X1011, XXXX => 11100 // превратить точку вертикального прироста в элемент отрезка и установить ком. бит.
  23. X0000, XX1X => 01010 // если у элемента пустого пространства элемент снизу был точкой вертикального прироста, превратить элемент в точку горизонтального прироста.