Calculatrice 17bits (+ - *)

heealfear

Redstoner du dimanche
12 Octobre 2013
73
8
30
24
Sur ma chaise
Bonjour, bonsoir,

Je suis de retour, pour une création plutôt énorme en terme de taille, une calculatrice 17bits (donc vous pouvez entrez des nombres jusqu'à 99 999) qui a trois opération, addition (+), soustraction (-) et multiplication (*).
Le résultat est donc sous 34bits (soit plus d'un millard).
Voici quelques screens :

Interface :
1404406281-2014-07-03-18-47-58.png

L’écran :
1404406284-2014-07-03-18-48-03.png

Système redstone :
Afficheur :
1404406290-2014-07-03-18-48-32.png

Encodage Binaire :
1404406292-2014-07-03-18-48-48.png

Addition (en jaune):
1404406287-2014-07-03-18-49-05.png

Soustraction (en orange):
1404406292-2014-07-03-18-49-26.png

La multiplication :
1404406295-2014-07-03-18-49-38.png

Le décodeur BCD:
1404406295-2014-07-03-18-50-04.png
Donc pour récapituler le système :
- Afficheur 7 segments (en blanc)
- Encodage binaire (en vert)
- Addition (en jaune)
- Soustraction (en orange)
- Multiplication (en marron)
- Décodeur BCD (en rouge)

Un lien de la map pour les petits curieux : http://adf.ly/q3B76


Quelques règles à respecter :

• Il est préférable de charger le chunks (s'approcher) du système de la calculatrice avant de l'utiliser.
• Il est nécéssaire d'attendre 2 à 3 secondes après l'affichage d'un chiffre avant d'en mettre un autre
• En cas de bug de calcul (c'est possible, j'ai pas eu enormement de BetaTest), veuillez vous approchez du système rouge pendant quelques instants, si aucune amélioration n'est perçu, contacter moi et dîtes moi quel calcul bug, je m'en occuperais ;)
• Les très gros calculs peuvent mettre du temps, le calcul maximal (99'999 x 99'999) peut prendre jusqu'à 10 minutes
 
  • J'aime
Reactions: Aron

[GISED] Link

Torches, poudre et repeaters. What else ?
4 Mars 2012
341
76
140
29
VNSA, 2740 Moutier
vnsa.ch
• Les très gros calculs peuvent mettre du temps, le calcul maximal (99'999 x 99'999) peut prendre jusqu'à 10 minutes

mmh ... étrange. Il faut que utilise des full adder plus performant (avec une propagation du carry plus performante, regarde ça : grizdales-full-adder). Même avec mon système de multiplication séquentiel j'arrive à être plus rapide (alors que c'est 5x plus long qu'en combinatoire).

Ensuite pour l'encodage, tu as deux fois le même système. Il serait plus intelligent d'avoir uniquement un système BCD->binaire dont la sortie vient sur un démultiplexeur. Le démultiplexeur permet de choisir sur laquelle de ses sorties diriger la donnée de son entrée. Et pour chacune des sorties tu mets un registre histoire de pas perdre l'information. ça marche vu que tu entres une opérande après l'autre, il suffit juste de switcher la sortie du démultiplexeur quand tu entres la seconde opérande et le tour est joué.

Et pour le décodeur BCD, je cherche toujours qqch de fonctionnel et d'acceptable en 1.7 ... si jamais je trouve qqch (ou qqun trouve qqch), on t'en fera part (merci d'avance ^^ ).
 

heealfear

Redstoner du dimanche
12 Octobre 2013
73
8
30
24
Sur ma chaise
mmh ... étrange. Il faut que utilise des full adder plus performant (avec une propagation du carry plus performante, regarde ça : grizdales-full-adder). Même avec mon système de multiplication séquentiel j'arrive à être plus rapide (alors que c'est 5x plus long qu'en combinatoire).

C'est pas le calcul qui met du temps, mais le décodage, car comme tu peux le voir, le décodeur est assez ... énorme .... et donc il met pas mal de temps à décoder si y'a énormément de bit, car j'utilise l’algorithme de "Double Dabble". Et de plus, je pense que l'éloignement des chunks aide pas (mais ça j'en suis pas totalement sûr)