Mathematica for the symbolic. Combining ACL2 and. ACL2 Workshop 2003 Boulder,CO. TIMA Laboratory -VDS Group, Grenoble, France

Size: px
Start display at page:

Download "Mathematica for the symbolic. Combining ACL2 and. ACL2 Workshop 2003 Boulder,CO. TIMA Laboratory -VDS Group, Grenoble, France"

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 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 information

Towards A Formal Theory of On Chip Communications in the ACL2 Logic

Towards 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 information

Induction Schemes. Math Foundations of Computer Science

Induction 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 information

Reasoning About Programs Panagiotis Manolios

Reasoning 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 information

ECE 2300 Digital Logic & Computer Organization. More Sequential Logic Verilog

ECE 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 information

Using macros to mimic VHDL in ACL2

Using 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 information

Property-based design with HORUS / SYNTHORUS

Property-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 information

Introduction 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 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 information

VHDL. Official Definition: VHSIC Hardware Description Language VHISC Very High Speed Integrated Circuit

VHDL. 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 information

ECEN 468 Advanced Logic Design

ECEN 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 information

VHDL for Synthesis. Course Description. Course Duration. Goals

VHDL 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 information

Inthis lecture we will cover the following material:

Inthis 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 information

An Executable Model for JFKr

An 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 information

Hardware 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 Hardware Modeling VHDL Architectures Vienna University of Technology Department of Computer Engineering ECS Group Contents Structural Modeling Instantiation of Components Behavioral Modeling Processes

More information

A Tool for Simplifying ACL2 Definitions

A 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 information

VHDL: RTL Synthesis Basics. 1 of 59

VHDL: 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 information

Synthesis of Language Constructs. 5/10/04 & 5/13/04 Hardware Description Languages and Synthesis

Synthesis 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 information

Extending ACL2 with SMT solvers

Extending 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 information

The University of Alabama in Huntsville ECE Department CPE Midterm Exam February 26, 2003

The 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 information

Lab # 5. Subprograms. Introduction

Lab # 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 information

Modeling 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 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 information

Formal Verification of Stack Manipulation in the SCIP Processor. J. Aaron Pendergrass

Formal 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 information

Reasoning About Programs Panagiotis Manolios

Reasoning 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 information

Lecture 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 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 information

VHDL Sample Slides Rev Sample Slides from the 2-day and 4-day VHDL Training Courses

VHDL 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 information

1 Design Process HOME CONTENTS INDEX. For further assistance, or call your local support center

1 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 information

Register Transfer Level in Verilog: Part I

Register 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 information

Hardware Description Language VHDL (1) Introduction

Hardware 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 information

Propositional Calculus. Math Foundations of Computer Science

Propositional 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 information

Synthesis of Combinational and Sequential Circuits with Verilog

Synthesis 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 information

COE 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 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 information

VHDL simulation and synthesis

VHDL 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 information

Introduction to VHDL #3

Introduction 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 information

Synthesis vs. Compilation Descriptions mapped to hardware Verilog design patterns for best synthesis. Spring 2007 Lec #8 -- HW Synthesis 1

Synthesis 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 information

FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1

FPGA 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 information

10 Writing Circuit Descriptions

10 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 information

CSE140L: Components and Design Techniques for Digital Systems Lab

CSE140L: 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 information

Verifying Centaur s Floating Point Adder

Verifying 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 information

Efficient, 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 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 information

CprE 583 Reconfigurable Computing

CprE 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 information

Logic Synthesis. EECS150 - Digital Design Lecture 6 - Synthesis

Logic 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 information

CSE140L: Components and Design

CSE140L: 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 information

Overview. Ram vs Register. Register File. Introduction to Structured VLSI Design. Recap Operator Sharing FSMD Counters.

Overview. 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 information

5. 0 VHDL OPERATORS. The above classes are arranged in increasing priority when parentheses are not used.

5. 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 information

Verilog. What is Verilog? VHDL vs. Verilog. Hardware description language: Two major languages. Many EDA tools support HDL-based design

Verilog. 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 information

EEL 4783: HDL in Digital System Design

EEL 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 information

Computer Aided Design Basic Syntax Gate Level Modeling Behavioral Modeling. Verilog

Computer 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 information

Mechanized Operational Semantics

Mechanized 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 information

Modeling Asynchronous Circuits in ACL2 Using the Link-Joint Interface

Modeling 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 information

Abi Farsoni, Department of Nuclear Engineering and Radiation Health Physics, Oregon State University

Abi 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 information

A formalisation of XMAS

A 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 information

Development of a Translator from LLVM to ACL2

Development 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 information

Introduction to Term Rewrite Systems and their Applications

