ic

Submodules

  • base
  • series_4000
  • series_7000

base

This module includes all the base classes for different ICs.

class BinPy.ic.base.Base_14pin

Bases: BinPy.ic.base.IC

This method takes base class for IC’s having 14 pins

set_pin(pin_no, pin_value)
set_pin_param(pin_no, parm_dict)
total_pins = 14
uses_pincls = False
class BinPy.ic.base.Base_16pin

Bases: BinPy.ic.base.IC

This method takes base class for IC’s having 16 pins

set_pin(pin_no, pin_value)
set_pin_param(pin_no, parm_dict)
total_pins = 16
uses_pincls = False
class BinPy.ic.base.Base_24pin

Bases: BinPy.ic.base.IC

This method takes base class for IC’s having 24 pins

set_pin(pin_no, pin_value)
set_pin_param(pin_no, parm_dict)
total_pins = 24
uses_pincls = False
class BinPy.ic.base.Base_5pin

Bases: BinPy.ic.base.IC

This method takes base class for IC’s having 5 pins

set_pin(pin_no, pin_value)
total_pins = 5
uses_pincls = False
class BinPy.ic.base.IC

This is a base class for IC

draw_IC()
output_connector = {}
set_IC(param_dict)

If pin class is not used this method then it takes a dictionary with the format { PINNO:PINVALUE, ... } Else it takes a dictionary of dictionaries with the format -> { PINNO:{PARAM1:VAL1, PARAM2:VAL2, ... }, PINNO2:{PARAM1:VAL1, PARAM2:VAL2, ... } , ... }

set_output(index, value)
truth_table(pin_config)
class BinPy.ic.base.Logic(value=0)

Implements methods of AND OR and EXOR using BinPy library Gate modules Remaps all basic python implementation of gates on variable of type bool to BinPy’s implementation of the same

class BinPy.ic.base.Pin(pin_no, param_dict={})

Pin class for defining a particular pin of an IC

Sample param_dict for a pin : { ‘value’:0, ‘desc’:’IN1: Input 1 of Mux’, ‘can_vary’:True }

First 3 characters of desc will be used as pin_tag

set_pin_param(param_dict)
BinPy.ic.base.pinlist_quick(first_arg)

Defines a method to quickly convert a list of Logic states to pin instances

series_4000

This module has all the classes of ICs belonging to 4000 series.

Please note that the length of list self.pins is 1 more than the number of actual pins. This is so because pin0 is not used as a general term referring to the first pin of the IC. Zeroth index of the self.pins is not being used.

ICs in this module: [4000, 4001, 4002, 4008, 4009, 4010, 4011, 4012, 4013, 4015, 4017, 4019, 4020, 4023, 4025, 4068, 4069, 4070, 4071, 4072, 4073

4075, 4077, 4078, 4081, 4082]
class BinPy.ic.series_4000.IC_4000

Bases: BinPy.ic.base.Base_14pin

Dual 3 Input NOR gate + one NOT gate IC. Pin_6 = NOR(Pin_3, Pin_4, Pin_5) Pin_10 = NOR(Pin_11, Pin_12, Pin_13) Pin_9 = NOT(Pin_8)

run()
class BinPy.ic.series_4000.IC_4001

Bases: BinPy.ic.base.Base_14pin

Quad 2 input NOR gate Pin_3 = NOR(Pin_1, Pin_2) Pin_4 = NOR(Pin_5, Pin_6) Pin_10 = NOR(Pin_8, Pin_9) Pin_11 = NOR(Pin_12, Pin_13)

run()
class BinPy.ic.series_4000.IC_4002

Bases: BinPy.ic.base.Base_14pin

Dual 4 input NOR gate Pin_1 = NOR(Pin_2, Pin_3, Pin_4, Pin_5) Pin_13 = NOR(Pin_9, Pin_10, Pin_11, Pin_12)

run()
class BinPy.ic.series_4000.IC_4008

Bases: BinPy.ic.base.Base_16pin

4 Bit Binary Full Adder

run()
class BinPy.ic.series_4000.IC_4009

Bases: BinPy.ic.base.Base_16pin

Hex Inverter with Level Shifted output

run()
class BinPy.ic.series_4000.IC_4010

Bases: BinPy.ic.base.Base_16pin

Hex Buffer with Level Shifted output

run()
class BinPy.ic.series_4000.IC_4011

Bases: BinPy.ic.base.Base_14pin

