Files
hardware/Logisim/7400-logisim-main/circ/74LS380.circ
2025-12-31 19:35:06 +08:00

467 lines
19 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project source="2.7.1" version="1.0">
This file is intended to be loaded by Logisim (http://www.cburch.com/logisim/).
<lib desc="#Wiring" name="0">
<tool name="Splitter">
<a name="facing" val="west"/>
<a name="fanout" val="8"/>
<a name="incoming" val="8"/>
<a name="appear" val="center"/>
</tool>
<tool name="Pin">
<a name="output" val="true"/>
</tool>
</lib>
<lib desc="#Gates" name="1">
<tool name="AND Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</tool>
<tool name="OR Gate">
<a name="width" val="8"/>
<a name="size" val="30"/>
<a name="inputs" val="4"/>
</tool>
<tool name="Controlled Buffer">
<a name="width" val="8"/>
</tool>
</lib>
<lib desc="#Plexers" name="2"/>
<lib desc="#Arithmetic" name="3"/>
<lib desc="#Memory" name="4">
<tool name="ROM">
<a name="contents">addr/data: 8 8
0
</a>
</tool>
</lib>
<lib desc="#I/O" name="5"/>
<lib desc="#Base" name="6">
<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>
<main name="74LS380"/>
<options>
<a name="gateUndefined" val="ignore"/>
<a name="simlimit" val="1000"/>
<a name="simrand" val="0"/>
</options>
<mappings>
<tool lib="6" map="Button2" name="Menu Tool"/>
<tool lib="6" map="Button3" name="Menu Tool"/>
<tool lib="6" map="Ctrl Button1" name="Menu Tool"/>
</mappings>
<toolbar>
<tool lib="6" name="Poke Tool"/>
<tool lib="6" name="Edit Tool"/>
<tool lib="6" 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">
<a name="tristate" val="false"/>
</tool>
<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">
<a name="size" val="20"/>
</tool>
<tool lib="1" name="AND Gate"/>
<tool lib="1" name="OR Gate"/>
</toolbar>
<circuit name="74LS380">
<a name="circuit" val="74LS380"/>
<a name="clabel" val=""/>
<a name="clabelup" val="east"/>
<a name="clabelfont" val="SansSerif plain 12"/>
<appear>
<rect fill="#ffff00" height="190" stroke="#000000" stroke-width="2" width="60" x="50" y="50"/>
<text font-family="SansSerif" font-size="12" font-weight="bold" text-anchor="middle" x="79" y="46">74LS380</text>
<text font-family="SansSerif" font-size="10" font-weight="bold" text-anchor="start" x="54" y="64">CLK</text>
<text font-family="SansSerif" font-size="10" font-weight="bold" text-anchor="start" x="52" y="84">/CLR</text>
<text font-family="SansSerif" font-size="10" font-weight="bold" text-anchor="start" x="52" y="94">/PRE</text>
<text font-family="SansSerif" font-size="10" font-weight="bold" text-anchor="start" x="54" y="114">POL</text>
<text font-family="SansSerif" font-size="10" font-weight="bold" text-anchor="start" x="52" y="124">/LD</text>
<text font-family="SansSerif" font-size="10" font-weight="bold" text-anchor="start" x="54" y="144">D0</text>
<text font-family="SansSerif" font-size="10" font-weight="bold" text-anchor="start" x="54" y="154">D1</text>
<text font-family="SansSerif" font-size="10" font-weight="bold" text-anchor="start" x="54" y="164">D2</text>
<text font-family="SansSerif" font-size="10" font-weight="bold" text-anchor="start" x="54" y="174">D3</text>
<text font-family="SansSerif" font-size="10" font-weight="bold" text-anchor="start" x="54" y="184">D4</text>
<text font-family="SansSerif" font-size="10" font-weight="bold" text-anchor="start" x="54" y="194">D5</text>
<text font-family="SansSerif" font-size="10" font-weight="bold" text-anchor="start" x="54" y="204">D6</text>
<text font-family="SansSerif" font-size="10" font-weight="bold" text-anchor="start" x="54" y="214">D7</text>
<text font-family="SansSerif" font-size="10" font-weight="bold" text-anchor="start" x="52" y="234">/OE</text>
<text font-family="SansSerif" font-size="10" font-weight="bold" text-anchor="start" x="90" y="214">Q7</text>
<text font-family="SansSerif" font-size="10" font-weight="bold" text-anchor="start" x="90" y="174">Q3</text>
<text font-family="SansSerif" font-size="10" font-weight="bold" text-anchor="start" x="90" y="154">Q1</text>
<text font-family="SansSerif" font-size="10" font-weight="bold" text-anchor="start" x="90" y="204">Q6</text>
<text font-family="SansSerif" font-size="10" font-weight="bold" text-anchor="start" x="90" y="164">Q2</text>
<text font-family="SansSerif" font-size="10" font-weight="bold" text-anchor="start" x="90" y="194">Q5</text>
<text font-family="SansSerif" font-size="10" font-weight="bold" text-anchor="start" x="90" y="184">Q4</text>
<text font-family="SansSerif" font-size="10" font-weight="bold" text-anchor="start" x="90" y="144">Q0</text>
<circ-port height="8" pin="80,70" width="8" x="46" y="56"/>
<circ-port height="8" pin="80,100" width="8" x="46" y="76"/>
<circ-port height="8" pin="80,130" width="8" x="46" y="86"/>
<circ-port height="8" pin="80,160" width="8" x="46" y="106"/>
<circ-port height="8" pin="80,190" width="8" x="46" y="116"/>
<circ-port height="8" pin="80,220" width="8" x="46" y="136"/>
<circ-port height="8" pin="80,240" width="8" x="46" y="146"/>
<circ-port height="8" pin="80,260" width="8" x="46" y="156"/>
<circ-port height="8" pin="80,280" width="8" x="46" y="166"/>
<circ-port height="8" pin="80,300" width="8" x="46" y="176"/>
<circ-port height="8" pin="80,320" width="8" x="46" y="186"/>
<circ-port height="8" pin="80,340" width="8" x="46" y="196"/>
<circ-port height="8" pin="80,360" width="8" x="46" y="206"/>
<circ-port height="8" pin="80,440" width="8" x="46" y="226"/>
<circ-port height="10" pin="530,220" width="10" x="105" y="135"/>
<circ-port height="10" pin="530,240" width="10" x="105" y="145"/>
<circ-port height="10" pin="530,260" width="10" x="105" y="155"/>
<circ-port height="10" pin="530,280" width="10" x="105" y="165"/>
<circ-port height="10" pin="530,300" width="10" x="105" y="175"/>
<circ-port height="10" pin="530,320" width="10" x="105" y="185"/>
<circ-port height="10" pin="530,340" width="10" x="105" y="195"/>
<circ-port height="10" pin="530,360" width="10" x="105" y="205"/>
<circ-anchor facing="east" height="6" width="6" x="77" y="127"/>
</appear>
<wire from="(480,320)" to="(530,320)"/>
<wire from="(90,330)" to="(90,340)"/>
<wire from="(80,320)" to="(130,320)"/>
<wire from="(160,310)" to="(270,310)"/>
<wire from="(260,280)" to="(260,430)"/>
<wire from="(100,340)" to="(100,360)"/>
<wire from="(500,260)" to="(500,290)"/>
<wire from="(480,330)" to="(520,330)"/>
<wire from="(80,260)" to="(110,260)"/>
<wire from="(480,300)" to="(510,300)"/>
<wire from="(480,340)" to="(510,340)"/>
<wire from="(310,300)" to="(330,300)"/>
<wire from="(120,240)" to="(120,280)"/>
<wire from="(360,310)" to="(380,310)"/>
<wire from="(250,320)" to="(270,320)"/>
<wire from="(480,280)" to="(490,280)"/>
<wire from="(130,190)" to="(210,190)"/>
<wire from="(190,370)" to="(270,370)"/>
<wire from="(150,310)" to="(160,310)"/>
<wire from="(110,440)" to="(440,440)"/>
<wire from="(320,240)" to="(320,290)"/>
<wire from="(80,160)" to="(90,160)"/>
<wire from="(120,160)" to="(130,160)"/>
<wire from="(120,280)" to="(130,280)"/>
<wire from="(80,440)" to="(90,440)"/>
<wire from="(230,160)" to="(230,410)"/>
<wire from="(120,100)" to="(250,100)"/>
<wire from="(520,330)" to="(520,340)"/>
<wire from="(210,290)" to="(270,290)"/>
<wire from="(90,300)" to="(90,310)"/>
<wire from="(220,350)" to="(270,350)"/>
<wire from="(310,320)" to="(310,330)"/>
<wire from="(310,280)" to="(310,300)"/>
<wire from="(510,280)" to="(510,300)"/>
<wire from="(90,310)" to="(130,310)"/>
<wire from="(230,410)" to="(270,410)"/>
<wire from="(80,280)" to="(100,280)"/>
<wire from="(80,360)" to="(100,360)"/>
<wire from="(130,220)" to="(130,270)"/>
<wire from="(420,310)" to="(430,310)"/>
<wire from="(320,290)" to="(330,290)"/>
<wire from="(320,330)" to="(330,330)"/>
<wire from="(160,370)" to="(170,370)"/>
<wire from="(80,130)" to="(90,130)"/>
<wire from="(220,170)" to="(220,350)"/>
<wire from="(160,160)" to="(230,160)"/>
<wire from="(200,400)" to="(270,400)"/>
<wire from="(320,330)" to="(320,390)"/>
<wire from="(440,320)" to="(440,440)"/>
<wire from="(520,300)" to="(520,310)"/>
<wire from="(130,190)" to="(130,200)"/>
<wire from="(480,220)" to="(530,220)"/>
<wire from="(370,70)" to="(370,340)"/>
<wire from="(390,330)" to="(390,340)"/>
<wire from="(80,220)" to="(130,220)"/>
<wire from="(200,200)" to="(200,340)"/>
<wire from="(100,280)" to="(100,300)"/>
<wire from="(490,240)" to="(530,240)"/>
<wire from="(480,310)" to="(520,310)"/>
<wire from="(100,300)" to="(130,300)"/>
<wire from="(100,340)" to="(130,340)"/>
<wire from="(260,430)" to="(420,430)"/>
<wire from="(500,260)" to="(530,260)"/>
<wire from="(310,320)" to="(330,320)"/>
<wire from="(300,390)" to="(320,390)"/>
<wire from="(370,340)" to="(390,340)"/>
<wire from="(250,230)" to="(250,270)"/>
<wire from="(480,290)" to="(500,290)"/>
<wire from="(510,280)" to="(530,280)"/>
<wire from="(510,360)" to="(530,360)"/>
<wire from="(120,130)" to="(140,130)"/>
<wire from="(250,380)" to="(270,380)"/>
<wire from="(410,310)" to="(420,310)"/>
<wire from="(450,310)" to="(460,310)"/>
<wire from="(250,270)" to="(250,320)"/>
<wire from="(260,280)" to="(270,280)"/>
<wire from="(300,280)" to="(310,280)"/>
<wire from="(480,220)" to="(480,270)"/>
<wire from="(80,100)" to="(90,100)"/>
<wire from="(80,300)" to="(90,300)"/>
<wire from="(80,340)" to="(90,340)"/>
<wire from="(240,130)" to="(240,250)"/>
<wire from="(420,310)" to="(420,430)"/>
<wire from="(520,300)" to="(530,300)"/>
<wire from="(520,340)" to="(530,340)"/>
<wire from="(200,340)" to="(200,400)"/>
<wire from="(250,100)" to="(250,230)"/>
<wire from="(130,160)" to="(130,170)"/>
<wire from="(510,340)" to="(510,360)"/>
<wire from="(80,240)" to="(120,240)"/>
<wire from="(90,330)" to="(130,330)"/>
<wire from="(160,200)" to="(200,200)"/>
<wire from="(110,260)" to="(110,290)"/>
<wire from="(80,70)" to="(370,70)"/>
<wire from="(240,250)" to="(270,250)"/>
<wire from="(130,170)" to="(220,170)"/>
<wire from="(210,190)" to="(210,290)"/>
<wire from="(300,240)" to="(320,240)"/>
<wire from="(110,290)" to="(130,290)"/>
<wire from="(250,230)" to="(270,230)"/>
<wire from="(250,270)" to="(270,270)"/>
<wire from="(490,240)" to="(490,280)"/>
<wire from="(300,330)" to="(310,330)"/>
<wire from="(160,130)" to="(240,130)"/>
<wire from="(130,160)" to="(140,160)"/>
<wire from="(130,200)" to="(140,200)"/>
<wire from="(80,190)" to="(90,190)"/>
<wire from="(120,190)" to="(130,190)"/>
<wire from="(200,340)" to="(270,340)"/>
<wire from="(160,310)" to="(160,370)"/>
<wire from="(250,320)" to="(250,380)"/>
<comp lib="0" loc="(150,310)" name="Splitter">
<a name="facing" val="west"/>
<a name="fanout" val="8"/>
<a name="incoming" val="8"/>
<a name="appear" val="center"/>
</comp>
<comp lib="4" loc="(410,310)" name="Register"/>
<comp lib="0" loc="(530,220)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="Q0"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="6" loc="(187,520)" name="Text">
<a name="text" val="Both bugs are fixed here!"/>
</comp>
<comp lib="1" loc="(450,310)" name="Controlled Buffer">
<a name="width" val="8"/>
</comp>
<comp lib="0" loc="(530,280)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="Q3"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(80,440)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="/OE"/>
</comp>
<comp lib="0" loc="(530,240)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="Q1"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="6" loc="(190,487)" name="Text">
<a name="text" val="* MMI and NS datasheet have a bug in the D0 circuit"/>
</comp>
<comp lib="0" loc="(80,320)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="D5"/>
</comp>
<comp lib="1" loc="(300,330)" name="AND Gate">
<a name="width" val="8"/>
<a name="size" val="30"/>
<a name="inputs" val="4"/>
</comp>
<comp lib="1" loc="(110,440)" name="NOT Gate">
<a name="size" val="20"/>
</comp>
<comp lib="0" loc="(80,280)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="D3"/>
</comp>
<comp lib="0" loc="(530,340)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="Q6"/>
<a name="labelloc" val="east"/>
</comp>
<comp loc="(120,100)" name="__1_to_8"/>
<comp loc="(120,190)" name="__1_to_8"/>
<comp lib="1" loc="(160,130)" name="NOT Gate">
<a name="width" val="8"/>
<a name="size" val="20"/>
</comp>
<comp lib="0" loc="(530,320)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="Q5"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(530,300)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="Q4"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(80,340)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="D6"/>
</comp>
<comp lib="0" loc="(80,70)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="CK"/>
</comp>
<comp lib="0" loc="(80,300)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="D4"/>
</comp>
<comp lib="0" loc="(530,260)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="Q2"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="6" loc="(99,40)" name="Text">
<a name="text" val="74LS380"/>
<a name="font" val="SansSerif bold 24"/>
</comp>
<comp lib="0" loc="(80,260)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="D2"/>
</comp>
<comp lib="0" loc="(80,240)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="D1"/>
</comp>
<comp lib="6" loc="(206,503)" name="Text">
<a name="text" val="** Both have a second bug that inverts the function of /LD"/>
</comp>
<comp lib="0" loc="(80,360)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="D7"/>
</comp>
<comp lib="1" loc="(360,310)" name="OR Gate">
<a name="width" val="8"/>
<a name="size" val="30"/>
<a name="inputs" val="4"/>
</comp>
<comp lib="0" loc="(460,310)" name="Splitter">
<a name="fanout" val="8"/>
<a name="incoming" val="8"/>
<a name="appear" val="center"/>
</comp>
<comp loc="(120,130)" name="__1_to_8"/>
<comp lib="0" loc="(80,220)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="D0"/>
</comp>
<comp lib="1" loc="(160,200)" name="NOT Gate">
<a name="width" val="8"/>
<a name="size" val="20"/>
</comp>
<comp lib="1" loc="(300,390)" name="AND Gate">
<a name="width" val="8"/>
<a name="size" val="30"/>
<a name="inputs" val="4"/>
</comp>
<comp lib="0" loc="(80,160)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="POL"/>
</comp>
<comp loc="(120,160)" name="__1_to_8"/>
<comp lib="0" loc="(80,100)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="/CLR"/>
</comp>
<comp lib="1" loc="(300,240)" name="AND Gate">
<a name="width" val="8"/>
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
<comp lib="0" loc="(530,360)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="Q7"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(80,190)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="/LD"/>
</comp>
<comp lib="1" loc="(300,280)" name="AND Gate">
<a name="width" val="8"/>
<a name="size" val="30"/>
<a name="inputs" val="3"/>
</comp>
<comp lib="1" loc="(160,160)" name="NOT Gate">
<a name="width" val="8"/>
<a name="size" val="20"/>
</comp>
<comp lib="1" loc="(190,370)" name="NOT Gate">
<a name="width" val="8"/>
<a name="size" val="20"/>
</comp>
<comp lib="0" loc="(80,130)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="/PR"/>
</comp>
</circuit>
<circuit name="__1_to_8">
<a name="circuit" val="__1_to_8"/>
<a name="clabel" val=""/>
<a name="clabelup" val="east"/>
<a name="clabelfont" val="SansSerif plain 12"/>
<appear>
<rect fill="none" height="13" stroke="#000000" stroke-width="2" width="30" x="50" y="64"/>
<text font-family="SansSerif" font-size="10" font-weight="bold" text-anchor="middle" x="64" y="74">1➡8</text>
<circ-port height="8" pin="140,170" width="8" x="46" y="66"/>
<circ-port height="10" pin="180,180" width="10" x="75" y="65"/>
<circ-anchor facing="east" height="6" width="6" x="77" y="67"/>
</appear>
<wire from="(140,170)" to="(150,170)"/>
<wire from="(170,180)" to="(180,180)"/>
<wire from="(150,140)" to="(150,150)"/>
<wire from="(150,150)" to="(150,160)"/>
<wire from="(150,160)" to="(150,170)"/>
<wire from="(150,170)" to="(150,180)"/>
<wire from="(150,180)" to="(150,190)"/>
<wire from="(150,190)" to="(150,200)"/>
<wire from="(150,200)" to="(150,210)"/>
<comp lib="0" loc="(140,170)" name="Pin">
<a name="tristate" val="false"/>
</comp>
<comp lib="0" loc="(180,180)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="8"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(170,180)" name="Splitter">
<a name="facing" val="west"/>
<a name="fanout" val="8"/>
<a name="incoming" val="8"/>
<a name="appear" val="center"/>
</comp>
</circuit>
</project>