ILOC is a suite of three hierarchical software tools. At the core, the Boundary Logic Engine (Losp) provides Boolean minimization of logic function

Similar documents
PRESENTATION SLIDES FOR PUN-LOSP William Bricken July Interface as Overview

22ND CENTURY_J1.xls Government Site Hourly Rate

Appendix 5-1: Attachment J.1 Pricing Table -1: IMS Ceiling Loaded Rates at Contractor Site

Encode parens form without variables as (=1 and )=0. The bit-pattern matching engine applies crossing and calling using these rules:

SPARE CONNECTORS KTM 2014

SPAREPARTSCATALOG: CONNECTORS SPARE CONNECTORS KTM ART.-NR.: 3CM EN

1/28/2013. Synthesis. The Y-diagram Revisited. Structural Behavioral. More abstract designs Physical. CAD for VLSI 2

Boolean Representations and Combinatorial Equivalence

Experiment 4 Boolean Functions Implementation

Propositional Calculus: Boolean Algebra and Simplification. CS 270: Mathematical Foundations of Computer Science Jeremy Johnson

Working with Data sent to a Computer or Flash Stick

CS Bootcamp Boolean Logic Autumn 2015 A B A B T T T T F F F T F F F F T T T T F T F T T F F F

IT 201 Digital System Design Module II Notes

Chapter 8: Data Abstractions

2. BOOLEAN ALGEBRA 2.1 INTRODUCTION

CONVENTIONAL INTERPRETATIONS OF BOUNDARY LOGIC TOOLS William Bricken April 2002

ABC basics (compilation from different articles)


CS8803: Advanced Digital Design for Embedded Hardware

Chapter 2 Combinational

Mixed Integer Linear Programming

Summary. Boolean Addition

Combinational Logic & Circuits

DETAIL SPECIFICATION SHEET

Introduction to Computer Architecture

1 Definition of Reduction

Programming Languages Third Edition

C-SMART Help: Monetary Contributions 3/4/2019 Page 1

CHAPTER-2 STRUCTURE OF BOOLEAN FUNCTION USING GATES, K-Map and Quine-McCluskey

Chapter 1. 1 Computer-Aided Logic Design. 1.1 Introduction. 1.2 General Philosophy of Problem Specification and Solution

IMPLEMENTATION DESIGN FLOW

MODULE 5 - COMBINATIONAL LOGIC

Combinational Logic Circuits

Chapter 3. Gate-Level Minimization. Outlines

CSE241 VLSI Digital Circuits UC San Diego

Combinational Logic Circuits

BOOLEAN ALGEBRA. Logic circuit: 1. From logic circuit to Boolean expression. Derive the Boolean expression for the following circuits.

Propositional Calculus. CS 270: Mathematical Foundations of Computer Science Jeremy Johnson

Chapter 1 Summary. Chapter 2 Summary. end of a string, in which case the string can span multiple lines.

Review. EECS Components and Design Techniques for Digital Systems. Lec 05 Boolean Logic 9/4-04. Seq. Circuit Behavior. Outline.

Basic Properties The Definition of Catalan Numbers

Losp for Predicate Calculus

DLD VIDYA SAGAR P. potharajuvidyasagar.wordpress.com. Vignana Bharathi Institute of Technology UNIT 3 DLD P VIDYA SAGAR

A Satisfiability Procedure for Quantified Boolean Formulae

Hardware description language (HDL)

Synthesis of combinational logic

OPAL-RT FIU User Guide.

CHAPTER 9 MULTIPLEXERS, DECODERS, AND PROGRAMMABLE LOGIC DEVICES

An Evolution of Mathematical Tools

User Guide for OSM users to Record Youth Data on the TSA Template to be Used for Uploading Youth Data to Compass

Binary Decision Diagrams

COMPUTER ARCHITECTURE AND ORGANIZATION Register Transfer and Micro-operations 1. Introduction A digital system is an interconnection of digital

Propositional Calculus. Math Foundations of Computer Science

There are four numeric types: 1. Integers, represented as a 32 bit (or longer) quantity. Digits sequences (possibly) signed are integer literals:

CBSE SAMPLE PAPERS SUMMATIVE ASSESSMENT-II (MATHS) CLASS 10