Introduction 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 information

Orc and ACL2. Nathan Wetzler May 4, University of Texas, Austin

Orc 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 information

EECS150 - Digital Design Lecture 4 - Verilog Introduction. Outline

EECS150 - 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 information

Milawa an extensible proof checker

Milawa 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 information

Reasoning About LLVM Code Using Codewalker

Reasoning 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 information

Register Transfer Methodology II

Register 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 information

Outline. Register Transfer Methodology II. 1. One shot pulse generator. Refined block diagram of FSMD

Outline. 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 information

VHDL Essentials Simulation & Synthesis

VHDL 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 information

Fast Prototyping from Assertions: a Pragmatic Approach

Fast 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 information

Goals: Define the syntax of a simple imperative language Define a semantics using natural deduction 1

Goals: 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 information

Lecture 12 VHDL Synthesis

Lecture 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 information

HIERARCHICAL DESIGN. RTL Hardware Design by P. Chu. Chapter 13 1

HIERARCHICAL 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 information

Outline HIERARCHICAL DESIGN. 1. Introduction. Benefits of hierarchical design

Outline 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 information

Status: Informal Type: Technical. This document gives an example of the Compliance Notation.

Status: 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 information

Lattice VHDL Training

Lattice 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 information

C-Based Hardware Design

C-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 information

Verilog. Verilog for Synthesis

Verilog. 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 information

Summary of FPGA & VHDL

Summary 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 information

Reasoning about copydata

Reasoning 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 information

Part 4: VHDL for sequential circuits. Introduction to Modeling and Verification of Digital Systems. Memory elements. Sequential circuits

Part 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 information

Combining Static and Dynamic Contract Checking for Curry

Combining 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 information

ECE 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 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 information

ECE 545 Lecture 12. Datapath vs. Controller. Structure of a Typical Digital System Data Inputs. Required reading. Design of Controllers

ECE 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 information

VHDL. VHDL History. Why VHDL? Introduction to Structured VLSI Design. Very High Speed Integrated Circuit (VHSIC) Hardware Description Language

VHDL. 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 information

Processadors 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) 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 information

CS211 Digital Systems/Lab. Introduction to VHDL. Hyotaek Shim, Computer Architecture Laboratory

CS211 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 information

ON THE EFFECTIVENESS OF ASSERTION-BASED VERIFICATION

ON 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 information

Hardware 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 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 information

COVER SHEET: Total: Regrade Info: 5 (5 points) 2 (8 points) 6 (10 points) 7b (13 points) 7c (13 points) 7d (13 points)

COVER 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 information

Verilog Module 1 Introduction and Combinational Logic

Verilog 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 information

HDL. Hardware Description Languages extensively used for:

HDL. 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 information

EECS150 - Digital Design Lecture 10 Logic Synthesis

EECS150 - 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 information

EECS150 - Digital Design Lecture 10 Logic Synthesis

EECS150 - 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 information

1 ST SUMMER SCHOOL: VHDL BOOTCAMP PISA, JULY 2013

1 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 information

Midterm Exam Thursday, October 24, :00--2:15PM (75 minutes)

Midterm 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 information

Functions, Conditionals & Predicates

Functions, 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 information

SystemVerilog HDL - a programming language

SystemVerilog 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 information

Lab # 2. Sequential Statements

Lab # 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 information

Lecture 3 Introduction to VHDL

Lecture 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 information

Elektrotechnik und Informationstechnik, Stiftungsprofessur hochparallele VLSI Systeme und Neuromikroelektronik. Oberseminar Informationstechnik

Elektrotechnik 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 information

Sequential Circuit Design: Principle

Sequential 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. VHDL קורס VHDL for High Performance תיאור הקורס קורסזהמספקאתכלהידע התיאורטיוהמעשילכתיבתקודHDL. VHDL לסינתזה בעזרת שפת הסטנדרט הקורסמעמיקמאודומלמדאת הדרךהיעילהלכתיבתקודVHDL בכדילקבלאתמימושתכןהלוגי המדויק. הקורסמשלב

More information

Backtracking and Induction in ACL2

Backtracking 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 information

EECE-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 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 information

CS 173 [A]: Discrete Structures, Fall 2012 Homework 8 Solutions

CS 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 information

Assignment. Last time. Last time. ECE 4514 Digital Design II. Back to the big picture. Back to the big picture

Assignment. 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 information

Spiral 1 / Unit 4 Verilog HDL. Digital Circuit Design Steps. Digital Circuit Design OVERVIEW. Mark Redekopp. Description. Verification.

Spiral 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 information

Pollard s Tutorial on Clocked Stuff in VHDL

Pollard 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