Files
EN1-TP-Complet/adder1_adder4_substract4.circ
2025-05-28 08:58:26 +02:00

499 lines
18 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project source="2.13.22" version="1.0">
This file is intended to be loaded by Logisim-evolution (https://github.com/reds-heig/logisim-evolution).
<lib desc="#Wiring" name="0"/>
<lib desc="#Gates" name="1"/>
<lib desc="#Plexers" name="2">
<tool name="Multiplexer">
<a name="enable" val="false"/>
</tool>
<tool name="Demultiplexer">
<a name="enable" val="false"/>
</tool>
</lib>
<lib desc="#Arithmetic" name="3"/>
<lib desc="#Memory" name="4">
<tool name="RAM">
<a name="contents">addr/data: 8 8
0
</a>
</tool>
<tool name="ROM">
<a name="contents">addr/data: 8 8
0
</a>
</tool>
</lib>
<lib desc="#I/O" name="5"/>
<lib desc="#HDL-IP" name="6">
<tool name="VHDL Entity">
<a name="content">--------------------------------------------------------------------------------&#13;
-- HEIG-VD, institute REDS, 1400 Yverdon-les-Bains&#13;
-- Project :&#13;
-- File :&#13;
-- Autor :&#13;
-- Date :&#13;
--&#13;
--------------------------------------------------------------------------------&#13;
-- Description :&#13;
--&#13;
--------------------------------------------------------------------------------&#13;
&#13;
library ieee;&#13;
use ieee.std_logic_1164.all;&#13;
--use ieee.numeric_std.all;&#13;
&#13;
entity VHDL_Component is&#13;
port(&#13;
------------------------------------------------------------------------------&#13;
--Insert input ports below&#13;
horloge_i : in std_logic; -- input bit example&#13;
val_i : in std_logic_vector(3 downto 0); -- input vector example&#13;
------------------------------------------------------------------------------&#13;
--Insert output ports below&#13;
max_o : out std_logic; -- output bit example&#13;
cpt_o : out std_logic_Vector(3 downto 0) -- output vector example&#13;
);&#13;
end VHDL_Component;&#13;
&#13;
--------------------------------------------------------------------------------&#13;
--Complete your VHDL description below&#13;
architecture type_architecture of VHDL_Component is&#13;
&#13;
&#13;
begin&#13;
&#13;
&#13;
end type_architecture;&#13;
</a>
</tool>
</lib>
<lib desc="#TCL" name="7">
<tool name="TclGeneric">
<a name="content">library ieee;&#13;
use ieee.std_logic_1164.all;&#13;
&#13;
entity TCL_Generic is&#13;
port(&#13;
--Insert input ports below&#13;
horloge_i : in std_logic; -- input bit example&#13;
val_i : in std_logic_vector(3 downto 0); -- input vector example&#13;
&#13;
--Insert output ports below&#13;
max_o : out std_logic; -- output bit example&#13;
cpt_o : out std_logic_Vector(3 downto 0) -- output vector example&#13;
);&#13;
end TCL_Generic;&#13;
</a>
</tool>
</lib>
<lib desc="#Base" name="8">
<tool name="Text Tool">
<a name="text" val=""/>
<a name="font" val="SansSerif plain 12"/>
<a name="halign" val="center"/>
<a name="valign" val="base"/>
</tool>
</lib>
<lib desc="#BFH-Praktika" name="9"/>
<lib desc="#FSM" name="10"/>
<main name="adder1"/>
<options>
<a name="gateUndefined" val="ignore"/>
<a name="simlimit" val="1000"/>
<a name="simrand" val="0"/>
<a name="tickmain" val="half_period"/>
</options>
<mappings>
<tool lib="8" map="Button2" name="Menu 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="Text Tool">
<a name="text" val=""/>
<a name="font" val="SansSerif plain 12"/>
<a name="halign" val="center"/>
<a name="valign" val="base"/>
</tool>
<sep/>
<tool lib="0" name="Pin"/>
<tool lib="0" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="labelloc" val="east"/>
</tool>
<tool lib="1" name="NOT Gate"/>
<tool lib="1" name="AND Gate"/>
<tool lib="1" name="OR Gate"/>
</toolbar>
<circuit name="adder1">
<a name="circuit" val="adder1"/>
<a name="clabel" val=""/>
<a name="clabelup" val="east"/>
<a name="clabelfont" val="SansSerif bold 16"/>
<a name="circuitnamedbox" val="true"/>
<a name="circuitvhdlpath" val=""/>
<wire from="(700,510)" to="(700,520)"/>
<wire from="(460,470)" to="(460,540)"/>
<wire from="(450,430)" to="(450,500)"/>
<wire from="(580,520)" to="(700,520)"/>
<wire from="(460,540)" to="(520,540)"/>
<wire from="(800,400)" to="(800,470)"/>
<wire from="(550,360)" to="(610,360)"/>
<wire from="(550,360)" to="(550,450)"/>
<wire from="(700,510)" to="(740,510)"/>
<wire from="(620,450)" to="(620,470)"/>
<wire from="(450,430)" to="(490,430)"/>
<wire from="(740,490)" to="(740,510)"/>
<wire from="(460,470)" to="(490,470)"/>
<wire from="(580,320)" to="(580,430)"/>
<wire from="(710,450)" to="(740,450)"/>
<wire from="(440,540)" to="(460,540)"/>
<wire from="(580,320)" to="(610,320)"/>
<wire from="(620,470)" to="(650,470)"/>
<wire from="(440,430)" to="(450,430)"/>
<wire from="(440,320)" to="(580,320)"/>
<wire from="(550,450)" to="(620,450)"/>
<wire from="(580,430)" to="(650,430)"/>
<wire from="(800,400)" to="(810,400)"/>
<wire from="(810,400)" to="(820,400)"/>
<wire from="(450,500)" to="(520,500)"/>
<wire from="(670,340)" to="(810,340)"/>
<comp lib="0" loc="(440,430)" name="Pin">
<a name="label" val="A"/>
</comp>
<comp lib="0" loc="(440,320)" name="Pin">
<a name="label" val="Cin"/>
</comp>
<comp lib="1" loc="(710,450)" name="NAND Gate"/>
<comp lib="0" loc="(810,340)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="S"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="1" loc="(550,450)" name="XOR Gate"/>
<comp lib="0" loc="(810,400)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="Cout"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="1" loc="(580,520)" name="NAND Gate"/>
<comp lib="0" loc="(440,540)" name="Pin">
<a name="label" val="B"/>
</comp>
<comp lib="1" loc="(670,340)" name="XOR Gate"/>
<comp lib="1" loc="(800,470)" name="NAND Gate"/>
</circuit>
<circuit name="test_adder1">
<a name="circuit" val="test_adder1"/>
<a name="clabel" val=""/>
<a name="clabelup" val="south"/>
<a name="clabelfont" val="SansSerif bold 16"/>
<a name="circuitnamedbox" val="true"/>
<a name="circuitvhdlpath" val=""/>
<wire from="(300,300)" to="(470,300)"/>
<wire from="(320,340)" to="(320,410)"/>
<wire from="(310,320)" to="(470,320)"/>
<wire from="(690,320)" to="(690,350)"/>
<wire from="(300,300)" to="(300,410)"/>
<wire from="(580,320)" to="(690,320)"/>
<wire from="(690,350)" to="(700,350)"/>
<wire from="(580,300)" to="(720,300)"/>
<wire from="(720,280)" to="(730,280)"/>
<wire from="(310,320)" to="(310,410)"/>
<wire from="(320,340)" to="(470,340)"/>
<wire from="(720,280)" to="(720,300)"/>
<comp lib="5" loc="(700,350)" name="LED">
<a name="label" val="LED_2"/>
</comp>
<comp lib="5" loc="(290,410)" name="DipSwitch">
<a name="label" val="DipSwitch_1"/>
<a name="number" val="3"/>
</comp>
<comp lib="5" loc="(730,280)" name="LED">
<a name="label" val="LED_1"/>
</comp>
<comp loc="(580,300)" name="adder1">
<a name="label" val="adder1_1"/>
</comp>
</circuit>
<circuit name="adder4">
<a name="circuit" val="adder4"/>
<a name="clabel" val=""/>
<a name="clabelup" val="east"/>
<a name="clabelfont" val="SansSerif bold 16"/>
<a name="circuitnamedbox" val="true"/>
<a name="circuitvhdlpath" val=""/>
<wire from="(600,340)" to="(600,380)"/>
<wire from="(600,320)" to="(1040,320)"/>
<wire from="(380,420)" to="(600,420)"/>
<wire from="(380,400)" to="(600,400)"/>
<wire from="(710,400)" to="(710,440)"/>
<wire from="(820,440)" to="(1040,440)"/>
<wire from="(820,460)" to="(1040,460)"/>
<wire from="(380,460)" to="(710,460)"/>
<wire from="(380,480)" to="(710,480)"/>
<wire from="(370,400)" to="(380,400)"/>
<wire from="(490,270)" to="(490,320)"/>
<wire from="(380,340)" to="(490,340)"/>
<wire from="(380,360)" to="(490,360)"/>
<wire from="(490,250)" to="(1040,250)"/>
<wire from="(710,380)" to="(1040,380)"/>
<comp lib="0" loc="(380,250)" name="Pin">
<a name="label" val="Cin"/>
</comp>
<comp lib="0" loc="(1040,380)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="S2"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(380,290)" name="Pin">
<a name="label" val="B0"/>
</comp>
<comp lib="0" loc="(1040,250)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="S0"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(380,360)" name="Pin">
<a name="label" val="B1"/>
</comp>
<comp lib="0" loc="(1040,460)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="Cout"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(380,400)" name="Pin">
<a name="label" val="A2"/>
</comp>
<comp loc="(820,440)" name="adder1">
<a name="label" val="adder1_4"/>
</comp>
<comp lib="0" loc="(380,480)" name="Pin">
<a name="label" val="B3"/>
</comp>
<comp lib="0" loc="(380,420)" name="Pin">
<a name="label" val="B2"/>
</comp>
<comp lib="0" loc="(380,340)" name="Pin">
<a name="label" val="A1"/>
</comp>
<comp loc="(490,250)" name="adder1">
<a name="label" val="adder1_1"/>
</comp>
<comp lib="0" loc="(380,270)" name="Pin">
<a name="label" val="A0"/>
</comp>
<comp lib="0" loc="(1040,440)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="S3"/>
<a name="labelloc" val="east"/>
</comp>
<comp loc="(600,320)" name="adder1">
<a name="label" val="adder1_2"/>
</comp>
<comp loc="(710,380)" name="adder1">
<a name="label" val="adder1_3"/>
</comp>
<comp lib="0" loc="(1040,320)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="S1"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(380,460)" name="Pin">
<a name="label" val="A3"/>
</comp>
</circuit>
<circuit name="substract4_v12">
<a name="circuit" val="substract4_v12"/>
<a name="clabel" val=""/>
<a name="clabelup" val="east"/>
<a name="clabelfont" val="SansSerif bold 16"/>
<a name="circuitnamedbox" val="true"/>
<a name="circuitvhdlpath" val=""/>
<wire from="(430,210)" to="(430,280)"/>
<wire from="(500,380)" to="(550,380)"/>
<wire from="(580,70)" to="(580,200)"/>
<wire from="(380,180)" to="(430,180)"/>
<wire from="(450,90)" to="(570,90)"/>
<wire from="(550,340)" to="(590,340)"/>
<wire from="(550,320)" to="(590,320)"/>
<wire from="(700,260)" to="(740,260)"/>
<wire from="(450,110)" to="(560,110)"/>
<wire from="(430,180)" to="(430,210)"/>
<wire from="(510,260)" to="(510,290)"/>
<wire from="(450,130)" to="(550,130)"/>
<wire from="(570,90)" to="(570,240)"/>
<wire from="(550,340)" to="(550,380)"/>
<wire from="(500,220)" to="(590,220)"/>
<wire from="(560,110)" to="(560,280)"/>
<wire from="(570,240)" to="(590,240)"/>
<wire from="(430,210)" to="(460,210)"/>
<wire from="(430,330)" to="(460,330)"/>
<wire from="(430,370)" to="(460,370)"/>
<wire from="(430,280)" to="(460,280)"/>
<wire from="(430,180)" to="(590,180)"/>
<wire from="(740,310)" to="(770,310)"/>
<wire from="(560,280)" to="(590,280)"/>
<wire from="(430,330)" to="(430,370)"/>
<wire from="(510,300)" to="(510,340)"/>
<wire from="(700,240)" to="(770,240)"/>
<wire from="(700,220)" to="(770,220)"/>
<wire from="(700,200)" to="(770,200)"/>
<wire from="(700,180)" to="(770,180)"/>
<wire from="(500,340)" to="(510,340)"/>
<wire from="(500,290)" to="(510,290)"/>
<wire from="(430,280)" to="(430,330)"/>
<wire from="(380,300)" to="(460,300)"/>
<wire from="(380,230)" to="(460,230)"/>
<wire from="(380,390)" to="(460,390)"/>
<wire from="(380,350)" to="(460,350)"/>
<wire from="(550,130)" to="(550,320)"/>
<wire from="(510,300)" to="(590,300)"/>
<wire from="(510,260)" to="(590,260)"/>
<wire from="(450,70)" to="(580,70)"/>
<wire from="(740,260)" to="(740,310)"/>
<wire from="(580,200)" to="(590,200)"/>
<comp lib="0" loc="(770,220)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="S2"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="1" loc="(500,340)" name="XOR Gate">
<a name="size" val="30"/>
</comp>
<comp lib="0" loc="(770,200)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="S1"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(450,110)" name="Pin">
<a name="label" val="A2"/>
</comp>
<comp lib="0" loc="(770,310)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="Cout"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(450,90)" name="Pin">
<a name="label" val="A1"/>
</comp>
<comp lib="0" loc="(450,70)" name="Pin">
<a name="label" val="A0"/>
</comp>
<comp loc="(700,180)" name="adder4">
<a name="label" val="adder4_1"/>
</comp>
<comp lib="0" loc="(770,180)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="S0"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="1" loc="(500,380)" name="XOR Gate">
<a name="size" val="30"/>
</comp>
<comp lib="0" loc="(450,130)" name="Pin">
<a name="label" val="A3"/>
</comp>
<comp lib="0" loc="(380,350)" name="Pin">
<a name="label" val="B2"/>
</comp>
<comp lib="0" loc="(380,180)" name="Pin">
<a name="label" val="M"/>
</comp>
<comp lib="1" loc="(500,220)" name="XOR Gate">
<a name="size" val="30"/>
</comp>
<comp lib="1" loc="(500,290)" name="XOR Gate">
<a name="size" val="30"/>
</comp>
<comp lib="0" loc="(380,390)" name="Pin">
<a name="label" val="B3"/>
</comp>
<comp lib="0" loc="(770,240)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="S3"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(380,230)" name="Pin">
<a name="label" val="B0"/>
</comp>
<comp lib="0" loc="(380,300)" name="Pin">
<a name="label" val="B1"/>
</comp>
</circuit>
<circuit name="test_substract4_v12">
<a name="circuit" val="test_substract4_v12"/>
<a name="clabel" val=""/>
<a name="clabelup" val="east"/>
<a name="clabelfont" val="SansSerif bold 16"/>
<a name="circuitnamedbox" val="true"/>
<a name="circuitvhdlpath" val=""/>
<wire from="(120,230)" to="(120,360)"/>
<wire from="(100,190)" to="(290,190)"/>
<wire from="(140,290)" to="(140,360)"/>
<wire from="(170,250)" to="(290,250)"/>
<wire from="(110,210)" to="(290,210)"/>
<wire from="(120,230)" to="(290,230)"/>
<wire from="(110,210)" to="(110,360)"/>
<wire from="(130,270)" to="(130,360)"/>
<wire from="(160,330)" to="(160,360)"/>
<wire from="(130,270)" to="(290,270)"/>
<wire from="(140,290)" to="(290,290)"/>
<wire from="(100,190)" to="(100,360)"/>
<wire from="(170,250)" to="(170,360)"/>
<wire from="(150,310)" to="(150,360)"/>
<wire from="(290,290)" to="(300,290)"/>
<wire from="(290,210)" to="(300,210)"/>
<wire from="(290,310)" to="(300,310)"/>
<wire from="(290,230)" to="(300,230)"/>
<wire from="(290,170)" to="(300,170)"/>
<wire from="(290,270)" to="(300,270)"/>
<wire from="(290,330)" to="(300,330)"/>
<wire from="(290,190)" to="(300,190)"/>
<wire from="(290,250)" to="(300,250)"/>
<wire from="(150,310)" to="(290,310)"/>
<wire from="(90,170)" to="(290,170)"/>
<wire from="(160,330)" to="(290,330)"/>
<wire from="(90,170)" to="(90,360)"/>
<comp lib="5" loc="(430,210)" name="LED">
<a name="label" val="S2"/>
</comp>
<comp lib="5" loc="(80,360)" name="DipSwitch">
<a name="label" val="SWITCH"/>
<a name="number" val="9"/>
</comp>
<comp lib="5" loc="(430,190)" name="LED">
<a name="label" val="S1"/>
</comp>
<comp lib="5" loc="(430,250)" name="LED">
<a name="label" val="COUT"/>
</comp>
<comp loc="(430,170)" name="substract4_v12">
<a name="label" val="substract4_v1_1"/>
</comp>
<comp lib="5" loc="(430,230)" name="LED">
<a name="label" val="S3"/>
</comp>
<comp lib="5" loc="(430,170)" name="LED">
<a name="label" val="S0"/>
</comp>
</circuit>
</project>