Quad 2 input NAND gate Pin_3 = NAND(Pin_1, Pin_2) Pin_4 = NAND(Pin_5, Pin_6) Pin_10 = NAND(Pin_8, Pin_9) Pin_11 = NAND(Pin_12, Pin_13)

run()
class BinPy.ic.series_4000.IC_4012

Bases: BinPy.ic.base.Base_14pin

Dual 4 input NAND gate Pin_1 = NAND(Pin_2, Pin_3, Pin_4, Pin_5) Pin_13 = NAND(Pin_9, Pin_10, Pin_11, Pin_12)

run()
class BinPy.ic.series_4000.IC_4013

Bases: BinPy.ic.base.Base_14pin

CMOS Dual D type Flip Flop

run()
class BinPy.ic.series_4000.IC_4015

Bases: BinPy.ic.base.Base_16pin

Dual 4 Stage static shift Register

run()
class BinPy.ic.series_4000.IC_4017

Bases: BinPy.ic.base.Base_16pin

CMOS Counters

run()
class BinPy.ic.series_4000.IC_4019

Bases: BinPy.ic.base.Base_16pin

8-to-4 line non-inverting data selector/multiplexer with OR function

run()
class BinPy.ic.series_4000.IC_4020

Bases: BinPy.ic.base.Base_16pin

CMOS 14 BIT asynchornous binary counter with reset

run()
class BinPy.ic.series_4000.IC_4022

Bases: BinPy.ic.base.Base_16pin

CMOS Octal Counter

run()
class BinPy.ic.series_4000.IC_4023

Bases: BinPy.ic.base.Base_14pin

Triple 3 input NAND gate Pin_6 = NAND(Pin_3, Pin_4, Pin_5) Pin_9 = NAND(Pin_1, Pin_2, Pin_8) Pin_10 = NAND(Pin_11, Pin_12, Pin_13)

run()
class BinPy.ic.series_4000.IC_4025

Bases: BinPy.ic.base.Base_14pin

Triple 3 input NOR gate Pin_6 = NOR(Pin_3, Pin_4, Pin_5) Pin_9 = NOR(Pin_1, Pin_2, Pin_8) Pin_10 = NOR(Pin_11, Pin_12, Pin_13)

run()
class BinPy.ic.series_4000.IC_4027

Bases: BinPy.ic.base.Base_16pin

Dual JK flip flops with set and reset

run()
class BinPy.ic.series_4000.IC_4028

Bases: BinPy.ic.base.Base_16pin

1-of-10 no-inverting decoder/demultiplexer

run()
class BinPy.ic.series_4000.IC_4029

Bases: BinPy.ic.base.Base_16pin

4-bit synchronous binary/decade up/down counter

arraytoint(inputs)
run()
class BinPy.ic.series_4000.IC_4030

Bases: BinPy.ic.base.Base_14pin

Quad 2-input XOR gate

run()
class BinPy.ic.series_4000.IC_4068

Bases: BinPy.ic.base.Base_14pin

8 input NAND gate Pin_13 = NAND(Pin_2, Pin_3, Pin_4, Pin_5, Pin_9, Pin_10, Pin_11, Pin_12)

run()
class BinPy.ic.series_4000.IC_4069

Bases: BinPy.ic.base.Base_14pin

Hex NOT gate Pin_2 = NOT(Pin_1) Pin_4 = NOT(Pin_3) Pin_6 = NOT(Pin_5) Pin_8 = NOT(Pin_9) Pin_10 = NOT(Pin_11) Pin_12 = NOT(Pin_13)

run()
class BinPy.ic.series_4000.IC_4070

Bases: BinPy.ic.base.Base_14pin

Quad 2 input XOR gate Pin_3 = XOR(Pin_1, Pin_2) Pin_4 = XOR(Pin_5, Pin_6) Pin_10 = XOR(Pin_8, Pin_9) Pin_11 = XOR(Pin_12, Pin_13)

run()
class BinPy.ic.series_4000.IC_4071

Bases: BinPy.ic.base.Base_14pin

Quad 2 input OR gate Pin_3 = OR(Pin_1, Pin_2) Pin_4 = OR(Pin_5, Pin_6) Pin_10 = OR(Pin_8, Pin_9) Pin_11 = OR(Pin_12, Pin_13)

run()
class BinPy.ic.series_4000.IC_4072

Bases: BinPy.ic.base.Base_14pin

Dual 4 input OR gate Pin_1 = OR(Pin_2, Pin_3, Pin_4, Pin_5) Pin_13 = OR(Pin_9, Pin_10, Pin_11, Pin_12)

run()
class BinPy.ic.series_4000.IC_4073

Bases: BinPy.ic.base.Base_14pin

Triple 3 input AND gate Pin_6 = AND(Pin_3, Pin_4, Pin_5) Pin_9 = AND(Pin_1, Pin_2, Pin_8) Pin_10 = AND(Pin_11, Pin_12, Pin_13)

run()
class BinPy.ic.series_4000.IC_4075

Bases: BinPy.ic.base.Base_14pin

Triple 3 input OR gate Pin_6 = OR(Pin_3, Pin_4, Pin_5) Pin_9 = OR(Pin_1, Pin_2, Pin_8) Pin_10 = OR(Pin_11, Pin_12, Pin_13)

run()
class BinPy.ic.series_4000.IC_4077

Bases: BinPy.ic.base.Base_14pin

Quad 2 input XNOR gate Pin_3 = XNOR(Pin_1, Pin_2) Pin_4 = XNOR(Pin_5, Pin_6) Pin_10 = XNOR(Pin_8, Pin_9) Pin_11 = XNOR(Pin_12, Pin_13)

run()
class BinPy.ic.series_4000.IC_4078

Bases: BinPy.ic.base.Base_14pin

8 input NOR gate Pin_13 = NOR(Pin_2, Pin_3, Pin_4, Pin_5, Pin_9, Pin_10, Pin_11, Pin_12)

run()
class BinPy.ic.series_4000.IC_4081

Bases: BinPy.ic.base.Base_14pin

Quad 2 input AND gate Pin_3 = AND(Pin_1, Pin_2) Pin_4 = AND(Pin_5, Pin_6) Pin_10 = AND(Pin_8, Pin_9) Pin_11 = AND(Pin_12, Pin_13)

run()
class BinPy.ic.series_4000.IC_4082

Bases: BinPy.ic.base.Base_14pin

Dual 4 input AND gate Pin_1 = AND(Pin_2, Pin_3, Pin_4, Pin_5) Pin_13 = AND(Pin_9, Pin_10, Pin_11, Pin_12)

run()

series_7400

This module has all the classes of ICs belonging to 7400 series.

Please note that the length of list self.pins is 1 more than the number of actual pins. This is so because pin0 is not used as a general term referring to the first pin of the IC. Zeroth index of the self.pins is not being used.

class BinPy.ic.series_7400.IC_7400

Bases: BinPy.ic.base.Base_14pin

This is a QUAD 2 INPUT NAND gate IC Pin Configuration:

Pin Number Description
1 A Input Gate 1 2 B Input Gate 1 3 Y Output Gate 1 4 A Input Gate 2 5 B Input Gate 2 6 Y Output Gate 2 7 Ground 8 Y Output Gate 3 9 B Input Gate 3 10 A Input Gate 3 11 Y Output Gate 4 12 B Input Gate 4 13 A Input Gate 4 14 Positive Supply

This class needs 14 parameters. Each parameter being the pin value. The input has to be defined as a dictionary with pin number as the key and its value being either 1 or 0

To initialise the ic 7400:
  1. set pin 7:0
  2. set pin 14:1

How to use:

>>> ic = IC_7400()
>>> pin_config = {1: 1, 2: 0, 4: 0, 5: 0, 7: 0, 9: 1, 10: 1, 12: 0, 13: 0, 14: 1}
>>> ic.set_IC(pin_cofig)
>>> ic.drawIC()
>>> ic.run()
>>> ic.set_IC(ic.run())
>>> ic.drawIC()
pins = [None,0,0,None,0,0,None,0,None,0,0,None,0,0,0]
run()
class BinPy.ic.series_7400.IC_7401

Bases: BinPy.ic.base.Base_14pin

This is a Quad 2-input open-collector NAND gate IC

run()
class BinPy.ic.series_7400.IC_7402

Bases: BinPy.ic.base.Base_14pin

This is a Quad 2-input NOR gate IC

Pin Configuration:

Pin Number Description
1 Y Output Gate 1 2 A Input Gate 1 3 B Input Gate 1 4 Y Output Gate 2 5 A Input Gate 2 6 B Input Gate 2 7 Ground 8 A Input Gate 3 9 B Input Gate 3 10 Y Output Gate 3 11 A Input Gate 4 12 B Input Gate 4 13 Y Output Gate 4 14 Positive Supply

This class needs 14 parameters. Each parameter being the pin value. The input has to be defined as a dictionary with pin number as the key and its value being either 1 or 0

To initialise the ic 7402:
  1. set pin 7:0
  2. set pin 14:1

How to use:

