RISC-V и реализация функций работы с тритами

Уравновешенная троичная система счисления - форум переехал с http://ternary.info

Moderator: haqreu

User avatar
askfind
Devil
Posts: 800
Joined: 04 Jan 2016 09:15
Location: Russia, S.- Peterburg

RISC-V и реализация функций работы с тритами

Post by askfind »

Вчера подключил модуль ESP32-C3 Wi-Fi,BT c микроконтроллером RISC-V и подготовил проект на языки С и исходными кодами на ассемблере.

Фрагмент Assemblertes.S с вызовом функции.

Code: Select all

 .global assemblyAdd
assemblyAdd:
  slli a0, a0, 0
  ret

Это Arduino проект. Если у кого есть желание "пощупать" выкладываю архив с проектом Ternary_RISC_V_.zip.

Лучше конечно же использовать эмулятор для написания кода асемблера. В МГУ читают лекции и выкладывают видео.

Ссылка: 01. Принципы развития архитектур ЭВМ; система команд
RISC-V - https://youtu.be/JSFhP0ZmB2o

Студенты выполняют работу в эмуляторе RISC-V, написанной на Java RARS -- RISC-V Assembler and Runtime Simulator — https://github.com/TheThirdOne/rars
You do not have the required permissions to view the files attached to this post.
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)
User avatar
askfind
Devil
Posts: 800
Joined: 04 Jan 2016 09:15
Location: Russia, S.- Peterburg

Re: RISC-V и реализация функций работы с тритами

Post by askfind »

Полезные материалы по RISC-V
  • Официальные ресурсы
    Учебные курсы и материалы
    Видеоматериалы
    Статьи и обзоры
    Литература
    Симуляторы, эмуляторы, наборы инструментов
    Opensource RISC-V processors from Academia
You do not have the required permissions to view the files attached to this post.
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)
User avatar
askfind
Devil
Posts: 800
Joined: 04 Jan 2016 09:15
Location: Russia, S.- Peterburg

Re: RISC-V и реализация функций работы с тритами

Post by askfind »

Планирование регистров для реализации архитектуры "Setun-1958"

Ссылка на лекцию: https://uneex.org/LecturesCMC/Architect ... yRegisters

Code: Select all

/**
 * Filename: "emusetun.c "
 *
 * Project: Виртуальная машина МЦВМ "Сетунь" 1958 года на языке Си
 *
 * Create date: 01.11.2018
 * Edit date:   16.10.2023
 */
#define Version "1.93"

/**
 * Определение памяти машины "Сетунь-1958"
 */
trs_t mem_fram[SIZE_GR_TRIT_FRAM][SIZE_GRFRAM];						   /* оперативное запоминающее устройство на ферритовых сердечниках */
trs_t mem_drum[NUMBER_ZONE_DRUM + ZONE_DRUM_BEG][SIZE_ZONE_TRIT_DRUM]; /* запоминающее устройство на магнитном барабане */

/** ***********************************
 *  Определение регистров "Сетунь-1958"
 *  -----------------------------------
 */
/* Основные регистры в порядке пульта управления */
trs_t K = {.l = 9, .t0 = 0, .t1 = 0}; /* K(1:9)  код команды (адрес ячейки оперативной памяти) */
trs_t F = {.l = 5, .t0 = 0, .t1 = 0}; /* F(1:5)  индекс регистр  */
trs_t C = {.l = 5, .t0 = 0, .t1 = 0}; /* C(1:5)  программный счетчик  */
trs_t W = {.l = 1, .t0 = 0, .t1 = 0}; /* W(1:1)  знак троичного числа */
//
trs_t ph1 = {.l = 1, .t0 = 0, .t1 = 0}; /* ph1(1:1) 1 разряд переполнения */
trs_t ph2 = {.l = 1, .t0 = 0, .t1 = 0}; /* ph2(1:1) 1 разряд переполнения */
trs_t S = {.l = 18, .t0 = 0, .t1 = 0};	/* S(1:18) аккумулятор */
trs_t R = {.l = 18, .t0 = 0, .t1 = 0};	/* R(1:18) регистр множителя */
trs_t MB = {.l = 4, .t0 = 0, .t1 = 0};	/* MB(1:4) троичное число зоны магнитного барабана */
/* Дополнительные */
trs_t MR = {.l = 9, .t0 = 0, .t1 = 0};		  /* временный регистр для обмена с FRAM */
long_trs_t TMP = {.l = 36, .t0 = 0, .t1 = 0}; /* временная переменная для троичного числа */
//
trs_t BRPNT = {.l = 4, .t0 = 0, .t1 = 0}; /* BRPNT(1:5) - точка остановки по значению программного счетчика */
You do not have the required permissions to view the files attached to this post.
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)
User avatar
askfind
Devil
Posts: 800
Joined: 04 Jan 2016 09:15
Location: Russia, S.- Peterburg

Re: RISC-V и реализация функций работы с тритами

Post by askfind »

Code: Select all

