1 / 31

Applications

Applications. t.k.prasad@wright.edu http://www.knoesis.org/tkprasad/. VHDL-Parser Pretty-Printer System. t.k.prasad@wright.edu http://www.knoesis.org/tkprasad/. URLs. Online Parser Documentation http://www.cs.wright.edu/~tkprasad/VHDL/VHDL-AMS/START.html Public Distribution

Download Presentation

Applications

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Applications t.k.prasad@wright.edu http://www.knoesis.org/tkprasad/ L23-1-Applications

  2. VHDL-Parser Pretty-Printer System t.k.prasad@wright.edu http://www.knoesis.org/tkprasad/ L23-1-Applications

  3. URLs • Online Parser Documentation • http://www.cs.wright.edu/~tkprasad/VHDL/VHDL-AMS/START.html • Public Distribution • http://www.cs.wright.edu/~tkprasad/VHDL/VHDL-AMS.zip L23-1-Applications

  4. A Meta-Interpreter for circuit Extraction t.k.prasad@wright.edu http://www.knoesis.org/tkprasad/ L23-1-Applications

  5. Outline • Formal Description of Digital Circuits • Design Verification • Motivation for Applying Meta-programming Techniques • Implementation and Correctness Considerations • Conclusions L23-1-Applications

  6. Hierarchical Description of Circuit Design Full-Adder Half-Adder Sub-Components Abstraction AND-OR-NAND Gates Gate-level Description CMOS Transistors Transistor Netlist Component L23-1-Applications

  7. Declarative Specification of the Structure: Inverter and Netlist Single Inverter: inv(In,Out,X,Y) :- pt(In,vdd,Out,X,Y), nt(In,gnd,Out,_,_). Netlist: pt(in1,vdd,out1,50,50). nt(in1,gnd,out1,50,40). pt(out1,vdd,out2,100,50). nt(out1,gnd,out2,100,40). GND L23-1-Applications

  8. Problem and Solution Strategy • Verify structural correctness of a component layout by reverse engineering the top-level design. • Use automatically generated Prolog extraction rules • Prolog specifications are executable and can be used to simulate the circuit or check for faults by designing suitable queries L23-1-Applications

  9. Circuit Extraction MAGIC (CAD Tool) Layout TRANSLATE Netlist : Prolog Facts EXTRACT Higher-level Components L23-1-Applications

  10. Extraction Rules in Prolog extract_inverter :- pt(In,vdd,Out,X,Y), nt(In,gnd,Out,_,_), remove_pt(In,vdd,Out), remove_nt(In,gnd,Out), asserta(inverter(In,Out,X,Y)). L23-1-Applications

  11. Finer Points • Retracts not undone on backtracking => Identify complete component before retracting • Retract all occurrences of a component => Use “fail” appropriately. L23-1-Applications

  12. Spec vs Extraction Template component :- subcomponent_1 subcomponent_2. extract_component :- subcomponent_1 subcomponent_2, retract(subcomponent_1), retract(subcomponent_2), assert(component), fail. L23-1-Applications

  13. Problem and Our Solution • Requires generation of customized extraction rules (for each component) explicitly (which causes duplication of information). • Use meta-programming techniques to perform extraction “on-the-fly” using declarative specification of the structure of the component. L23-1-Applications

  14. Advantage: Avoids explicit creation and storing of extraction rules • Disadvantage: Meta-interpretation is slower than using customized extraction rules • Pragmatically: Explicit rules are good for extracting low-level components, while meta-interpreter is good for extracting high-level component extraction L23-1-Applications

  15. Meta-Rule extract(Comp) :- clause(Comp, Sub_Comps), Sub_Comps \== true, call(Sub_Comps), remove_primitive(Sub_Comps), asserta(Comp), fail. extract(_). L23-1-Applications

  16. remove_primitive((C1,C2)) :- !, remove_primitive(C1), remove_primitive(C2). remove_primitive(C) :- clause(C,true), !, retract(C). remove_primitive(C) :- clause(C,S_Cs), remove_primitive(S_Cs). L23-1-Applications

  17. (cont’d) • The interpreter does not work properly if the definition also contains ordinary predicates, written to capture connectivity constraints, position calculations, etc. • Introduce special meta-predicate constraint as follows: constraint(Test) : - call(Test). remove_primitive(constraint(_)):-!. L23-1-Applications

  18. Example invZ(P,N,I,O,X,Y) :- pt(I,vdd,Q,X1,Y1), pt(P,Q,O,X2,Y2), nt(N,O,R,X3,Y3), nt(I,R,gnd,X4,Y4), constraint( \+ connected([Q,R,vdd,gnd]) ), constraint( X is (X1+X2+X3+X4)/4, Y is (Y1+Y2+Y3+Y4)/4 ). L23-1-Applications

  19. Correctness Issue • Facts and rule-heads are disjoint. The lowest-level is represented as facts. Retraction of facts is sufficient. • Each fact contributes to just one rule. Subcomponents are not shared. Retraction of a fact does not interfere with the extraction of other components. (Stratification of sorts) L23-1-Applications

  20. Conclusion • Meta-interpreter approach uses the declarative specification of a design directly to perform extraction. • This approach is flexible for higher-level components. The trade-off is that it is inefficient for lower-level components. L23-1-Applications

  21. Meta-Interpreters Ref: Yoav Shoham’s AI Techniques in Prolog L23-1-Applications

  22. Types Extensions Expert systems Mycin Abductive Reasoning Diagnosis Annotated Logic Programming • Backward Chaining (Top-down) • Depth-first • Prolog • Breadth-first • Forward Chaining (Bottom-up) • Production Systems L23-1-Applications

  23. Representing forward chaining rules op(1000, xfy, ‘,’). op(1150, xfx, ‘-:’). p -: q. r,s -: p. q -: t. • Forward chaining adds new conclusions using rules in response to facts of the database and the newly asserted conclusions. L23-1-Applications

  24. Membership in and-list amember(X, (A,B)) :- !, ( X = A; amember(X,B)). amember(A,A). • Recall op(_, xfy, ‘,’). L23-1-Applications

  25. Propagating the effect of facts • Forward chaining interpreter recursively determines the conclusions forced by the facts and the rules, and asserts them explicitly. • Given the set of rules, each fact is asserted one by one (using the code shown on the next slide) and the conclusions implied by them are determined. • Specifically, the head of a rule is asserted after all the literals in the body of the rule have been asserted. L23-1-Applications

  26. Propagating the effects of facts update(X) :- clause(X, true),!. update(X) :- assert(X), ( If -: Then ), amember(X, If), \+((amember(Y, If), \+(clause(Y, true)))), update(Then), fail. L23-1-Applications

  27. Propagating the effect of facts • Complexity of update() • O( number of rules * number of body literals) • Can be optimized and extended to include negative literals, deletion, and maintaining justifications. • Reference: Chapter 4 of YoavShoham’s AI Techniques in Prolog L23-1-Applications

  28. Pooling of Evidence : The Mycin approach Ref: Yoav Shoham’s AI Techniques in Prolog L23-1-Applications

  29. Introducing Certainty Factor • Facts => CF = 1 • Rules => CF in [0,1] high_fever. (1) malaria :- high_fever, recently_in_jungle. (0.8) malaria :- … L23-1-Applications

  30. Mycin Interpreter cert(true, 1). cert( (A,B), C) :- !, cert(A , C1), cert(B, C2), comb_fn_serial(C1, C2, C). cert( A, C) :- !, findall(CR, (clause(A,B,CF), cert(B , CC), comb_fn_rule(CF,CC,CR)), CLst), comb_fn_parallel(CLst, C). L23-1-Applications

  31. Other Static Analysis Tools • Type Checking/Inference append(list(X), list(X), list(X)). fact(int, int). • Mode Inference append(+,+,_) L23-1-Applications

More Related