Specifying logic functions

Module 6. Knowledge Representation and Logic (First Order Logic) Version 2 CSE IIT, Kharagpur

Propositional Calculus: Boolean Functions and Expressions. CS 270: Mathematical Foundations of Computer Science Jeremy Johnson

Informatics 1 - Computation & Logic: Tutorial 4

Research Collection. Overapproximating the Cost of Loops. Master Thesis. ETH Library. Author(s): Schweizer, Daniel. Publication Date: 2013

DIGITAL ARITHMETIC: OPERATIONS AND CIRCUITS

Read-Once Functions (Revisited) and the Readability Number of a Boolean Function. Martin Charles Golumbic

GraphBLAS Mathematics - Provisional Release 1.0 -

Polygon Triangulation

Chapter 6 Combinational-Circuit Building Blocks

Logic and Computation

Literal Cost F = BD + A B C + A C D F = BD + A B C + A BD + AB C F = (A + B)(A + D)(B + C + D )( B + C + D) L = 10

6.1 Combinational Circuits. George Boole ( ) Claude Shannon ( )

Register Transfer and Micro-operations

ECE260B CSE241A Winter Logic Synthesis

2SAT Andreas Klappenecker

A Small Interpreted Language

ENGIN 241 Digital Systems with Lab

ALGORITHMS EXAMINATION Department of Computer Science New York University December 17, 2007

Logisimple. Language Reference Manual. October 16, Introduction 3

Introduction. The Quine-McCluskey Method Handout 5 January 24, CSEE E6861y Prof. Steven Nowick

Computer Organization and Levels of Abstraction

DISTINCTION NETWORKS William Bricken July 1995

Slide Set 5. for ENEL 353 Fall Steve Norman, PhD, PEng. Electrical & Computer Engineering Schulich School of Engineering University of Calgary

How Computers Work. Processor and Main Memory. Roger Young

A.1 Numbers, Sets and Arithmetic

Chapter 2 Combinational Logic Circuits

Chapter 6. CMOS Functional Cells

Parts List, Charging Chart, Wiring Diagrams

\n is used in a string to indicate the newline character. An expression produces data. The simplest expression

Example of a Demonstration that a Problem is NP-Complete by reduction from CNF-SAT

Unit 4: Formal Verification

SMAJ SERIES 400 Watts Suface Mount Transient Voltage Suppressor SMA/DO-214AC. RoHS. Features

PROPOSITIONAL LOGIC (2)

1 Lexical Considerations

Boolean Functions (Formulas) and Propositional Logic

Homework 1. Due Date: Wednesday 11/26/07 - at the beginning of the lecture

UC Berkeley College of Engineering, EECS Department CS61C: Combinational Logic Blocks

UC Berkeley College of Engineering, EECS Department CS61C: Combinational Logic Blocks

CS470: Computer Architecture. AMD Quad Core

Date Performed: Marks Obtained: /10. Group Members (ID):. Experiment # 04. Boolean Expression Simplification and Implementation

(Refer Slide Time 6:48)

Programming Language Concepts, cs2104 Lecture 04 ( )

Honu. Version November 6, 2010

Linear lambda calculus and PTIME-completeness

Transcription:

PUN FORMAT William Bricken August 2003 CONTENTS ILOC Models Modeling Circuits The Advantage of Boundary Logic Representations Parens Notation Parens Semantics Pun Notation Majority Example Dnets Extruded Parens Form Parens-Pun Form MAJORITY in the One-Bit Adder ILOC Patterns DMC54 Patterns ILOC ILOC is a suite of three hierarchical software tools. At the core, the Boundary Logic Engine (Losp) provides Boolean minimization of logic function graphs. The Circuit Graph Engine (CDE) manipulates circuitry-specific transformations on structure, such as structure sharing and technology library mapping. The outer layer of functionality, the Application Interface, admits and generates EDIF specifications, provides batch-mode processing, test-vector verification, statistical analysis, and interfaces to CAD and other interactive systems. ILOC calls Losp for minimization, then applies structural rearrangement algorithms to the minimized parens forms. Due to the homogeneity of parens notation, patterns in the circuit can be easily identified. ILOC identifies common gate patterns (XOR, MUX), common structures that can be combined by increasing fanout (structure sharing), and common patterns found in technology libraries (technology mapping). The Circuit Design Engine (aka Circuit Design Explorer), is a stand-alone application of Losp/ILOC as an EDA product prototype. The CDE generates candidate circuits within a parameterized design space. Candidates are structural variations of the same functionality. The designer specifies a configuration of behavioral, topological, and technology mapping parameters and provides a description of functionality (reference netlist, set of logic equations, HDL behavioral specification, FSM, etc.). When feasible, the CDE produces a circuit which satisfies the specified structural constraints. 1