#
# Filename: "setun1958asm.s"
#
# Project: Троичная МЦВМ "Сетунь" 1958 года на языке ассемблера RISC-V
#
# Create date: 01.03.2024
# Edit date:   02.03.2023
#
# Version:     0.01
#
# Author:      Vladimir V.
# E-mail:      askfind@ya.ru
#
# GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007
#


#
# 

TODO
- [Х] Создать файл реализации троичной машины "Сетунь" на ассемблере
- [Х] Определение регистров RISC-V и машина "Сетунь"
- [Х] Компиляция файла setun1958asm.s - Ok'
You do not have the required permissions to view the files attached to this post.
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)
User avatar
askfind
Devil
Posts: 800
Joined: 04 Jan 2016 09:15
Location: Russia, S.- Peterburg

Re: RISC-V и реализация функций работы с тритами

Post by askfind »

Эмулятор троичной машины 'СЕТУНЬ' SETUN-1958 VM на языке Assembler

A virtual machine of ternary computer Setun, also known as "Small Automatic Digital Machine" written on Assembler.

С открытым исходным кодом по лицензии GNU GENERAL PUBLIC LICENSE.

https://github.com/askfind/Emulator-Set ... /tree/main

.globl main

# Сообщение о проекте
.data
project:
.string "Ternary small digital computer 'Setun' on RISC-V\n"

#
# Macros
#

# Сброс машины
.macro reset
mv s0, zero
mv s1, zero
mv s2, zero
mv s3, zero
mv s4, zero
mv s5, zero
mv s6, zero
mv s7, zero
mv s8, zero
mv s9, zero
mv s10, zero
mv s11, zero
mv t0, zero
mv t1, zero
mv t2, zero
mv t3, zero
.end_macro
You do not have the required permissions to view the files attached to this post.
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)
User avatar
askfind
Devil
Posts: 800
Joined: 04 Jan 2016 09:15
Location: Russia, S.- Peterburg

Re: RISC-V и реализация функций работы с тритами

Post by askfind »

TODO
Emulator-Setun-1958-Assembler ver.0.02
- [Х] Добавлена операция AND на тритами.

Code: Select all

AND_t tests(...) :
 and_t(-1,-1)->-1
 and_t(-1,0)->-1
 and_t(-1,1)->-1
 and_t(0,-1)->-1
 and_t(0,0)->0
 and_t(0,1)->0
 and_t(1,-1)->-1
 and_t(1,0)->-1
 and_t(1,1)->1
You do not have the required permissions to view the files attached to this post.
Last edited by askfind on 04 Mar 2024 02:00, edited 2 times in total.
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)
User avatar
askfind
Devil
Posts: 800
Joined: 04 Jan 2016 09:15
Location: Russia, S.- Peterburg

Re: RISC-V и реализация функций работы с тритами

Post by askfind »

TODO
Emulator-Setun-1958-Assembler ver.0.03
-[X] FIX ERROR oper AND-t

Code: Select all

AND_t tests(...) :
 and_t(-1,-1)->-1
 and_t(-1,0)->-1
 and_t(-1,1)->-1
 and_t(0,-1)->-1
 and_t(0,0)->0
 and_t(0,1)->0
 and_t(1,-1)->-1
 and_t(1,0)->0
 and_t(1,1)->1
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)
User avatar
askfind
Devil
Posts: 800
Joined: 04 Jan 2016 09:15
Location: Russia, S.- Peterburg

Re: RISC-V и реализация функций работы с тритами

Post by askfind »

TODO
Emulator-Setun-1958-Assembler ver.0.04

## 3.2. Троичная операция OR для тритов

Code: Select all

OR_t tests(...) :
 or_t(-1,-1)->-1
 or_t(-1,0)->0
 or_t(-1,1)->1
 or_t(0,-1)->0
 or_t(0,0)->0
 or_t(0,1)->1
 or_t(1,-1)->1
 or_t(1,0)->1
 or_t(1,1)->1

### 3.3. Троичная операция XOR для тритов

Code: Select all

 XOR_t tests(...) :
 xor_t(-1,-1)->-1
 xor_t(-1,0)->0
 xor_t(-1,1)->1
 xor_t(0,-1)->0
 xor_t(0,0)->0
 xor_t(0,1)->0
 xor_t(1,-1)->1
 xor_t(1,0)->0
 xor_t(1,1)->-1
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)
User avatar
askfind
Devil
Posts: 800
Joined: 04 Jan 2016 09:15
Location: Russia, S.- Peterburg

Re: RISC-V и реализация функций работы с тритами

Post by askfind »

Emulator-Setun-1958-Assembler ver.0.05

### 3.4. Троичная операция NOT для тритов

Code: Select all

 NOT_t tests(...) :
 not_t(-1)->1
 not_t(0)->0
 not_t(1)->-1
Last edited by askfind on 04 Mar 2024 15:01, edited 1 time in total.
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)
User avatar
askfind
Devil
Posts: 800
Joined: 04 Jan 2016 09:15
Location: Russia, S.- Peterburg

