cpsc 513 obdd examples
play

CpSc 513: OBDD Examples Mark Greenstreet February 4, 2020 Outline: - PowerPoint PPT Presentation

CpSc 513: OBDD Examples Mark Greenstreet February 4, 2020 Outline: OBDD examples: majority gates A simple model checking example Mark Greenstreet CpSc 513: OBDD Examples Feb. 4, 2020 1 / 7 OBDD example: majority gates maj1 ( x , y , z ) =


  1. CpSc 513: OBDD Examples Mark Greenstreet February 4, 2020 Outline: OBDD examples: majority gates A simple model checking example Mark Greenstreet CpSc 513: OBDD Examples Feb. 4, 2020 1 / 7

  2. OBDD example: majority gates maj1 ( x , y , z ) = ( x ∧ y ) ∨ ( y ∧ z ) ∨ ( z ∧ x ) x x y y z 0 1 OBDDs for x and y are simple. To get the OBDD for x ∧ y we use Apply Mark Greenstreet CpSc 513: OBDD Examples Feb. 4, 2020 2 / 7

  3. OBDD example: majority gates maj1 ( x , y , z ) = ( x ∧ y ) ∨ ( y ∧ z ) ∨ ( z ∧ x ) x x ∧ y x Apply(And,x,y) y y z 0 1 OBDDs for x and y are simple. To get the OBDD for x ∧ y we use Apply ◮ x is first variable in the order Mark Greenstreet CpSc 513: OBDD Examples Feb. 4, 2020 2 / 7

  4. OBDD example: majority gates maj1 ( x , y , z ) = ( x ∧ y ) ∨ ( y ∧ z ) ∨ ( z ∧ x ) x x ∧ y x y Apply(And,0,y) Apply(And,1,y) y z 0 1 OBDDs for x and y are simple. To get the OBDD for x ∧ y we use Apply ◮ x is first variable in the order ◮ false branch at x for Apply ( A ND , x , y ) is Apply ( And x | x ← 0 , y | x ← 0 ) which simplifies to Apply ( And , 0 , y ) . Likewise, the true branch is Apply ( And , 1 , y ) . Mark Greenstreet CpSc 513: OBDD Examples Feb. 4, 2020 2 / 7

  5. OBDD example: majority gates maj1 ( x , y , z ) = ( x ∧ y ) ∨ ( y ∧ z ) ∨ ( z ∧ x ) x x ∧ y x y y z 0 1 0 OBDDs for x and y are simple. To get the OBDD for x ∧ y we use Apply ◮ x is first variable in the order ◮ false branch at x for Apply ( A ND , x , y ) is Apply ( And x | x ← 0 , y | x ← 0 ) which simplifies to Apply ( And , 0 , y ) . Likewise, the true branch is Apply ( And , 1 , y ) . ◮ Apply ( And , 0 , y ) simplies to 0, and Apply ( And , 1 , y ) simplifies to y . Mark Greenstreet CpSc 513: OBDD Examples Feb. 4, 2020 2 / 7

  6. OBDD example: majority gates maj1 ( x , y , z ) = ( x ∧ y ) ∨ ( y ∧ z ) ∨ ( z ∧ x ) x ∧ y z ∧ x x y y ∧ z y z 1 0 1 0 OBDDs for x and y are simple. To get the OBDD for x ∧ y we use Apply The OBDDs for y ∧ z and z ∧ x are similar. To avoid lots of crossing edges; I’ll use multiple 0 and 1 leaves. To keep the OBDD canonical, all 0 leaves are actually the same node, and likewise for the 1 leaves. Mark Greenstreet CpSc 513: OBDD Examples Feb. 4, 2020 2 / 7

  7. OBDD example: majority gates maj1 ( x , y , z ) = ( x ∧ y ) ∨ ( y ∧ z ) ∨ ( z ∧ x ) x ∧ y ( x ∧ y ) ∨ ( y ∧ z ) x Apply(Or, x ∧ y , y ∧ z ) y ∧ z y z 0 1 0 1 Use apply to get OBDD for ( x ∧ y ) ∨ ( y ∧ z ) . Mark Greenstreet CpSc 513: OBDD Examples Feb. 4, 2020 2 / 7

  8. OBDD example: majority gates maj1 ( x , y , z ) = ( x ∧ y ) ∨ ( y ∧ z ) ∨ ( z ∧ x ) x ∧ y ( x ∧ y ) ∨ ( y ∧ z ) x y ∧ z y Apply(Or, y , y ∧ z ) Apply(Or,0, y ∧ z ) z 0 1 0 1 Use apply to get OBDD for ( x ∧ y ) ∨ ( y ∧ z ) . ◮ (( x ∧ y ) ∨ ( y ∧ z )) | x ← 0 = 0 ∨ ( y ∧ z ) , (( x ∧ y ) ∨ ( y ∧ z )) | x ← 1 = y ∨ ( y ∧ z ) . Mark Greenstreet CpSc 513: OBDD Examples Feb. 4, 2020 2 / 7

  9. OBDD example: majority gates maj1 ( x , y , z ) = ( x ∧ y ) ∨ ( y ∧ z ) ∨ ( z ∧ x ) x ∧ y ( x ∧ y ) ∨ ( y ∧ z ) x y ∧ z y z Apply(Or,1, z ) Apply(Or,0,0) 0 1 0 1 Use apply to get OBDD for ( x ∧ y ) ∨ ( y ∧ z ) . ◮ (( x ∧ y ) ∨ ( y ∧ z )) | x ← 0 = 0 ∨ ( y ∧ z ) , (( x ∧ y ) ∨ ( y ∧ z )) | x ← 1 = y ∨ ( y ∧ z ) . ◮ 0 ∨ ( y ∧ z ) = y ∧ z , ( y ∨ ( y ∧ z )) | y ← 0 = 0 ∨ ( 0 ∧ z ) = 0, ( y ∨ ( y ∧ z )) | y ← 1 = 1 ∨ ( 1 ∧ z ) = 1. Mark Greenstreet CpSc 513: OBDD Examples Feb. 4, 2020 2 / 7

  10. OBDD example: majority gates maj1 ( x , y , z ) = ( x ∧ y ) ∨ ( y ∧ z ) ∨ ( z ∧ x ) x ∧ y ( x ∧ y ) ∨ ( y ∧ z ) x y ∧ z y z 0 1 0 1 Use apply to get OBDD for ( x ∧ y ) ∨ ( y ∧ z ) . ◮ (( x ∧ y ) ∨ ( y ∧ z )) | x ← 0 = 0 ∨ ( y ∧ z ) , (( x ∧ y ) ∨ ( y ∧ z )) | x ← 1 = y ∨ ( y ∧ z ) . ◮ 0 ∨ ( y ∧ z ) = y ∧ z , ( y ∨ ( y ∧ z )) | y ← 0 = 0 ∨ ( 0 ∧ z ) = 0, ( y ∨ ( y ∧ z )) | y ← 1 = 1 ∨ ( 1 ∧ z ) = 1. ◮ ∴ (( x ∧ y ) ∨ ( y ∧ z )) | x ← 1 = y ∨ ( y ∧ z ) = y Mark Greenstreet CpSc 513: OBDD Examples Feb. 4, 2020 2 / 7

  11. OBDD example: majority gates maj1 ( x , y , z ) = ( x ∧ y ) ∨ ( y ∧ z ) ∨ ( z ∧ x ) ( x ∧ y ) ∨ ( y ∧ z ) ∨ ( z ∧ x ) z ∧ x ( x ∧ y ) ∨ ( y ∧ z ) x Apply(Or, ( x ∧ y ) ∨ ( y ∧ z ) , z ∧ x ) y ∧ z y z 0 1 0 Use apply to get OBDD for ( x ∧ y ) ∨ ( y ∧ z ) ∨ ( z ∧ x ) . Mark Greenstreet CpSc 513: OBDD Examples Feb. 4, 2020 2 / 7

  12. OBDD example: majority gates maj1 ( x , y , z ) = ( x ∧ y ) ∨ ( y ∧ z ) ∨ ( z ∧ x ) z ∧ x ( x ∧ y ) ∨ ( y ∧ z ) ( x ∧ y ) ∨ ( y ∧ z ) ∨ ( z ∧ x ) x y ∧ z y ∨ z y z 0 1 0 1 Use apply to get OBDD for ( x ∧ y ) ∨ ( y ∧ z ) ∨ ( z ∧ x ) . Mark Greenstreet CpSc 513: OBDD Examples Feb. 4, 2020 2 / 7

  13. OBDD example: majority gates maj1 ( x , y , z ) = ( x ∧ y ) ∨ ( y ∧ z ) ∨ ( z ∧ x ) ( x ∧ y ) ∨ ( y ∧ z ) ∨ ( z ∧ x ) x y ∧ z y ∨ z y z z 0 0 1 I’ll reduced the clutter and only showed the subgraph for ( x ∧ y ) ∨ ( y ∧ z ) 0 zx . Mark Greenstreet CpSc 513: OBDD Examples Feb. 4, 2020 2 / 7

  14. OBDD example: majority gate – the product-of-sums version maj2 ( x , y , z ) = ( x ∨ y ) ∧ ( y ∨ z ) ∧ ( z ∨ x ) x ∨ y ( x ∨ y ) ∧ ( y ∨ z ) ( x ∨ y ) ∧ ( y ∨ z ) ∧ ( z ∨ x ) z ∨ x x y ∧ z y y y ∨ z z z 1 0 1 0 1 Mark Greenstreet CpSc 513: OBDD Examples Feb. 4, 2020 3 / 7

  15. OBDD example: majority gates – are they the same? maj1 ( x , y , z ) = ( x ∧ y ) ∨ ( y ∧ z ) ∨ ( z ∧ x ) maj2 ( x , y , z ) = ( x ∨ y ) ∧ ( y ∨ z ) ∧ ( z ∨ x ) ( x ∧ y ) ∨ ( y ∧ z ) ∨ ( z ∧ x ) ( x ∨ y ) ∧ ( y ∨ z ) ∧ ( z ∨ x ) x y z 0 1 1 0 Mark Greenstreet CpSc 513: OBDD Examples Feb. 4, 2020 4 / 7

  16. Now I C maj a b c C−element a 0 0 0 a c b c 0 1 unchanged b 1 0 unchanged 1 1 1 A C-element is a state-holding circuit – kind of like a flip-flop The value of c is the value that a and b had the last time they agreed. Originally described in: D.E. Muller and W.S. Bartky, “A Theory of Asynchronous Circuits”, Proceedings of the International Symposium on Switching Theory , pp. 204–243, 1959. Mark Greenstreet CpSc 513: OBDD Examples Feb. 4, 2020 5 / 7

  17. Fun with C-elements x0 C C x1 C x2 x3 C Mark Greenstreet CpSc 513: OBDD Examples Feb. 4, 2020 6 / 7

  18. Temporal Logic LTL: Linear time logic: properties that hold for all traces ◮ p : The property p holds in the current state. ◮ � p : Always – the property p holds in this state and all subsequent states. ◮ ⋄ p : Eventually – The property p in this state or some future state. ◮ Example: � ( req → ⋄ ack ) – From all states in which req holds, ack will eventually hold. CTL: Computational Tree Logic – traces are viewed as branching trees of all possible behaviours. Mark Greenstreet CpSc 513: OBDD Examples Feb. 4, 2020 7 / 7

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend