Data-Loop-Free Self-Timed Circuit Verification Cuong Chau 1 , Warren - - PowerPoint PPT Presentation

data loop free self timed circuit verification
SMART_READER_LITE
LIVE PREVIEW

Data-Loop-Free Self-Timed Circuit Verification Cuong Chau 1 , Warren - - PowerPoint PPT Presentation

Data-Loop-Free Self-Timed Circuit Verification Cuong Chau 1 , Warren A. Hunt Jr. 1 , Matt Kaufmann 1 , Marly Roncken 2 , and Ivan Sutherland 2 { ckcuong,hunt,kaufmann } @cs.utexas.edu, mroncken@pdx.edu, ivans@cecs.pdx.edu 1 The University of Texas


slide-1
SLIDE 1

Data-Loop-Free Self-Timed Circuit Verification

Cuong Chau1, Warren A. Hunt Jr.1, Matt Kaufmann1, Marly Roncken2, and Ivan Sutherland2

{ckcuong,hunt,kaufmann}@cs.utexas.edu, mroncken@pdx.edu, ivans@cecs.pdx.edu

1 The University of Texas at Austin 2 Portland State University

May 15, 2018

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 1 / 23

slide-2
SLIDE 2

Motivation

Many efforts in verifying self-timed circuit implementations concern circuit-level timing properties. Electrical-level timing analysis is conducted to assure that signal propagation of ready signals is always slower than data propagation so that data are valid when sampled.

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 2 / 23

slide-3
SLIDE 3

Motivation

Many efforts in verifying self-timed circuit implementations concern circuit-level timing properties. Electrical-level timing analysis is conducted to assure that signal propagation of ready signals is always slower than data propagation so that data are valid when sampled. Most verification methods for self-timed circuits have concentrated on small-size circuits.

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 2 / 23

slide-4
SLIDE 4

Motivation

Many efforts in verifying self-timed circuit implementations concern circuit-level timing properties. Electrical-level timing analysis is conducted to assure that signal propagation of ready signals is always slower than data propagation so that data are valid when sampled. Most verification methods for self-timed circuits have concentrated on small-size circuits. We are not aware of any scalable formal methods for validating functional properties of self-timed systems.

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 2 / 23

slide-5
SLIDE 5

Motivation

Many efforts in verifying self-timed circuit implementations concern circuit-level timing properties. Electrical-level timing analysis is conducted to assure that signal propagation of ready signals is always slower than data propagation so that data are valid when sampled. Most verification methods for self-timed circuits have concentrated on small-size circuits. We are not aware of any scalable formal methods for validating functional properties of self-timed systems. Scalable methods for self-timed system verification are highly desirable.

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 2 / 23

slide-6
SLIDE 6

Goals and Approach

Goals: Develop scalable methods for reasoning about the functional correctness of self-timed circuits and systems, while abstracting away circuit-level timing constraints. Implement those methods using the ACL2 theorem proving system, providing a useful automated framework with associated libraries to support the mechanical analysis of arbitrarily large, general-purpose, self-timed circuit designs.

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 3 / 23

slide-7
SLIDE 7

Goals and Approach

Goals: Develop scalable methods for reasoning about the functional correctness of self-timed circuits and systems, while abstracting away circuit-level timing constraints. Implement those methods using the ACL2 theorem proving system, providing a useful automated framework with associated libraries to support the mechanical analysis of arbitrarily large, general-purpose, self-timed circuit designs. Approach: Extend our DE-based, synchronous-style verification system to one that is capable of analyzing self-timed system models. Apply the link-joint model [Roncken et al.:2015] to modeling self-timed circuit designs. Develop a hierarchical (compositional) reasoning approach that is amenable to verifying correctness of large, non-deterministic systems.

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 3 / 23

slide-8
SLIDE 8

Outline

1

DE System

2

Modeling and Verification Approach

3

Case Studies

4

Conclusions and Future Work

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 4 / 23

slide-9
SLIDE 9

Outline

1

DE System

2

Modeling and Verification Approach

3

Case Studies

4

Conclusions and Future Work

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 5 / 23

slide-10
SLIDE 10

DE System

DE is a formal occurrence-oriented hardware description language developed in ACL2 for describing Mealy machines [Hunt:2000].

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 6 / 23

slide-11
SLIDE 11

DE System

DE is a formal occurrence-oriented hardware description language developed in ACL2 for describing Mealy machines [Hunt:2000]. The semantics of the DE language is given by a simulator that computes the outputs and next state for a module from the module’s current inputs and current state.

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 6 / 23

