Пример направленного роста. Эволюция отрезка
Эта часть описания функции переходов определяет функционирование сумматоров.
- // Эта часть описания функции переходов определяет функционирование сумматоров.
- XXXXX, XXXX => 0XXXX // сбросить ком. бит у всех элементов
- X0011, XXXX => 1XXXX // если элемент является "верхним слагаемым" и значение разряда числа равно "1", установить коммуникационный бит.
- X01XX, XXXX => X010X // сбросим признак модификации у элементов сумматора
- X0100, 1XXX => 00111 // если в немодифицированном "сумматоре" значение разряда числа равно "0", а у верхнего слагаемого - "1", то установить в "сумматоре" значение "1", установить признак модификации и сбросить признак переноса.
- X0101, 1XXX => 10110 // если в немодифицированном "сумматоре" значение разряда числа равно "1", и у верхнего слагаемого - "1", то установить в "сумматоре" значение "0", установить признак модификации и установить признак переноса.
- [A] X01X1, X1XX => 101XX // лавинный такт. Если в "сумматоре" значение разряда числа равно "1" и признак переноса из предыдущего разряда равен "1", установить признак переноса.
- X01XX, XXXX => X010X // сбросим признак модификации у элементов сумматора
- X0100, X1XX => X0111 // если в немодифицированном "сумматоре" значение разряда числа равно "0", а признак переноса - "1", то установить в "сумматоре" значение "1" и установить признак модификации.
- X0101, X1XX => X0110 // если в немодифицированном "сумматоре" значение разряда числа равно "1", и у верхнего слагаемого - "1", то установить в "сумматоре" значение "0", установить признак модификации.
- X100X, X0XX => X1000 // если нет переноса из самого старшего разряда, то в элементе переноса/переполнения записать "0".
- X100X, X1XX => X1001 // если есть перенос из самого старшего разряда, то в элементе переноса/переполнения записать "1".
- // Дальнейшая часть описания определяет рост отрезка. Эта часть не обязательно должна быть расположена непосредственно после предыдущей части, описывающей сумматоры.
- XXXXX, XXXX => 0XXXX // сбросить ком. бит у всех элементов
- X1001, XXXX => 1XXXX // если элемент переноса/переполнения содержит единицу - установить ком. бит.
- [A] X1100, ~0000 => 11100 // лавинный такт. Если хотя бы у одного из соседей элемента отрезка установлен ком. бит, установить коммуникационный бит.
- X1010, ~0000 => X1011 // если хотя бы у одного из соседей точки горизонтального прироста установлен ком. бит, превратить элемент в точку вертикального прироста.
- XXXXX, XXXX => 0XXXX // сбросить ком. бит у всех элементов
- X1010, XXXX => 11100 // превратить точку горизонтального прироста в элемент отрезка и установить ком. бит
- X0000, X1XX => 01010 // если у элемента пустого пространства элемент справа был точкой горизонтального прироста, превратить элемент в точку горизонтального прироста.
- XXXXX, XXXX => 0XXXX // сбросить ком. бит у всех элементов
- X1011, XXXX => 11100 // превратить точку вертикального прироста в элемент отрезка и установить ком. бит.
- X0000, XX1X => 01010 // если у элемента пустого пространства элемент снизу был точкой вертикального прироста, превратить элемент в точку горизонтального прироста.