Forum: Mikrocontroller und Digitale Elektronik Simulation serielles 8-Bit Addierwerk mit Schieberegistern und Volladdierer


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Ralph S. (jjflash)


Lesenswert?

Einfach nur so gepostet, weil dieses in einer Unterrichtseinheit 
entstanden ist und evtl. das jemand auch zu Demonstrationszwecken 
gebrauchen kann.

Hier ging es um die Frage, wie ein Rechner überhaupt addieren kann 
(nicht muß, es gibt auch noch andere Addierwerke).

Ja, es ist Freitag und ich bin dennoch kein Troll und ich weiß, dass der 
Link monsterlang ist, er beinhaltet die komplette Simulation.

Zur Bedienung der Simulation: Bei den Sumanden können binär die zu 
addierenden Werte eingegeben werden, dannach werden mit einem Load die 
Werte in parallel-in / seriell-out Schieberegister geladen.

Danach müssen 8 Clocks erzeugt werden und am seriell-in / parallel-out 
Schieberegister steht das binäre Ergebnis an.

Im Beispiel hier wird 35+73 = 108 gerechnet.

Haken an der Geschichte ist,  es gibt kein Carry bei Überlauf.

Viel Spaß (wer es ausprobieren mag) und ein schönes Wochenende,

Ralph

https://www.falstad.com/circuit/circuitjs.html?ctz=CQAgjCAMB0l3BWcMBMcUHYMGZIA4UA2ATmIxAUgoqoQFMBaMMAKDEpDThGLBU8jZ+vflVEU2Cflyqlpg4cXH8kCFgHcB3PMULhdeEDr2QNW2SkNhieACw9LUM9bsOrN+2RPOPPDHpk-b01rQkNjfTDkfCcQg2jDQLA4Q1N2eTxZf05mYWyxajV2MXwqZIQA3OQKqE5atU00TJ4lAUJPVtNGyHaW+V7kjFEzNAHIIYFmweHuoT6BW0M5WP1sPQjQ8N0V6zQ3fVclVJGe+2nVvXOuydlCEsWeO5W0B917pc6T19aXq0hbKjXX7IAE3EGAk5zEQ5WyePhOdI5J7JUEoXbg2riBo5eHlSrIyA1IFgWE8eFo0nJFD2YmUyDUpFlek0lgASU41KZqMw-BRgKg0FUI3RfI5MVFQKaGJQnIxaQ4aNaRw5DOVBVowtJ0MVwnhxKVpLR2WIpOJxsNYGNjjNemVo081skYlwZ2ZnGwa2QDIKQsaVS8Ks8+RGMqDAVDCWeEeSMRQLsj8ukayWhoBslNdV9gf2caiapGHsubrjUi9LMa2FLVPsJeETyBlbrzrz9ZD4vG0kWTImQLTPFTYFtppDE1FMrwf1Bkon0vjEpYAFlOF3+zWEPCTTXOILF8uph3OOveQfpDvur07ad5pL2xMZe2pywAB76WwQCe84gIbBGPBIM6GAAgs+r4QF+5DWN+jxUABIAAEIgdYtg-uUZw2BBhLkLBACudAAPoAJYAHYgdSBBkuQRBanssEAMrYQAtgxdAADoAM4AGoAPYADY8QAhgAJoJBF0AATuJpGLEgKI-igCCgiieg4fhXHYQALmweCXAgrhhFYhC9PpdRWBgLBseAsJUBgVa2BMNniFQ6libhziLIYDngN+eieaYYleZ6-hWN5RhzEycAsAA5gF6xzOwnraTSTgAEqWTExkkul3q1KCSD8jAagADLgO0hiEDUg4PIQDLiAAZvxPFsXQ1CmMVg7NOVlxhFQ1VblQ9WNc1eUsG1GDwp14BjfwvV1BAA1NS1I2TaSE2WitNW1PNQ1OKN2SrVgegzXVDULcNbWZGVFUXSAR2bSd22teAdg9VdoK3XN92LRZJKgkMZR2fwf21E5Ll0M4lD2ED7BRED1zQx5ezsK4sNub9tkxL5qPWYjAIIxCIS4yAnmZXjOyExlhMo+dEyrXgNMbR9g2LSEFSk-DRNRKY0Xs3gcWs0YvQQv57NBV5US8+IMamEumxE3sgRA6e2LWIFiNfoDexw-EUPxBEWuljrMOa+Dnqiuz85tYZYYlRehrgCAW2LZbULZIOUJ2-1n3DWA2li384qlZG-CGGsS0+zUAbh0OW6M6dO1PaqrsEJ4HsO178eWkqrsYAafVp0zZ2TU8kf+OmMf53Hj2Wo4Jc16njuF4O2yRyQ0d1J7Bc7EoXJlN3+xwyFovxT5pYD4FVa6ZDo-g-8cv-fZxsEzOxMA0T09Lx5tkzlcbnbwe5sHmPRaKRDcoz66J+zyj7BIGgg7gIiwLMFWbpApA9-P5+puIlr39VsQptD5tj+HeKUn8ozikflUcBxJcQ+xrD9B+rhaRnHgTCM4VFniIL4AMdy4BMFwzwTgs4RCgEyzpryPgZRk4P3ltuIoOhlzcEVggbIsMjDPDfG3akttyzLl4XuMunCBE8PsIlYRYjehxgSoLAsMiayFjXjMd049OzMPXkw6yrhORUAlpw7QcxqRzD0b2YxhjkK8gISMCx+CpHYKsUuURN0ZxOImkrXc1JtjGU8YdGo7jHFSDKi4wJN0-H0I8RUHqwSnhuPCQE1o3iEAJLCSgHcjiZreIySktJnAJqZJqLE1Jah0kzkyaU7JagXxNHINpOSaIfzaWUsuEA3E+JCREuJSSL5KrB2SE9OyRgwA-hrDWdiT52K0QAMYAAtRIACNOmRQImxdSXSSq4CMMhJ62Q7BNIZAAB34mJBqPE6A8XYsRdiLEACOAA+diTUxKiT4uxNSmlukYHGBQL8T1sDEG+YYEZIB6JMX4kRQS7FgLdMIDZMkVhMjkCUBAIFIKGJgohWxBCcREb-F7ojKhXd8WIwobQiE3TkLkBIBAEk5ESD2CBTxLiQlEJvggDnKwthypGHfiAIFkzGWTIANakW-NNDZRASQ3Q9Ly5pqKwZAA

von Klaus R. (klara)


Lesenswert?

Hallo,
während meiner Ausbildung wurde uns eine CPU basierend auf Relaistechnik 
vorgeführt. Die konnte auch addieren. Das Geklappere war laut. Man sah 
tatsächlich wie die Bits liefen. Eigentlich ganz nett. Im Heinz Nixdorf 
Museum in Paderborn könnte solch eine Maschine noch zu finden sein.
mfg Klaus

: Bearbeitet durch User
von Ralph S. (jjflash)


Lesenswert?

... weil mir eine PN geschickt wurde habe ich die Simulation neu 
beschriftet, da nicht eindeutig war, dass an den Schieberegistern die 
Datenbits der Wertigkeit gespiegelt sind.

D.h Summand A0 hat am Schieberegister das Datenbit D7, A1 das Datenbit 
D6 usw.
Selbiges gilt für Summand B und die Summe.

Damit das eindeutig wird, habe ich die Wertigkeit der Bits an die 
Register geschrieben.

https://www.falstad.com/circuit/circuitjs.html?ctz=CQAgjCAMB0l3BWcMBMcUHYMGZIA4UA2ATmIxAUgoqoQFMBaMMAKDEpDThGLBU8jZ+vflVEU2Cflyqlpg4cXHiELAO4DueYoXA68IbbsjrNslAbDE8AFh4Wopq7fuXrdssafueGXTN8vDStCAyM9UOR8R2D9KIMAsDgDE3Z5PFk-TmZhLLEoCXYxfCokhH8c5HKClVM0DJ4lAUIPJpMNNBbG+S6kjFE6yF7IfoEGvoGOhW6BGwM5GL1sXXCQsJ1FqzRXPRclFMHh0atl5FH2sdlCYrmea8W0W50b+bbBp6bHy0gbKguv5C-S6Av6DIQ8PjZGweSGpKTZe5JIEoLYgmoFVQdSplCqIyDVf5gaEQ6REuxJFB2QnEil2FF4ymOACSnEppR+Ykw-CRfyg0CQmOyTR5rOiIv+9TRKDZaLhYlR+1ZjMV+VodTJJKFwlh6qaxGJKKy+qp6qNBrARochMtCSGHitkjEuHJkEZKGwp1p6LVWMhniVHjydWlgf8IfiD3DSWi7p+Ebh0mW8wNv1kxNVEg64cV7siKrqHt0Xvd8K9-2wpdddIrwnu5fhz04SbuoKzYpG0jm7POdVTPBTYF0xsjxw5rLw3yBEonUudspYAFlOF3+3SEH6DZx+Yvl+MO5x19z99Jt1Mujm7TMJe3RtL21OWAAPPQ2CAT7nEeETpDkgwAQSfF8IE-cgrAQbAWxAX8QAAIUAqwbAgspyWsUD8XIaCAFc6AAfQASwAO0AykCAhcgiBsYRtmggBlTCAFt6LoAAdABnAA1AB7AAbbiAEMABMBLwugACcxOIuYkCRCCUAQIEkV0LDcM4zCABc2DwIsEBcUJLEILo9M4QxHFY8BoSoDBSxsUYrPEKg1NE7CnDmAw7PAcDdHckxRI804-EsTzDHBdk4BYABzPyVnBdhTi0qlHAAJXM6IjKJVLGV5IEkF5GBVAAGXAFoDEIapB1uQg3QKAAzPjuNYuhqBMQrBwaUqi1CKhKrpGq6oapqWBajBIXa8Bhv4brjIgWr6sanLBrG4lRotJaqqoGb+vmoasmWrBdEm8QNrmxwWoyEqyrOkADt62aBtOoFltsLqqumvrjpMMyyUs7YiVs7ZeUc5zgkoOx+lKco3P+pwIZAMGPJcOGLi+2HrOibyXKBOH0sh1sUrc1Gcc2X4SpnbHYah07RkeqmXpAI6BuByIsZhgLHEi9hIjwGKYfigofI8pnIg5sIQqiEwlzWcnim4OGT0FE4vJ+z9+ER7wmaVzmNiR5WpYiQmkaCkVhfnFqDNDIrz03V7bq2orwX9Qd7c3da3oGsAtIF74xWKiN+AOU7qgdvBA6tunXdt93lSySOPGdsObZOsa9WjjA9Tj+mI78TIiyz1cpvjzbE4tBwHf6ZMepdhPmqKjYHZIId0-DzYlHZBSW52A3-KFoL0eB-zSx00H4QNuMsZslWoeCVyUe5ceZ6Jmd3KJUn9yR6eJk9s5JiitEihdB9gbjI2Qd1uEkDQQdwDSWZLGvstBkv5hS2IT1r+11-n89VfgxvaRJSf7ed5b7whRJCABDxsTuzpBqZgLhqTkigVCckFEIE0hQcvSwKC16k3Qevb+Es8DHD4KUAgCDthy00sQZcMtyEICyIjEy8leyX2HJSS2JoOg2HYbuNMHDlzcLYXYXm-wuFCK6O6OKXRyySOrP3QBhZ55skssPXsMsXBKOCoAvsXNOzgh0Q8RCftwSUhilg3spjxEwLMUuQRV0Zy2NGhQmxNgNhGUpK46oTiDwODcVIc6-gtyqBseULq9iQlXU8YEncckmi+NiZElA24bGTTcSkhJSTOCjVSdURxUTkkzlSQU9Jqhnz1HIFpWSKIIJaSUsuEAXFeKCWEmJCSz5BxWEMC48AhCqDB34HSOwAAHPiok6rcToNxNihE2LMQAI4AD42INVEiJXibFVIaTaYQDAQjCHdOiNoKgAyQB0UYnxAiAk2JwViD9McWxSjEObj9R57siFQzaYhcgJAIDLwgiQOwxzuKcUEvBV8EBU6WC4SsSAEBjkAGMgVwoANbET8cFWShBmDBVqYyU5TF4I1IoNYbpO0YVQW6eAAl2A7AIGJVAuw1xYUUpQAS10RLLB4BGmS6CNh4JYAgLSywGBOVXW5RSvAfKPTsrGuBUVTL3ZFT5XGQVY1GSMvJQqoQ8FtkCrpd8uVGqSq8q2SgKhKrBy0oNdBPgEqtksI6eVIc0pDXgAsNqnSEIqGDmFfYfpFKWjat4J6saWKlB+s1SytpcNeBep2eYcN+k+UepjWNPMzroK2rGtoYNFpSC+pdca7pKIc1c2Aum5lBLZUpvdoQCCYaXWsC2VkDI3IMhUIyD+OpeLzmXNYgBUp0ISpEGXD6yqVDrVuoHcQZ6-h1zPXHf6wtcl3RXWHXJRCq6F0RtRfCSqs6aZbsTaU2lM7MncDHS6zNRBi17sydgCAF6eXEVKn8tdBlX2Hs4M+4Oq7-AkCQI+ilrAgA

