aboutsummaryrefslogtreecommitdiff
path: root/semestre 3/architecture des ordinateurs
diff options
context:
space:
mode:
Diffstat (limited to 'semestre 3/architecture des ordinateurs')
-rw-r--r--semestre 3/architecture des ordinateurs/3- Réalisation physique d'un ordinateur.md34
-rw-r--r--semestre 3/architecture des ordinateurs/td/25-11-26.md105
-rw-r--r--semestre 3/architecture des ordinateurs/tme/tme8/tme.circ516
3 files changed, 654 insertions, 1 deletions
diff --git a/semestre 3/architecture des ordinateurs/3- Réalisation physique d'un ordinateur.md b/semestre 3/architecture des ordinateurs/3- Réalisation physique d'un ordinateur.md
index 16fbc94..00d81f0 100644
--- a/semestre 3/architecture des ordinateurs/3- Réalisation physique d'un ordinateur.md
+++ b/semestre 3/architecture des ordinateurs/3- Réalisation physique d'un ordinateur.md
@@ -54,4 +54,36 @@ Formellement, on a : $\text{mux2}(a,b,c) = a.\bar c+b.c$
**rattraper fin cours sur les circuits logiques**
Décodeur converti une entrée $n$ bits en sortie $p$ bits
-|> permet de déterminer les adresses, les champs suivants... \ No newline at end of file
+|> permet de déterminer les adresses, les champs suivants...
+
+**Rattraper sur les autres classes de fonction**
+
+Horloge est la référence temporelle permettant d'ordonner les choses
+|> signal qui oscille -> passe de 0 à 1 à 0 d'une manière continue en suivant des caractéristiques bien définies
+|> permet d'exécuter des instructions en même temps ou à des instants différents
+|> cycle est tout ce qui se passe entre deux fronts montant (i.e. contient un 1 et un 0)
+|> 98% des circuits numériques sont synchrones (i.e. utilisent au moins une horloge)
+-> comment faire en sorte que le signal soit assez fort partout ?
+|> besoin d'avoir un temps de setup (temps que le front monte) faible et un hold plus long (temps que le front reste)
+
+Les éléments avec boucle sont soit stabilisant, soit oscillant
+|> on utilise les éléments avec boucle qui sont stabilisants pour mémoriser
+-> structures stables changent d'état en fonction d'une entrée
+|> structure bistable est une boucle avec deux inverseurs
+
+Éléments mémorisant seront dans une zone appelée "bascules"
+|> contiennent les éléments bistables qui est commandable
+
+**voir les diapo pour les éléments à bascule**
+
+Les registres dans le processeur sont représentés par des bancs
+|> est un ensemble de bascule D (avec en plus une commande d'écriture) de 1 bits
+|> besoin d'être sur la même horloge et avec la même commande d'écriture
+
+**voir le diapo pour le schéma**
+
+Comment on met les bonnes commandes au bon moment ?
+|> possible grâce à un automate -> est la partie contrôle
+(avant, on était dans la partie donnée)
+
+**voir le diapo pour la liste des transferts élémentaires et le déroulement de la lecture d'un programme**
diff --git a/semestre 3/architecture des ordinateurs/td/25-11-26.md b/semestre 3/architecture des ordinateurs/td/25-11-26.md
new file mode 100644
index 0000000..e72f90a
--- /dev/null
+++ b/semestre 3/architecture des ordinateurs/td/25-11-26.md
@@ -0,0 +1,105 @@
+---
+tags:
+ - sorbonne
+ - in0ormatique
+ - architecture-des-ordinateurs
+ - td
+semestre: 3
+---
+TME sont encore moins bons que les partiels
+|> rendu semaine prochaine
+
+---
+
+| $a$ | $b$ | $c$ | $\bar b.a.c$ | $s$ |
+| --- | --- | --- | ------------ | --- |
+| 1 | 1 | 1 | 0 | 1 |
+| 1 | 1 | 0 | 0 | 1 |
+| 1 | 0 | 1 | 1 | 1 |
+| 1 | 0 | 0 | 0 | 0 |
+| 0 | 1 | 1 | 0 | 1 |
+| 0 | 1 | 0 | 0 | 1 |
+| 0 | 0 | 1 | 0 | 0 |
+| 0 | 0 | 0 | 0 | 0 |
+$b+\bar b.a.c = (b+\bar b).(b+a.c) = b+a.c$
+
+$(\bar a.\bar b.\bar c)+(\bar a.b.\bar c)+(\bar a.b.c)+(a.b.c)$
+
+| $a$ | $b$ | $c$ | $b+a.c$ | $(a+b).(a+c)$ |
+| --- | --- | --- | ------- | ------------- |
+| 0 | 0 | 0 | 0 | 0 |
+| 0 | 0 | 1 | 0 | 0 |
+| 0 | 1 | 0 | 0 | 0 |
+| 0 | 1 | 1 | 1 | 1 |
+| 1 | 0 | 0 | 0 | 1 |
+| 1 | 0 | 1 | 1 | 1 |
+| 1 | 1 | 0 | 1 | 1 |
+| 1 | 1 | 1 | 1 | 1 |
+
+| $a$ | $b$ | $\mathrm{xor}(a,b)$ |
+| --- | --- | ------------------- |
+| 0 | 0 | 0 |
+| 0 | 1 | 1 |
+| 1 | 0 | 1 |
+| 1 | 1 | 0 |
+$(\bar a.b)+(a.\bar b)$
+
+$\mathrm{mux2}(a,b,c) = a.\bar c+b.c$
+
+| $a$ | $b$ | $c$ | $\mathrm{mux2}(a,b,c)$ |
+| --- | --- | --- | ---------------------- |
+| 0 | 0 | 0 | 0 |
+| 0 | 0 | 1 | 0 |
+| 0 | 1 | 0 | 0 |
+| 0 | 1 | 1 | 1 |
+| 1 | 0 | 0 | 1 |
+| 1 | 0 | 1 | 0 |
+| 1 | 1 | 0 | 1 |
+| 1 | 1 | 1 | 1 |
+$(\bar a.b.c)+(a.\bar b.\bar c)+(a.b.\bar c)+(a.b.c)$
+
+3 entrées ($u_1$ et $u_2$, $c_{in}$)
+2 sorties ($s$, $c_{out}$)
+
+| $u_1$ | $u_2$ | $c_{in}$ | $s$ | $c_{out}$ |
+| ----- | ----- | -------- | --- | --------- |
+| 0 | 0 | 0 | 0 | 0 |
+| 0 | 0 | 1 | 1 | 0 |
+| 0 | 1 | 0 | 1 | 0 |
+| 0 | 1 | 1 | 0 | 1 |
+| 1 | 0 | 0 | 1 | 0 |
+| 1 | 0 | 1 | 0 | 1 |
+| 1 | 1 | 1 | 1 | 1 |
+| 1 | 1 | 0 | 0 | 1 |
+$s=(\bar u_1.\bar u_2.c_{in})+(\bar u_1.u_2.\bar c_{in})+(u_1.\bar u_2.\bar c_{in})+(u_1.u_2.c_{in})=u_1\oplus u_2\oplus c_{in}$ où $\oplus$ est $\mathrm{xor}$ (à refaire)
+$c_{out}=(\bar u_1.u_2.c_{in})+(u_1.\bar u_2.c_{in})+(u_1.u_2.c_{in})+(u_1.u_2.\bar c_{in})=a.b+a.c_{in}+b.c_{in}=c_{in}.(a\oplus b)+a.b$ (à refaire)
+| $i_3$ | $i_2$ | $i_1$ | $i_0$ | $a$ | $b$ | $c$ | $d$ | $e$ | $f$ | $g$ |
+| ----- | ----- | ----- | ----- | --- | --- | --- | --- | --- | --- | --- |
+| 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | |
+| 0 | 0 | 0 | 1 | | 1 | 1 | | | | |
+| 0 | 0 | 1 | 0 | 1 | 1 | | 1 | 1 | | 1 |
+| 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | | | 1 |
+| 0 | 1 | 0 | 0 | | 1 | 1 | | | 1 | 1 |
+| 0 | 1 | 0 | 1 | 1 | | 1 | 1 | | 1 | 1 |
+| 0 | 1 | 1 | 0 | | | 1 | 1 | 1 | 1 | 1 |
+| 0 | 1 | 1 | 1 | 1 | 1 | 1 | | | | |
+| 1 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
+| 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | | 1 | 1 |
+$b=\overline{\bar i_3.i_2.\bar i_1.i_0}.\overline{\bar i_3.i_2.i_1.\bar i_0} = i_3+\bar a_2+\overline{a_1\oplus a_0}$ (à refaire)
+$c=\overline{\bar i_3.\bar i_2.i_1.\bar i_0}$
+
+$C_{out,n-1} \neq C_{out,n-2}$
+
+| $C_{out,n-1}$ | $C_{out,n-2}$ | v |
+| ------------- | ------------- | --- |
+| 0 | 0 | 0 |
+| 0 | 1 | 1 |
+| 1 | 0 | 1 |
+| 1 | 1 | 0 |
+
+| $v$ | $i$ | $r$ |
+| --- | --- | --- |
+| 0 | 0 | 0 |
+| 0 | 1 | 1 |
+| 1 | 0 | 1 |
+| 1 | 1 | 0 |
diff --git a/semestre 3/architecture des ordinateurs/tme/tme8/tme.circ b/semestre 3/architecture des ordinateurs/tme/tme8/tme.circ
new file mode 100644
index 0000000..5b005ee
--- /dev/null
+++ b/semestre 3/architecture des ordinateurs/tme/tme8/tme.circ
@@ -0,0 +1,516 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<project source="4.0.0" version="1.0">
+ This file is intended to be loaded by Logisim-evolution v4.0.0(https://github.com/logisim-evolution/).
+
+ <lib desc="#Wiring" name="0">
+ <tool name="Pin">
+ <a name="appearance" val="classic"/>
+ </tool>
+ </lib>
+ <lib desc="#Gates" name="1"/>
+ <lib desc="#Plexers" name="2"/>
+ <lib desc="#Arithmetic" name="3"/>
+ <lib desc="#Memory" name="4"/>
+ <lib desc="#I/O" name="5"/>
+ <lib desc="#TTL" name="6"/>
+ <lib desc="#TCL" name="7"/>
+ <lib desc="#Base" name="8"/>
+ <lib desc="#BFH-Praktika" name="9"/>
+ <lib desc="#Input/Output-Extra" name="10"/>
+ <lib desc="#Soc" name="11"/>
+ <main name="main"/>
+ <options>
+ <a name="gateUndefined" val="ignore"/>
+ <a name="simlimit" val="1000"/>
+ <a name="simrand" val="0"/>
+ </options>
+ <mappings>
+ <tool lib="8" map="Button2" name="Poke Tool"/>
+ <tool lib="8" map="Button3" name="Menu Tool"/>
+ <tool lib="8" map="Ctrl Button1" name="Menu Tool"/>
+ </mappings>
+ <toolbar>
+ <tool lib="8" name="Poke Tool"/>
+ <tool lib="8" name="Edit Tool"/>
+ <tool lib="8" name="Wiring Tool"/>
+ <tool lib="8" name="Text Tool"/>
+ <sep/>
+ <tool lib="0" name="Pin"/>
+ <tool lib="0" name="Pin">
+ <a name="facing" val="west"/>
+ <a name="type" val="output"/>
+ </tool>
+ <sep/>
+ <tool lib="1" name="NOT Gate"/>
+ <tool lib="1" name="AND Gate"/>
+ <tool lib="1" name="OR Gate"/>
+ <tool lib="1" name="XOR Gate"/>
+ <tool lib="1" name="NAND Gate"/>
+ <tool lib="1" name="NOR Gate"/>
+ <sep/>
+ <tool lib="4" name="D Flip-Flop"/>
+ <tool lib="4" name="Register"/>
+ </toolbar>
+ <circuit name="main">
+ <a name="appearance" val="logisim_evolution"/>
+ <a name="circuit" val="main"/>
+ <a name="circuitnamedboxfixedsize" val="true"/>
+ <a name="simulationFrequency" val="1.0"/>
+ <comp lib="0" loc="(260,480)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="label" val="b"/>
+ </comp>
+ <comp lib="0" loc="(270,340)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="label" val="a"/>
+ </comp>
+ <comp lib="0" loc="(650,400)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="west"/>
+ <a name="type" val="output"/>
+ </comp>
+ <comp lib="1" loc="(340,480)" name="NOT Gate"/>
+ <comp lib="1" loc="(350,330)" name="NOT Gate"/>
+ <comp lib="1" loc="(410,350)" name="AND Gate"/>
+ <comp lib="1" loc="(410,460)" name="AND Gate"/>
+ <comp lib="1" loc="(550,400)" name="OR Gate"/>
+ <comp lib="8" loc="(510,310)" name="Text">
+ <a name="text" val="mon_xor"/>
+ </comp>
+ <wire from="(260,480)" to="(290,480)"/>
+ <wire from="(270,340)" to="(280,340)"/>
+ <wire from="(280,340)" to="(280,440)"/>
+ <wire from="(280,340)" to="(320,340)"/>
+ <wire from="(280,440)" to="(360,440)"/>
+ <wire from="(290,370)" to="(290,480)"/>
+ <wire from="(290,370)" to="(360,370)"/>
+ <wire from="(290,480)" to="(310,480)"/>
+ <wire from="(320,330)" to="(320,340)"/>
+ <wire from="(340,480)" to="(360,480)"/>
+ <wire from="(350,330)" to="(360,330)"/>
+ <wire from="(410,350)" to="(500,350)"/>
+ <wire from="(410,420)" to="(410,460)"/>
+ <wire from="(410,420)" to="(500,420)"/>
+ <wire from="(500,350)" to="(500,380)"/>
+ <wire from="(550,400)" to="(650,400)"/>
+ </circuit>
+ <circuit name="mux2">
+ <a name="appearance" val="logisim_evolution"/>
+ <a name="circuit" val="mux2"/>
+ <a name="circuitnamedboxfixedsize" val="true"/>
+ <a name="simulationFrequency" val="1.0"/>
+ <comp lib="0" loc="(250,80)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="south"/>
+ <a name="label" val="i"/>
+ </comp>
+ <comp lib="0" loc="(460,250)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="west"/>
+ <a name="type" val="output"/>
+ </comp>
+ <comp lib="0" loc="(90,200)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="label" val="a"/>
+ </comp>
+ <comp lib="0" loc="(90,310)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="label" val="b"/>
+ </comp>
+ <comp lib="1" loc="(150,160)" name="NOT Gate"/>
+ <comp lib="1" loc="(210,180)" name="AND Gate"/>
+ <comp lib="1" loc="(210,290)" name="AND Gate"/>
+ <comp lib="1" loc="(350,240)" name="OR Gate"/>
+ <wire from="(100,120)" to="(100,160)"/>
+ <wire from="(100,120)" to="(250,120)"/>
+ <wire from="(100,160)" to="(100,270)"/>
+ <wire from="(100,160)" to="(120,160)"/>
+ <wire from="(100,270)" to="(160,270)"/>
+ <wire from="(150,160)" to="(160,160)"/>
+ <wire from="(210,180)" to="(300,180)"/>
+ <wire from="(210,290)" to="(300,290)"/>
+ <wire from="(250,80)" to="(250,120)"/>
+ <wire from="(300,180)" to="(300,220)"/>
+ <wire from="(300,260)" to="(300,290)"/>
+ <wire from="(350,240)" to="(460,240)"/>
+ <wire from="(460,240)" to="(460,250)"/>
+ <wire from="(90,200)" to="(160,200)"/>
+ <wire from="(90,310)" to="(160,310)"/>
+ </circuit>
+ <circuit name="mux4bits">
+ <a name="appearance" val="logisim_evolution"/>
+ <a name="circuit" val="mux4bits"/>
+ <a name="circuitnamedboxfixedsize" val="true"/>
+ <a name="simulationFrequency" val="1.0"/>
+ <comp lib="0" loc="(180,230)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="label" val="i"/>
+ </comp>
+ <comp lib="0" loc="(310,560)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="label" val="a3"/>
+ </comp>
+ <comp lib="0" loc="(310,580)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="north"/>
+ <a name="label" val="b3"/>
+ </comp>
+ <comp lib="0" loc="(320,410)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="label" val="a2"/>
+ </comp>
+ <comp lib="0" loc="(320,430)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="north"/>
+ <a name="label" val="b2"/>
+ </comp>
+ <comp lib="0" loc="(330,260)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="label" val="a1"/>
+ </comp>
+ <comp lib="0" loc="(340,120)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="north"/>
+ <a name="label" val="b0"/>
+ </comp>
+ <comp lib="0" loc="(340,280)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="north"/>
+ <a name="label" val="b1"/>
+ </comp>
+ <comp lib="0" loc="(340,70)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="label" val="a0"/>
+ </comp>
+ <comp lib="0" loc="(670,210)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="west"/>
+ <a name="label" val="s0"/>
+ <a name="type" val="output"/>
+ </comp>
+ <comp lib="0" loc="(670,240)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="west"/>
+ <a name="label" val="s1"/>
+ <a name="type" val="output"/>
+ </comp>
+ <comp lib="0" loc="(670,270)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="west"/>
+ <a name="label" val="s2"/>
+ <a name="type" val="output"/>
+ </comp>
+ <comp lib="0" loc="(670,300)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="west"/>
+ <a name="label" val="s3"/>
+ <a name="type" val="output"/>
+ </comp>
+ <comp loc="(530,540)" name="mux2"/>
+ <comp loc="(540,390)" name="mux2"/>
+ <comp loc="(560,240)" name="mux2"/>
+ <comp loc="(560,50)" name="mux2"/>
+ <wire from="(180,230)" to="(200,230)"/>
+ <wire from="(200,230)" to="(200,390)"/>
+ <wire from="(200,230)" to="(340,230)"/>
+ <wire from="(200,390)" to="(200,540)"/>
+ <wire from="(200,390)" to="(320,390)"/>
+ <wire from="(200,50)" to="(200,230)"/>
+ <wire from="(200,50)" to="(340,50)"/>
+ <wire from="(200,540)" to="(310,540)"/>
+ <wire from="(330,260)" to="(340,260)"/>
+ <wire from="(340,230)" to="(340,240)"/>
+ <wire from="(340,90)" to="(340,120)"/>
+ <wire from="(530,480)" to="(530,540)"/>
+ <wire from="(530,480)" to="(640,480)"/>
+ <wire from="(540,390)" to="(590,390)"/>
+ <wire from="(560,240)" to="(670,240)"/>
+ <wire from="(560,50)" to="(670,50)"/>
+ <wire from="(590,270)" to="(590,390)"/>
+ <wire from="(590,270)" to="(670,270)"/>
+ <wire from="(640,300)" to="(640,480)"/>
+ <wire from="(640,300)" to="(670,300)"/>
+ <wire from="(670,50)" to="(670,210)"/>
+ </circuit>
+ <circuit name="mux4in">
+ <a name="appearance" val="logisim_evolution"/>
+ <a name="circuit" val="mux4in"/>
+ <a name="circuitnamedboxfixedsize" val="true"/>
+ <a name="simulationFrequency" val="1.0"/>
+ <comp lib="0" loc="(200,160)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="label" val="a"/>
+ </comp>
+ <comp lib="0" loc="(200,180)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="label" val="b"/>
+ </comp>
+ <comp lib="0" loc="(200,260)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="label" val="c"/>
+ </comp>
+ <comp lib="0" loc="(200,280)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="label" val="d"/>
+ </comp>
+ <comp lib="0" loc="(470,90)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="label" val="i1"/>
+ </comp>
+ <comp lib="0" loc="(710,190)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="west"/>
+ <a name="type" val="output"/>
+ </comp>
+ <comp lib="0" loc="(80,240)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="label" val="i0"/>
+ </comp>
+ <comp loc="(420,140)" name="mux2"/>
+ <comp loc="(420,240)" name="mux2"/>
+ <comp loc="(710,190)" name="mux2"/>
+ <wire from="(420,140)" to="(450,140)"/>
+ <wire from="(420,240)" to="(490,240)"/>
+ <wire from="(450,140)" to="(450,210)"/>
+ <wire from="(450,210)" to="(490,210)"/>
+ <wire from="(470,190)" to="(490,190)"/>
+ <wire from="(470,90)" to="(470,190)"/>
+ <wire from="(490,230)" to="(490,240)"/>
+ <wire from="(80,140)" to="(200,140)"/>
+ <wire from="(80,140)" to="(80,240)"/>
+ <wire from="(80,240)" to="(200,240)"/>
+ </circuit>
+ <circuit name="add1">
+ <a name="appearance" val="logisim_evolution"/>
+ <a name="circuit" val="add1"/>
+ <a name="circuitnamedboxfixedsize" val="true"/>
+ <a name="simulationFrequency" val="1.0"/>
+ <comp lib="0" loc="(140,200)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="label" val="A"/>
+ </comp>
+ <comp lib="0" loc="(140,260)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="label" val="B"/>
+ </comp>
+ <comp lib="0" loc="(140,340)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="label" val="Cin"/>
+ </comp>
+ <comp lib="0" loc="(410,220)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="west"/>
+ <a name="label" val="S"/>
+ <a name="type" val="output"/>
+ </comp>
+ <comp lib="0" loc="(460,110)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="west"/>
+ <a name="label" val="Cout"/>
+ <a name="type" val="output"/>
+ </comp>
+ <comp lib="1" loc="(240,80)" name="AND Gate"/>
+ <comp lib="1" loc="(270,220)" name="XOR Gate"/>
+ <comp lib="1" loc="(370,140)" name="AND Gate"/>
+ <comp lib="1" loc="(390,320)" name="XOR Gate"/>
+ <comp lib="1" loc="(460,110)" name="OR Gate"/>
+ <wire from="(140,200)" to="(210,200)"/>
+ <wire from="(140,260)" to="(180,260)"/>
+ <wire from="(140,340)" to="(310,340)"/>
+ <wire from="(140,60)" to="(140,200)"/>
+ <wire from="(140,60)" to="(190,60)"/>
+ <wire from="(180,100)" to="(180,240)"/>
+ <wire from="(180,100)" to="(190,100)"/>
+ <wire from="(180,240)" to="(180,260)"/>
+ <wire from="(180,240)" to="(210,240)"/>
+ <wire from="(240,80)" to="(410,80)"/>
+ <wire from="(270,220)" to="(280,220)"/>
+ <wire from="(280,120)" to="(280,220)"/>
+ <wire from="(280,120)" to="(320,120)"/>
+ <wire from="(280,220)" to="(330,220)"/>
+ <wire from="(310,160)" to="(310,340)"/>
+ <wire from="(310,160)" to="(320,160)"/>
+ <wire from="(310,340)" to="(330,340)"/>
+ <wire from="(330,220)" to="(330,300)"/>
+ <wire from="(370,140)" to="(410,140)"/>
+ <wire from="(390,220)" to="(390,320)"/>
+ <wire from="(390,220)" to="(410,220)"/>
+ <wire from="(410,130)" to="(410,140)"/>
+ <wire from="(410,80)" to="(410,90)"/>
+ </circuit>
+ <circuit name="add4">
+ <a name="appearance" val="logisim_evolution"/>
+ <a name="circuit" val="add4"/>
+ <a name="circuitnamedboxfixedsize" val="true"/>
+ <a name="simulationFrequency" val="1.0"/>
+ <comp lib="0" loc="(1190,850)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="north"/>
+ <a name="label" val="S0"/>
+ <a name="type" val="output"/>
+ </comp>
+ <comp lib="0" loc="(1200,730)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="west"/>
+ <a name="label" val="CF"/>
+ <a name="type" val="output"/>
+ </comp>
+ <comp lib="0" loc="(1200,790)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="west"/>
+ <a name="label" val="OV"/>
+ <a name="type" val="output"/>
+ </comp>
+ <comp lib="0" loc="(1220,850)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="north"/>
+ <a name="label" val="S1"/>
+ <a name="type" val="output"/>
+ </comp>
+ <comp lib="0" loc="(1250,850)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="north"/>
+ <a name="label" val="S2"/>
+ <a name="type" val="output"/>
+ </comp>
+ <comp lib="0" loc="(1280,850)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="north"/>
+ <a name="label" val="S3"/>
+ <a name="type" val="output"/>
+ </comp>
+ <comp lib="0" loc="(150,230)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="south"/>
+ </comp>
+ <comp lib="0" loc="(60,120)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="label" val="B2"/>
+ </comp>
+ <comp lib="0" loc="(60,150)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="label" val="B3"/>
+ </comp>
+ <comp lib="0" loc="(60,60)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="label" val="B0"/>
+ </comp>
+ <comp lib="0" loc="(60,90)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="label" val="B1"/>
+ </comp>
+ <comp lib="0" loc="(70,780)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="label" val="A0"/>
+ </comp>
+ <comp lib="0" loc="(70,810)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="label" val="A1"/>
+ </comp>
+ <comp lib="0" loc="(70,840)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="label" val="A2"/>
+ </comp>
+ <comp lib="0" loc="(70,870)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="label" val="A3"/>
+ </comp>
+ <comp lib="1" loc="(1160,790)" name="XOR Gate"/>
+ <comp lib="1" loc="(190,490)" name="XOR Gate">
+ <a name="facing" val="south"/>
+ </comp>
+ <comp lib="1" loc="(450,360)" name="XOR Gate"/>
+ <comp lib="1" loc="(50,510)" name="XOR Gate">
+ <a name="facing" val="south"/>
+ </comp>
+ <comp lib="1" loc="(820,440)" name="XOR Gate"/>
+ <comp loc="(1260,580)" name="add1"/>
+ <comp loc="(400,700)" name="add1"/>
+ <comp loc="(680,660)" name="add1"/>
+ <comp loc="(970,620)" name="add1"/>
+ <wire from="(100,270)" to="(100,740)"/>
+ <wire from="(100,270)" to="(150,270)"/>
+ <wire from="(100,60)" to="(100,230)"/>
+ <wire from="(100,740)" to="(180,740)"/>
+ <wire from="(1010,620)" to="(1010,800)"/>
+ <wire from="(1010,620)" to="(1040,620)"/>
+ <wire from="(1010,800)" to="(1090,800)"/>
+ <wire from="(1040,440)" to="(1040,580)"/>
+ <wire from="(1070,680)" to="(1070,730)"/>
+ <wire from="(1070,680)" to="(1290,680)"/>
+ <wire from="(1070,730)" to="(1070,770)"/>
+ <wire from="(1070,730)" to="(1200,730)"/>
+ <wire from="(1070,770)" to="(1100,770)"/>
+ <wire from="(1090,800)" to="(1090,810)"/>
+ <wire from="(1090,810)" to="(1100,810)"/>
+ <wire from="(1160,790)" to="(1200,790)"/>
+ <wire from="(1220,830)" to="(1220,850)"/>
+ <wire from="(1250,820)" to="(1250,850)"/>
+ <wire from="(1260,580)" to="(1290,580)"/>
+ <wire from="(1260,600)" to="(1280,600)"/>
+ <wire from="(1280,600)" to="(1280,850)"/>
+ <wire from="(1290,580)" to="(1290,680)"/>
+ <wire from="(150,230)" to="(150,240)"/>
+ <wire from="(150,240)" to="(150,270)"/>
+ <wire from="(150,240)" to="(320,240)"/>
+ <wire from="(150,270)" to="(170,270)"/>
+ <wire from="(170,270)" to="(170,430)"/>
+ <wire from="(170,430)" to="(180,430)"/>
+ <wire from="(180,690)" to="(180,700)"/>
+ <wire from="(190,490)" to="(190,660)"/>
+ <wire from="(190,660)" to="(460,660)"/>
+ <wire from="(210,90)" to="(210,430)"/>
+ <wire from="(30,230)" to="(100,230)"/>
+ <wire from="(30,230)" to="(30,450)"/>
+ <wire from="(30,450)" to="(40,450)"/>
+ <wire from="(320,240)" to="(320,380)"/>
+ <wire from="(320,240)" to="(600,240)"/>
+ <wire from="(320,380)" to="(390,380)"/>
+ <wire from="(380,120)" to="(380,340)"/>
+ <wire from="(380,340)" to="(390,340)"/>
+ <wire from="(400,700)" to="(460,700)"/>
+ <wire from="(400,720)" to="(400,850)"/>
+ <wire from="(400,850)" to="(1190,850)"/>
+ <wire from="(430,680)" to="(430,810)"/>
+ <wire from="(430,680)" to="(460,680)"/>
+ <wire from="(450,360)" to="(550,360)"/>
+ <wire from="(50,510)" to="(50,690)"/>
+ <wire from="(50,690)" to="(180,690)"/>
+ <wire from="(550,360)" to="(550,580)"/>
+ <wire from="(550,580)" to="(750,580)"/>
+ <wire from="(60,120)" to="(380,120)"/>
+ <wire from="(60,150)" to="(760,150)"/>
+ <wire from="(60,60)" to="(100,60)"/>
+ <wire from="(60,90)" to="(210,90)"/>
+ <wire from="(600,240)" to="(600,460)"/>
+ <wire from="(600,460)" to="(760,460)"/>
+ <wire from="(680,660)" to="(750,660)"/>
+ <wire from="(680,680)" to="(750,680)"/>
+ <wire from="(70,270)" to="(100,270)"/>
+ <wire from="(70,270)" to="(70,450)"/>
+ <wire from="(70,780)" to="(80,780)"/>
+ <wire from="(70,810)" to="(430,810)"/>
+ <wire from="(70,840)" to="(720,840)"/>
+ <wire from="(70,870)" to="(990,870)"/>
+ <wire from="(720,640)" to="(720,840)"/>
+ <wire from="(720,640)" to="(750,640)"/>
+ <wire from="(750,580)" to="(750,620)"/>
+ <wire from="(750,680)" to="(750,830)"/>
+ <wire from="(750,830)" to="(1220,830)"/>
+ <wire from="(760,150)" to="(760,420)"/>
+ <wire from="(80,720)" to="(180,720)"/>
+ <wire from="(80,720)" to="(80,780)"/>
+ <wire from="(820,440)" to="(1040,440)"/>
+ <wire from="(970,620)" to="(1010,620)"/>
+ <wire from="(970,640)" to="(970,820)"/>
+ <wire from="(970,820)" to="(1250,820)"/>
+ <wire from="(990,600)" to="(1040,600)"/>
+ <wire from="(990,600)" to="(990,870)"/>
+ </circuit>
+ <circuit name="oppose4">
+ <a name="appearance" val="logisim_evolution"/>
+ <a name="circuit" val="oppose4"/>
+ <a name="circuitnamedboxfixedsize" val="true"/>
+ <a name="simulationFrequency" val="1.0"/>
+ </circuit>
+</project>