Эксперименты с симулятором Atanua от Андрея Куликова

Печатные платы, программируемая логика, разработка и изготовление аппаратуры

Moderator: Shaos

User avatar
TernarySystem
Doomed
Posts: 625
Joined: 27 Jul 2018 12:07

Re: Эксперименты с симулятором Atanua от Андрея Куликова

Post by TernarySystem »

...если Вы пишете: нонит в обычном двоичном коде, возникает вопрос а какой необычный двоичный код?
You do not have the required permissions to view the files attached to this post.
AndrejKulikov
Banned
Posts: 315
Joined: 07 Mar 2018 23:17
Location: Россия, Москва

Re: Эксперименты с симулятором Atanua от Андрея Куликова

Post by AndrejKulikov »

Девятиричный симметричный полусумматор на ПЗУ с обычным двоичным кодированием нонитов

Обычное двоичное кодирование нонитов позволяет более плотно упаковывать таблицу истинности девятиричного симметричного полусумматора в ПЗУ 2708.

Результат так же получается с обычным двоичным кодированием нонитов, что облегчает каскадирование полусумматоров.

Таблицы соответствий:

Code: Select all

  +4   +3   +2   +1    0   -1   -2   -3   -4  Симметричный нонит  
   8    7    6    5    4    3    2    1    0  Симметричный нонит в девятиричном несимметричном коде 
1000 0111 0110 0101 0100 0011 0010 0001 0000  Симметричный нонит в девятиричном несимметричном коде в обычном двоичном коде 

Code: Select all

  +1    0   -1  Симметричный трит переноса
   2    1    0  Симметричный трит переноса в троичном несимметричном коде
0010 0001 0000  Симметричный трит переноса в троичном несимметричном коде в обычном двоичном коде
Снимок модели в симуляторе логических схем Atanua/Win32 1.0.081116 - Personal Edition:
NonaryHalfAdderSymmetricROM.JPG
Девятиричные девятибитные одноединичные 9S-триггеры служат для ввода нонитов и частью схемы собственно девятиричного симметричного полусумматора на ПЗУ не являются.

Конверторы нонитов на выходе девятиричных девятибитных одноединичных 9S-триггеров преобразуют девятибитные одноединичные нониты в нониты в обычном двоичном коде и частью схемы собственно девятиричного симметричного полусумматора на ПЗУ тоже не являются.

Так как девятиричный симметричный полусумматор за один проход складывает два нонита, а не два трита, как в троичном симметричном полусумматоре эвм "Сетунь" и "Сетунь-70" Соболева и Брусенцова, то теоретикологикоматематически девятиричный симметричный полусумматор в ln9/ln3=2 раза быстрее троичного симметричного полусумматора эвм "Сетунь" и "Сетунь-70" Соболева и Брусенцова.

Время суммирования двух нонитов:
1. при двухступенчатом дешифраторе в ПЗУ равно 3*dt (2*dt в дешифраторе и 1*dt в шифраторе),
2. при одноступенчатом дешифраторе в ПЗУ - 2*dt (1*dt в дешифраторе и 1*dt в шифраторе), где dt - время задержки в одном типовом логическом элементе.

Один нонит умещается в один полубайт. Два нонита умещаются в один байт. Результат (нонит суммы по модулю и трит переноса) занимает 6 битов и тоже умещаются в один байт. Поэтому девятиричный симметричный полусумматор с обычным двоичным кодированием нонитов и тритов очень просто сопрягается с обычными двоичными компьютерами и контроллерами, но при этом на 15% уменьшается быстродействие, по сравнению с троичными компьютерами и троичными контроллерами работающими в троичной трёхбитной системе троичных логических элементов.

Код модели в симуляторе логических схем Atanua/Win32 1.0.081116 - Personal Edition:
NonaryHalfAdderSymmetricROM.rar
Программа на TurboBasic'е вычисления значений нонитов сумм по модулю 9 в обычном двоичном коде и значений битов переноса в девятиричном симметричном полусумматоре для записи в ПЗУ 2708:

Code: Select all

CLS
COLOR 10,0

DIM Nonal$(8)
DATA "0","1","2","3","4","5","6","7","8"
FOR I%=0 TO 8
  READ Nonal$(I%)
