Wat is een 2-bit full-adder waarheidstabel?


Beste antwoord

A Truth Tables is een tabel die u de uitvoer geeft van een Booleaanse functie voor elke mogelijke combinatie van ingangen. Een volledige opteller is een Booleaanse functie (of een stuk hardware dat deze implementeert) die gegeven twee 2-bits gehele getallen geeft u de som van die gehele getallen inclusief overdracht. (Een halve opteller voegt alleen de cijfers toe, maar negeert de overdracht). Als je twee 2-bits gehele getallen als invoer hebt, zijn er 16 mogelijke invoer, dus je tabel heeft 16 rijen. Hier ziet u hoe het eruit kan zien als uw invoer a en b is met bits de uitvoer is xabx 00 00 000 00 01001 00 10 010 00 1 1011 01 00001 01 01010 01 10 011 01 11 100 11 00011 10 01 011 10 10100 10 11101 11 00011 11 01100 11 10101 11 11110

Antwoord

Het eenvoudige antwoord is “wat de ontwerper het ook wil”.

Toen ik eind jaren zeventig met computerontwerp begon, had ik een achtergrond in wiskunde en, in mindere mate, in computerprogrammering. Een deel van het vroege werk dat ik deed, betrof het ontwerpen en implementeren van instructiesets, en in het bijzonder van de rekenkundige bewerkingen. Dit alles vereiste dat ik een begrip moest opbouwen van computerrekenen, en vanwege de achtergrond deed ik het vanuit een enigszins abstract, wiskundig standpunt. Dit was in tegenstelling tot wat was opgemaakt in veel elektronica- en computerontwerphandboeken waarin functies (bijv. adders) en hun implementatie werden uiteengezet, maar niet altijd motiveerde.

De motivatie ion voor het implementeren van een opteller is om twee sets bits (“woorden”) te nemen, die getallen vertegenwoordigen, en om een ​​uitvoer te produceren die de som van die bits vertegenwoordigt. Er zijn drie belangrijke vragen die u hier moet stellen. Ten eerste, wat zijn de cijfers die we proberen weer te geven. Ten tweede, hoe worden deze getallen weergegeven als bits. En ten derde, wat moet er gebeuren als de som van de twee getallen niet kan worden weergegeven als een set bits.

Een veel voorkomende situatie (N-bit, little endian, unsigned integer) is dat een N-bit-woord wordt gebruikt om de gehele getallen [0,2^N-1], weer te geven en het woord B[N-1]...B[0] vertegenwoordigt de waarde ΣB[i]2^i: i in [0,N-1]. De derde vraag is een probleem – de som van de twee invoer kan in het bereik [0,2*(2^N-1)] liggen en er zijn dus resultaten die niet kunnen worden weergegeven.

A eenvoudige tekstboekimplementatie van een “N-bit adder” bouwt het op van N “1-bit volledige adders”. Naast de 2 sets van N operandbits, is er een carry-in bit (gedwongen tot nul) en een carry-out bit. Als het wiskundige resultaat van de optelling kan worden weergegeven, dan zijn de N-bits van het resultaat van de opteller de juiste weergave van het resultaat en is de uitvoering 0. Als, aan de andere kant, het wiskundige resultaat van de optelling kan niet worden weergegeven, dan zijn de N-bits van het resultaat van de opteller de juiste weergave van het resultaat modulo 2 ^ N, en de uitvoering is 1. Samenvattend levert deze opteller altijd het juiste resultaat op modulo 2 ^ N en een uitvoering geven aan dat het juiste resultaat niet kan worden weergegeven. Sommige computersystemen zullen dit als een fout willen behandelen, het misschien opnemen in een vlag, of een uitzondering veroorzaken.

Een andere veel voorkomende situatie (N-bit, little endian, ondertekend twee-complement geheel getal) is dat een N-bit-woord wordt gebruikt om de gehele getallen [-2^(N-1),2^(N-1)-1], weer te geven en het woord B[N-1]...B[0] vertegenwoordigt de waarde -B[N-1]*2^N + ΣB[i]2^i: i in [0,N-1]*. Nogmaals, er zijn resultaten die niet kunnen worden weergegeven. De eerder beschreven opteller leverde het juiste resultaat op voor alle representeerbare resultaten (daarom wordt rekenkunde met twee complementen gebruikt). De uitvoering geeft echter niet aan of het resultaat representatief is. (Beschouw -1 + 1 = 0 wat een carry-out oplevert en 0 + 0 = 0 wat dat niet doet). Voor twee-complement is de voorwaarde die een niet-representatief resultaat vertegenwoordigt (gewoonlijk “overloop” genoemd) dat de tekenbit (meest significante bit) van het resultaat “onverwacht” is – dat wil zeggen dat de som van twee negatieve getallen positief lijkt te zijn, of de som van twee positieve getallen lijkt negatief te zijn (oefen voor de lezer om te laten zien dat de som van twee aantal verschillende tekens altijd kan worden weergegeven).

Sommige andere voorstellingen kunnen mogelijk dezelfde optellers gebruiken als ondertekende en niet-ondertekende gehele getallen. Voor fractionele representaties waarbij de waarde van een woord de waarde van het woord is, behandeld als een geheel getal, gedeeld door een macht van twee, produceert de opteller het juiste resultaat wanneer de waarde representeerbaar is. In systemen die deze representaties gebruiken, is het soms echter het gewenste gedrag dat de resultaten ‘verzadigen’ – dat wil zeggen dat het resultaat buiten het bereik valt, de som de meest positieve of de meest negatieve waarde is, al naar gelang het geval. Andere systemen 2 een van de waarden (typisch 10… 0) voor gebruik als foutwaarde die zich vervolgens door verdere bewerkingen verspreidt. In dit geval is een speciale opteller nodig.

* Deze formulering maakt expliciet de twee-complementvorm – de ondertekende waarde van het woord is de niet-ondertekende waarde van het woord minus 2 ^ N maal het bovenste bit (tekenbit). Op equivalente wijze kan de waarde worden geschreven -B[N-1]*2^(N-1) + ΣB[i]2^i: i in [0,N-2] die overeenkomt met de bovenste bit die 0 of -1 vertegenwoordigt in plaats van 0 of +1.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *