Mathematica for the symbolic. Combining ACL2 and. ACL2 Workshop 2003 Boulder,CO. TIMA Laboratory -VDS Group, Grenoble, France
|
|
- Matthew Hutchinson
- 5 years ago
- Views:
Transcription
1 Combining ACL2 and Mathematica for the symbolic simulation of digital systems AL SAMMANE Ghiath, BORRIONE Dominique, OSTIER Pierre, SCHMALTZ Julien, TOMA Diana TIMA Laboratory -VDS Group, Grenoble, France ACL2 Workshop 2003 Boulder,CO VDS Diana Toma 1
2 Symbolic simulation Symbolic simulation - semi-formal technique based on numeric simulation : some inputs are valued, others stay symbolic results: arithmetic and logical expressions Problems: Symbolic expressions become very large with the number of simulation cycles The simulation tree grows exponentially (with conditional statements when the condition is a symbolic term) The results are unreadable VDS Diana Toma 2
3 Constrained Symbolic Simulation Two aspects of the simulation: algebraic computation -> Mathematica branching decision -> ACL2 Constraints: data type restrictions, inequalities and equalities between expressions composed of design variables or input signals and arithmetic operators VDS Diana Toma 3
4 Constrained Symbolic Simulation VHDL File M-Code Symbolic Computation within Mathematica Symbolic Results Simulation Constraints Constraints Resolution within ACL2 User ACL2 Books Simulation Theorems VDS Diana Toma 4
5 Branch Decision Scheme Mathematica ACL2 Call of ACL2 to check consistency of constraints Consistency L h? If I h is returned, show it to the user, else L h implies branch condition B? I h or t L h fib Check_consistency (L h ) If answer is Q.E.D simulate true branch else L h implies not B? If answer is Q.E.D. simulate false branch else ask the user to add constraints or fork answer L h fi (not B) answer Prove (L h implies B) Prove (L h implies (not B)) VDS Diana Toma 5
6 Checking constraints consistency check_consistency function Uses : tool1-fn from /books/misc/expander consistency function (defun check-consistency (Lh state) (if (true-listp Lh) (cond ((endp Lh) (value nil)) (t (mv-let (erp val state) (tool1-fn Lh state nil t nil t t) (if erp (value nil) (if (nth 1 val) (value t) (consistency Lh nil 1 state)))))) (value nil))) VDS Diana Toma 6
7 Checking constraints consistency consistency function Returns, for an inconsistent set of constraints nil in case of errors otherwise a minimal set of contradictory constraints (minimal = any strict subset is satisfiable) I h L h nil ( C 1 C k-1 C k C k+1 C n ) t VDS Diana Toma 7
8 Checking constraints consistency consistency function Returns, for an inconsistent set of constraints nil in case of errors otherwise a minimal set of contradictory constraints (minimal = any strict subset is satisfiable) L h I h nil ( C 1 C k-1 C k C k+1 C n ) t VDS Diana Toma 8
9 Checking constraints consistency consistency function Returns, for an inconsistent set of constraints nil in case of errors otherwise a minimal set of contradictory constraints (minimal = any strict subset is satisfiable) L h I h nil ( C 1 C k-1 C k C k+1 C n ) f VDS Diana Toma 9
10 Checking constraints consistency consistency function Returns, for an inconsistent set of constraints nil in case of errors otherwise a minimal set of contradictory constraints (minimal = any strict subset is satisfiable) L h I h nil ( C 1 C k-1 C k C k+1 C n ) f VDS Diana Toma 10
11 Checking constraints consistency consistency function Returns, for an inconsistent set of constraints nil in case of errors otherwise a minimal set of contradictory constraints (minimal = any strict subset is satisfiable) I h L h (C k ) ( C 1 C k-1 C k C k+1 C n ) f VDS Diana Toma 11
12 Checking constraints consistency consistency function Returns, for an inconsistent set of constraints nil in case of errors otherwise a minimal set of contradictory constraints (minimal = any strict subset is satisfiable) I h ( C k ) L h (C 1 C k-1 C k+1 C n ) f -> stop VDS Diana Toma 12
13 Checking constraints consistency consistency function Returns, for an inconsistent set of constraints nil in case of errors otherwise a minimal set of contradictory constraints (minimal = any strict subset is satisfiable) I h ( C k ) L h (C 1 C k-1 C k+1 C n ) t VDS Diana Toma 13
14 Checking constraints consistency consistency function Returns, for an inconsistent set of constraints nil in case of errors otherwise a minimal set of contradictory constraints (minimal = any strict subset is satisfiable) I h ( C k ) L h ( C 1 C k-1 C k+1 C n ) t VDS Diana Toma 14
15 Checking constraints consistency Example consistency function Returns, for an inconsistent set of constraints nil in case of errors otherwise a minimal set of contradictory constraints (minimal = any strict subset is satisfiable) L h = ((< a b) ( integerp a) (< c a) (< c d) (< b c)) I h = ((< b c) (< c a) (< a b)) VDS Diana Toma 15
16 ACL2 - Mathematica communication Communication via a pipe Initialized by Mathematica with callacl2 function Mathematica gets the last line of the ACL2 response One ACL2 session during the whole simulation callacl2[ (defthm foo (equal x x) : rule-classes nil) ] FOO callacl2[ (defthm foo (not (equal x x) ): rule-classes nil) ] ******** FAILED ******** See :DOC failure ******** FAILED **** VDS Diana Toma 16
17 ACL2 - Mathematica communication Theorems: callacl2[ (mv-let (erp val state) (defthm foo (implies L B)) (declare (ignore val)) (if erp (value nil) (value T))) ] Functions: callacl2[ (mv-let (erp val state) (check_consistency L) (if erp (value nil) (value val))) ] VDS Diana Toma 17
18 Euclid s GCD Algorithm P1: process begin wait until clk='1'; if RST='1' then a0:=a; b0:=b; ok<=false; elsif a0=b0 then ok<=true; elsif a0>b0 then a0:=a0-b0; else b0:=b0-a0; end if; end process P1; VDS Diana Toma 18
19 Euclid s GCD Algorithm =b 0 1st simulation cycle >b ok<=true 0 P1: process begin Res:=a 0 wait until clk='1'; if RST='1' then b 0 :=b 0 a 0 :=a 0 a0:=a; 2nd simulation cycle =(b 0 ) if (a 0 )=b 0 b0:=b; ok<=false; >(b 0 ) ok<=true ok<=true if (a elsif a0=b0 then Res:=a 0 )>b 0 0 Res:=a 0 ok<=true; b 0 :=(b 0 ) a 0 :=a 0 -(b 0 ) b 0 :=b 0 -(a 0 ) a 0 :=(a 0 ) elsif a0>b0 then 3rd =(b 0 ) -(b 0 )=b 0 if a a0:=a0-b0; 0 =(b 0 ) if (a 0 ) =b 0 else b0:=b0-a0; ok<=true ok<=true ok<=true ok<=true end if; Res:=a 0 Res:=a 0 -(b 0 ) Res:=a 0 Res:=(a 0 ) end process P1; >(b 0 ) -(b 0 )>(b 0 ) >(b 0 ) if (a 0 ) >b 0 a 0 :=a 0 -((b 0 ) ) a a 0 :=(a 0 -(b 0 ))-(b 0 ) 0 :=(a 0 )-(b 0 -(a 0 )) a 0 :=((a 0 ) ) b 0 :=((b 0 ) ) b 0 :=(b 0 -(a 0 ))-(a 0 )) b 0 :=(b 0 )-(a 0 -(b 0 )) b 0 :=b 0 -((a 0 ) ) VDS Diana Toma 19
20 Constraints: a=3n, b=n, nœn* Reduction of the execution tree 1st simulation cycle =b 0 >b 0 ok<=true Res:=a 0 begin b 0 :=b 0 a 0 :=a 0 -b until clk='1'; RST='1' then 2nd simulation cycle =(b 0 ) if (a 0 )=b a0:=a; b0:=b; >(b 0 ) ok<=true ok<=true if (a Res:=a 0 )>b 0 0 Res:=a ok<=false; ok<=true; 3rd then ok<=true ok<=true ok<=true a0:=a0-b0; ok<=true Res:=a 0 Res:=a 0 -(b 0 ) Res:=a 0 Res:=a b0:=b0-a0; process a 0 :=a 0 -((b 0 ) ) a a 0 :=(a 0 -(b 0 ))-(b 0 ) 0 :=(a 0 )-(b 0 -(a 0 )) a 0 :=((a 0 ) ) b 0 :=((b 0 ) ) b 0 :=(b 0 -(a 0 ))-(a 0 )) b 0 :=(b 0 )-(a 0 -(b 0 )) b 0 :=b 0 -((a 0 ) ) VDS Diana Toma 20
21 Reduction of the execution tree Constraints: a=3n, b=n, nœn* 1st simulation cycle =b 0 P1: process begin wait until clk='1'; if RST='1' then a0:=a; b0:=b; ok<=false; elsif a0=b0 then ok<=true; elsif a0>b0 then a0:=a0-b0; else b0:=b0-a0; end if; end process P1; callacl2[ (mv-let (erp val state) (check_consistency ((integerp n) (< 0 n))) (if erp (value nil) (value val))) ] VDS Diana Toma 21
22 Reduction of the execution tree Constraints: a=3n, b=n, nœn* 1st simulation cycle =b 0 P1: process begin wait until clk='1'; if RST='1' then a0:=a; b0:=b; ok<=false; elsif a0=b0 then ok<=true; elsif a0>b0 then a0:=a0-b0; else b0:=b0-a0; end if; end process P1; T callacl2[ (mv-let (erp val state) (check_consistency ((integerp n) (< 0 n))) (if erp (value nil) (value val))) ] VDS Diana Toma 22
23 Reduction of the execution tree Constraints: a=3n, b=n, nœn* 1st simulation cycle =b 0 P1: process begin wait until clk='1'; if RST='1' then a0:=a; b0:=b; ok<=false; elsif a0=b0 then ok<=true; elsif a0>b0 then a0:=a0-b0; else b0:=b0-a0; end if; end process P1; callacl2[ (mv-let (erp val state) (defthm thm1 (implies (and (integerp n)(< 0 n)) (equal (* 3 n) n))) (declare (ignore val)) (if erp (value nil) (value T))) ] VDS Diana Toma 23
24 Reduction of the execution tree Constraints: a=3n, b=n, nœn* 1st simulation cycle =b 0 P1: process begin wait until clk='1'; if RST='1' then a0:=a; b0:=b; ok<=false; elsif a0=b0 then ok<=true; elsif a0>b0 then a0:=a0-b0; else b0:=b0-a0; end if; end process P1; nil callacl2[ (mv-let (erp val state) (defthm thm1 (implies (and (integerp n)(< 0 n)) (equal (* 3 n) n))) (declare (ignore val)) (if erp (value nil) (value T))) ] VDS Diana Toma 24
25 Reduction of the execution tree Constraints: a=3n, b=n, nœn* 1st simulation cycle =b 0 P1: process begin wait until clk='1'; if RST='1' then a0:=a; b0:=b; ok<=false; elsif a0=b0 then ok<=true; elsif a0>b0 then a0:=a0-b0; else b0:=b0-a0; end if; end process P1; callacl2[ (mv-let (erp val state) (defthm thm1-neg (implies (and (integerp n)(< 0 n)) (not (equal (* 3 n) n)))) (declare (ignore val)) (if erp (value nil) (value T))) ] VDS Diana Toma 25
26 Reduction of the execution tree Constraints: a=3n, b=n, nœn* 1st simulation cycle =b 0 P1: process begin wait until clk='1'; if RST='1' then a0:=a; b0:=b; ok<=false; elsif a0=b0 then ok<=true; elsif a0>b0 then a0:=a0-b0; else b0:=b0-a0; end if; end process P1; T callacl2[ (mv-let (erp val state) (defthm thm1-neg (implies (and (integerp n)(< 0 n)) (not (equal (* 3 n) n)))) (declare (ignore val)) (if erp (value nil) (value T))) ] VDS Diana Toma 26
27 Reduction of the execution tree Constraints: a=3n, b=n, nœn* 1st simulation cycle =b 0 P1: process begin wait until clk='1'; if RST='1' then a0:=a; b0:=b; ok<=false; elsif a0=b0 then ok<=true; elsif a0>b0 then a0:=a0-b0; else b0:=b0-a0; end if; end process P1; >b 0 callacl2[ (mv-let (erp val state) (defthm thm2 (implies (and (integerp n)(< 0 n)) (> (* 3 n) n))) (declare (ignore val)) (if erp (value nil) (value T))) ] VDS Diana Toma 27
28 Reduction of the execution tree Constraints: a=3n, b=n, nœn* 1st simulation cycle =b 0 P1: process begin wait until clk='1'; if RST='1' then a0:=a; b0:=b; ok<=false; elsif a0=b0 then ok<=true; elsif a0>b0 then a0:=a0-b0; else b0:=b0-a0; end if; end process P1; T >b 0 callacl2[ (mv-let (erp val state) (defthm thm2 (implies (and (integerp n)(< 0 n)) (> (* 3 n) n))) (declare (ignore val)) (if erp (value nil) (value T))) ] VDS Diana Toma 28
29 Reduction of the execution tree Constraints: a=3n, b=n, nœn* 1st simulation cycle =b 0 P1: process begin wait until clk='1'; if RST='1' then a0:=a; b0:=b; ok<=false; elsif a0=b0 then ok<=true; elsif a0>b0 then a0:=a0-b0; else b0:=b0-a0; end if; end process P1; >b 0 a 0 :=a 0 VDS Diana Toma 29
30 Reduction of the execution tree Constraints: a=3n, b=n, nœn* 2nd simulation cycle =b 0 P1: process begin wait until clk='1'; if RST='1' then a0:=a; b0:=b; ok<=false; elsif a0=b0 then ok<=true; elsif a0>b0 then a0:=a0-b0; else b0:=b0-a0; end if; end process P1; >b 0 a 0 :=a 0 if (a 0 )=b 0 callacl2[ (mv-let (erp val state) (defthm thm3 (implies (and (integerp n)(< 0 n)) (equal (* 2 n) n))) (declare (ignore val)) (if erp (value nil) (value T))) ] VDS Diana Toma 30
31 Reduction of the execution tree Constraints: a=3n, b=n, nœn* 2nd simulation cycle =b 0 P1: process begin wait until clk='1'; if RST='1' then a0:=a; b0:=b; ok<=false; elsif a0=b0 then ok<=true; elsif a0>b0 then a0:=a0-b0; else b0:=b0-a0; end if; end process P1; nil >b 0 a 0 :=a 0 if (a 0 )=b 0 callacl2[ (mv-let (erp val state) (defthm thm3 (implies (and (integerp n)(< 0 n)) (equal (* 2 n) n))) (declare (ignore val)) (if erp (value nil) (value T))) ] VDS Diana Toma 31
32 Reduction of the execution tree Constraints: a=3n, b=n, nœn* 2nd simulation cycle =b 0 P1: process begin wait until clk='1'; if RST='1' then a0:=a; b0:=b; ok<=false; elsif a0=b0 then ok<=true; elsif a0>b0 then a0:=a0-b0; else b0:=b0-a0; end if; end process P1; >b 0 a 0 :=a 0 if (a 0 )=b 0 callacl2[ (mv-let (erp val state) (defthm thm3-neg (implies (and (integerp n)(< 0 n)) (not (equal (* 2 n) n)))) (declare (ignore val)) (if erp (value nil) (value T))) ] VDS Diana Toma 32
33 Reduction of the execution tree Constraints: a=3n, b=n, nœn* 2nd simulation cycle =b 0 P1: process begin wait until clk='1'; if RST='1' then a0:=a; b0:=b; ok<=false; elsif a0=b0 then ok<=true; elsif a0>b0 then a0:=a0-b0; else b0:=b0-a0; end if; end process P1; T >b 0 a 0 :=a 0 if (a 0 )=b 0 callacl2[ (mv-let (erp val state) (defthm thm3-neg (implies (and (integerp n)(< 0 n)) (not (equal (* 2 n) n)))) (declare (ignore val)) (if erp (value nil) (value T))) ] VDS Diana Toma 33
34 Reduction of the execution tree Constraints: a=3n, b=n, nœn* 2nd simulation cycle =b 0 P1: process begin wait until clk='1'; if RST='1' then a0:=a; b0:=b; ok<=false; elsif a0=b0 then ok<=true; elsif a0>b0 then a0:=a0-b0; else b0:=b0-a0; end if; end process P1; >b 0 a 0 :=a 0 if (a 0 )=b 0 if (a 0 )>b 0 callacl2[ (mv-let (erp val state) (defthm thm4 (implies (and (integerp n)(< 0 n)) (> (* 2 n) n))) (declare (ignore val)) (if erp (value nil) (value T))) ] VDS Diana Toma 34
35 Reduction of the execution tree Constraints: a=3n, b=n, nœn* 2nd simulation cycle =b 0 P1: process begin wait until clk='1'; if RST='1' then a0:=a; b0:=b; ok<=false; elsif a0=b0 then ok<=true; elsif a0>b0 then a0:=a0-b0; else b0:=b0-a0; end if; end process P1; T >b 0 a 0 :=a 0 if (a 0 )=b 0 if (a 0 )>b 0 callacl2[ (mv-let (erp val state) (defthm thm4 (implies (and (integerp n)(< 0 n)) (> (* 2 n) n))) (declare (ignore val)) (if erp (value nil) (value T))) ] VDS Diana Toma 35
36 Reduction of the execution tree Constraints: a=3n, b=n, nœn* 2nd simulation cycle =b 0 P1: process begin wait until clk='1'; if RST='1' then a0:=a; b0:=b; ok<=false; elsif a0=b0 then ok<=true; elsif a0>b0 then a0:=a0-b0; else b0:=b0-a0; end if; end process P1; >b 0 a 0 :=a 0 if (a 0 )=b 0 if (a 0 )>b 0 a 0 :=a 0-2b 0 VDS Diana Toma 36
37 Reduction of the execution tree Constraints: a=3n, b=n, nœn* 3rd simulation cycle =b 0 P1: process begin wait until clk='1'; if RST='1' then a0:=a; b0:=b; ok<=false; elsif a0=b0 then ok<=true; elsif a0>b0 then a0:=a0-b0; else b0:=b0-a0; end if; end process P1; if n=n >b 0 a 0 :=a 0 if (a 0 )=b 0 if (a 0 )>b 0 a 0 :=a 0-2b 0 if (a 0-2b 0 )=b 0 VDS Diana Toma 37
38 Reduction of the execution tree Constraints: a=3n, b=n, nœn* 3rd simulation cycle =b 0 P1: process begin wait until clk='1'; if RST='1' then a0:=a; b0:=b; ok<=false; elsif a0=b0 then ok<=true; elsif a0>b0 then a0:=a0-b0; else b0:=b0-a0; end if; end process P1; >b 0 a 0 :=a 0 if (a 0 )=b 0 if (a 0 )>b 0 a 0 :=a 0-2b 0 if (a 0-2b 0 )=b 0 ok<=true Res:=a 0-2b 0 VDS Diana Toma 38
39 Symbolic evaluations of assertions the assert statement assures that bool_expr is never violated Label1 is translated into a variable that can remain symbolic during one or more simulation cycles If it evaluates to false at cycle C, the simulation path is a counter example VHDL Mathematica if function Label1: assert bool_expr report message severity severitylevel; If[bool_expr,ChangeVar[Label1,True],ChangeVar[Label1,False],If[CallACL2[bool_expr],ChangeVar[Label1,True],ChangeVar[Label1,False],Label1]] VDS Diana Toma 39
40 Conclusion A new approach for the symbolic simulation of high level circuits specifications Use of typing information and user constraints to prune the execution tree Use of two powerful automatic systems: Mathematica and ACL2 Future works: Validate the approach on industrial circuits Extend to new VHDL subset for the system-level synthesis and SystemC VDS Diana Toma 40
41 VDS Diana Toma 41
42 Foreseen VHDL subset Level 1 synthesizable subset Concurrent statements: Signal assignment Component instantiation Processes : single clock synchronized processes Sequential statements: Variable and signal assignments if-then-else, case conditionals, for-loop statements Types Scalar data types: integer, bit, boolean, character Subtypes defined on integer, bit vector type Hierarchy: components do not contain combinatorial processes Simulation cycle=clock cycle VDS Diana Toma 42
A Functional Specification and Validation Model for Networks on Chip in the ACL2 Logic
A Functional Specification and Validation Model for Networks on Chip in the ACL2 Logic J. Schmaltz * and D. Borrione TIMA Laboratory - VDS Group Grenoble, France * Part of this work was done while visiting
More informationTowards A Formal Theory of On Chip Communications in the ACL2 Logic
(c) Julien Schmaltz, ACL2 2006, San José August 15-16 p. 1/37 Towards A Formal Theory of On Chip Communications in the ACL2 Logic Julien Schmaltz Saarland University - Computer Science Department Saarbrücken,
More informationInduction Schemes. Math Foundations of Computer Science
Induction Schemes Math Foundations of Computer Science Topics Induction Example Induction scheme over the naturals Termination Reduction to equational reasoning ACL2 proof General Induction Schemes Induction
More informationReasoning About Programs Panagiotis Manolios
Reasoning About Programs Panagiotis Manolios Northeastern University March 22, 2012 Version: 58 Copyright c 2012 by Panagiotis Manolios All rights reserved. We hereby grant permission for this publication
More informationECE 2300 Digital Logic & Computer Organization. More Sequential Logic Verilog
ECE 2300 Digital Logic & Computer Organization Spring 2018 More Sequential Logic Verilog Lecture 7: 1 Announcements HW3 will be posted tonight Prelim 1 Thursday March 1, in class Coverage: Lectures 1~7
More informationUsing macros to mimic VHDL in ACL2
Using macros to mimic VHDL in ACL2 Dominique Borrione & Philippe Georgelin TIMA, Grenoble, France ACL2 Workshop Austin, Texas, March 1999 VDS Dominique Borrione & Philippe Georgelin 1 Contents Context
More informationProperty-based design with HORUS / SYNTHORUS
Property-based design with HORUS / SYNTHORUS Dominique Borrione, Negin Javaheri, Katell Morin-Allory, Yann Oddos, Alexandre Porcher Radboud University, Nijmegen 1 March 27, 2013 Functional specifications
More informationIntroduction to ACL2. CS 680 Formal Methods for Computer Verification. Jeremy Johnson Drexel University
Introduction to ACL2 CS 680 Formal Methods for Computer Verification Jeremy Johnson Drexel University ACL2 www.cs.utexas.edu/~moore/acl2 ACL2 is a programming language, logic, and theorem prover/checker
More informationVHDL. Official Definition: VHSIC Hardware Description Language VHISC Very High Speed Integrated Circuit
VHDL VHDL Official Definition: VHSIC Hardware Description Language VHISC Very High Speed Integrated Circuit VHDL Alternative (Student Generated) Definition Very Hard Digital Logic language VHDL Design
More informationECEN 468 Advanced Logic Design
ECEN 468 Advanced Logic Design Lecture 28: Synthesis of Language Constructs Synthesis of Nets v An explicitly declared net may be eliminated in synthesis v Primary input and output (ports) are always retained
More informationVHDL for Synthesis. Course Description. Course Duration. Goals
VHDL for Synthesis Course Description This course provides all necessary theoretical and practical know how to write an efficient synthesizable HDL code through VHDL standard language. The course goes
More informationInthis lecture we will cover the following material:
Lecture #8 Inthis lecture we will cover the following material: The standard package, The std_logic_1164 Concordia Objects & data Types (Signals, Variables, Constants, Literals, Character) Types and Subtypes
More informationAn Executable Model for JFKr
An Executable Model for JFKr An ACL2 approach to key-establishment protocol verification Presented by: David Rager Outline Derivation of JFKr Books developed for JFKr reasoning Demonstrate the JFKr executable
More informationHardware Modeling. VHDL Architectures. Vienna University of Technology Department of Computer Engineering ECS Group
Hardware Modeling VHDL Architectures Vienna University of Technology Department of Computer Engineering ECS Group Contents Structural Modeling Instantiation of Components Behavioral Modeling Processes
More informationA Tool for Simplifying ACL2 Definitions
1/27 A Tool for Simplifying ACL2 Definitions Matt Kaufmann The University of Texas at Austin May 3, 2016 2/27 INTRODUCTION (1) In this talk we present a tool for simplifying ACL2 definitions. Used in Kestrel
More informationVHDL: RTL Synthesis Basics. 1 of 59
VHDL: RTL Synthesis Basics 1 of 59 Goals To learn the basics of RTL synthesis. To be able to synthesize a digital system, given its VHDL model. To be able to relate VHDL code to its synthesized output.
More informationSynthesis of Language Constructs. 5/10/04 & 5/13/04 Hardware Description Languages and Synthesis
Synthesis of Language Constructs 1 Nets Nets declared to be input or output ports are retained Internal nets may be eliminated due to logic optimization User may force a net to exist trireg, tri0, tri1
More informationExtending ACL2 with SMT solvers
Extending ACL2 with SMT solvers Yan Peng & Mark Greenstreet University of British Columbia October 2nd, 2015 Smtlink handles tedious details of proofs so you can focus on the interesting parts. 1 / 24
More informationThe University of Alabama in Huntsville ECE Department CPE Midterm Exam February 26, 2003
The University of Alabama in Huntsville ECE Department CPE 526 01 Midterm Exam February 26, 2003 1. (20 points) Describe the following logic expression (A B D) + (A B C) + (B C ) with a structural VHDL
More informationLab # 5. Subprograms. Introduction
Lab # 5 Subprograms Introduction Subprograms consist of procedures and functions. A procedure can return more than one argument; a function always returns just one. In a function, all parameters are input
More informationModeling Algorithms in SystemC and ACL2. John O Leary, David Russinoff Intel Corporation
Modeling Algorithms in SystemC and ACL2 John O Leary, David Russinoff Intel Corporation Algorithm Design Architects Designers? RTL DC PrimeTime Forte Jasper Gold t t+6 t+9 A recent experience A design
More informationFormal Verification of Stack Manipulation in the SCIP Processor. J. Aaron Pendergrass
Formal Verification of Stack Manipulation in the SCIP Processor J. Aaron Pendergrass High Level Challenges to developing capability in formal methods: Perceived high barrier to entry, Specialized tools
More informationReasoning About Programs Panagiotis Manolios
Reasoning About Programs Panagiotis Manolios Northeastern University February 26, 2017 Version: 100 Copyright c 2017 by Panagiotis Manolios All rights reserved. We hereby grant permission for this publication
More informationLecture 9. VHDL, part IV. Hierarchical and parameterized design. Section 1 HIERARCHICAL DESIGN
Lecture 9 VHDL, part IV Hierarchical and parameterized design Section 1 HIERARCHICAL DESIGN 2 1 Dealing with Large Digital System Design 1. Apply hierarchy to the design At the highest level use larger
More informationVHDL Sample Slides Rev Sample Slides from the 2-day and 4-day VHDL Training Courses
VHDL Sample Slides from the 2-day and 4-day VHDL Training Courses Rev. 4.7 VHDL 2011 TM Associates, Inc. 1-1 These sample slides are taken from the 4-day basic VHDL training course. They are from a variety
More information1 Design Process HOME CONTENTS INDEX. For further assistance, or call your local support center
1 Design Process VHDL Compiler, a member of the Synopsys HDL Compiler family, translates and optimizes a VHDL description to an internal gate-level equivalent. This representation is then compiled with
More informationRegister Transfer Level in Verilog: Part I
Source: M. Morris Mano and Michael D. Ciletti, Digital Design, 4rd Edition, 2007, Prentice Hall. Register Transfer Level in Verilog: Part I Lan-Da Van ( 范倫達 ), Ph. D. Department of Computer Science National
More informationHardware Description Language VHDL (1) Introduction
Hardware Description Language VHDL (1) Introduction Digital Radiation Measurement and Spectroscopy NE/RHP 537 Introduction Hardware description language (HDL) Intended to describe circuits textually, for
More informationPropositional Calculus. Math Foundations of Computer Science
Propositional Calculus Math Foundations of Computer Science Propositional Calculus Objective: To provide students with the concepts and techniques from propositional calculus so that they can use it to
More informationSynthesis of Combinational and Sequential Circuits with Verilog
Synthesis of Combinational and Sequential Circuits with Verilog What is Verilog? Hardware description language: Are used to describe digital system in text form Used for modeling, simulation, design Two
More informationCOE 405, Term 062. Design & Modeling of Digital Systems. HW# 1 Solution. Due date: Wednesday, March. 14
COE 405, Term 062 Design & Modeling of Digital Systems HW# 1 Solution Due date: Wednesday, March. 14 Q.1. Consider the 4-bit carry-look-ahead adder (CLA) block shown below: A 3 -A 0 B 3 -B 0 C 3 4-bit
More informationVHDL simulation and synthesis
VHDL simulation and synthesis How we treat VHDL in this course You will not become an expert in VHDL after taking this course The goal is that you should learn how VHDL can be used for simulation and synthesis
More informationIntroduction to VHDL #3
ECE 322 Digital Design with VHDL Introduction to VHDL #3 Lecture 7 & 8 VHDL Modeling Styles VHDL Modeling Styles Dataflow Concurrent statements Structural Components and interconnects Behavioral (sequential)
More informationSynthesis vs. Compilation Descriptions mapped to hardware Verilog design patterns for best synthesis. Spring 2007 Lec #8 -- HW Synthesis 1
Verilog Synthesis Synthesis vs. Compilation Descriptions mapped to hardware Verilog design patterns for best synthesis Spring 2007 Lec #8 -- HW Synthesis 1 Logic Synthesis Verilog and VHDL started out
More informationFPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1
FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1 Anurag Dwivedi Digital Design : Bottom Up Approach Basic Block - Gates Digital Design : Bottom Up Approach Gates -> Flip Flops Digital
More information10 Writing Circuit Descriptions
10 Writing Circuit Descriptions You can generally use several different, but logically equivalent, VHDL descriptions to describe a circuit. To understand the interaction between VHDL Compiler and Design
More informationCSE140L: Components and Design Techniques for Digital Systems Lab
CSE140L: Components and Design Techniques for Digital Systems Lab Tajana Simunic Rosing Source: Vahid, Katz, Culler 1 Announcements & Outline Lab 4 due; demo signup times listed on the cse140l site Check
More informationVerifying Centaur s Floating Point Adder
Verifying Centaur s Floating Point Adder Sol Swords sswords@cs.utexas.edu April 23, 2008 Sol Swords () Verifying Centaur s Floating Point Adder April 23, 2008 1 / 21 Problem Given: Verilog RTL for the
More informationEfficient, Formally Verifiable Data Structures using ACL2 Single-Threaded Objects for High-Assurance Systems
Efficient, Formally Verifiable Data Structures using ACL2 Single-Threaded Objects for High-Assurance Systems David Hardin Rockwell Collins Samuel Hardin Iowa State University Introduction Bounded versions
More informationCprE 583 Reconfigurable Computing
Recap Moore FSM Example CprE / ComS 583 Reconfigurable Computing Moore FSM that recognizes sequence 10 0 1 0 1 S0 / 0 S1 / 0 1 S2 / 1 Prof. Joseph Zambreno Department of Electrical and Computer Engineering
More informationLogic Synthesis. EECS150 - Digital Design Lecture 6 - Synthesis
Logic Synthesis Verilog and VHDL started out as simulation languages, but quickly people wrote programs to automatically convert Verilog code into low-level circuit descriptions (netlists). EECS150 - Digital
More informationCSE140L: Components and Design
CSE140L: Components and Design Techniques for Digital Systems Lab Tajana Simunic Rosing Source: Vahid, Katz, Culler 1 Grade distribution: 70% Labs 35% Lab 4 30% Lab 3 20% Lab 2 15% Lab 1 30% Final exam
More informationOverview. Ram vs Register. Register File. Introduction to Structured VLSI Design. Recap Operator Sharing FSMD Counters.
Overview Introduction to Structured VLSI Design VHDL V Recap Operator Sharing FSMD Counters Joachim Rodrigues Ram vs Register Register File RAM characteristics RAM cell designed at transistor level Cell
More information5. 0 VHDL OPERATORS. The above classes are arranged in increasing priority when parentheses are not used.
Filename= ch5.doc 5. 0 VHDL OPERATORS There are seven groups of predefined VHDL operators: 1. Binary logical operators: and or nand nor xor xnor 2. Relational operators: = /= < >= 3. Shifts operators:
More informationVerilog. What is Verilog? VHDL vs. Verilog. Hardware description language: Two major languages. Many EDA tools support HDL-based design
Verilog What is Verilog? Hardware description language: Are used to describe digital system in text form Used for modeling, simulation, design Two major languages Verilog (IEEE 1364), latest version is
More informationEEL 4783: HDL in Digital System Design
EEL 4783: HDL in Digital System Design Lecture 15: Logic Synthesis with Verilog Prof. Mingjie Lin 1 Verilog Synthesis Synthesis vs. Compilation Descriptions mapped to hardware Verilog design patterns for
More informationComputer Aided Design Basic Syntax Gate Level Modeling Behavioral Modeling. Verilog
Verilog Radek Pelánek and Šimon Řeřucha Contents 1 Computer Aided Design 2 Basic Syntax 3 Gate Level Modeling 4 Behavioral Modeling Computer Aided Design Hardware Description Languages (HDL) Verilog C
More informationMechanized Operational Semantics
Mechanized Operational Semantics J Strother Moore Department of Computer Sciences University of Texas at Austin Marktoberdorf Summer School 2008 (Lecture 2: An Operational Semantics) 1 M1 An M1 state consists
More informationModeling Asynchronous Circuits in ACL2 Using the Link-Joint Interface
Modeling Asynchronous Circuits in ACL2 Using the Link-Joint Interface Cuong Chau ckcuong@cs.utexas.edu Department of Computer Science The University of Texas at Austin April 19, 2016 Cuong Chau (UT Austin)
More informationAbi Farsoni, Department of Nuclear Engineering and Radiation Health Physics, Oregon State University
Hardware description language (HDL) Intended to describe circuits textually, for a computer to read Evolved starting in the 1970s and 1980s Popular languages today include: VHDL Defined in 1980s by U.S.
More informationA formalisation of XMAS
A formalisation of XMAS Bernard van Gastel Julien Schmaltz Open University of the Netherlands {Bernard.vanGastel, Julien.Schmaltz}@ou.nl Communication fabrics play a key role in the correctness and performance
More informationDevelopment of a Translator from LLVM to ACL2
Development of a Translator from LLVM to ACL2 David Hardin, Jennifer Davis, David Greve, and Jedidiah McClurg July 2014 Introduction Research objectives: Reason about machine code generated from high-level
More informationIntroduction to Term Rewrite Systems and their Applications
Introduction to Term Rewrite Systems and their Applications Drexel University May 17, 2015 Motivation Overview What is a Term Rewrite System (TRS)? Tic-Tac-Toe The Maude System Cryptography Important Properties
More informationOrc and ACL2. Nathan Wetzler May 4, University of Texas, Austin
Orc and ACL2 Nathan Wetzler nwetzler@cs.utexas.edu University of Texas, Austin May 4, 2008 Outline Orc Problem Overview of Orc Sites Combinators Parallel Combinator Sequential Combinator Pruning Combinator
More informationEECS150 - Digital Design Lecture 4 - Verilog Introduction. Outline
EECS150 - Digital Design Lecture 4 - Verilog Introduction Feb 3, 2009 John Wawrzynek Spring 2009 EECS150 - Lec05-Verilog Page 1 Outline Background and History of Hardware Description Brief Introduction
More informationMilawa an extensible proof checker
Milawa an extensible proof checker Jared Davis ACL2 Seminar, November 16, 2005 Outline The Milawa logic A primitive proof checker An extended proof checker Soundness of the extended checker A reflection
More informationReasoning About LLVM Code Using Codewalker
Reasoning About LLVM Code Using Codewalker David Hardin Advanced Technology Center david.hardin@rockwellcollins.com Copyright 2015 Rockwell Collins. All rights reserved. Objectives Reason about machine
More informationRegister Transfer Methodology II
Register Transfer Methodology II Chapter 12 1 Outline 1. Design example: One shot pulse generator 2. Design Example: GCD 3. Design Example: UART 4. Design Example: SRAM Interface Controller 5. Square root
More informationOutline. Register Transfer Methodology II. 1. One shot pulse generator. Refined block diagram of FSMD
Outline Register Transfer Methodology II 1. Design example: One shot pulse generator 2. Design Example: GCD 3. Design Example: UART 4. Design Example: SRAM Interface Controller 5. Square root approximation
More informationVHDL Essentials Simulation & Synthesis
VHDL Essentials Simulation & Synthesis Course Description This course provides all necessary theoretical and practical know-how to design programmable logic devices using VHDL standard language. The course
More informationFast Prototyping from Assertions: a Pragmatic Approach
Fast Prototyping from Assertions: a Pragmatic Approach K. Morin-Allory, N. Javaheri, D. Borrione TIMA Laboratory October 17, 2013 1/20 SoC Design Flow: Protocols or Control Part 2/20 SoC Design Flow: Protocols
More informationGoals: Define the syntax of a simple imperative language Define a semantics using natural deduction 1
Natural Semantics Goals: Define the syntax of a simple imperative language Define a semantics using natural deduction 1 1 Natural deduction is an instance of first-order logic; that is, it is the formal
More informationLecture 12 VHDL Synthesis
CPE 487: Digital System Design Spring 2018 Lecture 12 VHDL Synthesis Bryan Ackland Department of Electrical and Computer Engineering Stevens Institute of Technology Hoboken, NJ 07030 1 What is Synthesis?
More informationHIERARCHICAL DESIGN. RTL Hardware Design by P. Chu. Chapter 13 1
HIERARCHICAL DESIGN Chapter 13 1 Outline 1. Introduction 2. Components 3. Generics 4. Configuration 5. Other supporting constructs Chapter 13 2 1. Introduction How to deal with 1M gates or more? Hierarchical
More informationOutline HIERARCHICAL DESIGN. 1. Introduction. Benefits of hierarchical design
Outline HIERARCHICAL DESIGN 1. Introduction 2. Components 3. Generics 4. Configuration 5. Other supporting constructs Chapter 13 1 Chapter 13 2 1. Introduction How to deal with 1M gates or more? Hierarchical
More informationStatus: Informal Type: Technical. This document gives an example of the Compliance Notation.
Project: Title: Status: Informal Type: Technical Author: Name Location Signature Date R.D. Arthan Abstract: WIN01 This document gives an example of the. Distribution: Library Copyright c : Lemma 1 Ltd
More informationLattice VHDL Training
Lattice Part I February 2000 1 VHDL Basic Modeling Structure February 2000 2 VHDL Design Description VHDL language describes a digital system as a set of modular blocks. Each modular block is described
More informationC-Based Hardware Design
LECTURE 6 In this lecture we will introduce: The VHDL Language and its benefits. The VHDL entity Concurrent and Sequential constructs Structural design. Hierarchy Packages Various architectures Examples
More informationVerilog. Verilog for Synthesis
Verilog Verilog for Synthesis 1 Verilog background 1983: Gateway Design Automation released Verilog HDL Verilog and simulator 1985: Verilog enhanced version Verilog-XL 1987: Verilog-XL becoming more popular
More informationSummary of FPGA & VHDL
FYS4220/9220 Summary of FPGA & VHDL Lecture #6 Jan Kenneth Bekkeng, University of Oslo - Department of Physics 16.11.2011 Curriculum (VHDL & FPGA part) Curriculum (Syllabus) defined by: Lectures Lecture6:
More informationReasoning about copydata
Reasoning about copydata Yet Another Account of a Proof of Correctness of an x86 Machine-Code Program Shilpi Goel ACL2 Seminar 19th October, 2015 Quick Background This talk is about machine-code program
More informationPart 4: VHDL for sequential circuits. Introduction to Modeling and Verification of Digital Systems. Memory elements. Sequential circuits
M1 Informatique / MOSIG Introduction to Modeling and erification of Digital Systems Part 4: HDL for sequential circuits Laurence PIERRE http://users-tima.imag.fr/amfors/lpierre/m1arc 2017/2018 81 Sequential
More informationCombining Static and Dynamic Contract Checking for Curry
Michael Hanus (CAU Kiel) Combining Static and Dynamic Contract Checking for Curry LOPSTR 2017 1 Combining Static and Dynamic Contract Checking for Curry Michael Hanus University of Kiel Programming Languages
More informationECE 574: Modeling and Synthesis of Digital Systems using Verilog and VHDL. Fall 2017 Final Exam (6.00 to 8.30pm) Verilog SOLUTIONS
ECE 574: Modeling and Synthesis of Digital Systems using Verilog and VHDL Fall 2017 Final Exam (6.00 to 8.30pm) Verilog SOLUTIONS Note: Closed book no notes or other material allowed apart from the one
More informationECE 545 Lecture 12. Datapath vs. Controller. Structure of a Typical Digital System Data Inputs. Required reading. Design of Controllers
ECE 545 Lecture 12 Design of Controllers Finite State Machines and Algorithmic State Machine (ASM) Charts Required reading P. Chu, using VHDL Chapter 1, Finite State Machine: Principle & Practice Chapter
More informationVHDL. VHDL History. Why VHDL? Introduction to Structured VLSI Design. Very High Speed Integrated Circuit (VHSIC) Hardware Description Language
VHDL Introduction to Structured VLSI Design VHDL I Very High Speed Integrated Circuit (VHSIC) Hardware Description Language Joachim Rodrigues A Technology Independent, Standard Hardware description Language
More informationProcessadors de Llenguatge II. Functional Paradigm. Pratt A.7 Robert Harper s SML tutorial (Sec II)
Processadors de Llenguatge II Functional Paradigm Pratt A.7 Robert Harper s SML tutorial (Sec II) Rafael Ramirez Dep Tecnologia Universitat Pompeu Fabra Paradigm Shift Imperative Paradigm State Machine
More informationCS211 Digital Systems/Lab. Introduction to VHDL. Hyotaek Shim, Computer Architecture Laboratory
CS211 Digital Systems/Lab Introduction to VHDL Hyotaek Shim, Computer Architecture Laboratory Programmable Logic Device (PLD) 2/32 An electronic component used to build reconfigurable digital circuits
More informationON THE EFFECTIVENESS OF ASSERTION-BASED VERIFICATION
ON THE EFFECTIVENESS OF ASSERTION-BASED VERIFICATION IN AN INDUSTRIAL CONTEXT L.Pierre, F.Pancher, R.Suescun, J.Quévremont TIMA Laboratory, Grenoble, France Dolphin Integration, Meylan, France Thales Communications
More informationHardware Modeling. VHDL Syntax. Vienna University of Technology Department of Computer Engineering ECS Group
Hardware Modeling VHDL Syntax Vienna University of Technology Department of Computer Engineering ECS Group Contents Identifiers Types & Attributes Operators Sequential Statements Subroutines 2 Identifiers
More informationCOVER SHEET: Total: Regrade Info: 5 (5 points) 2 (8 points) 6 (10 points) 7b (13 points) 7c (13 points) 7d (13 points)
EEL 4712 Midterm 2 Spring 2011 VERSION 1 Name: UFID: Sign your name here if you would like for your test to be returned in class: IMPORTANT: Please be neat and write (or draw) carefully. If we cannot read
More informationVerilog Module 1 Introduction and Combinational Logic
Verilog Module 1 Introduction and Combinational Logic Jim Duckworth ECE Department, WPI 1 Module 1 Verilog background 1983: Gateway Design Automation released Verilog HDL Verilog and simulator 1985: Verilog
More informationHDL. Hardware Description Languages extensively used for:
HDL Hardware Description Languages extensively used for: Describing (digital) hardware (formal documentation) Simulating it Verifying it Synthesizing it (first step of modern design flow) 2 main options:
More informationEECS150 - Digital Design Lecture 10 Logic Synthesis
EECS150 - Digital Design Lecture 10 Logic Synthesis September 26, 2002 John Wawrzynek Fall 2002 EECS150 Lec10-synthesis Page 1 Logic Synthesis Verilog and VHDL stated out as simulation languages, but quickly
More informationEECS150 - Digital Design Lecture 10 Logic Synthesis
EECS150 - Digital Design Lecture 10 Logic Synthesis February 13, 2003 John Wawrzynek Spring 2003 EECS150 Lec8-synthesis Page 1 Logic Synthesis Verilog and VHDL started out as simulation languages, but
More information1 ST SUMMER SCHOOL: VHDL BOOTCAMP PISA, JULY 2013
MARIE CURIE IAPP: FAST TRACKER FOR HADRON COLLIDER EXPERIMENTS 1 ST SUMMER SCHOOL: VHDL BOOTCAMP PISA, JULY 2013 Introduction to VHDL Calliope-Louisa Sotiropoulou PhD Candidate/Researcher Aristotle University
More informationMidterm Exam Thursday, October 24, :00--2:15PM (75 minutes)
Last (family) name: Answer Key First (given) name: Student I.D. #: Department of Electrical and Computer Engineering University of Wisconsin - Madison ECE 551 Digital System Design and Synthesis Midterm
More informationFunctions, Conditionals & Predicates
Functions, Conditionals & Predicates York University Department of Computer Science and Engineering 1 Overview Functions as lambda terms Defining functions Variables (bound vs. free, local vs. global)
More informationSystemVerilog HDL - a programming language
SystemVerilog HDL - a programming language module hdl1; integer A, B, C; initial begin A = 3; B = 10; $display( A, B, C ); C = A+B; $display( A, B, C ); for ( A = 3 ; A > 0 ; A = A-1 ) begin C = C*B; $display(
More informationLab # 2. Sequential Statements
The Islamic University of Gaza Faculty of Engineering Department of Computer Engineering ECOM 4111: Digital System Lab Lab # 2 Sequential Statements Eng. Alaa O Shama September, 2015 Introduction In this
More informationLecture 3 Introduction to VHDL
CPE 487: Digital System Design Spring 2018 Lecture 3 Introduction to VHDL Bryan Ackland Department of Electrical and Computer Engineering Stevens Institute of Technology Hoboken, NJ 07030 1 Managing Design
More informationElektrotechnik und Informationstechnik, Stiftungsprofessur hochparallele VLSI Systeme und Neuromikroelektronik. Oberseminar Informationstechnik
Elektrotechnik und Informationstechnik, Stiftungsprofessur hochparallele VLSI Systeme und Neuromikroelektronik Oberseminar Informationstechnik Reminder: Project Work Project Work ONE system ACCOUNT for
More informationSequential Circuit Design: Principle
Sequential Circuit Design: Principle Chapter 8 1 Outline 1. Overview on sequential circuits 2. Synchronous circuits 3. Danger of synthesizing asynchronous circuit 4. Inference of basic memory elements
More informationקורס VHDL for High Performance. VHDL
קורס VHDL for High Performance תיאור הקורס קורסזהמספקאתכלהידע התיאורטיוהמעשילכתיבתקודHDL. VHDL לסינתזה בעזרת שפת הסטנדרט הקורסמעמיקמאודומלמדאת הדרךהיעילהלכתיבתקודVHDL בכדילקבלאתמימושתכןהלוגי המדויק. הקורסמשלב
More informationBacktracking and Induction in ACL2
Backtracking and Induction in ACL2 John Erickson University of Texas at Austin jderick@cs.utexas.edu ABSTRACT This paper presents an extension to ACL2 that allows backtracking to occur when a proof fails.
More informationEECE-4740/5740 Advanced VHDL and FPGA Design. Lecture 3 Concurrent and sequential statements
EECE-4740/5740 Advanced VHDL and FPGA Design Lecture 3 Concurrent and sequential statements Cristinel Ababei Marquette University Department of Electrical and Computer Engineering Overview Components hierarchy
More informationCS 173 [A]: Discrete Structures, Fall 2012 Homework 8 Solutions
CS 173 [A]: Discrete Structures, Fall 01 Homework 8 Solutions This homework contains 4 problems worth a total of 35 points. It is due on Wednesday, November 14th, at 5pm. 1 Induction Proofs With Inequalities
More informationAssignment. Last time. Last time. ECE 4514 Digital Design II. Back to the big picture. Back to the big picture
Assignment Last time Project 4: Using synthesis tools Synplify Pro and Webpack Due 11/11 ning of class Generics Used to parameterize models E.g., Delay, bit width Configurations Configuration specification
More informationSpiral 1 / Unit 4 Verilog HDL. Digital Circuit Design Steps. Digital Circuit Design OVERVIEW. Mark Redekopp. Description. Verification.
1-4.1 1-4.2 Spiral 1 / Unit 4 Verilog HDL Mark Redekopp OVERVIEW 1-4.3 1-4.4 Digital Circuit Design Steps Digital Circuit Design Description Design and computer-entry of circuit Verification Input Stimulus
More informationPollard s Tutorial on Clocked Stuff in VHDL
Pollard s Tutorial on Clocked Stuff in VHDL Welcome to a biased view of how to do register type of stuff in VHDL. The object of this short note is to identify one way to easily handle registered logic
More information