Re: RISC-V и реализация функций работы с тритами

Post by askfind »

TODO
Emulator-Setun-1958-Assembler ver.0.06

### 3.5. Троичная операция SUM_HALF полусумматор для тритов

Code: Select all

 SUM_HALF_t tests(...) :
 sum_half_t(-1,-1)->1
 sum_half_t(-1,0)->-1
 sum_half_t(-1,1)->0
 sum_half_t(0,-1)->-1
 sum_half_t(0,0)->0
 sum_half_t(0,1)->1
 sum_half_t(1,-1)->0
 sum_half_t(1,0)->1
 sum_half_t(1,1)->-1
You do not have the required permissions to view the files attached to this post.
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)
User avatar
askfind
Devil
Posts: 800
Joined: 04 Jan 2016 09:15
Location: Russia, S.- Peterburg

Re: RISC-V и реализация функций работы с тритами

Post by askfind »

TODO
Emulator-Setun-1958-Assembler ver.0.07

### 3.6. Троичная операция SUM_t полный троичный сумматор для тритов

SUM_t_tests(...) :
sum_t(-1,-1,-1)->0
-1
sum_t(-1,-1,0)->0
0
sum_t(1,1,0)->-1
1
sum_t(1,1,1)->0
1
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)
User avatar
askfind
Devil
Posts: 800
Joined: 04 Jan 2016 09:15
Location: Russia, S.- Peterburg

Re: RISC-V и реализация функций работы с тритами

Post by askfind »

RISC-V Assembly Programmming
Robert Winkler
Version 0.8.5, 2024-01-29: Beta

Info
Copyright © 2021-2024 Robert Winkler
Licensed under Creative Commons.
This book is available online in both HTML and PDF form.

You can support the book and purchase the chapter exercise solutions here.
The repo for the book, where you can get the code referenced and report any errors (submit an issue or even a pull request) is here.

If you’re interested in contacting me regarding RISC-V tutoring or any other business request related to the book, you can reach me at books@robertwinkler.com.
You do not have the required permissions to view the files attached to this post.
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)
User avatar
askfind
Devil
Posts: 800
Joined: 04 Jan 2016 09:15
Location: Russia, S.- Peterburg

Re: RISC-V и реализация функций работы с тритами

Post by askfind »

TODO
Emulator-Setun-1958-Assembler ver.0.08

### 3.7. Операции над троичными числами TRS_t

TRS_t tests(...) :
a0=0xAAAA, a1=0xBBBB; clean_trs(a0,a1)->0 0
ts1=0x1, ts0=0x1,pos=0; get_trit(ts1,ts0,pos)->1
ts1=0x0, ts0=0x1,pos=0; get_trit(ts1,ts0,pos)->-1
ts1=0x0, ts0=0x0,pos=0; get_trit(ts1,ts0,pos)->0
ts1=0x4, ts0=0x4,pos=2; get_trit(ts1,ts0,pos)->1
ts1=0x0, ts0=0x4,pos=2; get_trit(ts1,ts0,pos)->-1
ts1=0x0, ts0=0x0,pos=2; get_trit(ts1,ts0,pos)->0
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)
User avatar
askfind
Devil
Posts: 800
Joined: 04 Jan 2016 09:15
Location: Russia, S.- Peterburg

Re: RISC-V и реализация функций работы с тритами

Post by askfind »

TODO
Emulator-Setun-1958-Assembler ver.0.09

### 3.7. Операции над троичными числами TRS_t

```
TRS_t tests(...) :
a0=0xAAAA, a1=0xBBBB; clean_trs(a0,a1)->0 0
ts1=0x1, ts0=0x1,pos=0; get_trit(ts1,ts0,pos)->1
ts1=0x0, ts0=0x1,pos=0; get_trit(ts1,ts0,pos)->-1
ts1=0x0, ts0=0x0,pos=0; get_trit(ts1,ts0,pos)->0
ts1=0x4, ts0=0x4,pos=2; get_trit(ts1,ts0,pos)->1
ts1=0x0, ts0=0x4,pos=2; get_trit(ts1,ts0,pos)->-1
ts1=0x0, ts0=0x0,pos=2; get_trit(ts1,ts0,pos)->0
ts1=0x0000, ts0=0x0000, pos=5, val=-1; set_trit(ts1,ts0,pos,val)->32 0
ts1=0x0000, ts0=0x0000, pos=5, val=0; set_trit(ts1,ts0,pos,val)->0 0
ts1=0x0000, ts0=0x0000, pos=5, val=+1; set_trit(ts1,ts0,pos,val)->32 32

```
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)
User avatar
askfind
Devil
Posts: 800
Joined: 04 Jan 2016 09:15
Location: Russia, S.- Peterburg

Re: RISC-V и реализация функций работы с тритами

Post by askfind »

RISC-V Instruction-Set
Erik Engheim <erik.engheim@ma.com>
You do not have the required permissions to view the files attached to this post.
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)