>>> ic = IC_7402()
>>> pin_config = {2: 0, 3: 0, 5: 0, 6: 1, 7: 0, 8: 1, 9: 1, 11: 1, 12: 1, 14: 1}
>>> ic.set_IC(pin_cofig)
>>> ic.drawIC()
>>> ic.run()
>>> ic.set_IC(ic.run())
>>> ic.drawIC()
Default pins:
pins = [None,None,0,0,None,0,0,0,0,0,None,0,0,None,0]
run()
class BinPy.ic.series_7400.IC_7403

Bases: BinPy.ic.base.Base_14pin

This is a Quad 2-input open-collector NAND gate IC

Pin Number Description
1 A Input Gate 1 2 B Input Gate 1 3 Y Output Gate 1 4 A Input Gate 2 5 B Input Gate 2 6 Y Output Gate 2 7 Ground 8 Y Output Gate 3 9 B Input Gate 3 10 A Input Gate 3 11 Y Output Gate 4 12 B Input Gate 4 13 A Input Gate 4 14 Positive Supply

This class needs 14 parameters. Each parameter being the pin value. The input has to be defined as a dictionary with pin number as the key and its value being either 1 or 0

To initialise the ic 7403:
  1. set pin 7:0
  2. set pin 14:1

How to use:

>>> ic = IC_7403()
>>> pin_config = {1: 1, 2: 0, 4: 0, 5: 0, 7: 0, 9: 1, 10: 1, 12: 0, 13: 0, 14: 1}
>>> ic.set_IC(pin_cofig)
>>> ic.drawIC()
>>> ic.run()
>>> ic.set_IC(ic.run())
>>> ic.drawIC()
Default pins:
pins = [None,0,0,None,0,0,None,0,None,0,0,None,0,0,0]
run()
class BinPy.ic.series_7400.IC_7404

Bases: BinPy.ic.base.Base_14pin

This is a hex inverter IC

Pin Number Description
1 A Input Gate 1 2 Y Output Gate 1 3 A Input Gate 2 4 Y Output Gate 2 5 A Input Gate 3 6 Y Output Gate 3 7 Ground 8 Y Output Gate 4 9 A Input Gate 4 10 Y Output Gate 5 11 A Input Gate 5 12 Y Output Gate 6 13 A Input Gate 6 14 Positive Supply

This class needs 14 parameters. Each parameter being the pin value. The input has to be defined as a dictionary with pin number as the key and its value being either 1 or 0

To initialise the ic 7404:
  1. set pin 7:0
  2. set pin 14:1

How to use:

>>> ic = IC_7404()
>>> pin_config = {1: 1, 3: 0, 5: 0, 7: 0, 9: 0, 11: 0, 13: 1, 14: 1}
>>> ic.set_IC(pin_cofig)
>>> ic.drawIC()
>>> ic.run()
>>> ic.set_IC(ic.run())
>>> ic.drawIC()
Default pins:
pins = [None,0,0,None,0,0,None,0,None,0,0,None,0,0,0]
run()
class BinPy.ic.series_7400.IC_7405

Bases: BinPy.ic.base.Base_14pin

This is hex open-collector inverter IC

run()
class BinPy.ic.series_7400.IC_7406

Bases: BinPy.ic.base.Base_14pin

This is Hex Inverter/Buffer with Hi-Volt Open Collector Output

run()
class BinPy.ic.series_7400.IC_7408

Bases: BinPy.ic.base.Base_14pin

This is a Quad 2 input AND gate IC

Pin Number Description
1 A Input Gate 1 2 B Input Gate 1 3 Y Output Gate 1 4 A Input Gate 2 5 B Input Gate 2 6 Y Output Gate 2 7 Ground 8 Y Output Gate 3 9 B Input Gate 3 10 A Input Gate 3 11 Y Output Gate 4 12 B Input Gate 4 13 A Input Gate 4 14 Positive Supply

This class needs 14 parameters. Each parameter being the pin value. The input has to be defined as a dictionary with pin number as the key and its value being either 1 or 0

To initialise the ic 7408:
  1. set pin 7:0
  2. set pin 14:1

How to use:

>>> ic = IC_7408()
>>> pin_config = {1: 1, 2: 0, 4: 0, 5: 0, 7: 0, 9: 1, 10: 1, 12: 0, 13: 0, 14: 1}
>>> ic.set_IC(pin_cofig)
>>> ic.drawIC()
>>> ic.run()
>>> ic.set_IC(ic.run())
>>> ic.drawIC()
Default pins:
pins = [None,0,0,None,0,0,None,0,None,0,0,None,0,0,0]
run()
class BinPy.ic.series_7400.IC_7410