NEXT I%

DIM F2NNS%(15,15,1),F2NNC%(15,15,1)

OPEN "2708.TXT" FOR OUTPUT AS # 1
OPEN "2708.BIN" FOR OUTPUT AS # 2

FOR K%=0 TO 0
  FOR J%=0 TO 15
    FOR I%=0 TO 15
      F2NNC%(I%,J%,K%)=(I%+J%+K%+5) \ 9
      IF I%>8 OR J%>8 THEN F2NNC%(I%,J%,K%)=0
      F2NNS%(I%,J%,K%)=(I%+J%+K%+5) MOD 9
      IF I%>8 OR J%>8 THEN F2NNS%(I%,J%,K%)=0
      PRINT Nonal$(F2NNC%(I%,J%,K%));
      PRINT Nonal$(F2NNS%(I%,J%,K%));
      PRINT #1,Nonal$(F2NNC%(I%,J%,K%));
      PRINT #1,Nonal$(F2NNS%(I%,J%,K%));
      F2NNCS%=F2NNC%(I%,J%,K%)*16+F2NNS%(I%,J%,K%)
      'PRINT CHR$(F2NNCS%+&H30);
      PRINT #2,CHR$(F2NNCS%);
    NEXT I%
    PRINT
  NEXT J%
NEXT K%

CLOSE # 1
CLOSE # 2

END
Программа создаёт два файла с таблицами полусумматора: 2708.BIN и 2708.TXT.
Записать таблицу истинности девятиричного несимметричного полусумматора с кодированием нонитов в обычном двоичном коде в ПЗУ 2708 можно двумя способами:

1. Штатный способ.
В симулятор Atanua загружается модель полусумматора. Курсор наводится на ПЗУ 2708 и после клика на чипе левой кнопкой мыши с клавиатуры вводится буква "L". В появившемся окне выбирается файл 2708.BIN и на нём делается клик левой кнопкой мыши.

2. Нештатный способ.
Код модели открывается в редакторе текстов WordPad. Находится строка с описанием чипа 2708. Файл 2708.TXT открывается в Блокноте, содержимое копируется и записывается в код модели в строку с описанием содержимого чипа 2708 после 8-ми первых знаков, определяющих начальный и конечный адрес ячеек ПЗУ (для ПЗУ 2708 обычно 0000040016), вместо ранее записанной информации.

Девятиричный симметричный полусумматор занимает 256 ячеек по 1 байту из 1024 ячеек по 1 байту в ПЗУ 2708. Из-за двоичной организации ПЗУ 2708 из занимаемых 256-ти ячеек только 9^2=81 ячейка является девятиричным симметричным полусумматором. При троичной организации ПЗУ с троичной адресацией (с дешифратором троичного адреса) пустых ячеек небыло бы.

Приложение:
Девятиричный симметричный полусумматор в виде двух квадратных таблиц размером n^2=n*n=9*9=81 ячейка:
таблицы нонитов текущего младшего значащего разряда:

Code: Select all

 
               y
               ^
               |
   0  1  2  3  4 -4 -3 -2 -1
  -1  0  1  2  3  4 -4 -3 -1
  -2 -1  0  1  2  3  4 -4 -3
  -3 -2 -1  0  1  2  3  4 -4
 --4 -3 -2 -1  0  1  2  3  4 -> x 
   4 -4 -3 -2 -1  0  1  2  3 
   3  4 -4 -3 -2 -1  0  1  2
   2  3  4 -4 -3 -2 -1  0  1 
   1  2  3  4 -4 -3 -2 -1  0
               | 
и таблицы тритов переноса в следующий старший значащий разряд:

Code: Select all

 
               y
               ^
               |
   0  0  0  0  0  1  1  1  1
   0  0  0  0  0  0  1  1  1
   0  0  0  0  0  0  0  1  1
   0  0  0  0  0  0  0  0  1
 - 0  0  0  0  0  0  0  0  0 -> x 
  -1  0  0  0  0  0  0  0  0 
  -1 -1  0  0  0  0  0  0  0
  -1 -1 -1  0  0  0  0  0  0 
  -1 -1 -1 -1  0  0  0  0  0
               |
