Verification of Parameterised FPGA Circuit Descriptions with Layout ...
Verification of Parameterised FPGA Circuit Descriptions with Layout ... Verification of Parameterised FPGA Circuit Descriptions with Layout ...
CHAPTER 2. BACKGROUND AND RELATED WORK 32 defined in Figure 2.5. This proof can be represented in Isabelle as: theorem "A −→ A" apply (rule impI) apply (assumption) done The first instruction is for Isabelle to apply the rule impI which lifts the object level implica- tion to a meta-logic implication of the form P =⇒ P (The unknowns P and Q in the axiom are both unified with the constant A). From this state the proof can be completed using the assumption method which attempts to solve the right hand side of a meta-implication using the assumptions on the left. A =⇒ A can be proved this way leaving an empty (complete) proof state and the proof is completed with the done command. Isabelle can also solve simple theorems automatically. For example, the proof (in higher-order logic) that reversing a list twice is the same as the original list can be proved as: theorem rev rev [simp]: "rev (rev xs) = xs" apply (induct xs) apply (auto) done This theorem has been named (rev rev) and declared as a simplification rule. It is proved by the application of induction on the variable xs and then automatically by Isabelle. The auto method uses both of Isabelle’s two most useful automation tools, the simplifier and the classical reasoner. The simplifier is a term rewriting tool. It repeatedly applies equations from left to right, using declared sets of simplification rules. Virtually any theorem in the form A = B can be used as a simplification rule however it is generally the case that only rules which genuinely simplify the proposition should be declared as automatic simplification rules. In the example above,xs is clearly simpler thanrev (rev xs) so this could be safely used as a simplification rule however if the theorem were proved in reverse – xs = rev (rev xs) – then this would not be a suitable simplification rule. Not only does it not simplify the proposition but it will actually cause the simplifier to loop infinitely by continually expanding the xs on the right hand side. It is often useful to invoke the simplifier by itself, which can be done using Isabelle’s simp method.
CHAPTER 2. BACKGROUND AND RELATED WORK 33 The classical reasoner is a family of tools which performs backward proofs automatically. The classical reasoner performs backward proof search and, combined with the simplifier, can prove many theorems without much user intervention. The classical reasoner can decompose goals into less complex subgoals using pre-proved lemmas and thus can be guided by supplying sets of useful lemmas that will substantially shorten the proof. 2.6 Summary In this chapter we have introduced some of the background to the work described in this thesis and highlighted some related work. We have described FPGA architectures in general and examining the structure of the Xilinx Virtex-II FGPA family in more detail. We have described Quartz, the hardware description language we use as the basis of this work and shown how it supports formal reasoning. We have described the field of automated verification based on theorem proving and com- pared this approach with model checking. Finally, we have discussed in detail some of the capabilities of the Isabelle generic theorem prover we use in this work.
- Page 1 and 2: Imperial College of Science, Techno
- Page 3 and 4: Acknowledgements Firstly, I’d lik
- Page 5 and 6: TABLE OF CONTENTS iv 2.5 Isabelle:
- Page 7 and 8: TABLE OF CONTENTS vi 5.3.1 Speciali
- Page 9 and 10: TABLE OF CONTENTS viii C.1.1 fst .
- Page 11 and 12: Chapter 1 Introduction This thesis
- Page 13 and 14: CHAPTER 1. INTRODUCTION 3 B A C Fig
- Page 15 and 16: CHAPTER 1. INTRODUCTION 5 pler, all
- Page 17 and 18: CHAPTER 2. BACKGROUND AND RELATED W
- Page 19 and 20: CHAPTER 2. BACKGROUND AND RELATED W
- Page 21 and 22: CHAPTER 2. BACKGROUND AND RELATED W
- Page 23 and 24: CHAPTER 2. BACKGROUND AND RELATED W
- Page 25 and 26: CHAPTER 2. BACKGROUND AND RELATED W
- Page 27 and 28: CHAPTER 2. BACKGROUND AND RELATED W
- Page 29 and 30: CHAPTER 2. BACKGROUND AND RELATED W
- Page 31 and 32: CHAPTER 2. BACKGROUND AND RELATED W
- Page 33 and 34: CHAPTER 2. BACKGROUND AND RELATED W
- Page 35 and 36: CHAPTER 2. BACKGROUND AND RELATED W
- Page 37 and 38: CHAPTER 2. BACKGROUND AND RELATED W
- Page 39 and 40: CHAPTER 2. BACKGROUND AND RELATED W
- Page 41: CHAPTER 2. BACKGROUND AND RELATED W
- Page 45 and 46: CHAPTER 3. GENERATING PARAMETERISED
- Page 47 and 48: CHAPTER 3. GENERATING PARAMETERISED
- Page 49 and 50: CHAPTER 3. GENERATING PARAMETERISED
- Page 51 and 52: CHAPTER 3. GENERATING PARAMETERISED
- Page 53 and 54: CHAPTER 3. GENERATING PARAMETERISED
- Page 55 and 56: CHAPTER 3. GENERATING PARAMETERISED
- Page 57 and 58: CHAPTER 3. GENERATING PARAMETERISED
- Page 59 and 60: CHAPTER 3. GENERATING PARAMETERISED
- Page 61 and 62: CHAPTER 3. GENERATING PARAMETERISED
- Page 63 and 64: CHAPTER 3. GENERATING PARAMETERISED
- Page 65 and 66: CHAPTER 3. GENERATING PARAMETERISED
- Page 67 and 68: CHAPTER 3. GENERATING PARAMETERISED
- Page 69 and 70: CHAPTER 3. GENERATING PARAMETERISED
- Page 71 and 72: CHAPTER 3. GENERATING PARAMETERISED
- Page 73 and 74: CHAPTER 3. GENERATING PARAMETERISED
- Page 75 and 76: Chapter 4 Verifying Circuit Layouts
- Page 77 and 78: CHAPTER 4. VERIFYING CIRCUIT LAYOUT
- Page 79 and 80: CHAPTER 4. VERIFYING CIRCUIT LAYOUT
- Page 81 and 82: CHAPTER 4. VERIFYING CIRCUIT LAYOUT
- Page 83 and 84: CHAPTER 4. VERIFYING CIRCUIT LAYOUT
- Page 85 and 86: CHAPTER 4. VERIFYING CIRCUIT LAYOUT
- Page 87 and 88: CHAPTER 4. VERIFYING CIRCUIT LAYOUT
- Page 89 and 90: CHAPTER 4. VERIFYING CIRCUIT LAYOUT
- Page 91 and 92: CHAPTER 4. VERIFYING CIRCUIT LAYOUT
CHAPTER 2. BACKGROUND AND RELATED WORK 33<br />
The classical reasoner is a family <strong>of</strong> tools which performs backward pro<strong>of</strong>s automatically.<br />
The classical reasoner performs backward pro<strong>of</strong> search and, combined <strong>with</strong> the simplifier, can<br />
prove many theorems <strong>with</strong>out much user intervention. The classical reasoner can decompose<br />
goals into less complex subgoals using pre-proved lemmas and thus can be guided by supplying<br />
sets <strong>of</strong> useful lemmas that will substantially shorten the pro<strong>of</strong>.<br />
2.6 Summary<br />
In this chapter we have introduced some <strong>of</strong> the background to the work described in this<br />
thesis and highlighted some related work. We have described <strong>FPGA</strong> architectures in general<br />
and examining the structure <strong>of</strong> the Xilinx Virtex-II FGPA family in more detail. We have<br />
described Quartz, the hardware description language we use as the basis <strong>of</strong> this work and<br />
shown how it supports formal reasoning.<br />
We have described the field <strong>of</strong> automated verification based on theorem proving and com-<br />
pared this approach <strong>with</strong> model checking. Finally, we have discussed in detail some <strong>of</strong> the<br />
capabilities <strong>of</strong> the Isabelle generic theorem prover we use in this work.