slide-12
SLIDE 12

DE System

DE is a formal occurrence-oriented hardware description language developed in ACL2 for describing Mealy machines [Hunt:2000]. The semantics of the DE language is given by a simulator that computes the outputs and next state for a module from the module’s current inputs and current state. The DE system has previously been used to model and verify hierarchical synchronous circuits [Brock & Hunt:1997, Slobodova et al.:2011]. The DE simulator is used repeatedly to evaluate a circuit netlist description each time the clock input “ticks” (changes).

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 6 / 23

slide-13
SLIDE 13

DE System

DE is a formal occurrence-oriented hardware description language developed in ACL2 for describing Mealy machines [Hunt:2000]. The semantics of the DE language is given by a simulator that computes the outputs and next state for a module from the module’s current inputs and current state. The DE system has previously been used to model and verify hierarchical synchronous circuits [Brock & Hunt:1997, Slobodova et al.:2011]. The DE simulator is used repeatedly to evaluate a circuit netlist description each time the clock input “ticks” (changes). Prove the following two lemmas for each module: a value lemma specifying the module’s outputs and a state lemma specifying the module’s next state.

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 6 / 23

slide-14
SLIDE 14

DE System

DE is a formal occurrence-oriented hardware description language developed in ACL2 for describing Mealy machines [Hunt:2000]. The semantics of the DE language is given by a simulator that computes the outputs and next state for a module from the module’s current inputs and current state. The DE system has previously been used to model and verify hierarchical synchronous circuits [Brock & Hunt:1997, Slobodova et al.:2011]. The DE simulator is used repeatedly to evaluate a circuit netlist description each time the clock input “ticks” (changes). Prove the following two lemmas for each module: a value lemma specifying the module’s outputs and a state lemma specifying the module’s next state. The value and state lemmas of a composite module are proved by application of the value and state lemmas of its submodules, without exploring the internal structures of the submodules.

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 6 / 23

slide-15
SLIDE 15

DE System

In our self-timed modeling approach, we invoke the DE simulator whenever any primary input changes. Allow the design to proceed at a rate moderated by oracle values — extra input values modeling non-determinacy — that can cause any part of the logic to delay an arbitrary amount.

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 7 / 23

slide-16
SLIDE 16

DE System

In our self-timed modeling approach, we invoke the DE simulator whenever any primary input changes. Allow the design to proceed at a rate moderated by oracle values — extra input values modeling non-determinacy — that can cause any part of the logic to delay an arbitrary amount. We extend the DE primitive database with a new primitive that models the validity of stored data.

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 7 / 23

slide-17
SLIDE 17

Outline

1

DE System

2

Modeling and Verification Approach

3

Case Studies

4

Conclusions and Future Work

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 8 / 23

slide-18
SLIDE 18

Link-Joint Model

We model self-timed systems as Mealy machines representing networks

  • f communication links and computation joints.

L0 L1 J0 L2 L3 L4 J1 L5

Links communicate with each other locally via joints using the link-joint model [Roncken et al.:2015].

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 9 / 23

slide-19
SLIDE 19

Link-Joint Model

We model self-timed systems as Mealy machines representing networks

  • f communication links and computation joints.

L0 L1 J0 L2 L3 L4 J1 L5

Links communicate with each other locally via joints using the link-joint model [Roncken et al.:2015]. Links are communication channels in which data are stored along with a full/empty signal. Joints are handshake components that implement data operations and flow control. A link connects exactly to one input and one output joint.

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 9 / 23

slide-20
SLIDE 20

Link-Joint Model

We model self-timed systems as Mealy machines representing networks

  • f communication links and computation joints.

L0 L1 J0 L2 L3 L4 J1 L5

Links communicate with each other locally via joints using the link-joint model [Roncken et al.:2015]. Links are communication channels in which data are stored along with a full/empty signal. Joints are handshake components that implement data operations and flow control. A link connects exactly to one input and one output joint. Necessary conditions for a joint-action to fire: all input and output links

  • f that action are full and empty, respectively.

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 9 / 23

slide-21
SLIDE 21

Details of the Link-Joint Model

5 1

⊲ F D ⊳

fullin

act drain

⊲ F D ⊳

fill

emptyout

Joint Link Link L0 L1 GO

The green boxes represent instances of our new DE link-control primitive. When a joint acts, three tasks will be executed in parallel: transfer data computed from the input links to the output links; fill (possibly a subset of) the output links, leaving them full; drain (possibly a subset of) the input links, leaving them empty.

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 10 / 23