von Falk B. (falk)


Lesenswert?

Ist immer noch ein Fehler drin. Das FlipFlop für das Übertragsbit kriegt 
keinen Reset. Wenn das zufällig ne 1 gespeichert hat, rechnet die 
Schaltung nach dem Reset falsch. Und die Mischung aus Englisch und 
Deutsch macht die Sache nicht verständlicher. Entwerder carry_in/out 
oder Uebertrag_ein/aus, etc.

: Bearbeitet durch User
Beitrag #7743771 wurde von einem Moderator gelöscht.
von Ralph S. (jjflash)


Lesenswert?

Falk B. schrieb:
> Ist immer noch ein Fehler drin. Das FlipFlop für das Übertragsbit kriegt
> keinen Reset. Wenn das zufällig ne 1 gespeichert hat, rechnet die
> Schaltung nach dem Reset falsch.

Das ist korrekt, wurde in der Unterweisung aber darauf hingewiesen, dass 
dem so ist, dieses aber durch einen 9. Clockimpuls "behoben" werden 
kann, weil dann diese Leitung danach garantiert 0 ist (ich hatte 
schlicht die Möglichkeit in der Simulation nicht gefunden, das 
D-FlipFlop zurückzusetzen... nach genauerem Hinsehen gibt es diese 
Möglichkeit jetzt doch).