Перенос по модулю не бывает больше 1. Ненулевой перенос возникает в
(n^2-1)/4=(9^2-1)/4=(81-1)/4=20-ти случаях из n^2=9^2=81-го (приблизительно в 24,7% случаев).
You do not have the required permissions to view the files attached to this post.
Last edited by AndrejKulikov on 09 Jan 2019 07:58, edited 1 time in total.
AndrejKulikov
Banned
Posts: 315
Joined: 07 Mar 2018 23:17
Location: Россия, Москва

Re: Эксперименты с симулятором Atanua от Андрея Куликова

Post by AndrejKulikov »

Девятиричный симметричный полный сумматор на ПЗУ с обычным двоичным кодированием нонитов

Таблицы соответствий:

Code: Select all

  +4   +3   +2   +1    0   -1   -2   -3   -4  Симметричный нонит  
   8    7    6    5    4    3    2    1    0  Симметричный нонит в девятиричном несимметричном коде 
1000 0111 0110 0101 0100 0011 0010 0001 0000  Симметричный нонит в девятиричном несимметричном коде в обычном двоичном коде 

Code: Select all

  +1    0   -1  Симметричный трит переноса
   2    1    0  Симметричный трит переноса в троичном несимметричном коде
0010 0001 0000  Симметричный трит переноса в троичном несимметричном коде в обычном двоичном коде
Рис.1. Снимок модели в симуляторе логических схем Atanua/Win32 1.0.081116 - Personal Edition:
NonaryFullAdderSymmetricROM.JPG
40
Девятиричные девятибитные одноединичные 9S-триггеры служат для ввода нонитов и частью схемы собственно девятиричного симметричного полного (трёхоперандного, трёхаргументного) сумматора на ПЗУ не являются.

Конверторы нонитов на выходе девятиричных девятибитных одноединичных 9S-триггеров преобразуют девятибитные одноединичные нониты в нониты в обычном двоичном коде и частью схемы собственно девятиричного симметричного полного (трёхоперандного, трёхаргументного) сумматора на ПЗУ тоже не являются.

Девятиричный сумматор является одной из 9^((9^3)*2)≈8,85*10^(1391) тринарных (трёхоперендных, трёхаргументных) девятиричных логических функций с бинарным выходом, что на много-много порядков больше, чем все большие числа Дирака вместе взятые.

Время суммирования двух нонитов:
1. при двухступенчатом дешифраторе в ПЗУ равно 3*dt (2*dt в дешифраторе и 1*dt в шифраторе),
2. при одноступенчатом дешифраторе в ПЗУ - 2*dt (1*dt в дешифраторе и 1*dt в шифраторе), где dt - время задержки в одном типовом логическом элементе.

По длине операндов сумматор подобен ln9/ln2≈3,17-битному двоичному сумматору.

Так как девятиричный симметричный полный сумматор производит полное тринарное (трёхоперандное, трёхаргументное) сложение (складывает два нонита и трит переноса) за один проход, а не два трита и трит переноса за два последовательных прохода, как в троичном симметричном полусумматоре эвм "Сетунь" и "Сетунь-70" Соболева и Брусенцова, то теоретикологикоматематически девятиричный симметричный полный сумматор, как минимум, в 2*ln9/ln3=4 раза быстрее троичного симметричного полусумматора эвм "Сетунь" и "Сетунь-70" Соболева и Брусенцова.

При каскадном последовательном включении N девятиричных симметричных полных сумматоров теоретикологикоматематическое быстродействие последовательного девятиричного симметричного сумматора будет, как минимум, в 4*N раз больше, чем троичного симметричного полусумматора эвм "Сетунь" и "Сетунь-70" Соболева и Брусенцова.

Рис.2. Количество переносов в несимметричных и в симметричных полных (трёхоперандных, трёхаргументных) сумматорах:
Carry.JPG
Из-за большего основания системы счисления (9 вместо 4) девятиричный симметричный сумматор в ln9/ln4≈1,58 раз быстрее и четырёхбитных одноединичных (4-Bit UnoUnary BinaryCodedQuadro, 4B UU BCQ) квадросумматоров команды из МИФИ под руководством Хетагурова. Кроме этого, симметричность, ещё больше увеличивает быстродействие полного нонасумматора (количество переносов в симметричных полных сумматорах почти в два раза меньше, чем в несимметричных полных сумматорах, (около 25% вместо 50%)).