slide-22
SLIDE 22

Details of the Link-Joint Model (GO = 0)

5 1

⊲ F D ⊳

fullin

act drain

⊲ F D ⊳

fill

emptyout

Joint Link Link L0 L1 GO 7

The green boxes represent instances of our new DE link-control primitive. When a joint acts, three tasks will be executed in parallel: transfer data computed from the input links to the output links; fill (possibly a subset of) the output links, leaving them full; drain (possibly a subset of) the input links, leaving them empty.

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 10 / 23

slide-23
SLIDE 23

Details of the Link-Joint Model (GO = 0)

5 1

⊲ F D ⊳

fullin

act drain

⊲ F D ⊳

fill

emptyout

Joint Link Link L0 L1 GO 7 1 5 5 x

The green boxes represent instances of our new DE link-control primitive. When a joint acts, three tasks will be executed in parallel: transfer data computed from the input links to the output links; fill (possibly a subset of) the output links, leaving them full; drain (possibly a subset of) the input links, leaving them empty.

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 10 / 23

slide-24
SLIDE 24

Details of the Link-Joint Model (GO = 1)

5 1

⊲ F D ⊳

fullin

act drain

⊲ F D ⊳

fill

emptyout

Joint Link Link L0 L1 GO 7 1

The green boxes represent instances of our new DE link-control primitive. When a joint acts, three tasks will be executed in parallel: transfer data computed from the input links to the output links; fill (possibly a subset of) the output links, leaving them full; drain (possibly a subset of) the input links, leaving them empty.

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 10 / 23

slide-25
SLIDE 25

Details of the Link-Joint Model (GO = 1)

5 1

⊲ F D ⊳

fullin

act drain

⊲ F D ⊳

fill

emptyout

Joint Link Link L0 L1 GO 7 1 1 1 5 5 5

The green boxes represent instances of our new DE link-control primitive. When a joint acts, three tasks will be executed in parallel: transfer data computed from the input links to the output links; fill (possibly a subset of) the output links, leaving them full; drain (possibly a subset of) the input links, leaving them empty.

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 10 / 23

slide-26
SLIDE 26

Details of the Link-Joint Model (GO = 1)

5 1

⊲ F D ⊳

fullin

act drain

⊲ F D ⊳

fill

emptyout

Joint Link Link L0 L1 GO 7 1 1 1 5 5 5

⊲ F D ⊳

1

⊲ F D ⊳

5

The green boxes represent instances of our new DE link-control primitive. When a joint acts, three tasks will be executed in parallel: transfer data computed from the input links to the output links; fill (possibly a subset of) the output links, leaving them full; drain (possibly a subset of) the input links, leaving them empty.

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 10 / 23

slide-27
SLIDE 27

Self-Timed Modules

L0 L1 J0 L2 L3 L4 J1 L5 Complex link L0 L1 Complex joint: a queue of length two, Q2

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 11 / 23

slide-28
SLIDE 28

Verification

Objective: Verify the functional correctness of self-timed circuit designs. Approach: Develop a hierarchical reasoning approach that avoids exploring internal operations of submodules as well as their interleavings.

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 12 / 23

slide-29
SLIDE 29

Verification

Objective: Verify the functional correctness of self-timed circuit designs. Approach: Develop a hierarchical reasoning approach that avoids exploring internal operations of submodules as well as their interleavings.

Characterize the one-step update on the output sequence of a module given its current inputs and current state. We call this property the single-step-update property.

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 12 / 23

slide-30
SLIDE 30

Verification

Objective: Verify the functional correctness of self-timed circuit designs. Approach: Develop a hierarchical reasoning approach that avoids exploring internal operations of submodules as well as their interleavings.

Characterize the one-step update on the output sequence of a module given its current inputs and current state. We call this property the single-step-update property. The single-step-update property of a module is established hierarchically using the single-step-update properties of its submodules, without exploring the internal structures of the submodules.

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 12 / 23

slide-31
SLIDE 31

Verification

Objective: Verify the functional correctness of self-timed circuit designs. Approach: Develop a hierarchical reasoning approach that avoids exploring internal operations of submodules as well as their interleavings.

Characterize the one-step update on the output sequence of a module given its current inputs and current state. We call this property the single-step-update property. The single-step-update property of a module is established hierarchically using the single-step-update properties of its submodules, without exploring the internal structures of the submodules. The multi-step input-output relationship is then proved by induction with the single-step-update property.

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 12 / 23

slide-32
SLIDE 32

Verification

