Ну понятно, что замахивались на комп, но обсуждение шло от АЛУBEPTEP wrote: 16 Jan 2026 15:45Читаю, вникаю. Но по моему там не просто АЛУ, а уже целый процессор описан.Shaos wrote: 15 Jan 2026 00:46 Почитать можно например тут:
viewtopic.php?t=58 (2004)
viewtopic.php?t=17752 (2017)
Счётчик команд, регистры указатели....
Или без этого софтово никак реализовать вышеописанные операции нельзя?
Туго доходит, сразу не въезжаю.
BEPTEP ALU
Moderator: haqreu
-
Shaos
- Admin
- Posts: 25241
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: BEPTEP ALU
-
Shaos
- Admin
- Posts: 25241
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: BEPTEP ALU
Циклический через флаг переноса - чтобы можно было и нулями добивать, и единичками (с плюсиками или минусиками)BEPTEP wrote: 16 Jan 2026 16:12 Вопрос по сдвигам. Не совсем понимаю:Сложение тоже через этот флаг, флаг переноса.сдвинуть регистр A влево через флаг BCF
Т.е. сдвиг вправо/влево осуществляется через флаг переноса. Так?
Это циклический сдвиг, сдвиг с переносом младшего трита в старший и наоборот, или обычный?
--------
Если флаг переноса = 0, то сдвиг обычный получается(если он с переносом только)
Классический перенос , как в калькуляторе винды, не нужен?
-
BEPTEP
- Doomed
- Posts: 418
- Joined: 09 Apr 2025 01:49
Re: BEPTEP ALU
А моя реализация переключаемых буферов не подойдёт?Shaos wrote: 16 Jan 2026 22:08Циклический через флаг переноса - чтобы можно было и нулями добивать, и единичками (с плюсиками или минусиками)BEPTEP wrote: 16 Jan 2026 16:12 Вопрос по сдвигам. Не совсем понимаю:Сложение тоже через этот флаг, флаг переноса.сдвинуть регистр A влево через флаг BCF
Т.е. сдвиг вправо/влево осуществляется через флаг переноса. Так?
Это циклический сдвиг, сдвиг с переносом младшего трита в старший и наоборот, или обычный?
--------
Если флаг переноса = 0, то сдвиг обычный получается(если он с переносом только)
Классический перенос , как в калькуляторе винды, не нужен?
Хотя, надо подумать, может в эта экономней получится.
-
BEPTEP
- Doomed
- Posts: 418
- Joined: 09 Apr 2025 01:49
Re: BEPTEP ALU
В общем туго до меня доходит. Только сейчас дошло, представление начал чёткое иметь, как работает АЛУ в целом.
Даёт покоя голове манечка с монитором и тетрисом)) Нарисовал схему монитора. На всё про всё 748 транзисторов надо. Это отдельная плата плотно набитая элементами с двух сторон. Она даёт не только изображение 9х9 но и служит оперативной памятью. Оперативная видео-память. Из которой, например, можно брать данные текущего положения и расположения фигуры, рассчитывать коллизии.
Потом начал команды писать, прикидывать как будет устроено ПЗУ, сколько регистров надо, плясать от обратного. Вначале 9 штук написал - не хватило! Перешёл на 27 - то же маловато будет. Но меня понесло - гулять так гулять)) 37 инструкций почти успокоили меня!
Решил это пока отложить и вернутся к калькулятору, на котором все элементы реализовать в минимальном виде и добавить крутилку частоты самого АЛУ. А то сразу такое конское количество элементов на платы вжаривать и ещё их рисовать неправильно. Если работать не будет или криво работать - всё насмарку - переделка, новая ревизия.
Даёт покоя голове манечка с монитором и тетрисом)) Нарисовал схему монитора. На всё про всё 748 транзисторов надо. Это отдельная плата плотно набитая элементами с двух сторон. Она даёт не только изображение 9х9 но и служит оперативной памятью. Оперативная видео-память. Из которой, например, можно брать данные текущего положения и расположения фигуры, рассчитывать коллизии.
Потом начал команды писать, прикидывать как будет устроено ПЗУ, сколько регистров надо, плясать от обратного. Вначале 9 штук написал - не хватило! Перешёл на 27 - то же маловато будет. Но меня понесло - гулять так гулять)) 37 инструкций почти успокоили меня!
Но в процессе понял что мне 2 тритного счётчика адреса строки недостаточно. Нужен минимум 6 тритный. И ещё инструкции. Либо этот скисок урезать и новые добавлять, либо расширять. В общем прикинул по транзисторам. Вместе с монитором получается примерно 2200-2500 штук. Ещё плюс не протестированы частоты и не просчитаны тайминги, сможет ли всё это успевать при самом тяжёлом сценарии успевать собрать строку для обновления экрана за временной интервал ~0.003 - 0.004 секунды.2х4
Один картридж ПЗУ = 81 ячейка = 243 трита
Максимум 9 картриджей = 729 ячеек = 2187 трит
----------------------------------------------------------------------------------------
Регистры:
A - секционный регистр 3х3 трита. Посекционная и полная запись и чтение.
B - секционный регистр 3х3 трита. Запись целиком, чтение посекционное.
X - 2 тритный регистр хранения координаты. Запись/чтение.
Y - 2 тритный регистр хранения координаты. Запись/чтение.
Z - 2 тритный регистр адреса строки монитора. Только запись.
M - 2 тритный регистор адресов строк монитора. Только чтение.
C - 2 тритный регистр адресов ПЗУ. Запись.
J - 2 тритный регистр хранения адреса перехода. Запись.
JM- 2 тритный регистр хранения адреса перехода. Запись.
JR- 2 тритный регистр возврата с перехода. Запись.
MP- 2 тритный регистр карты памяти. Запись.
MR- 2 тритный регистр карты памяти. Возврат. Запись.
S - 3 тритный регистр вывод звука. Запись.
RN- 2 тритный регистр случайного числа. Только чтение.
K - 2 тритный регистр кнопок управления(клавиатура). Чтение/сброс.
Внешняя ОЗУ - строка монитора. Посекционное чтение, но полная запись.
Флаги:
FC - флаг переноса суммы сложения 3х3
FV - флаг счётчика строк. Строка готова +1. Сброс -1.
Счётчик времени...
0.002
0.006
0.018
0.036
0.054
0.108
0.162
0.324
0.486
0.972
1.458
-----------------------------------------------------------------------------------------
1. INV Инверсия
2. SHL Сдвиг влево
3. SHR Сдвиг вправо
4. INC Инкремент
5. DEC Декремент
6. STM Записать 9 трит значение из регистра A в Монитор по адресу в регистре Z
7. STB Записать 9 трит значение из A в B
8. STZ Записать 2 трит значение из A в Z
9. STX Записать 2 трит значение из A в Х
10. STY Записать 2 трит значение из A в Y
11. STJ Записать 2 трит значение из A в J
12. LDM Загрузить 9 трит значение полной строки из Монитора по адресу в регистре Z в регистр A
13. LDX Загрузить регистр X на вход сумматора
14. LDY Загрузить регистр Y на вход сумматора
15. LDK Загрузить регистр K на вход сумматора
16. LDM_A Загрузить сектор A регистра M на вход сумматора
17. LDM_B Загрузить сектор B регистра M на вход сумматора
18. LDM_C Загрузить сектор C регистра M на вход сумматора
19. LDB_A Загрузить сектор A регистра B на вход сумматора
20. LDB_B Загрузить сектор B регистра B на вход сумматора
21. LDB_C Загрузить сектор C регистра B на вход сумматора
22. ADD Сложение.
23. JMP_0 Условный переход. Если аккумулятор == 0 то записывает в регистры JR/MR -> С/MP записывает регистры J/JM -> С/MP
24. JMR Обратный переход. Записывает в регистры С/MP -> JR/MR
25. JMV Ожидание новой строки. Если флаг FV взведён, то записываем в регистр С/MP -> J/MR и сбрасываем флаг FV
26. SJM Записать 2 трит значение из A в JM
27. ROR Циклический сдвиг вправо.
28. ROL Циклический сдвиг влево.
29. ROR_3 Поворот куба 3х3 на 90 градусов.
30. ROL_3 Поворот куба 3х3 на -90 градусов.
31. MIN Минимум.
32. MAX Максимум.
33. LRN Загрузить регистр RN на вход сумматора
34. ADN Сложение без переноса. Пренос FC результата сложения 3х3 сбрасывается.
35. NUL Обнуление регистра A
36. JMP_1 Условный переход. Если аккумулятор != 0 то записывает в регистры JR/MR -> С/MP записывает регистры J/JM -> С/MP
37. SND Звук. Первый трит команды +1. Дешифратор остальные 3 трита записывает в буфер S
Решил это пока отложить и вернутся к калькулятору, на котором все элементы реализовать в минимальном виде и добавить крутилку частоты самого АЛУ. А то сразу такое конское количество элементов на платы вжаривать и ещё их рисовать неправильно. Если работать не будет или криво работать - всё насмарку - переделка, новая ревизия.
You do not have the required permissions to view the files attached to this post.
-
BEPTEP
- Doomed
- Posts: 418
- Joined: 09 Apr 2025 01:49
Re: BEPTEP ALU
Принципиальные схемы. Дешифратор:
Заголовок строки, выбор режима:
Сама ячейка динамической памяти:
В ней у меня несколько моментов которые необходимо проверить на макетке вначале.
Поэтому в прототипе обязательно буду делать одну строку 9 трит динамической памяти на частоте 500 Гц,(в матрице 9х9 строка обновляется с частотой примерно 55 Гц, 500 герц это частота обновления всего экрана - 9 строк) чтобы убедится что расчёты верны.
Поэтому в прототипе обязательно буду делать одну строку 9 трит динамической памяти на частоте 500 Гц,(в матрице 9х9 строка обновляется с частотой примерно 55 Гц, 500 герц это частота обновления всего экрана - 9 строк) чтобы убедится что расчёты верны.
You do not have the required permissions to view the files attached to this post.
-
BEPTEP
- Doomed
- Posts: 418
- Joined: 09 Apr 2025 01:49
Re: BEPTEP ALU
Счётчик строк на 2 трита:
Счёт от -1-1 до +1+1
Тактовый генератора для счётчика строк монитора: Проектировал его со сдвигом второго импульса такта. Это нужно чтобы счётчик(и возможно управляющий флаг ещё какой добавить надо) переключал строку в последний момент такта, а процессор читал из регистра адрес текущей строки для обновления как можно дольше. Обновлением, обработкой строк заниматься будет сам процессор. У него неограниченный доступ к записи/чтению в монитор/из монитора. Так же этот счётчик надо расширять до 6 трит, чтобы иметь хоть какие то тайминги в системе для смены уровней, цветовой ШИМ модуляции монитора, мерцание и т.д. 4 дополнительные трита дают тайминги:
0.054 сек
0.108 сек
0.162 сек
0.324 сек
0.486 сек
0.972 сек
1.458 сек
Тактовый генератора для счётчика строк монитора: Проектировал его со сдвигом второго импульса такта. Это нужно чтобы счётчик(и возможно управляющий флаг ещё какой добавить надо) переключал строку в последний момент такта, а процессор читал из регистра адрес текущей строки для обновления как можно дольше. Обновлением, обработкой строк заниматься будет сам процессор. У него неограниченный доступ к записи/чтению в монитор/из монитора. Так же этот счётчик надо расширять до 6 трит, чтобы иметь хоть какие то тайминги в системе для смены уровней, цветовой ШИМ модуляции монитора, мерцание и т.д. 4 дополнительные трита дают тайминги:
0.054 сек
0.108 сек
0.162 сек
0.324 сек
0.486 сек
0.972 сек
1.458 сек
You do not have the required permissions to view the files attached to this post.
-
BEPTEP
- Doomed
- Posts: 418
- Joined: 09 Apr 2025 01:49
Re: BEPTEP ALU
Напутал с таймингами. х2 можно отбрасывать, так как такт несимметричный, то эффективные значения времени только х3 каждого регистра. Итого:
0.018 сек ( под вопросом, нужен ли, но по факту такой тайминг есть)
0.054 сек
0.162 сек
0.486 сек
1.458 сек
Тайминги плохи из-за слишком грубой дискретности.
Можно, конечно, отдельный счётчик на 4 трита сделать. Там умножение на 2 тогда будет. По транзисторам разница смехотворная получается. Итого на всю схему 3 генератора получится.
0.018 сек ( под вопросом, нужен ли, но по факту такой тайминг есть)
0.054 сек
0.162 сек
0.486 сек
1.458 сек
Тайминги плохи из-за слишком грубой дискретности.
Можно, конечно, отдельный счётчик на 4 трита сделать. Там умножение на 2 тогда будет. По транзисторам разница смехотворная получается. Итого на всю схему 3 генератора получится.
