490 likes | 628 Views
EE 290A – Sequential Optimization and Verification. http://www-cad.eecs.berkeley.edu/~alanmi/courses/290A/index.htm Tues. Thurs. 9:30-11 Cory 540 A/B. 3 hours credit Instructors: Robert Brayton Roland Jiang Alan Mishchenko. Outline. Introduction Schedule Latches and Flip-flops
E N D
EE 290A – Sequential Optimization and Verification http://www-cad.eecs.berkeley.edu/~alanmi/courses/290A/index.htm Tues. Thurs. 9:30-11 Cory 540 A/B 3 hours credit Instructors: Robert Brayton Roland Jiang Alan Mishchenko
Outline • Introduction • Schedule • Latches and Flip-flops • Verification of a clock-schedule
Requirements • Attend class and participate in discussions • Do research on an individual project collaborating with a mentor • Give two presentations on your project – • preliminary overview (March 3) and • final project lecture – (May 10, 12) • lecture should be similar to a conference presentation of 20-25 minutes • Final project report (May 20) • should be similar to a conference paper • Learn a lot and have fun
Web site contents • News (probably we will send out e-mail to class roster instead of posting here) • General • Overview • Syllabus (rough and preliminary description of course content) • Lectures (lectures will be posted here – hopefully before the class) • Examples (this contains examples on which some CAD programs can be applied) • Reading (this contains a list of relevant papers for more info.) • Projects (some proposed ones are here already with mentors but this list is preliminary. Final list will be given out early in February) • Summary
Computing Resources All students will be given an account on the CAD computers – if don’t have one see Roland Jiang • These can be used to run programs – MVSIS, VIS, SIS, ESPRESSO, SPICE… on examples • Used for project work
Coordination with 219B – Logic Synthesis 8-9:30 Tues. Thurs. • Schedule with 219B has been coordinated with Prof. Kuehlmann so some basic material will be presented there prior to use in 290A. • Required that 219B schedule to be changed from previous years. • This makes it possible to take both courses at the same time • This makes it possible to just take 290A without having taken 219B – just make sure you attend 219B when basic material is taught. • Other than this dependency, 290A is self contained. • Auditors are welcome to attend classes and can opt to do a project.
Sequential Optimization • Much research exists – lots of effort in ’90s • Could lead to important improvements in area performance etc. • Interesting work from a theoretical standpoint • Not really used in commercial CAD • except retiming • Computationally expensive and therefore a lot of techniques can only be applied to small examples • Optimization use restricted by need to verify.
Sequential Verification • Big area and a lot of current work • Abstraction methods help in scalability to larger problems • Interesting theoretical foundations • Lots of commercial interest in CAD companies and in system design houses. • Recent SAT-based methods have increased capability (also applied to optimization)
Purpose of Course • Only very small subset has been taught previously • Bring into focus best state-of-the-art methods to get synergistic view • See if these can be integrated and advanced in light of recent advancements in logic synthesis and verification • Expose fruitful directions of research • Create a few conference papers.
Outline • Introduction • Schedule • Latches and Flip-flops • Verification of a clock-schedule
Schedule • Week 1 (January 18-20) • Jan 18: Introduction, latches and flipflops, clock schedule analysis (Bob) • Jan 20: Basics of reachability analysis (Alan) • Week 2 (January 25-27) • Jan 25: Cyclic circuits – Part 1 (Roland) • Jan 27: Cyclic circuits – Part 2 (Roland) • Week 3 (February 1-3) • Feb 1: Asynchronous synthesis – Part 1 (Alex Kondratyev, CBL) • Feb 3: Asynchronous synthesis – Part 2 (Alex Kondratyev, CBL) • Week 4 (February 8-10) • Feb 8: Asynchronous synthesis – part 3 (Alex Kondratyev, CBL) • Feb 10: Clocking networks (Rajeev Murgai, Fujitsu)
Schedule • Week 5 (February 15-17) • Feb 15: State-based FSM manipulations – Advanced reachability (Alan) • Feb 17: State-based FSM manipulations – Sequential flexibility (Alan) • Week 6 (February 22-24) • Feb 22: State-based FSM manipulations – State minimization (Alan) • Feb 24: Structure-based FSM manipulations – Clock skewing (Alan / Aaron Hurst) • Week 7 (March 1-3) • Mar 1: Structure-based FSM manipulations – Retiming (Alan) • Mar 3: Preliminary project presentations (290A students) • Week 8 (March 8-10) • Mar 8: Structure-based FSM manipulations – Initialization sequences, peripheral retiming (Roland) • Mar 10: Structure-based FSM manipulations – Inherent power of retiming and resynthesis (Roland)
Schedule • Week 9 (March 15-17) • Mar 15: Structure-based FSM manipulations – Sequential testing and redundancy removal (Bob) • Mar 17: Structure-based FSM manipulations – High-level retiming (Bob) • Week 10 (spring break) • Week 11 (March 29-31) • Mar 29: Structure-based FSM manipulations – Retiming and technology mapping (Alan) • Mar 31: Structure-based FSM manipulations – Sequential optimization w/o reachability (Alan) • Week 12 (April 5-7) • Apr 5: Formal verification – Temporal logic, omega automata, language containment (Bob) • Apr 7: Formal verification – Bounded model checking, temporal induction (Alan) • Week 13 (April 12-14) • Apr 12: Formal verification – Unbounded model checking – Part1 (Ken McMillan, CBL) • Apr 14: Formal verification – Unbounded model checking – Part2 (Ken McMillan, CBL)
Schedule • Week 14 (April 19-21) • Apr 19: Formal verification – Sequential equivalence checking – Part1 (Roland) • Apr 21: Formal verification – Sequential equivalence checking – Part2 (Roland) • Week 15 (April 26-28) • Apr 26: Formal verification – Functional dependency (Roland) • Apr 28: GALS and Latency Insensitive Design (Bob) • Week 16 (May 3-May 5) • May 3: Other topics • May 5: Other topics • Week 17 (May 10) • May 10: Final project presentations – Part1 (290A students) • May 12: Final project presentations – Part2 (290A students) • May 13 – 20 Final examinations period • May 20: Hand in Final Project Reports
Outline • Introduction • Schedule • Latches and Flip-flops • Verification of a clock-schedule
Latches and Flip-flops Bi-stable circuit (no inputs)
D latch symbol
D flip-flop master slave • When C is asserted (= 1) • Old value of is captured in slave • Master is opened • follows the D input • When C is de-asserted (= 0) • Master is closed and D value is captured in master • Slave is opened • Transmits the output from the master
Summary of latch and flip-flop characteristics • SR latch • Gated SR latch • D latch • SR flip-flop • D flip-flop • JK flip-flop • T flip-flop (edge triggered) • T flip-flop (clocked)
Set-up and hold times • Set-up time • Time during which data must be stable before the clock comes • Hold time • Time during which data must be stable after the clock comes
Analog analysis • Assume pure CMOS thresholds, 5V rail • Theoretical threshold center is 2.5 V
Metastability Metastability is inherent in any bi-stable system stable metastable stable
Metastability - dynamics Separatrix stable metastable stable stable
D-latch operation latch acts like a wire while its control is active latch (later) grabs data when control changes
D-latch timing parameters • Propagation delay (from C or D) • Setup time (D before C edge) • Hold time (D after C edge) metastability
Metastability - dynamics Separatrix stable metastable stable stable
Pos.-edge-triggered D flip-flop behavior master slave
D flip-flop timing parameters • Propagation delay (from CLK) • Setup time (D before CLK) • Hold time (D after CLK) metastability
Outline • Introduction • Schedule • Latches and Flip-flops • Verification of a clock-schedule
Timing verification of synchronous circuits “checkTc and minTc: Timing Verification of Optimal Clocking of Synchronous Digital Circuits”, K. Sakallah,T. Mudge and O. Olukotun “Verifying Clock Schedules”, T. Szymanski and N. Shenoy. Sakallah et. al. formulation • Handles arbitrary multi-phase clocks • Captures signal propagation along short as well as long paths • Simple formulation
Clocking system • A set of clock k phases • A set of n D-latches • Assume that all clock phases are active high, i.e. are transparent when clock is high • Data is captured when clock transits low.
Parameters number of latches in circuit clock phase controlling latch i setup time of latch i hold time of latch i minimum combinational delay from latch i to latch j maximum combinational delay from latch i to latch j
Variables Defining Clock Schedule clock period length of time that clock phase i is active absolute time within first period when phase i begins, i.e. when clock phase rises. (different from Szymanski paper)
Other Variables time between start of phase i and next phase j earliest signal arrival time at latch i (relative to start time of pi) latest signal arrival time at latch i (relative to start time of pi) earliest signal departure time from latch i (relative to start time of pi) latest signal departure time from latch i (relative to start time of pi) All arrival and departure times are in their local time frame where the origin is at ei(i.e. tilocal= 0 when t = ei + np). Eijis used to translate between time frames.
Equations and Constraints ei wi fi wj fj ej p 0
ei wi fi wj fj ej 0 p
ei wi fpi wj fpj ej 0 p dj Dj dji Dji pi pi pj pj
Constraints for Correct Operation ei wi fpi wj fpj ej setup 0 p
Constraints for Correct Operation ei wi fpi wj fpj ej 0 p hold
Verification and Optimization • Clock schedule optimization problem: find the minimum value of p for which there is an assignment to all variables (including w and e) consistent with the constraints. • Clock schedule verification problem: Given values for p,w and e, find values for the rest of the variables that satisfy the constraints.
Iterative construction • Note: • a solution is a fixed point • iteration from below • both min and max times are computed simultaneously
Lemmas • For all i and m > 0, (monotone increasing) • Let be a solution. Then for all i, m > 0, • If for some i, then the equations have no solution. (n is # latches) • If the iteration converges, then it converges to the minimum solution.
Uniqueness results The construction is run to find a solution to the equations, and then this solution is checked to see if it satisfies the setup and hold inequalities. But what if there is not a unique solution? • There can be multiple solutions • If there is more than one solution, then the clock period p is optimum • If there is more than one solution, then some of those violate the setup constraints. • The minimum solution is the “correct” one because if we slow down the clock by just e , all other solutions disappear.
Example D = d = 10 2 8 Latch 1 S = 2 H = 3 p = 10 E11 = p Tryp = 10 + e
Theorem If p is optimum, then there exists a cycle, j0,j1,…,jk = j0 such that
Experience (Szym. & Shen) • Run in ISCAS’89 benchmarks • Largest circuit had 3272 latches and 67704 edges • Run time on this largest example was 20 sec., (1992 computers) most of which was spent reading in the circuit. • Typically only a few iterations were needed for convergence.