Objective: Verify the functional correctness of self-timed circuit designs. Approach: Develop a hierarchical reasoning approach that avoids exploring internal operations of submodules as well as their interleavings.

Characterize the one-step update on the output sequence of a module given its current inputs and current state. We call this property the single-step-update property. The single-step-update property of a module is established hierarchically using the single-step-update properties of its submodules, without exploring the internal structures of the submodules. The multi-step input-output relationship is then proved by induction with the single-step-update property.

Result: relationship between input and output sequences formalized.

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 12 / 23

slide-33
SLIDE 33

Outline

1

DE System

2

Modeling and Verification Approach

3

Case Studies

4

Conclusions and Future Work

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 13 / 23

slide-34
SLIDE 34

Case Studies

Demonstrate our framework with data-loop-free self-timed circuits. Example 1: A FIFO Circuit Example 2: Hierarchical Reasoning Example 3: Complex Links

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 14 / 23

slide-35
SLIDE 35

Example 1: A FIFO Circuit

Q3 in [1, 4, 3] 8 x 5

  • ut

[1, 4, 3] ++ [8, 5]

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 15 / 23

slide-36
SLIDE 36

Example 1: A FIFO Circuit

Q3 in [1, 4, 3] 8 x 5

  • ut

[1, 4, 3] ++ [8, 5] in 1 x x

  • ut

[4, 3, 8, 5] [1] ++ [4, 3, 8, 5]

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 15 / 23

slide-37
SLIDE 37

Example 1: A FIFO Circuit

Q3 in [1, 4, 3] 8 x 5

  • ut

[1, 4, 3] ++ [8, 5] in 1 x x

  • ut

[4, 3, 8, 5] [1] ++ [4, 3, 8, 5] [1] ++ [4, 3, 8, 5] = [1, 4, 3] ++ [8, 5]

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 15 / 23

slide-38
SLIDE 38

Example 1: A FIFO Circuit

Q3 in L0 L1 L2

  • ut

Let in-act and out-act denote the act signals from joints in and out, respectively.

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 16 / 23

slide-39
SLIDE 39

Example 1: A FIFO Circuit

Q3 in L0 L1 L2

  • ut

Let in-act and out-act denote the act signals from joints in and out, respectively. Q3 accepts a new data item each time the in-act signal fires. We define in-seq, the accepted input sequence, as the sequence of data items that have passed joint in.

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 16 / 23

slide-40
SLIDE 40

Example 1: A FIFO Circuit

Q3 in L0 L1 L2

  • ut

Let in-act and out-act denote the act signals from joints in and out, respectively. Q3 accepts a new data item each time the in-act signal fires. We define in-seq, the accepted input sequence, as the sequence of data items that have passed joint in. Similarly, we define out-seq, the valid output sequence, as the sequence

  • f data items that have passed through joint out while out-act fires.

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 16 / 23

slide-41
SLIDE 41

Example 1: A FIFO Circuit