MODELS Boundary logic algorithms can be expressed using many different data structures, such as Parens Notation Pun Notation Adjacency lists Relations Object-oriented Bit-stream Each of these may come with a specific mode of processing and set of algorithmic clichés (list, logic, set, relational, object, and bit-stream processing metaphors). Pun notation is native to ILOC, while parens notation is native to Losp. Pun expresses the structure of circuits as a partitioned graph. It uses multiple data structures internally, as an artifact of experimental development. Modeling Circuits The relationship of containment is sufficient for the expression and transformation of Boolean logic and for the gate-and-wire components of a circuit. Formally, there is a morphism between the inside/outside distinction of containers, the antecedent/consequent distinction of logical implication, the input/output relation of variary NOR gates, and the parent/child distinction of directed graphs. Registers and feedback in circuits are simply principled and choreographed breaking of containment; the state contained inside a register is transferred to the outside of the register (into the circuit as a whole) at specified locations and times. The Advantage of Boundary Logic In all representations, boundaries serve both to define objects and patterns, and as the connection between objects. (Boundaries both separate and connect.) In a circuit, each boundary is both a variary NOR gate and the wire exiting that gate. Connectivity and logical functionality are confounded in the Pun representation. The motivation for changing structure can be either behavioral (grouping logic) or topological (eliminating wires). The identicality of wires and gates in a distinction network circuit permits both wiring and logic to be minimized concurrently. 2

REPRESENTATIONS Examples of several varieties of representation of boundary logic follow. All are for the same logical form. LOGIC: (a AND (a OR b)) PARENS with NUMBERED SPACES: ( ( a) ( a b) ) 0 1 2 3 EXTRUDED PARENS: ( ) 1 ( ) ( ) 2 3 a a b IS-CONTAINED-BY PAIRS: {<a 2>,<b 3>,<2 1>,<3 1>,<1 0>} GENERALIZED NOR TREE: ( ) / \ ( ) ( ) / \ a a b For notational convenience, we can use labels for the internal tree nodes. These nodes are called distinction nodes, or dnodes for short. Dnode labels identify the space contained by the dnode, the subgraph for which they are root. Rotating the NOR tree clockwise by 90 degrees yields a circuit schematic-like representation: DNODE TREE: a----2 --- \ a--- 1 --- \ / 3 --- / b--- When a node is inside more than one container, the tree becomes a graph, and nodes fanout to multiple containers. The containment relation is now many to many. 3

DISTINCTION NETWORK: 2 --- / \ a-- 1 --- \ / 3 --- / b-- PARENS NOTATION Containers can be represented in linear text by well-formed parentheses (WFP), called parens. A parens expression makes containment visually obvious: each parens contains other parens forms, grounding in either an empty parens or a label. The varieties of WFPs are countable with the Catalan numbers, and are studied under the technical name of Dyke languages. A parens form represents a set of containment relations. This set also defines a graph, with spaces as nodes and distinctions as links. In the parens form below, the inside space of each delineated boundary is labeled with a unique integer; variables are their own labels and by convention their own container boundaries. ( ( a) ( b) ) 0 1 2 3 The outermost boundary, labeled 0, is the edge of the typographical space. This boundary is conventionally not represented for text, and commonly represented as a line frame for diagrams. In the above example, the outermost boundary is implicit in the whitespace which defines the page formatting. The example has six containment pairs. These containment relations can be more conventionally represented as a set of ordered pairs: x CONTAINS y: {<0 1>,<1 2>,<1 3>,<2 a>,<3 b>} Similarly, these pairs could be ordered by the is-contained-by relation: x IS-CONTAINED-BY y: {<1 0>,<2 1>,<3 1>,<a 2>,<b 3>} 4