Bases: BinPy.ic.base.Base_14pin

This is a Triple 3 input NAND gate IC

Pin Number Description
1 A Input Gate 1 2 B Input Gate 1 3 A Input Gate 2 4 B Input Gate 2 5 C Input gate 2 6 Y Output Gate 2 7 Ground 8 Y Output Gate 3 9 A Input Case 3 10 B Input Case 3 11 C Input Case 3 12 Y Output Gate 1 13 C Input Gate 1 14 Positive Supply

This class needs 14 parameters. Each parameter being the pin value. The input has to be defined as a dictionary with pin number as the key and its value being either 1 or 0

To initialise the ic 7410:
  1. set pin 7:0
  2. set pin 14:1

How to use:

>>> ic = IC_7410()
>>> pin_config = {1: 1, 2: 0, 3: 0, 4: 0, 5: 0, 7: 0, 9: 1, 10: 1, 11: 1, 13: 0, 14: 1}
>>> ic.set_IC(pin_cofig)
>>> ic.drawIC()
>>> ic.run()
>>> ic.set_IC(ic.run())
>>> ic.drawIC()
Default pins:
pins = [None,0,0,0,0,0,None,0,None,0,0,0,None,0,0]
run()
class BinPy.ic.series_7400.IC_7411

Bases: BinPy.ic.base.Base_14pin

This is a Triple 3 input AND gate IC

Pin Number Description
1 A Input Gate 1 2 B Input Gate 1 3 A Input Gate 2 4 B Input Gate 2 5 C Input gate 2 6 Y Output Gate 2 7 Ground 8 Y Output Gate 3 9 A Input Case 3 10 B Input Case 3 11 C Input Case 3 12 Y Output Gate 1 13 C Input Gate 1 14 Positive Supply

This class needs 14 parameters. Each parameter being the pin value. The input has to be defined as a dictionary with pin number as the key and its value being either 1 or 0

To initialise the ic 7411:
  1. set pin 7:0
  2. set pin 14:1

How to use:

>>> ic = IC_7411()
>>> pin_config = {1: 1, 2: 0, 3: 0, 4: 0, 5: 0, 7: 0, 9: 1, 10: 1, 11: 1, 13: 0, 14: 1}
>>> ic.set_IC(pin_cofig)
>>> ic.drawIC()
>>> ic.run()
>>> ic.set_IC(ic.run())
>>> ic.drawIC()
Default pins:
pins = [None,0,0,0,0,0,None,0,None,0,0,0,None,0,0]
run()
class BinPy.ic.series_7400.IC_7412

Bases: BinPy.ic.base.Base_14pin

This is a Triple 3 input NAND gate IC with open collector outputs

Pin Number Description
1 A Input Gate 1 2 B Input Gate 1 3 A Input Gate 2 4 B Input Gate 2 5 C Input gate 2 6 Y Output Gate 2 7 Ground 8 Y Output Gate 3 9 A Input Case 3 10 B Input Case 3 11 C Input Case 3 12 Y Output Gate 1 13 C Input Gate 1 14 Positive Supply

This class needs 14 parameters. Each parameter being the pin value. The input has to be defined as a dictionary with pin number as the key and its value being either 1 or 0

To initialise the ic 7412:
  1. set pin 7:0
  2. set pin 14:1

How to use:

>>> ic = IC_7412()
>>> pin_config = {1: 1, 2: 0, 3: 0, 4: 0, 5: 0, 7: 0, 9: 1, 10: 1, 11: 1, 13: 0, 14: 1}
>>> ic.set_IC(pin_cofig)
>>> ic.drawIC()
>>> ic.run()
>>> ic.set_IC(ic.run())
>>> ic.drawIC()
Default pins:
pins = [None,0,0,0,0,0,None,0,None,0,0,0,None,0,0]
run()
class BinPy.ic.series_7400.IC_7413

Bases: BinPy.ic.base.Base_14pin

This is a dual 4 input NAND gate IC

Pin Number Description
1 A Input Gate 1 2 B Input Gate 1 3 Not Connected 4 C Input Gate 1 5 D Input Gate 1 6 Y Output Gate 1 7 Ground 8 Y Output Gate 2 9 A Input Gate 2 10 B Input Gate 2 11 Not Connected 12 C Input Gate 2 13 D Input Gate 2 14 Positive Supply

