499 lines
18 KiB
XML
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">--------------------------------------------------------------------------------
|
|
-- HEIG-VD, institute REDS, 1400 Yverdon-les-Bains
|
|
-- Project :
|
|
-- File :
|
|
-- Autor :
|
|
-- Date :
|
|
--
|
|
--------------------------------------------------------------------------------
|
|
-- Description :
|
|
--
|
|
--------------------------------------------------------------------------------
|
|
|
|
library ieee;
|
|
use ieee.std_logic_1164.all;
|
|
--use ieee.numeric_std.all;
|
|
|
|
entity VHDL_Component is
|
|
port(
|
|
------------------------------------------------------------------------------
|
|
--Insert input ports below
|
|
horloge_i : in std_logic; -- input bit example
|
|
val_i : in std_logic_vector(3 downto 0); -- input vector example
|
|
------------------------------------------------------------------------------
|
|
--Insert output ports below
|
|
max_o : out std_logic; -- output bit example
|
|
cpt_o : out std_logic_Vector(3 downto 0) -- output vector example
|
|
);
|
|
end VHDL_Component;
|
|
|
|
--------------------------------------------------------------------------------
|
|
--Complete your VHDL description below
|
|
architecture type_architecture of VHDL_Component is
|
|
|
|
|
|
begin
|
|
|
|
|
|
end type_architecture;
|
|
</a>
|
|
</tool>
|
|
</lib>
|
|
<lib desc="#TCL" name="7">
|
|
<tool name="TclGeneric">
|
|
<a name="content">library ieee;
|
|
use ieee.std_logic_1164.all;
|
|
|
|
entity TCL_Generic is
|
|
port(
|
|
--Insert input ports below
|
|
horloge_i : in std_logic; -- input bit example
|
|
val_i : in std_logic_vector(3 downto 0); -- input vector example
|
|
|
|
--Insert output ports below
|
|
max_o : out std_logic; -- output bit example
|
|
cpt_o : out std_logic_Vector(3 downto 0) -- output vector example
|
|
);
|
|
end TCL_Generic;
|
|
</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>
|