Presentation is loading. Please wait.

Presentation is loading. Please wait.

Elements of Computing Systems, Nisan & Schocken, MIT Press, www.nand2tetris.org, Chapter 1: Boolean Logic slide 1www.nand2tetris.org Building a Modern.

Similar presentations


Presentation on theme: "Elements of Computing Systems, Nisan & Schocken, MIT Press, www.nand2tetris.org, Chapter 1: Boolean Logic slide 1www.nand2tetris.org Building a Modern."— Presentation transcript:

1 Elements of Computing Systems, Nisan & Schocken, MIT Press, www.nand2tetris.org, Chapter 1: Boolean Logic slide 1www.nand2tetris.org Building a Modern Computer From First Principles Boolean Logic

2 Elements of Computing Systems, Nisan & Schocken, MIT Press, www.nand2tetris.org, Chapter 1: Boolean Logic slide 2www.nand2tetris.org Usage and Copyright Notice: Copyright © Noam Nisan and Shimon Schocken This presentation contains lecture materials that accompany the textbook “The Elements of Computing Systems” by Noam Nisan & Shimon Schocken, MIT Press, 2005. We provide both PPT and PDF versions. Our web site, www.nand2tetris.org,features a set of presentations, one for each book chapter. Each presentation is designed to support about 3 hours of classroom or self-study instruction. You are welcome to use or edit this presentation as you see fit for instructional and non- commercial purposes. If you use our materials, please include a reference to www.nand2tetris.orgwww.nand2tetris.org If you have any questions or comments, please write us at nand2tetris@gmail.com

3 Elements of Computing Systems, Nisan & Schocken, MIT Press, www.nand2tetris.org, Chapter 1: Boolean Logic slide 3www.nand2tetris.org Boolean algebra Some elementary Boolean functions: Not(x) And(x,y) Or(x,y) Nand(x,y) x y z 0 0 0 0 1 0 0 1 0 1 1 0 1 0 0 1 1 0 1 1 0 1 1 1 1 0 Boolean functions: A Boolean function can be expressed using a functional expression or a truth table expression Important observation: Every Boolean function can be expressed using And, Or, Not. x y Nand(x,y) 0 0 1 0 1 1 1 0 1 1 1 0 x y Nand(x,y) 0 0 1 0 1 1 1 0 1 1 1 0 x y And(x,y) 0 0 0 0 1 0 1 0 0 1 1 1 x y And(x,y) 0 0 0 0 1 0 1 0 0 1 1 1 x y Or(x,y) 0 0 0 0 1 1 1 0 1 1 1 1 x y Or(x,y) 0 0 0 0 1 1 1 0 1 1 1 1 x Not(x) 0 1 1 0 x Not(x) 0 1 1 0

4 Elements of Computing Systems, Nisan & Schocken, MIT Press, www.nand2tetris.org, Chapter 1: Boolean Logic slide 4www.nand2tetris.org All Boolean functions of 2 variables

5 Elements of Computing Systems, Nisan & Schocken, MIT Press, www.nand2tetris.org, Chapter 1: Boolean Logic slide 5www.nand2tetris.org Boolean algebra Given: Nand(a,b), false We can build: Not(a) = Nand(a,a) true = Not(false) And(a,b) = Not(Nand(a,b)) Or(a,b) = Not(And(Not(a),Not(b))) Xor(a,b) = Or(And(a,Not(b)),And(Not(a),b))) Etc. George Boole, 1815-1864 (“A Calculus of Logic”)

6 Elements of Computing Systems, Nisan & Schocken, MIT Press, www.nand2tetris.org, Chapter 1: Boolean Logic slide 6www.nand2tetris.org Gate logic Gate logic – a gate architecture designed to implement a Boolean function Elementary gates: Composite gates: Important distinction: Interface (what) VS implementation (how).

7 Elements of Computing Systems, Nisan & Schocken, MIT Press, www.nand2tetris.org, Chapter 1: Boolean Logic slide 7www.nand2tetris.org Gate logic Xor(a,b) = Or(And(a,Not(b)),And(Not(a),b))) Implementation Interface Claude Shannon, 1916-2001 (“Symbolic Analysis of Relay and Switching Circuits” )

8 Elements of Computing Systems, Nisan & Schocken, MIT Press, www.nand2tetris.org, Chapter 1: Boolean Logic slide 8www.nand2tetris.org Circuit implementations From a computer science perspective, physical realizations of logic gates are irrelevant.

9 Elements of Computing Systems, Nisan & Schocken, MIT Press, www.nand2tetris.org, Chapter 1: Boolean Logic slide 9www.nand2tetris.org Project 1: elementary logic gates Given: Nand(a,b), false Build: Not(a) =... true =... And(a,b) =... Or(a,b) =... Mux(a,b,sel) =... Etc. - 12 gates altogether. a b Nand(a,b) 0 0 1 0 1 1 1 0 1 1 1 0 a b Nand(a,b) 0 0 1 0 1 1 1 0 1 1 1 0 Q: Why these particular 12 gates? A: Since … They are commonly used gates They provide all the basic building blocks needed to build our computer.

10 Elements of Computing Systems, Nisan & Schocken, MIT Press, www.nand2tetris.org, Chapter 1: Boolean Logic slide 10www.nand2tetris.org Multiplexer Proposed Implementation: based on Not, And, Or gates. a b sel out 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 1 1 0 1 1 0 1 11 1 1 a b sel out 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 1 1 0 1 1 0 1 11 1 1 sel out 0 a 1 b sel out 0 a 1 b