PARENS SEMANTICS The table of correspondence between logic and parens forms follows: Logical Operators Parens Configurations FALSE <void> TRUE ( ) NOT a (a) a OR b a b a AND b ((a)(b)) a IMPLIES b (a) b IF a THEN b ELSE c (((a) b)(a c )) a XOR b ((a) b)(a (b)) a IFF b (((a) b)(a (b))) The transformation rules for Boundary logic are (( ) A) = Occlusion ((A)) = A {A} {B {A}} = {A} {B} Involution Pervasion Occlusion indicates the ending condition of a reduction, when a forms is completely erased. Involution removes redundant forms. Pervasion is the workhorse of the system. Capital letters stand in place of any parens forms. The curly braces are not normal parens; they indicate the that Pervasion rule applies at any depth of nesting, as if intervening parens were transparent. PUN NOTATION EDIF netlists specify timed logic networks. These netlists can be transcribed without reconfiguration into a raw Pun format. The Pun format can then be converted directly into a network of distinctions, or it can be optimized using the Losp reduction engine. Pun notation is the graph version of parens notation, and is necessary to express general graphs as opposed to trees. Pun notation maps one-to-one onto simple netlist specifications using solely the variary NOR gate. By convention, in Pun notation all graph nodes have an outer container. Multiple forms sharing a space are grouped by double containment: 5

a (b) (c d) ==> (( a (b) (c d) )) Double containment maintains the logical semantics of each form. Majority Example Pun forms are illustrated by a simple, one-output combinational circuit, 2/3 MAJORITY. Semantically MAJORITY returns True whenever two or three inputs out of three are positive. The functionality and representation of the circuit can be captured using a look-up table: a b c fn conventional clauses parens clauses 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 (and (not a) b c) ( a (b)(c)) 1 0 0 0 1 0 1 1 (and a (not b) c) ((a) b (c)) 1 1 0 1 (and a b (not c)) ((a)(b) c ) 1 1 1 1 (and a b c) ((a)(b)(c)) The set of inputs is {a, b, c}. The table represents all possible combinations of values for these inputs. The function column (fn) is marked whenever the input values meet the semantic specifications, in this case, two-out-of-three inputs are positive. A clause is a conjunction of literals. A literal is a positive or negative atom, where atoms identify inputs. Each line of the look-up table can be converted into a clause by forming the conjunction of the three variables, with zero-valued variables negated. The total function specified by ones in the function column is represented by the disjunction of all indicated clauses. This is disjunctive normal form (DNF), also know as the sum of products form (SOP). The complete DNF form, often used in logic, consists of all clauses (lines in the look-up table) joined by disjunction. The reduced DNF consists of only those lines marked in the function column. The complete DNF for XOR is: 6

XOR: a b fn conventional clauses parens clauses 0 0 0 (and (not a)(not b)) = false ( a b ) = OR 0 1 1 (and (not a) b ) = true ( a (b)) = ( ) 1 0 1 (and a (not b)) = true ((a) b ) = ( ) 1 1 0 (and a b ) = false ((a)(b)) = Complete DNF -AND- ((not (and (not a)(not b))) OR (and (not a) b) OR (and a (not b)) OR (not (and a b)) ) Parens form of complete DNF [ [((a b ))] [( a (b))] [((a) b )] [(((a)(b)))] ] The square brackets above are exactly the same as normal parens, but as highlighted by their shape. Here, the conjunction (AND form) of clauses is highlighted. In the MAJORITY example, the reduced DNF for the function is: (or (and (not a) b c) (and a (not b) c) (and a b (not c)) (and a b c)) In parens notation: (( (a (b)(c)) ((a) b (c)) ((a)(b) c) ((a)(b)(c)) )) Note that boundary disjunction is spatial collection, with the collection contained by the double boundary, ((...)). The representation of the clausal parens form in Pun notation follows: ((majority) ((main) ((a unk) (b unk) (c unk)) ((oa ~5)) ((~1 ( a (b)(c)) ) (~2 ((a) b (c)) ) (~3 ((a)(b) c ) ) (~4 ((a)(b)(c)) ) (~5 ((~1 ~2 ~3 ~4)) ) ))) 7