This class needs 14 parameters. Each parameter being the pin value. The input has to be defined as a dictionary with pin number as the key and its value being either 1 or 0

To initialise the ic 7413:
  1. set pin 7:0
  2. set pin 14:1

How to use:

>>> ic = IC_7413()
>>> pin_config = {1: 1, 2: 0, 4: 0, 5: 0, 7: 0, 9: 1, 10: 1, 12: 1, 13: 1, 14: 1}
>>> ic.set_IC(pin_cofig)
>>> ic.drawIC()
>>> ic.run()
>>> ic.set_IC(ic.run())
>>> ic.drawIC()
Default pins:
pins = [None,0,0,0,0,0,None,0,None,0,0,0,0,0,0]
run()
class BinPy.ic.series_7400.IC_74133

Bases: BinPy.ic.base.Base_16pin

This is a 13-input NAND gate

run()
class BinPy.ic.series_7400.IC_74138

Bases: BinPy.ic.base.Base_16pin

This is a 1:8 demultiplexer(3:8 decoder) with output being inverted input

run()
class BinPy.ic.series_7400.IC_74139

Bases: BinPy.ic.base.Base_16pin

This is a dual 1:4 demultiplexer(2:4 decoder) with output being inverted input

run()
class BinPy.ic.series_7400.IC_7415

Bases: BinPy.ic.base.Base_14pin

This is a Triple 3 input AND gate IC with open collector outputs

Pin Number Description
1 A Input Gate 1 2 B Input Gate 1 3 A Input Gate 2 4 B Input Gate 2 5 C Input Gate 2 6 Y Output Gate 2 7 Ground 8 Y Output Gate 3 9 A Input Gate 3 10 B Input Gate 3 11 C Input Gate 3 12 Y Output Gate 1 13 C Input Gate 1 14 Positive Supply

This class needs 14 parameters. Each parameter being the pin value. The input has to be defined as a dictionary with pin number as the key and its value being either 1 or 0

To initialise the ic 7415:
  1. set pin 7:0
  2. set pin 14:1

How to use:

>>> ic = IC_7415()
>>> pin_config = {1:1, 2:0, 3:0, 4:0, 5:0, 7:0, 9:1, 10:1, 11:1, 13:0, 14:1}
>>> ic.set_IC(pin_cofig)
>>> ic.drawIC()
>>> ic.run()
>>> ic.set_IC(ic.run())
>>> ic.drawIC()
Default pins:
pins = [None,0,0,0,0,0,None,0,None,0,0,0,None,0,0]
run()
class BinPy.ic.series_7400.IC_74151A

Bases: BinPy.ic.base.Base_16pin

This is 16-pin 8:1 multiplexer featuring complementary W and Y outputs

run()
class BinPy.ic.series_7400.IC_74152

Bases: BinPy.ic.base.Base_14pin

This is 14-pin 8:1 multiplexer with inverted input.

Pin Number Description

1 D4 2 D3 3 D2 4 D1 5 D0 6 Output W 7 Ground 8 select line C 9 select line B 10 select line A 11 D7 12 D6 13 D5 14 Positive Supply

select_lines = CBA and Inputlines = D0 D1 D2 D3 D4 D5 D6 D7

run()
class BinPy.ic.series_7400.IC_74153

Bases: BinPy.ic.base.Base_16pin

This is 16-pin dual 4:1 multiplexer with output same as the input.

Pin Number Description 1 Strobe1 2 Select line B 3 1C3 4 1C2 5 1C1 6 1C0 7 1Y - OUTPUT1 8 Ground 9 2Y - OUTPUT2 10 2C0 11 2C1 12 2C2 13 2C3 14 Select line A 15 Strobe2 16 Positive Supply

select_lines = BA ; Inputlines1 = 1C0 1C1 1C2 1C3 ; Inputlines2 = 2C0 2C1 2C2 2C3

run()
class BinPy.ic.series_7400.IC_74155

Bases: BinPy.ic.base.Base_16pin

This is a dual 1:4 demultiplexer(2:4 decoder) with one output being inverted input while the other same as the input

run()
class BinPy.ic.series_7400.IC_74156

Bases: BinPy.ic.base.Base_16pin

This is a dual 1:4 demultiplexer(2:4 decoder) with one output being inverted input while the other same as the input with open collector

run()
class BinPy.ic.series_7400.IC_7416

Bases: BinPy.ic.base.Base_14pin

This is a Hex open-collector high-voltage inverter

run()
class BinPy.ic.series_7400.IC_7417

Bases: BinPy.ic.base.Base_14pin