11 Elements of Computing Systems, Nisan & Schocken, MIT Press, www.nand2tetris.org, Chapter 1: Boolean Logic slide 11www.nand2tetris.org a b out 0 0 0 0 1 0 1 0 0 1 1 1 a b out 0 0 0 0 1 0 1 0 0 1 1 1 And.cmp load And.hdl, output-file And.out, compare-to And.cmp, output-list a b out; set a 0,set b 0,eval,output; set a 0,set b 1,eval,output; set a 1,set b 0,eval,output; set a 1, set b 1, eval, output; load And.hdl, output-file And.out, compare-to And.cmp, output-list a b out; set a 0,set b 0,eval,output; set a 0,set b 1,eval,output; set a 1,set b 0,eval,output; set a 1, set b 1, eval, output; And.tstAnd.hdl CHIP And { IN a, b; OUT out; // implementation missing } CHIP And { IN a, b; OUT out; // implementation missing } Example: Building an And gate Contract: When running your.hdl on our.tst, your.out should be the same as our.cmp.

12 Elements of Computing Systems, Nisan & Schocken, MIT Press, www.nand2tetris.org, Chapter 1: Boolean Logic slide 12www.nand2tetris.org Building an And gate CHIP And { IN a, b; OUT out; // implementation missing } CHIP And { IN a, b; OUT out; // implementation missing } And.hdl Interface: And(a,b) = 1 exactly when a=b=1

13 Elements of Computing Systems, Nisan & Schocken, MIT Press, www.nand2tetris.org, Chapter 1: Boolean Logic slide 13www.nand2tetris.org Implementation: And(a,b) = Not(Nand(a,b)) Building an And gate CHIP And { IN a, b; OUT out; // implementation missing } CHIP And { IN a, b; OUT out; // implementation missing } And.hdl

14 Elements of Computing Systems, Nisan & Schocken, MIT Press, www.nand2tetris.org, Chapter 1: Boolean Logic slide 14www.nand2tetris.org Implementation: And(a,b) = Not(Nand(a,b)) CHIP And { IN a, b; OUT out; // implementation missing } CHIP And { IN a, b; OUT out; // implementation missing } And.hdl Building an And gate

15 Elements of Computing Systems, Nisan & Schocken, MIT Press, www.nand2tetris.org, Chapter 1: Boolean Logic slide 15www.nand2tetris.org CHIP And { IN a, b; OUT out; Nand(a = a, b = b, out = x); Not(in = x, out = out) } CHIP And { IN a, b; OUT out; Nand(a = a, b = b, out = x); Not(in = x, out = out) } Implementation: And(a,b) = Not(Nand(a,b)) Building an And gate And.hdl

16 Elements of Computing Systems, Nisan & Schocken, MIT Press, www.nand2tetris.org, Chapter 1: Boolean Logic slide 16www.nand2tetris.org Hardware simulator (demonstrating Xor gate construction) test script HDL program

17 Elements of Computing Systems, Nisan & Schocken, MIT Press, www.nand2tetris.org, Chapter 1: Boolean Logic slide 17www.nand2tetris.org Hardware simulator HDL program

18 Elements of Computing Systems, Nisan & Schocken, MIT Press, www.nand2tetris.org, Chapter 1: Boolean Logic slide 18www.nand2tetris.org HDL program Hardware simulator output file

19 Elements of Computing Systems, Nisan & Schocken, MIT Press, www.nand2tetris.org, Chapter 1: Boolean Logic slide 19www.nand2tetris.org Project materials: www.nand2tetris.org Project 1 web site And.hdl, And.tst, And.cmp files

20 Elements of Computing Systems, Nisan & Schocken, MIT Press, www.nand2tetris.org, Chapter 1: Boolean Logic slide 20www.nand2tetris.org Project 1 tips Read the Introduction + Chapter 1 of the book Download the book’s software suite Go through the hardware simulator tutorial Do Project 0 (optional) You’re in business.

21 Elements of Computing Systems, Nisan & Schocken, MIT Press, www.nand2tetris.org, Chapter 1: Boolean Logic slide 21www.nand2tetris.org Perspective Each Boolean function has a canonical representation The canonical representation is expressed in terms of And, Not, Or And, Not, Or can be expressed in terms of Nand alone Ergo, every Boolean function can be realized by a standard PLD consisting of Nand gates only Mass production Universal building blocks, unique topology Gates, neurons, atoms, …

22 Elements of Computing Systems, Nisan & Schocken, MIT Press, www.nand2tetris.org, Chapter 1: Boolean Logic slide 22www.nand2tetris.org End notes: Canonical representation Whodunit story: Each suspect may or may not have an alibi (a), a motivation to commit the crime (m), and a relationship to the weapon found in the scene of the crime (w). The police decides to focus attention only on suspects for whom the proposition Not(a) And (m Or w) is true. Truth table of the "suspect" function Canonical form:

23 Elements of Computing Systems, Nisan & Schocken, MIT Press, www.nand2tetris.org, Chapter 1: Boolean Logic slide 23www.nand2tetris.org End notes: Canonical representation (cont.)

24 Elements of Computing Systems, Nisan & Schocken, MIT Press, www.nand2tetris.org, Chapter 1: Boolean Logic slide 24www.nand2tetris.org End notes: Programmable Logic Device for 3-way functions

25 Elements of Computing Systems, Nisan & Schocken, MIT Press, www.nand2tetris.org, Chapter 1: Boolean Logic slide 25www.nand2tetris.org End notes: universal building blocks, unique topology


Download ppt "Elements of Computing Systems, Nisan & Schocken, MIT Press, www.nand2tetris.org, Chapter 1: Boolean Logic slide 1www.nand2tetris.org Building a Modern."

Similar presentations


Ads by Google