Akela CPU has been written in SystemVerilog and has less than 200 lines.

Akela 92cd796ca4 Edited Makefile 19 hours ago
archive 80dbe484df I have copied a string from tape 1 to tape 2 20 hours ago
doc 9396962b18 Edited docs 1 day ago
COPYING e946047aa1 Added GNU GPL 3 License 1 month ago
CREDITS 87c0627741 System is working normally ; Instructions BEQ, BGT and BLT are not working ; I think it is a bug in iverilog 1 day ago
Makefile 92cd796ca4 Edited Makefile 19 hours ago
README.md 238d1fd6d1 Edited README.md 2 weeks ago
alg0.vh 0f2e8cab62 Experimental program runs successfully 2 weeks ago
bcd.svh 87c0627741 System is working normally ; Instructions BEQ, BGT and BLT are not working ; I think it is a bug in iverilog 1 day ago
bin2bcd.svh 87c0627741 System is working normally ; Instructions BEQ, BGT and BLT are not working ; I think it is a bug in iverilog 1 day ago
copy.vh 80dbe484df I have copied a string from tape 1 to tape 2 20 hours ago
ctg.img db2fcff1ee Added ctg command (0x4 : 0x4 0x84) 2 weeks ago
fpu.svh 3b80ce060e Edited Makefile 2 weeks ago
log.txt 80dbe484df I have copied a string from tape 1 to tape 2 20 hours ago
pantherauncia.sv 80dbe484df I have copied a string from tape 1 to tape 2 20 hours ago
pc.sv 80dbe484df I have copied a string from tape 1 to tape 2 20 hours ago
ptar 80dbe484df I have copied a string from tape 1 to tape 2 20 hours ago
ptar.bak 87c0627741 System is working normally ; Instructions BEQ, BGT and BLT are not working ; I think it is a bug in iverilog 1 day ago
sin.img fead518c76 sin 90 (0x4 : 0x1 -> 90) returns correct number. 2 weeks ago
storag.svh 80dbe484df I have copied a string from tape 1 to tape 2 20 hours ago
tape.img 87c0627741 System is working normally ; Instructions BEQ, BGT and BLT are not working ; I think it is a bug in iverilog 1 day ago
tape.svh 87c0627741 System is working normally ; Instructions BEQ, BGT and BLT are not working ; I think it is a bug in iverilog 1 day ago
tape2.img 80dbe484df I have copied a string from tape 1 to tape 2 20 hours ago
tg.img 3beb93bc3c tg 90 (0x4 : 0x3) generates an error 3 weeks ago
unbcd.svh 0265b6bcf6 Edited Makefile; I decided to write a plugin for Emacs 1 day ago

README.md

Акела-64 (Panthera uncia)

Это процессор, который работает по принципу: "чем меньше, тем больше", что значит: нужно иметь наибольший функционал с наименьшим количеством команд.

Все вещи, которые не являются обязательными, делаются внешними устройствами, предоставляющими соответствующие интерфейсы. Хоть чайник к нему подключите! Если сделано все верно, система заработает. Демонстрация находится в файле "bcd.svh". Конвертёр BCD-чисел в обычные наглядно это демонстрирует. Кстати, это его единственное назначение.

Также "Panthera uncia" умеет вычислять тригонометрические функции: синус, косинус и тангенс. Математический сопроцессор возвращает всегда двоично-десятичные числа. Младшие 4 знака всегда являются дробной частью, т. к. используются Четырёхзначные Таблицы Брадиса и формула:

cos x = sin (90-x)

Разрядность процессора: 64 бит. Размер команды - 10 байт.

Регистры

"Panthera uncia" имеет 16 регистров общего назначения, 4 регистра для работы с внутренней ОЗУ, 3 регистра и флаги для работы с шиной. Все регистры (разумеется, кроме флагов) имеют 32 бита. Флаги используется чтобы указать на операцию (чтение или запись) и на готовность данных для получения устройством или на то, что процессор "желает" читать данные (они к этому должны быть готовы), и поэтому дает устройству разрешение на передачу ему данных.

Истроия процессора

"Panthera uncia" раньше звался по-другому, но сейчас он а) стал 64-битным, б) начал поддерживать альтернативный способ ввода-вывода. И поэтому он был переименован.