This is a Hex open-collector high-voltage buffer

run()
class BinPy.ic.series_7400.IC_7418

Bases: BinPy.ic.base.Base_14pin

This is a Dual 4-input NAND gates with schmitt-trigger inputs.

run()
class BinPy.ic.series_7400.IC_74181

Bases: BinPy.ic.base.Base_24pin

This is a 4-bit Arithmetic Logic Unit which performs 16 diff functions. It has two modes active high input mode and active low input mode(Active high mode is used here)

Pin Number Description

1 Input - B0 2 Input - A0 3 Input - Select Line - S3 4 Input - Select Line - S2 5 Input - Select Line - S1 6 Input - Select Line - S0 7 Input - Carry 8 Input - Mode Input(M) 9 Output- F0 10 Output- F1 11 Output- F2 12 Ground 13 Output- F3 14 Output- A=B 15 Output- P 16 Output- NOT(C(n+4)) 17 Output- G 18 Input - B3 19 Input - A3 20 Input - B2 21 Input - A2 22 Input - B1 23 Input - A1 24 VCC

Mode and Select Lines are used to select the function to be performed by the ALU on the two 4-bit input data A3 A2 A1 A0 & B3 B2 B1 B0(Inputs A0-A3 and B0-B3 have to be complemented and given).

run()
class BinPy.ic.series_7400.IC_7419

Bases: BinPy.ic.base.Base_14pin

This is a Hex inverters with schmitt-trigger line-receiver inputs.

run()
class BinPy.ic.series_7400.IC_741G00

Bases: BinPy.ic.base.Base_5pin

This is a single 2 input NAND gate IC

run()
class BinPy.ic.series_7400.IC_741G02

Bases: BinPy.ic.base.Base_5pin

This is a single 2 input NOR gate IC

run()
class BinPy.ic.series_7400.IC_741G03

Bases: BinPy.ic.base.Base_5pin

This is a single 2 input NAND gate IC

run()
class BinPy.ic.series_7400.IC_741G04

Bases: BinPy.ic.base.Base_5pin

This is a single inverter IC

run()
class BinPy.ic.series_7400.IC_741G05

Bases: BinPy.ic.base.Base_5pin

This is a single input NOT gate IC

run()
class BinPy.ic.series_7400.IC_741G08

Bases: BinPy.ic.base.Base_5pin

This is a single 2 input AND gate IC

run()
class BinPy.ic.series_7400.IC_7420

Bases: BinPy.ic.base.Base_14pin

This is a dual 4-input NAND gate

run()
class BinPy.ic.series_7400.IC_7421

Bases: BinPy.ic.base.Base_14pin

This is a dual 4-input AND gate

run()
class BinPy.ic.series_7400.IC_7422

Bases: BinPy.ic.base.Base_14pin

This is a dual 4-input NAND gate with open collector outputs

run()
class BinPy.ic.series_7400.IC_7424

Bases: BinPy.ic.base.Base_14pin

This is a Quad 2-input NAND gates with schmitt-trigger line-receiver inputs

run()
class BinPy.ic.series_7400.IC_7425

Bases: BinPy.ic.base.Base_14pin

This is a Dual 5-Input NOR Gate with Strobe

run()
class BinPy.ic.series_7400.IC_7426

Bases: BinPy.ic.base.Base_14pin

This is a Quad 2-input open-collector high-voltage NAND gates.

run()
class BinPy.ic.series_7400.IC_74260

Bases: BinPy.ic.base.Base_14pin

This is a dual 5-input NOR gate

run()
class BinPy.ic.series_7400.IC_7427

Bases: BinPy.ic.base.Base_14pin

This is a Triple 3-Input NOR Gate

run()
class BinPy.ic.series_7400.IC_7428

Bases: BinPy.ic.base.Base_14pin

This is a Quad 2-input NOR gates with buffered outputs.

run()
class BinPy.ic.series_7400.IC_7430

Bases: BinPy.ic.base.Base_14pin

This is a 8-Input NAND Gate

run()
class BinPy.ic.series_7400.IC_7431

Bases: BinPy.ic.base.Base_16pin

This is a Hex delay element.

run()
class BinPy.ic.series_7400.IC_7432

Bases: BinPy.ic.base.Base_14pin

This is a Quad 2-Input OR Gate

run()
class BinPy.ic.series_7400.IC_7433

Bases: BinPy.ic.base.Base_14pin

This is a Quad 2-input open-collector NOR gate

run()
class BinPy.ic.series_7400.IC_7437

Bases: BinPy.ic.base.Base_14pin