Время суммирования в полном сумматоре Когге-Стоуна теоретически эквивалентном N-разрядному девятиричному на ПЗУ (N*2*dt) без учёта переносов (а переносы в сумматоре Когге-Стоуна, как и в других чётных и нечётных несимметричных сумматорах, возникают в 50% случаев) равно:
ts=2*(log2(N*n)+1)*dt=2*(log2(N*9)+1)*dt.

Code: Select all

Число              Время сложения в             Время сложения в   
нонаразрядов   девятиричном сумматоре    сумматоре Когге-Стоуна
1                      2*dt                        8,34*dt
2                      4*dt                       10,34*dt 
3                      6*dt                       11,51*dt
4                      8*dt                       12,34*dt
5                     10*dt                       12,98*dt
6                     12*dt                       13,51*dt
7                     14*dt                       13,95*dt
8                     16*dt                       14,34*dt

Т.е. сумматор Когге-Стоуна "обгоняет" девятиричный несимметричный сумматор только при числе разрядов равном и большим эквивалентным 8-ми девятиричным разрядам (8*ln9/ln2≈25,36-битов). Но в нечётном симметричном девятиричном полном сумматоре переносов почти вдвое меньше (около 25%), чем в чётном несимметричном сумматоре Когге-Стоуна (50%) и для "обгона" сумматору" Когге-Стоуна потребуется ещё больше эквивалентных двоичных разрядов, а с увеличением разрядности аппаратные затраты и стоимость разряда в сумматоре Когге-Стоуна увеличиваются очень сильно.

Код модели в симуляторе логических схем Atanua/Win32 1.0.081116 - Personal Edition:
NonaryFullAdderSymmetricROM.rar
You do not have the required permissions to view the files attached to this post.
Last edited by AndrejKulikov on 09 Jan 2019 09:41, edited 8 times in total.
AndrejKulikov
Banned
Posts: 315
Joined: 07 Mar 2018 23:17
Location: Россия, Москва

Re: Эксперименты с симулятором Atanua от Андрея Куликова

Post by AndrejKulikov »

Конвертор трёхтритных гептакозанитов в пятибитные гептакозаниты

Рис.1. Снимок модели в симуляторе логических схем Atanua/Win32 1.0.081116 - Personal Edition:
GeptaCozanaryConvertor3Trit-5Bit.JPG
32
Код модели (версия 09.01.2019) в симуляторе логических схем Atanua/Win32 1.0.081116 - Personal Edition:
You do not have the required permissions to view the files attached to this post.
Last edited by AndrejKulikov on 09 Jan 2019 10:14, edited 3 times in total.
AndrejKulikov
Banned
Posts: 315
Joined: 07 Mar 2018 23:17
Location: Россия, Москва

Re: Эксперименты с симулятором Atanua от Андрея Куликова

Post by AndrejKulikov »

Скачавшему код модели с ошибкой GeptaCozanaryConvertor3Trit-5Bit.JPG из топика:
Конвертор трёхтритных гептакозанитов в пятибитные гептакозаниты
настоятельно рекомендуется обновить версию модели до 09.01.2019.
AndrejKulikov
Banned
Posts: 315
Joined: 07 Mar 2018 23:17
Location: Россия, Москва

Re: Эксперименты с симулятором Atanua от Андрея Куликова

Post by AndrejKulikov »

Двадцатисемиричный симметричный полный сумматор с кодированием гептакозанитов в обычном двоичном коде на ПЗУ 2732

Рис.1. Снимок модели в симуляторе логических схем Atanua/Win32 1.0.081116 - Personal Edition:
GeptaCozanaryFullAdderSymmetricROM.JPG
Так как двадцатисемиричный симметричный полный (трёхоперандный, трёхаргументный) сумматор за один проход складывает два гептакозанита и трит переноса, а не два трита за два прохода, как в одноразрядном троичном симметричном полусумматоре эвм "Сетунь" и "Сетунь-70" Соболева и Брусенцова, то двадцатисемиричный симметричный полный (трёхоперандный, трёхаргументный) сумматор теоретикологикоматематически в 2*ln27/ln3=2*3=6 раз быстрее одноразрядного троичного симметричного полусумматора эвм "Сетунь" и "Сетунь-70" Соболева и Брусенцова.