The initial fields identify the circuit (majority), the library module (main), the inputs ((a unk)(b unk)(c unk)), and the outputs ((oa 0)). The body of the Pun form is the functional circuit: ((~1 ( a (b)(c)) ) (~2 ((a) b (c)) ) (~3 ((a)(b) c ) ) (~4 ((a)(b)(c)) ) (~5 ((~1 ~2 ~3 ~4)) )) Each row of the pun-body identifies a cell, a labeled logic subgraph. (~<label> <parens>) Cells are labeled with integers; variables with letters. Labels within parens identify links in the network. Each cell can contain an arbitrary amount of logical structure, as determined by the accompanying parens form. The cell label can also be red as the name of a node in the logic graph. Dnets The above pun-body can readily be converted into a distinction network, for which each labeled node identifies a set of atoms bounded by a single distinction: ((majority) ((main) ((a unk) (b unk) (c unk)) ((oa ~9)) ((~9 (~8) ) (~1 (a) ) (~2 (b) ) (~3 (c) ) (~4 (a ~2 ~3) ) (~5 (~1 b ~3) ) (~6 (~1 ~2 c) ) (~7 (~1 ~2 ~3) ) (~8 (~4 ~5 ~6 ~7) ) ))) Here each label represents a link in the distinction network. Although labels identify the dnode they are paired with, they can also be thought of as wires connecting the labeled dnode with its occurrences within other dnodes. That is, labels identify the output wires from each dnode. Multiple occurrences of a label denote fanout. 8

The Pun form of a distinction network is also an adjacency list for a directed acyclic graph (DAG) in the case of combinational circuits, and a directed cyclic graph in the case of sequential circuits. Since the connectivity of a distinction network is confounded with its logical functionality, the "logic" can be seen to reside in the nodes themselves (as generalized nor gates which transform signals), or in the links (as connectivity transforms). Extruded Parens Form The dnodes in the Pun body of a distinction network are easily identified using the extruded parens form: (( (a (b)(c)) ((a) b (c)) ((a)(b) c) ((a)(b)(c)) )) parens ( ) 9 ( ) 8 ( ) ( ) ( ) ( ) 4 5 6 7 a ( )( ) ( ) b ( ) ( )( ) c ( )( )( ) 2 3 1 3 1 2 1 2 3 b c a c a b a b c Numbers in the right-hand tree refer to cells in the above circuit. The redundancy of numbered containers with single variables {1,2,3} has been eliminated by structure sharing. Here, literals are unique. Parens-Pun Form The following distinction network, generated by Pun reduction, is a functionally equivalent representation of MAJORITY: ((oa ~4)) ((~1 (a b) ) (~2 (a c) ) (~3 (b c) ) (~4 (~1 ~2 ~3) )) Below, the Pun-body is expressed as a single parens form, the parens-pun form. ((majority) ((main) ((a unk) (b unk) (c unk)) ((oa ~1)) ((~1 ((a b) (a c) (b c)) ) ))) 9

This representation obviates the need for a circuitry frame, and can be expressed as a parens expression directly ((a b) (a c) (b c)) Interpreted for logic, this reads: ((a OR b) AND (a OR c) AND (b OR c)) An equivalent parens expression is more deeply nested: (( ((b) (a c)) ((c) (a b)) )) Interpreted for logic, this reads: ((b AND (a OR c)) OR (c AND (a OR b))) For comparison, the parens-pun for this equivalent logical expression follows: ((majority) ((main) ((a unk) (b unk) (c unk)) ((oa ~1)) ((~1 ((((b) (a c)) ((c) (a b)))) ) ))) As a dnet, this Pun-body is: ((oa ~8)) ((~8 (~7) ) (~1 (b) ) (~2 (c) ) (~3 (a b) ) (~4 (a c) ) (~5 (~1 ~4) ) (~6 (~2 ~3) ) (~7 (~5 ~6) )) MAJORITY in the One-Bit Adder Yet another form of the majority circuit is presented in the chart of spatial representations defined by the function look-up table. (( ((a)(b)) ((a)(c)) ((b)(c)) )) This can be read for logic as ((a AND b) OR (a AND c) OR (b AND c)) 10