Ein größeres Manko war, dass es für die Summe kein Overflow-Flag gibt 
und somit nicht erkannt wird, wenn das Ergebnis größer als 255 ist.

Also habe ich das jetzt einmal auch korrigiert. Das Carry-Flag, 
Overflow-Flag, Übertrags-Zeichen (wie auch immer man das in der 
Simulation bezeichnen mag) hat bekanntlich die Wertigkeit 256 und habe 
das jetzt so auch hingeschrieben.

:-) und extra für Falk das ganze in deutsch beschriftet.

Die Taste "laden" resetet jetzt das D-FlipFlop (oder sollte ich 
schreiben "das D-FlipFlop wird zurückgesetzt?), und das gesamte 
Addierwerk hat jetzt auch ein Übertragsausgang (Carry-Flag).

Die Simulation rechnet jetzt beim Start 129 + 131 = 4 + Uebertrag_aus 
(Wertigkeit 256) = 260

https://www.falstad.com/circuit/circuitjs.html?ctz=CQAgjCAMB0l3BWcMBMcUHYMGZIA4UA2ATmIxAUgoqoQFMBaMMAKDEpDThGLBU8jZ+vflX5IEbBPy5VSMwcOKjO1SQHcB3PMULhdeEDr2QWm2TxSGwxPABZLh05pv3H+t2RNmPDr1rkMbxcDI119Qms4Jx8bSOR8AISY9gU8QL0UZmEgqFUJKTF8KjBIBEzs5HK8lQ0BdJ5lAUI-Judm1oUW5AxRHzRu0t76kshh9rQhRoU7Q3koWOJsPWMIw1X2mzR3Vz8rBfNIQbH+G2WevsOG3SLZnkIqCcg7m4EXtv7nuaa0O9K7R6fP7PIoNf6Aw5TEScMB2Px8BapGEPZAAmFNcE1NT9SqlapZFF44IwuE8BFZUmlFAOCawhxUhwE0bUhYASU41NGaJQmFOILyMAK5i2qLEaCiaIm4tFHLRmNM7DEIuUhh5LJVWNoONJ0KyTWhtP1pKyuWIpNppuNYFN+wteg1Az2KQ4KFw9MgLNd5wZmooOIR-jVflyUvVuSDyQOHJZpUSruekYV0k4yzmxoBcnNqi15h5TpT8Q1E2w3o9jOwyZ9xcrZZTyde1eEKNdhZRUsSQxkKGqnajnMzjLsYHt5v6vJlPLwEohHKnE7dMtMAFlOLMB5wEAHjZxoJIVzyeydZ1FhjJd59ug6jp0+9LezyO-zTAAPfRDowEfQIbAfpD0wwAIIsK+NjvsQCDkDY373FQ-4gAAQsBb4-nijJwBAeLkHBACudAAPp0AAlgAdkh1Kfrw5BEIQwjbHBADK2EALZMXQAA6ADOABqAD2AA2fEAIYACbCYRdAAE6SWRrrEMgpAphgSDMB6IA4fhvECSJYmSdJYB4Ho7BuJE1iEN0JmqNYKDECwHHgHCVBKacdjDE5AogAALhJuGxLMhhuew5xuaYEngN+ehBNY4VGFMoxwCwADmYXnHgUyBSs3SAgASvZiQWbCeUso8am0O5gosAAMuALSGIQPY1SANGMuAIAAGaCXxHF0NQphVcODR1YZkRUE12ZtR1XU9ZV4AYAig0zXNnp5O1nXdUgvUzaS83WltS1UCtk3rdN1q5NtWB6KNKgHWtCx9ektU9vdjV7eNq1TXdaLbfYI0vddU12XSjnbLCrnbMVXk+S4lAOL0JTlP5YOxPDICw2Fbio5sDko5WAL+cmmNoqjBUIzOxPY85iQY75eVzmTVN3cMX2M0tEB-UdUPxETyORQsSXsPEqWnMjBk0gsoX8-58QSzFKixsuawo9sFio2edRnBFwPgfwVMhJzmsC+Emxa4rJShDryWGfy0vysdZnBkNl7bvtE03Rtw5Qrk7vCNurMu1N+mGcjsamcCcZGOA2CsHd1T+PpMc+69h23eABD2yn6oJ2zyfWvqnsYEazXO29R19UEGQzSiZqF4nrvHb0cx5-sVdjVnbskPanvtzwTs11NITA1byhyLaSNBVL0XBaPEWVgg6P40jCZEy52uIy4fnk-Zrnz2vc4BevvaY7TR7W0emzRZiirupKC9X3Di+I+wSBoMO4BIr81hIqU2A0p8L-MJWSxDJIiNt6PgptSzjDHI+U8d5gFQI-smLICJ-6XBhMg-SjI6SvzcLSSkGCST0iID-YUlIiH2VpmQw+VlBj71PiwFc+lhjZBKKnV+SsdySH0nJfsJsNy5AxuHCYQ4RyDkdsQ1cYjVzXFHOYOwkjqTdBFn2ORDglFegyuI9RRhuhaMnuYEs08ZAZg3kI7gGA3A8MFso7QUxqRTCsUI+xti7BpUof0FxpwyEUkIZlehEiHAWQUQE-EHC-HUnCIEuwESQkoHPPuaQtU5zdn2PNVWYTygjSSRkxqMS4kbiaIEhABTcl7k4KNQJ5SSlhPmhU6oqTQn7gshUuc9TYmSFfOKcgBkfw8kjtovQg4QCaSEqJcSUkJJIWHDYIwUT9DWiMMmQZAAHQSEkOp8ToHxTiJFOJsQAI4AD5OJdQkuJASnEeLYQ8pMwgGBVF4EgngaZOhYKrhAIxFigliLCU4ohfuXJTbAzAVGLYJRgWMNOMCl89kSyNTIGFMx3BBkjLoKRECdhtjmPpHIuS5isJvIACqCQANbXI6QkmKPTCDPPOIMj5rFJkGT0EU6wDzyAPAgHBVgIFUoOBZSnOwSAOVqRTpwRlql+X6TAD+YVcE7CTKwBASV5j+CytFXgBVsLlUICFZATlorhwKoTMqogjU9Uiv0iAIQNzZoUFsNVJYZr9WWpaDc6ydrTI0SdRaqyGqQLUvtNM4cszlD8C5VYG5s8yRyX6sPMNorXX+t4NGhaP5Q0+qtSgBV2xeAxrubReNlrDUgSUnMINQQ5Lprgn6maOgU36W4FW0V8qeVZHrVYptlqs08ugrmlOl4eQZu5dVXI6RTgEAgOkP8bz6VfJ+RxICHS4S1VNeRCANE5LhpreEn6mRNyqvdXBRNG5XTPT3YK56m7RXWvJcmGie67mXqHYQMiRTd1lPNRujN26aLrtXYQKYX65VkTqjK-95lD2iu7WUvAQr-0RMg0WxYoDNagO3voFDYgVFsJnEEnD-jpjKMvD8HA9oPjmFI4RzA5wLLy2oxdJJlHWnng6RgMoZqZBBHZex9SeFBLYQ4v6TxL8kGeIaLSZBVg4beikyC8+sn0qLjIrNC6+xMAAcan0uCAAKbshAACUkzXgPCot-EapQRW4BACcs5GyOKcTwAweChEPKcQAqMyS6hJLEpYEAA

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.