Рис.2. Количество переносов в несимметричных и в симметричных полных (трёхоперандных, трёхаргументных) сумматорах:
Carry.JPG
Из-за большего основания системы счисления (27 вместо 4) двадцатисемиричный симметричный полный сумматор в ln27/ln4≈2,38 раза быстрее и четырёхбитных одноединичных (4-Bit UnoUnary BinaryCodedQuadro, 4B UU BCQ) квадросумматоров команды из МИФИ под руководством Хетагурова. Кроме этого, симметричность, ещё больше увеличивает быстродействие полного гептакозанарного сумматора (количество переносов в симметричных полных сумматорах почти в два раза меньше, чем в несимметричных полных сумматорах, (около 25% вместо 50%)).

Код модели в симуляторе логических схем Atanua/Win32 1.0.081116 - Personal Edition:
GeptaCozanaryFullAdderSymmetricROM.rar
You do not have the required permissions to view the files attached to this post.
AndrejKulikov
Banned
Posts: 315
Joined: 07 Mar 2018 23:17
Location: Россия, Москва

Re: Эксперименты с симулятором Atanua от Андрея Куликова

Post by AndrejKulikov »

Девятиричный симметричный полный сумматор на ПЗУ с обычным двоичным кодированием нонитов, вариант для обычных двоичных контроллеров и обычных двоичных компьютеров

Девятиричный симметричный полный сумматор на ПЗУ с обычным двоичным кодированием нонитов очень просто сопрягается с обычными двоичными контроллерами и компьютерами. Для сопряжения понадобятся: 10-ть разрядов обычных двоичных регистров и программа перевода обычных двоичных чисел в девятиричные числа и перекодировка их в четырёхбитные симметричные девятиричные числа в девятиричном несимметричном коде в обычном двоичном коде по нижеприведённым таблицам.

Таблицы соответствий:

Code: Select all

  +4   +3   +2   +1    0   -1   -2   -3   -4  Симметричный нонит  
   8    7    6    5    4    3    2    1    0  Симметричный нонит в девятиричном несимметричном коде 
1000 0111 0110 0101 0100 0011 0010 0001 0000  Симметричный нонит в девятиричном несимметричном коде в обычном двоичном коде 

Code: Select all

  +1    0   -1  Симметричный трит переноса
   2    1    0  Симметричный трит переноса в троичном несимметричном коде
0010 0001 0000  Симметричный трит переноса в троичном несимметричном коде в обычном двоичном коде
Рис.1. Снимок модели в симуляторе логических схем Atanua/Win32 1.0.081116 - Personal Edition:
NonaryFullAdderSymmetricROMBin.JPG
На снимке: двум нулевым нонитам и нулевому триту переноса индицируемым в несимметричных системах соответствует симметричная сумма "-4"+"-4"+"-1"="-9", т.е. несимметричные соответствия симметричным "0"="-9" в трите переноса и "4"="0" в ноните суммы по модулю 9.

Двоичные RS-триггеры на входах с автоматической установкой в 0 при включении служат для ввода битов и частью схемы собственно девятиричного симметричного полного сумматора не являются.
Семисегментные светодиодные индикаторы с двоичным декодером 309 и светодиоды служат для индикации и частью схемы собственно девятиричного симметричного полного сумматора тоже не являются.

Время полного суммирования двух нонитов, при одноступенчатом дешифраторе в ПЗУ, равно 2*dt (1*dt в дешифраторе и 1*dt в шифраторе), где dt - время задержки в одном типовом логическом элементе.

По длине операндов сумматор подобен ln9/ln2≈3,17-битному двоичному сумматору.

Код модели в симуляторе логических схем Atanua/Win32 1.0.081116 - Personal Edition:
NonaryFullAdderSymmetricROMBin.rar
You do not have the required permissions to view the files attached to this post.