Last visit was: Fri Jul 19, 2024 5:29 am
It is currently Fri Jul 19, 2024 5:29 am



 [ 4 posts ] 
 16/32-bit serial stack CPU 
Author Message

Joined: Sat Mar 11, 2023 9:58 pm
Posts: 2
Hi,

I see lots of interesting and quite ambitious CPU and computer projects here, but seems like the serial CPUs are a bit underrepresented? To correct that, here is my serial CPU which uses MT8816 8*16 analog switches as core component. Beside all the expected operations (16/32 are supported, 64 bits would need minimal change), it can convert from/to BCD and do integer square roots!

The control unit is micro-code based, and is mostly generated by the microcode compiler I developed in C# (microcode compiler takes microcode RTL-like language and spits out VHDL source code of the hardware and microcode binaries).

https://hackaday.io/project/184782-bit-serial-cpu-based-on-crossbar-switch


Sat Mar 11, 2023 10:11 pm

Joined: Mon Oct 07, 2019 2:41 am
Posts: 619
[trimmed by moderator]

Good to see a new computer kicking around.
Ben.


Sun Mar 12, 2023 2:11 am

Joined: Wed Jan 09, 2013 6:54 pm
Posts: 1789
zpe wrote:
The control unit is micro-code based, and is mostly generated by the microcode compiler I developed in C# (microcode compiler takes microcode RTL-like language and spits out VHDL source code of the hardware and microcode binaries).

https://hackaday.io/project/184782-bit-serial-cpu-based-on-crossbar-switch


Welcome, zpe, that's a very nice project! Here's the diagram from your project page:
Image

And here's your video:
Calculating (isqrt(2000000))^2 = 1999396 using cross-bar switch serial CPU/calculator


Sun Mar 12, 2023 7:42 am

Joined: Sat Mar 11, 2023 9:58 pm
Posts: 2
BigEd wrote:
zpe wrote:
The control unit is micro-code based, and is mostly generated by the microcode compiler I developed in C# (microcode compiler takes microcode RTL-like language and spits out VHDL source code of the hardware and microcode binaries).

https://hackaday.io/project/184782-bit-serial-cpu-based-on-crossbar-switch


Welcome, zpe, that's a very nice project!

Thanks a lot! Right now it works like a "calculator" - executing one command at a time, and that command happens to be an ASCII character so it can be directly driven from any keyboard type device. However, the 8 registers could be repurposed as general registers one of which can be PC and it could execute code from a program store. In that case at least 2 registers should be "opened" to outside bus in parallel fashion (classic mem address and data registers). Maybe I will return and explore that a bit further. Performance could be increased by keeping 2 switch matrices - one which is used to drive the serial registers and ALU, while during that time the other is initialized with switch state for next operation, and then flipping them effectively every 16/32/n cycles. That way the time now spent turning on/off the switches in the matrix (during which time the CPU is idle) could be eliminated.


Sun Mar 12, 2023 4:55 pm
 [ 4 posts ] 

Who is online

Users browsing this forum: CCBot and 0 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software