The relationship between Q3’s in-seq and out-seq. q3$extract(q3$run(input-list, st, n)) ++ out-seq = in-seq ++ q3$extract(st) q3$run(input-list, st, n) := if (n ≤ 0) st else q3$run(rest(input-list), q3$step(first(input-list), st), // Return the next state of Q3 n − 1) The extraction function q3$extract(st) extracts valid data from state st

  • f Q3, i.e., extracts data from links that are full at state st.

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 17 / 23

slide-42
SLIDE 42

Example 1: A FIFO Circuit

The relationship between Q3’s in-seq and out-seq. q3$extract(q3$run(input-list, st, n)) ++ out-seq = in-seq ++ q3$extract(st) q3$run(input-list, st, n) := if (n ≤ 0) st else q3$run(rest(input-list), q3$step(first(input-list), st), // Return the next state of Q3 n − 1) The extraction function q3$extract(st) extracts valid data from state st

  • f Q3, i.e., extracts data from links that are full at state st.
  • ut-seq = in-seq when the initial and final states contain no valid data.

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 17 / 23

slide-43
SLIDE 43

Example 1: A FIFO Circuit

q3$extract(q3$run(input-list, st, n)) ++ out-seq = in-seq ++ q3$extract(st) (1) Our ACL2 proof of (1) uses induction and the following single-step-update property of Q3 as a supporting lemma, q3$extract(q3$step(input, st)) = q3$extracted-step(input, st) (2)

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 18 / 23

slide-44
SLIDE 44

Example 1: A FIFO Circuit

q3$extract(q3$run(input-list, st, n)) ++ out-seq = in-seq ++ q3$extract(st) (1) Our ACL2 proof of (1) uses induction and the following single-step-update property of Q3 as a supporting lemma, q3$extract(q3$step(input, st)) = q3$extracted-step(input, st) (2) where q3$extracted-step(input, st) :=

            

q3$extract(st), if in-act = nil ∧ out-act = nil [input.data] ++ q3$extract(st), if in-act = t ∧ out-act = nil remove-last(q3$extract(st)), if in-act = nil ∧ out-act = t [input.data] ++ remove-last(q3$extract(st)), otherwise

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 18 / 23

slide-45
SLIDE 45

Example 2: Hierarchical Reasoning

C in A0 Q2 A1 B0 Q3 B1 ∨

  • ut

Bitwise OR The step and extraction functions of C are defined hierarchically in terms

  • f those functions of Q2 and Q3, respectively.

The single-step-update property of C is proved by using the single-step-update properties of Q2 and Q3.

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 19 / 23

slide-46
SLIDE 46

Example 3: Complex Links

RR

−< branch I0 I1 A0 Q2 A1 B0 Q3 B1 >− merge O0 O1

By abstracting two queues (A0 → Q2 → A1) and (B0 → Q3 → B1) as two complex links, the reasoning is more efficient as the number of case splits reduced in proving the invariant as well as the single-step-update property for RR. ⇒ The verification time of RR is reduced from more than 23.5 minutes to 14 seconds by using the complex links.

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 20 / 23

slide-47
SLIDE 47

Outline

1

DE System

2

Modeling and Verification Approach

3

Case Studies

4

Conclusions and Future Work

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 21 / 23

slide-48
SLIDE 48

Conclusions

We have presented a framework for formally modeling and verifying self-timed circuit designs using the DE system. This work resulted in an ACL2 library for analyzing self-timed systems. We model self-timed systems as networks of links communicating with each other locally via joints, using the link-joint model. We model the non-determinism of event-ordering in self-timed circuits by associating each joint with an external go signal that, when disabled, prevents a joint from firing. We have developed a hierarchical reasoning method that is capable of verifying the functional correctness of self-timed circuit designs at scale.

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 22 / 23

slide-49
SLIDE 49

Future Work

Enhance the effectiveness of our framework by increasing automation through the further introduction of proof idioms using macros. Apply our verification methodology to iterative self-timed circuits. Verify a self-timed serial adder model without imposing the design restrictions presented in our previous work [Chau et al.:2017]. Analyze self-timed circuit models performing arbitrated merge operations that grant mutually exclusive access to a shared resource on a first-come-first-served (FCFS) basis.

Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 23 / 23

slide-50
SLIDE 50

A Greatest-Common-Divisor (GCD) Circuit

1 S L0 a = 0 & b = 0 & a = b 1 L1 a < b a − b, b b − a, a 1 L2 a, b gcd(a, b)

2n

  • 2n
  • 1
  • 1
  • 2n
  • 1
  • 2n
  • 2n
  • 1
  • 2n
  • 2n
  • 2n
  • 2n
  • n
  • in
  • ut

body gcd-alg(a, b) := while (a = 0) ∧ (b = 0) ∧ (a = b) do if (a < b) then b := b − a else a := a − b return if (a = 0) then b else a Chau et al. (UT Austin, PSU) Data-Loop-Free Self-Timed Circuit Verif. May 15, 2018 24 / 23

slide-51
SLIDE 51

References

  • B. Brock and W. Hunt (1997)

The DUAL-EVAL Hardware Description Language and Its Use in the Formal Specification and Verification of the FM9001 Microprocessor Formal Methods in System Design, 11, 71 – 104.

  • C. Chau, W. A. Hunt Jr., M. Roncken, and I. Sutherland (2017)

A Framework for Asynchronous Circuit Modeling and Verification in ACL2 HVC 2017, 3 – 18.

  • W. A. Hunt Jr. (2000)

The DE Language Computer-Aided Reasoning: ACL2 Case Studies, Kluwer Academic Publishers Norwell, MA, USA, 151 – 166.

  • M. Roncken, S. Gilla, H. Park, N. Jamadagni, C. Cowan, I. Sutherland (2015)

Naturalized Communication and Testing ASYNC 2015, 77 – 84.

  • A. Slobodova, J. Davis, S. Swords, and W. Hunt Jr. (2011)

A Flexible Formal Verification Framework for Industrial Scale Validation MEMOCODE 2011, 89 – 97.

slide-52
SLIDE 52

Questions?