The Pun circuit would be: ((majority) ((main) ((a unk) (b unk) (c unk)) ((oa ~4)) ((~1 ((a)(b)) ) (~2 ((a)(c)) ) (~3 ((b)(c)) ) (~4 ((~1 ~2 ~3)) ) ))) The accompanying dnet body is: ((oa ~8)) ((~1 (a) ) (~2 (b) ) (~3 (c) ) (~4 (~1 ~2) ) (~5 (~1 ~3) ) (~6 (~2 ~3) ) (~7 (~4 ~5 ~6) ) (~8 (~7) )) PATTERNS One advantage of Pun notation is that repetitive logic (such as bit-width operations and cascaded operators) becomes clearly visible as aligned boundary forms. The standard canonical form of a parens expression can be constructed solely by sorting the parens expression by depth and breadth of nesting, while sorting node labels alphanumerically. Below some patterns from the DMC54 circuit are exhibited as examples of ILOC structural organization. DMC54 Patterns Example input structures: NOR2: (~0002 (ai cj) ) (~0003 (ck cl) ) (~0004 (cm cn) ) (~0005 (co cp) ) (~0006 (cq cr) ) (~0007 (cs ct) ) (~0008 (cu cv) ) (~0009 (cw cx) ) 11

AND3B (not part of the TSMC library): (~3597 (cn (cm) (co)) ) (~3598 (cp (co) (cq)) ) (~3599 (cr (cq) (cs)) ) (~3600 (ct (cs) (cu)) ) (~3601 (cv (cu) (cw)) ) (~3602 (cx (cw) (cy)) ) AOI2BB1 with one node fanout: (~0768 (~0564 (aw ~3815)) ) (~0769 (~0565 (ax ~3815)) ) (~0770 (~0566 (ay ~3815)) ) (~0771 (~0567 (az ~3815)) ) (~0772 (~0568 (ba ~3815)) ) (~0773 (~0569 (bb ~3815)) ) (~0774 (~0570 (bc ~3815)) ) (~0775 (~0571 (bd ~3815)) ) (~0776 (~0572 (be ~3815)) ) (~0777 (~0573 (bf ~3815)) ) (~0778 (~0574 (bg ~3815)) ) (~0779 (~0575 (bh ~3815)) ) (~0780 (~0576 (bi ~3815)) ) Sequential MUX structure with three single node fanouts (non-tsmc) (~3632 (~3815 ((af) (~3039)) ((ag) (~0217))) ) (~3633 (~3815 ((ag) (~3039)) ((ah) (~0217))) ) (~3634 (~3815 ((ah) (~3039)) ((ai) (~0217))) ) (~3635 (~3815 ((ai) (~3039)) ((aj) (~0217))) ) (~3636 (~3815 ((aj) (~3039)) ((ak) (~0217))) ) (~3637 (~3815 ((ak) (~3039)) ((al) (~0217))) ) (~3638 (~3815 ((an) (~3039)) ((ao) (~0217))) ) (~3639 (~3815 ((ao) (~3039)) ((ap) (~0217))) ) (~3640 (~3815 ((ap) (~3039)) ((aq) (~0217))) ) (~3641 (~3815 ((aq) (~3039)) ((ar) (~0217))) ) (~3642 (~3815 ((ar) (~3039)) ((as) (~0217))) ) (~3643 (~3815 ((as) (~3039)) ((at) (~0217))) ) XOR of ORs (non-tsmc) (~2227 ((~1824 ~2770 ~3334 ~3802) ((~1824 ~3334) (~2770 ~3802))) ) (~2249 ((~2136 ~2926 ~3519 ~3555) ((~2136 ~3519) (~2926 ~3555))) ) (~2261 ((~2141 ~2915 ~3520 ~3524) ((~2141 ~3524) (~2915 ~3520))) ) (~2244 ((~2559 ~2565 ~2796 ~3037) ((~2559 ~2565) (~2796 ~3037))) ) 12