Theorem Proving Guided Development of Formal Assertions in a Resource-Constrained Scheduler for High-Level Synthesis

  • Authors:
  • Naren Narasimhan;Elena Teica;Rajesh Radhakrishnan;Sriram Govindarajan;Ranga Vemuri

  • Affiliations:
  • Department of ECECS, Laboratory for Digital Design Environments, M.L. 210030, University of Cincinnati, Cincinnati, OH 45221, USA;Department of ECECS, Laboratory for Digital Design Environments, M.L. 210030, University of Cincinnati, Cincinnati, OH 45221, USA;Department of ECECS, Laboratory for Digital Design Environments, M.L. 210030, University of Cincinnati, Cincinnati, OH 45221, USA;Department of ECECS, Laboratory for Digital Design Environments, M.L. 210030, University of Cincinnati, Cincinnati, OH 45221, USA ;Department of ECECS, Laboratory for Digital Design Environments, M.L. 210030, University of Cincinnati, Cincinnati, OH 45221, USA. ranga@ececs.uc.edu

  • Venue:
  • Formal Methods in System Design
  • Year:
  • 2001

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper presents a formal specification and a proof of correctness for the widely-used Force-Directed List Scheduling (FDLS) algorithm for resource-constrained scheduling of data flow graphs in high-level synthesis systems. The proof effort is conducted using a higher-order logic theorem prover. During the proof effort many interesting properties of the FDLS algorithm are discovered. These properties are formally stated and proved in a higher-order logic theorem proving environment. These properties constitute a detailed set of formal assertions and invariants that should hold at various steps in the FDLS algorithm. They are then inserted as programming assertions in the implementation of the FDLS algorithm in a production-strength high-level synthesis system. When turned on, the programming assertions (1) certify whether a specific run of the FDLS algorithm produced correct schedules and, (2) in the event of failure, help discover and isolate programming errors in the FDLS implementation.We present a detailed example and several experiments to demonstrate the effectiveness of these assertions in discovering and isolating errors. Based on this experience, we discuss the role of the formal theorem proving exercise in developing a useful set of assertions for embedding in the scheduler code and argue that in the absence of such a formal proof checking effort, discovering such a useful set of assertions would have been an arduous if not impossible task.