• Documents
  • Authors
  • Tables
  • Log in
  • Sign up
  • MetaCart
  • Donate

CiteSeerX logo

Advanced Search Include Citations
Advanced Search Include Citations | Disambiguate

Formal verification of the ARM6 micro-architecture (2002)

by A Fox
Add To MetaCart

Tools

Sorted by:
Results 1 - 8 of 8

Structure of a proof-producing compiler for a subset of higher order logic

by Guodong Li, Scott Owens, Konrad Slind - 16th European Symposium on Programming (ESOP’07 , 2007
"... Abstract. We give an overview of a proof-producing compiler which translates recursion equations, defined in higher order logic, to assembly language. The compiler is implemented and validated with a mix of translation validation and compiler verification techniques. Both the design of the compiler ..."
Abstract - Cited by 9 (7 self) - Add to MetaCart
Abstract. We give an overview of a proof-producing compiler which translates recursion equations, defined in higher order logic, to assembly language. The compiler is implemented and validated with a mix of translation validation and compiler verification techniques. Both the design of the compiler and its mechanical verification are implemented in the same logic framework.

TLSim and EVC: a term-level symbolic simulator and an efficient decision procedure for the logic of equality with uninterpreted functions and memories

by Miroslav N. Velev, Randal E. Bryant - Int. J. Embedded Systems , 2005
"... ..."
Abstract - Cited by 7 (2 self) - Add to MetaCart
Abstract not found

A proofproducing hardware compiler for a subset of higher order logic

by Mike Gordon, Juliano Iyoda, Scott Owens, Konrad Slind - Oxford University , 2005
"... (authors listed in alphabetical order) Abstract. Higher order logic (HOL) is a modelling language suitable for specifying behaviour at many levels of abstraction. We describe a compiler from a ‘synthesisable subset ’ of HOL function definitions to correctby-construction clocked synchronous hardware. ..."
Abstract - Cited by 2 (0 self) - Add to MetaCart
(authors listed in alphabetical order) Abstract. Higher order logic (HOL) is a modelling language suitable for specifying behaviour at many levels of abstraction. We describe a compiler from a ‘synthesisable subset ’ of HOL function definitions to correctby-construction clocked synchronous hardware. The compiler works by theorem proving in the HOL4 system and goes through several phases, each deductively refining the specification to a more concrete form, until a representation that corresponds to hardware is deduced. It also produces a proof that the generated hardware implements the HOL functions constituting the specification. Synthesised designs can be translated to Verilog HDL, simulated and then input to standard design automation tools. Users can modify the theorem proving scripts that perform compilation. A simple example is adding rewrites for peephole optimisation, but all the theorem-proving infrastructure in HOL4 is available for tuning the compilation. Users can also extend the synthesisable subset. For example, the core system can only compile tail-recursions, but a ‘third-party ’ tool linRec is being developed to automatically generate tail recursive definitions to implement linear recursions, thereby extending the synthesisable subset of HOL to include linear recursion. 1

Verifying ARM6 Multiplication

by Anthony Fox
"... Abstract. The hol-4 proof system has been used to formally verify the correctness of the ARM6 micro-architecture. This paper describes the specification and verification of the multiply instructions. The processor’s implementation is based on the modified Booth’s algorithm. Correctness is defined us ..."
Abstract - Cited by 2 (0 self) - Add to MetaCart
Abstract. The hol-4 proof system has been used to formally verify the correctness of the ARM6 micro-architecture. This paper describes the specification and verification of the multiply instructions. The processor’s implementation is based on the modified Booth’s algorithm. Correctness is defined using data and temporal abstraction maps. The ARM6 is a commercial RISC microprocessor that has been used extensively in embedded systems – it has a 3-stage pipeline with a multi-cycled execute stage. This paper describes the approach used in the formal verification and presents some key lemmas. 1
(Show Context)

Citation Context

...r is referred to Furber and the ARM Architecture Reference Manual [10, 22]. The verification of the block data transfer instruction class and all of the remaining instructions is documented elsewhere =-=[9, 8]-=-. The approach used is based on an algebraic framework for correctness that was developed at Swansea [12] and later implemented in hol at Cambridge [7]. Work has continued at Swansea using Maude [13]....

GATE – a general architecture for text engineering

by Anthony Fox - In Proceedings of the 16th Conference on Computational Linguistics (COLING96). http://citeseer.nj.nec.com/43097.html , 2004
"... The hol-4 proof system has been used to formally verify the correctness of the ARM6 micro-architecture. This paper describes the specification and verification of one instructions class, block data transfers; these are a form of load-store instruction in which a set of up to sixteen registers can be ..."
Abstract - Cited by 2 (1 self) - Add to MetaCart
The hol-4 proof system has been used to formally verify the correctness of the ARM6 micro-architecture. This paper describes the specification and verification of one instructions class, block data transfers; these are a form of load-store instruction in which a set of up to sixteen registers can be transferred atomically. The ARM6 is a commercial RISC microprocessor that has been used extensively in embedded systems – it has a 3-stage pipeline with a multi-cycled execute stage. A list based programmer’s model specification of the block data transfers is compared with the ARM6’s implementation which uses a 16-bit mask. The models are far removed and reasonably complex, and this poses a verification challenge. This paper describes the approach and some key lemmas used in verifying correctness, which is defined using data and temporal abstraction maps. 1
(Show Context)

Citation Context

...g the pipeline state at the ISA level, there was no need to explicitly consider the special cases of writing to the memory addresses pc + 4 and pc + 8. Using the no-clobber or data forwarding methods =-=[6]-=- would have added to the verification effort. With the size and complexity of the ARM6 model, it is quite easy for the proof run-times and terms (representing the state of the processor) to become ver...

Specification and verification of the ARM6 microprocessor in HOL Written report for the seminar “State of the Art of Formal Hardware Verification”

by Oleg Parshin
"... ..."
Abstract - Add to MetaCart
Abstract not found
(Show Context)

Citation Context

...seminar “State of the Art of Formal Hardware Verification” Oleg Parshin January 2004sAbstract This report describes the formal verification of the ARM6 micro-architecture using the HOL theorem prover =-=[5]-=-. The correctness of the microprocessor design compares the micro-architecture with an abstract, target instruction set semantics. Data and temporal abstraction maps are used to formally relate the st...

Deductive Translation Validation for a Subset of Higher Order Logic

by Guodong Li, Konrad Slind
"... Abstract. We discuss a proof-producing compiler for a subset of higher order logic. The translation validation is automatic, and is based on Hoare rules derived from a compositional semantics for sequences of instructions for an ARM-like machine. Partial and total correctness are dealt with. The mai ..."
Abstract - Add to MetaCart
Abstract. We discuss a proof-producing compiler for a subset of higher order logic. The translation validation is automatic, and is based on Hoare rules derived from a compositional semantics for sequences of instructions for an ARM-like machine. Partial and total correctness are dealt with. The main focus is on issues in the intermediate level and back-end of the compiler. 1
(Show Context)

Citation Context

...ect of running assembly code on the ARM machine. The underlying basis for this proof 3is a version of the ARM machine. (We are currently refining it to the detailed semantics for ARM provided by Fox =-=[5]-=-.) Syntax Meaning k ::= 0, 1, . . . Natural numbers (e.g. for addresses) v ::= 0w, 1w, . . . Word constants r ::= r0 | r1 | ... | r14 Register 0—14 m[.] ::= m[k] | m[r] | m[r, k] Memory slots, undirec...

NOTES FOR GUIDANCE ON COMPLETING AN INDIVIDUAL GRANT REVIEW FORM AND REPORT (Form NX0119)

by M. J. C. Gordon
"... Theorem proving and model checking have complementary strengths. Theorem proving can be applied to complex systems like complete processors, but it requires skilled manual guidance to verify most properties of practical interest. Model checking is automatic, but can only be applied to relatively sma ..."
Abstract - Add to MetaCart
Theorem proving and model checking have complementary strengths. Theorem proving can be applied to complex systems like complete processors, but it requires skilled manual guidance to verify most properties of practical interest. Model checking is automatic, but can only be applied to relatively small problems (e.g. fragments of processors, bus protocols); however, it provides counter-examples of great use in debugging. The research summarised here aimed to explore new ways to coherently combine the complementary strengths of each method. Two approaches that have been tried in the past are: (i) invoke a checker as an external black box from a prover [20], and (ii) define the checker entirely inside a prover [18]. The project described here explored a method that is between (i) and (ii). A model checker, holcheck, is defined in a theorem prover (HOL4 [12]) using efficient data manipulations provided by an external BDD engine [17, 11] as additional inference rules. Model checking is fully-expansive: it consists of a sequence of simple inference steps using a fixed set of rules, but it is efficient because the performance-critical steps are computed using state-of-the-art algorithms implemented in an external engine. In addition to implementing holcheck, several threads of theorem proving research were also followed. These are motivated and described in the next section. 2 Key Advances and Supporting Methodology An overview of the main scientific results of the project are listed below. • Implementation and public release of a fully expansive model checker for the µ-calculus and CTL using a BDD oracle linked to the HOL4 theorem prover. (Amjad [3, 1]) • Implementation in HOL4 of a fully automatic counterexample-guided abstraction refinement framework, using an external SAT oracle (Amjad [2]). • Case study using the model checker to verify properties of the AMBA bus (Amjad [5]). • Implementation of ‘boolification ’ proof strategies to translate high level data-types to vectors of booleans suitable for model checking (Hurd in collaboration with Prof. Slind of the
Powered by: Apache Solr
  • About CiteSeerX
  • Submit and Index Documents
  • Privacy Policy
  • Help
  • Data
  • Source
  • Contact Us

Developed at and hosted by The College of Information Sciences and Technology

© 2007-2016 The Pennsylvania State University