Binär addition

Planering och tankar kring eventuella framtida projekt.
Användarvisningsbild
jonnorberg
Inlägg: 850
Blev medlem: 19 mars 2008, 17:45:40
Ort: Årsta

Binär addition

Inlägg av jonnorberg »

Hej!
Jag skulle behöva en koppling som adderar 2 till ett statiskt 10-bitars ord. Det är en adress-kontroller som behöver splittas. Det var så länge sen jag gjorde booles algebra så jag vet inte ifall det är möjligt att enkelt ordna det på det viset. Har hitat 4-bitars adderare hos elfa. Kanske man kan koppla ihop några sånna. Eller måste det till en liten uC. Alltså vill jag ha nåt sånt här:
0101100000 ska oxå bli
0011100000

(En etta är dragen till jord och en 0 är lös tamp)
/Jon
Användarvisningsbild
digitaliz
Inlägg: 278
Blev medlem: 10 oktober 2003, 21:27:38
Ort: Stockholm, Sverige

Inlägg av digitaliz »

4-bits adderare ska funka bra... Koppla bara carry out till carry in på nästa räknare så kan du bygga på och addera ord av valfri längd.
Användarvisningsbild
jonnorberg
Inlägg: 850
Blev medlem: 19 mars 2008, 17:45:40
Ort: Årsta

Inlägg av jonnorberg »

Typ såhär?
Bild
/Jon
Användarvisningsbild
jonnorberg
Inlägg: 850
Blev medlem: 19 mars 2008, 17:45:40
Ort: Årsta

Inlägg av jonnorberg »

När detta var löst så kom jag ju på en följdfråga. Då originalkretsen har "lösa tampar" in eller draget mot gnd vid "etta" så måste ju en "lös tamp" vara odefenierbar? Men en 74283 bahöver ju hög eller låg. Eller kan 0 vara odefenierbar och 1=gnd här oxå? Vad jag gissar så kommer adressen från böjan att visa 1111111111 och inte 0000000000 vid användande av 74283:or. Medan en pinne på en avr dragen till jord är 1 och till vcc en 0:a.
Jag erkännar att jag nog lyckats snurra till det =)

Alltså:
I orignalkretsen så är en "etta" en pinne dragen mot gnd.
Vad ska min koppling ha IN, för att ge rätt signaler UT?
/Jon
Användarvisningsbild
Icecap
Inlägg: 26637
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

I digitallogik FÅR det inte finnas "lösa tampar"! Om du vill addera ihop ett par värden måste alla ingångar som i detta fall ska ge en addition med 2 ställas till det binära värde som motsvarar 2.

I detta fall ser din konstant alltså ut som följer: 0000 0000 0010

Carry In får du kolla i databladet, den ska vara inaktiv.
Användarvisningsbild
jonnorberg
Inlägg: 850
Blev medlem: 19 mars 2008, 17:45:40
Ort: Årsta

Inlägg av jonnorberg »

Då ingången i originalkretsen är dragen mot gnd när den är "aktiv". Så blir tex adressen 12 såhär:
1100111111
och aderar man 2 till det så ska utsignalen bli:
1000111111
Alltså borde ingången i adderaren se ut så här:
1100111111
och talet 2
1011111111
Men då blir ju allt knas för de tillsammas blir ju inte
1000111111 utan nåt overflow av nåt slag?
Eller hur?
Dock blir den direktkopplade utgången rätt.
/Jon
Användarvisningsbild
jonnorberg
Inlägg: 850
Blev medlem: 19 mars 2008, 17:45:40
Ort: Årsta

Inlägg av jonnorberg »

Åker jag på att ha inverterare på utgången (20st) och istället för 0:or för adress in ha 1:or?

/Jon
Senast redigerad av jonnorberg 20 april 2008, 16:25:14, redigerad totalt 1 gång.
Användarvisningsbild
jonnorberg
Inlägg: 850
Blev medlem: 19 mars 2008, 17:45:40
Ort: Årsta

Inlägg av jonnorberg »

Om man tar bort istället så kommer man rätt. Istället för att invertera alla utgångar så tar man bara bort 2 så borde det bli rätt.
1100111111
-0100000000
=1000111111
Fast finns det subtractors?

/Jon
Användarvisningsbild
Icecap
Inlägg: 26637
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Testa att lägga till -2 och se vilket resultat du får...

(-2 = 1111 1111 1111 1110)
Användarvisningsbild
jonnorberg
Inlägg: 850
Blev medlem: 19 mars 2008, 17:45:40
Ort: Årsta

Inlägg av jonnorberg »

Det där hängde jag inte med på. Allt skall göras i hårdvara.
/Jon
Användarvisningsbild
Icecap
Inlägg: 26637
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Och?

Vad är problemet?

Är det att du inte förstår att en "adder" kan addera negativa tal? Och har du ens testat med värdet jag gav?
Användarvisningsbild
jonnorberg
Inlägg: 850
Blev medlem: 19 mars 2008, 17:45:40
Ort: Årsta

Inlägg av jonnorberg »

Det är nog så att jag inte förstår att den kan addera negativa tal. Förklara gärna. Jag har ingen hårdvara at testa med än heller. Får ta det i veckan. Ville ju först veta ifall det var möjligt då jag frågade här.

/Jon
sodjan
EF Sponsor
Inlägg: 43249
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Det är nog så att jag inte förstår att den kan addera negativa tal.

Det handlar om att det för din "adder" alltid finns två "komplementära" tal,
(ett positivt och ett negativt).
Så en subtraktion med ett visst tal (t.ex 2) kan utryckas som en addition
av det komplementära talet (t.ex -2). D.v.s att det är samma sak att
subtrahera 2 som att addera -2.

Se även : http://en.wikipedia.org/wiki/Two%27s_complement

> Fast finns det subtractors?

Men 2's complement så behövs det bara en adder. Det är just det som är
finessen...
Användarvisningsbild
jonnorberg
Inlägg: 850
Blev medlem: 19 mars 2008, 17:45:40
Ort: Årsta

Inlägg av jonnorberg »

Just att addera -2 är jag med på, men hur skriver man -2 binärt?

/Jon
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4750
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Inlägg av Swech »

1111111101 = -2 10 bitars tal
Vid fler bitar fyll på med fler 1 i början....
Skriv svar