Minecraft Maps / Redstone Device

Another Minimalist Redstone Computer

  • 1,327 views, 2 today
  • 153 downloads, 0 today
  • 4
  • 2
  • 3
ctilas's Avatar ctilas
Level 7 : Apprentice Engineer
1
“Another Minimalist Redstone Computer” based on an old project on redpower,

Main specs,

4 bits ALU, (addition, subtraction, comparison)
conditionnal GOTO system, (goto if A<B, A>B, A=B, ALU overflow)
RAM COPY system
4 bits of RAM adress (max 16 blocks of 4 bits each)
31 lines of ROM: simple commands, (Add, subtract, increase counter value, display RAM number, stop clock, wait for user input) and more complex commands (GOTO, COPY RAM)

exemple of program the computer can do, (division)

1 ask user for value and place it in RAM adress A (1)
2 display RAM A value on SCREEN 0 (dividend)
3 ask user for value and place it in RAM adress B (2)
4 display RAM B value on SCREEN 1 (divisor)
5 if A>B, GOTO line 10
6 if A=B, GOTO line 10
7 display counter value on SCREEN 2 (quotient, in fact, the computer can not do that)
8 display RAM A value on SCREEN 3 (remainder)
9 stop main clock, work done.
10 add 1 to counter value
11 Do A-B (the result is RAM adress 0)
12 COPY RAM adress 0 in RAM adress A (1)
13 GOTO 5

---------

«Another Minimalist Redstone Computer» basé sur un ancien projet redpower,

Spécifications,

ALU 4 bits, (addition, soustraction, comparaison)
système de SAUT À LA LIGNE (GOTO) conditionnel, (saut si A<B, A>B, A=B, saturation ALU)
système de COPIE de la mémoire RAM (d'un bloc RAM à un autre)
4 bits d'adresse RAM (max 16 blocs de 4 bits chacun)
31lignes de ROM: commandes simples, (Addition, soustraction, incrément de la valeur du compteur,
afficher contenu adresse RAM, arrêt horloge, attente d'une entrée de l'utilisateur) et commandes plus complexes (GOTO, COPIE RAM)

exemple de programme que l'ordinateur peut effectuer, (division)

1 demande d'une valeur à l'utilisateur pour la stocker dans l'adresse RAM A (1)
2 afficher la valeur RAM A sur ÉCRAN 0 (dividende)
3 demande d'une valeur à l'utilisateur pour la stocker dans l'adresse RAM B (2)
4 afficher la valeur RAM B sur ÉCRAN 1 (diviseur)
5 si A>B, SAUT À LA LIGNE 10
6 si A=B, SAUT À LA LIGNE 10
7 afficher la valeur du compteur sur ÉCRAN 2 (quotient, en fait, l'ordinateur ne peut pas faire ça pour l'instant)
8 afficher la valeur RAM A sur ÉCRAN 3 (reste)
9 arrêt horloge, tâche accomplie.
10 ajouter 1 à la valeur du compteur
11 Calculer A-B (le résultat est placé dans l'adresse RAM 0)
12 COPIE adresse RAM 0 dans adresse RAM A (1)
13 SAUT À LA LIGNE 5
Progress100% complete
Tags

1 Update Logs

Update #1 may 2017 : by ctilas 05/26/2017 6:56:53 amMay 26th, 2017

NOW, YOU CAN DOWNLOAD IT !!!
I have added a 16*16 pixels display
*Fixed bug on the GOTO system (repeter delay)
*Fixed Huge Bug with the RAM COPY system (I have entierly rebuit it)
*Improved some delays on redstone lines dues to the changes in the GOTO system.
*(The clock speed still absolutly not optimized)
You can overclock it easily.
Please keep in mind this still a 4 bits prototype, I will build a 8 bits computer in the future.

MAINTENANT, VOUS POUVEZ LE TÉLÉCHARGER !!!
J'ai ajouté un écran 16*16 pixels
*Bug sur le système de GOTO corrigé (délais de répéteurs)
*Gros Bug sur le système de COPIE MÉMOIRE RAM corrigé (il a été entièrement reconstruit)
*amélioration de quelques délais sur certain fils de redstone grâce aux changements du système de GOTO.
*(La fréquence de l'horloge n'a pas été optimisée).
On peut le surcadencer facilement.
Merci de garder à l’esprit que ce n'est qu'un prototype d'ordinateur 4 bits, j'en construirai un plus puissant (8 bits) ultérieurement.

Create an account or sign in to comment.

1
05/26/2017 7:33 am
Level 6 : Apprentice Crafter
SparkezMC
SparkezMC's Avatar
Wow! This looks epic! :D
1
05/19/2016 6:34 pm
Level 1 : New Miner
Pissingfish
Pissingfish's Avatar
Something I want to point out:
Design wasn't thought-out in the first place. It seems you've been adding different parts on-the-go if you will, just generally knowing what you'll need. Looks generic at best.

On to some other stuff:
  • Vertical stacking is prefered (by me) to horizontal layout as far as form factor and latency goes. Why?
    • Shorter travel lengths, lower latency (lower response time).
    • Flexibility to expansion in the future if necessary.

  • Code could be much smaller if unnecessary operations were removed. A different placement (see design rant above) could also prove expandability should the need arise (this is true for the rest of the components for that matter).
  • Output bus could be 16 bit wide if you wish to tweak ALU functionality a little bit, and you'd basically have a 16 bit ready processing unit.
  • Greater/Equal To shouldn't be embedded (IMO), unless computational purposes or debug tasks require. But then it's an exception.
  • CLK startup/shutdown should be controlled by power on/off state input from the "turn on/off button" (again, IMO), with restart as a replacement for whatever the reason in the first place.You can have it run 24/7 if you just filter I/O real-time rather than shutting down every execution is finished.


=========================================================================

Those are my two cents, and even though I had much to say this is nonetheless an excellent project, especially since made from scratch. Hope you keep up the good work and show it one hundred percent complete.

P.S. What's the tickrate? :P
1
05/06/2016 2:07 am
Level 45 : Master Pixel Painter
oat_s
oat_s's Avatar
WOW
Looks epic
Planet Minecraft

Website

© 2010 - 2024
www.planetminecraft.com

Welcome