propos signé additionneur Comment?

D

davyzhu

Guest
Salut à tous,

Je tiens à ajouter deux 6 bits signé chiffres.
Quelque chose comme 6'b10_0110, le MSB '1 'est négatif chiffres, other'00100 est une valeur absolue.
Ou quelque chose comme 6'b00_0110, le MSB '0 'est positif chiffres, other'00100 est une valeur absolue.

Comment concevoir un additionneur signé d'ajouter ces chiffres trop signé?
Maintenant, je le convertir en complément à 2, d'ajouter et le reconvertir en chiffres signés.
Mais le contrôle de débordement ne semble pas être une tâche facile.
BTW, Verilog-je utiliser.

Toute suggestion sera appréciée!
Cordialement,
Richard

 
Qu'est-ce que vous faites est dans la bonne direction et oui débordement est parfois difficile, mais vous devez décider de votre nombre de bits valides en estimant le max (min) les valeurs de vos résultats.

 
Salut

u d'abord vérifier le MSB est 1 ou 0, alors u ajouter les 5 bits restants si u obtenir 1 puis complément de deux et ajoutez 1 dans le MSB

 
1.Utilisation complément à 2 tout au long de la conception, il n'y a pas besoin de convertir en complément à 1.
2.Si deux données sont à la fois dans [-1 1), et le nombre de bits est n, n 1, puis utilisez additionneur peu, il n'y a pas de débordement.somme se trouve dans [-2 2),
3.n bits de n 1 bits cinversion: signe étendu.
4.Si vous forcez somme dans la région [-1,1), toujours utiliser additionneur n 1 bits, puis trouver si MSB et le droit bits MSB (c.-à-deuxième MSB) sont les mêmes (somme de contrôle à savoir [n 1] xor somme [n]), si même (la suite logique est 1'b0), pas de débordement, d'autre si la somme [n 1], la somme [n] est de 10, le débordement à somme positive se produire, si cette somme [n 1], la somme [n] est le 01, le débordement somme negtive (devenue positive).Ajouté après 12 minutes:Désolé, je fais une erreur,
somme [n 1], la somme [n] est de 10, il Meens la somme est negtive, mais si vous jetez MSB, il devient positive, le débordement se produit.
somme [n 1], la somme [n] est le 01, il Meens la somme est positive, mais si vous jetez MSB, il devient positive, le débordement se produit.

 
Si vous souhaitez ajouter deux 6 bits signé chiffres, puis les résultats seront 7 bits.Vous signez étendre la vente de titres négociables des deux numéros d'avoir un résultat de 7 bits.
Par exemple, si vous ajoutez le 6'b10_0110 (qui est -26 en complément à 2) et 6'b00_0110 (ce qui est 6), signe étendu (7'b1100110 7'b0000110), alors le résultat sera de 7 chiffres (1101100), qui est négatif (MSB est 1) et il est -20 (si vous prenez le complément à 2, il sera 20).Dans ce cas, aucun débordement existerait si vous n'avez pas prolonger le bits de signe.
Mais dans le cas de l'ajout des 6'b100110 deux nombres, puis un débordement se produit parce que le résultat est 1001100 qui est de 7 bits.Si vous prenez les 6 bits alors seulement, le MSB est 0 qui signifie positive et vous avez un résultat erroné.
Si vous vous inscrivez prolonger les deux bits 7'b1100110 alors le résultat sera normalement 8'b11001100 mais le 8ème bit peut être ignoré, car le bit 7e celui qui montre si le nombre est positif ou négatif.
Le plus grand nombre négatif de 6 chiffres est -32.Si vous l'ajoutez à lui-même donnera -64 et le bit 7e montrer ce qui est négatif

 
MSB vérifier d'abord si son '1 'alors prendre en complément à deux et ajoutez les morceaux restants avec un nombre d'autres négliger MSB' s.si u se réaliser en tant que «1» puis prendre le complément à deux et ajoutez '1 'avec le MSB

 
Salut davyzhu,

Pour mon avis, le plus petit est le bit de contrôle, les bits restant sont évalués bits.

Ne pensez pas trop complexe.

Good Luck

 

Welcome to EDABoard.com

Sponsor

Back
Top