This is a Quad 2-input NAND gates with buffered output

run()
class BinPy.ic.series_7400.IC_7438

Bases: BinPy.ic.base.Base_14pin

This is a Quad 2-Input NAND Buffer with Open Collector Output

run()
class BinPy.ic.series_7400.IC_7440

Bases: BinPy.ic.base.Base_14pin

This is a Dual 4-Input NAND Buffer

run()
class BinPy.ic.series_7400.IC_7442

Bases: BinPy.ic.base.Base_16pin

This is a BCD to Decimal decoder BCD Digits are in order of A B C D where pin 15 = A, pin 12 = D

run()
class BinPy.ic.series_7400.IC_7443

Bases: BinPy.ic.base.Base_16pin

This is an excess-3 to Decimal decoder Excess-3 binary digits are in order of A B C D, where pin 15 = A and pin 12 = D

run()
class BinPy.ic.series_7400.IC_7444

Bases: BinPy.ic.base.Base_16pin

This is an excess-3 gray code to Decimal decoder Excess-3 gray code digits are in order of A B C D, where pin 15 = A and pin 12 = D

run()
class BinPy.ic.series_7400.IC_7445

Bases: BinPy.ic.base.Base_16pin

This is a Four-to-Ten (BCD to Decimal) DECODER using the DEMUX functionality from combinational.py datasheet at http://www.skot9000.com/ttl/datasheets/45.pdf

run()
class BinPy.ic.series_7400.IC_7447

Bases: BinPy.ic.base.Base_16pin

BCD to 7-segment decoder

run()
class BinPy.ic.series_7400.IC_7451

Bases: BinPy.ic.base.Base_14pin

This is a dual 2-wide 2-input AND-OR Invert gate

run()
class BinPy.ic.series_7400.IC_7454

Bases: BinPy.ic.base.Base_14pin

This is a 4-wide 2-input AND-OR Invert gate

run()
class BinPy.ic.series_7400.IC_7455

Bases: BinPy.ic.base.Base_14pin

This is a 4-wide 2-input AND-OR Invert gate

run()
class BinPy.ic.series_7400.IC_7458

Bases: BinPy.ic.base.Base_14pin

This is a 2-input and 3-input AND-OR gate

run()
class BinPy.ic.series_7400.IC_7459

Bases: BinPy.ic.base.Base_14pin

This is a 2-input and 3-input AND-OR inverter gate

run()
class BinPy.ic.series_7400.IC_7464

Bases: BinPy.ic.base.Base_14pin

This is a 4-2-3-2 input AND-OR-invert gate

run()
class BinPy.ic.series_7400.IC_7470

Bases: BinPy.ic.base.Base_14pin

AND gated JK Positive Edge triggered Flip Flop with preset and clear

run()
class BinPy.ic.series_7400.IC_7472

Bases: BinPy.ic.base.Base_14pin

AND gated JK Master-Slave Flip Flop with preset and clear

run()
class BinPy.ic.series_7400.IC_7473

Bases: BinPy.ic.base.Base_14pin

DUAL JK Flip Flops with clear

run()
class BinPy.ic.series_7400.IC_7474

Bases: BinPy.ic.base.Base_14pin

Dual D-Type Positive-Edge-Triggered Flip-Flops with preset and clear

run()
class BinPy.ic.series_7400.IC_7475

Bases: BinPy.ic.base.Base_16pin

4-Bit Bistable Latches

run()
class BinPy.ic.series_7400.IC_7476

Bases: BinPy.ic.base.Base_16pin

Dual JK Flip Flop with preset and clear

run()
class BinPy.ic.series_7400.IC_7483

Bases: BinPy.ic.base.Base_16pin

This is a 4-bit full adder with fast carry

run()
class BinPy.ic.series_7400.IC_7485

Bases: BinPy.ic.base.Base_16pin

4 bit magnitude comparator Comparing two 4-bit binary numbers A3A2A1A0 & B3B2B1B0

Pin Number Description 1 B3(MSB) 2 Cascade Input - A<B 3 Cascade Input - A=B 4 Cascade Input - A>B 5 Output A>B 6 Output A=B 7 Output A<B 8 Ground 9 B0 10 A0 11 B1 12 A1 13 A2 14 B2 15 A3(MSB) 16 VCC

We can compare 8,12,16... by cascading more of these ICs

run()
class BinPy.ic.series_7400.IC_7486

Bases: BinPy.ic.base.Base_14pin

This is a quad 2-input exclusive OR gate

run()

Module contents