Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

abhitron/BinPy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

190 Commits

Repository files navigation



Build Status

What is BinPy?

This package will serve as a base to develop circuit based applications or logical games on top of it. This package does not depend on any external library other than pure Python.

How to use

Here's an example of SR latch constructed from a pair of cross-coupled NOR gates SR latch | Source: Wikipedia

from BinPy import *
a = Connector()
b = Connector()
g1 = NOR(R,b)
g1.setOutput(a) # SET OUTPUT as a
g2 = NOR(S,a) 
g2.setOutput() # SET OUTPUT as b
print [g1.output(),g2.output]

Output

Q: True Q': False
Q: False Q': True
Q: False Q': True
Q: False Q': False

Operations, Combinatonal Logic and Algorithms

from BinPy import *
#Operations
operator = Operations()
operator.ADD(1011,11)
operator.SUB(1011,11)
operator.COMP('0011',1) #Second argument chooses betweem 1's or 2's Compliment
#Combinational Logic
d = Decoder([1,1,0,1])
d.output('01')
#Sequential Circuits
a = DFlipFlop(1,0)
a.output()
#IC
myIC = IC_7400()
p = {1:1,2:0,4:0,5:0,7:0,10:1,9:1,13:0,12:0,14:1}
myIC.setIC(p)
print "IC_7400 Out: ", myIC.run()
myIC1 = IC_7401()
p = {2:0,3:1,5:0,6:0,7:0,8:1,9:1,11:0,12:0,14:1}
myIC1.setIC(p)
print "IC_7401 Out: ", myIC1.run()
#Algorithms 
#Includes the Quine-McCluskey algorithm for solving K-Maps
FinalEquation = QM(['A','B'])
print "Minimized Boolean Equation : " , FinalEquation.get_function(qm.solve([0,1,2],[])[1])

Output

DFlipFlop Output: [1,0]
IC_7400 Out: {8: 0, 11: 1, 3: 1, 6: 1}
IC_7401 Out: {1: 1, 10: 0, 4: 1, 13: 1}
Minimized Boolean Equation : ((NOT B) OR (NOT A))

Available Resources

  • All basic logic gates (NOT, OR, NOR, AND, NAND, XOR, XNOR)

  • Combinational logics

    • Adder
    • Subtractor
    • Multiplier
    • MUX (2:1, 4:1, 8:1, 16:1)
    • DEMUX (1:2, 1:4, 1:8, 1:16)
    • Encoder
  • IC

    • 7400
    • 7401
    • 7402
    • 7403
    • 7404
    • 7405
    • 7408
    • 7410
    • 7411
    • 7412
    • 7413
    • 7415
    • 7416
    • 7417
    • 7418
    • 7419
    • 7420
    • 7421
    • 7422
    • 7424
    • 7425
    • 7426
    • 7427
    • 7428
    • 7430
    • 7432
    • 7433
    • 7437
    • 7440
    • 7451
    • 7454
    • 7455
    • 7458
    • 741G00
    • 741G02
    • 741G03
    • 741G04
    • 741G05
    • 741G08
    • 7431
    • 7442
    • 7443
    • 7444
  • Algorithms

    • Quine-McCluskey Algorithm (To find minimized Boolean Equation)
    • Moore Machine Optimizer

Documentation

Auto-generated documentation is available for reference at BinPy docs

Installation

Linux

Install with pip

sudo apt-get install pip setuptools ipython
sudo pip install https://github.com/BinPy/BinPy/zipball/master

Install using git

sudo apt-get install git setuptools ipython
git clone https://github.com/BinPy/BinPy.git
cd BinPy/
sudo python setup.py install

Future Work

  • Introduction of all ICs
  • Introduction of problem solving algorithms
  • Addition of Microprocessors and Analog Devices
  • Graphical representation of the circuit
  • ...

How To Contribute

Bitdeli Badge

About

Virtualizing Electronics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%

AltStyle によって変換されたページ (->オリジナル) /