Abstract

We propose a practical methodology based on modular refinement to design complex systems. The methodology relies on modules with latency-insensitive interfaces so that the refinements can change the timing contract of a module without affecting the overall functional correctness of the system. Such refinements can exacerbate the unit testing problem for modules whose specifications admit a set of output behaviors for the same input (non-determinism), or modules whose input behavior may be affected by past outputs (feedback). We avoid the difficult problem of generating appropriate unit tests for such modules by using system-level tests as unit tests to verify the correctness of refined modules. We illustrate our methodology by showing how one might develop a microprocessor with an in-order pipeline. We then develop a superscalar pipeline using the in-order pipeline as the starting point. Our methodology leverages the effort of design exploration to reduce the effort of specifying interface contracts and unit testing.


Original document

The different versions of the original document can be found in:

http://yadda.icm.edu.pl/yadda/element/bwmeta1.element.ieee-000005558626,
https://dblp.uni-trier.de/db/conf/memocode/memocode2010.html#DaveNPA10,
http://dspace.mit.edu/handle/1721.1/73018,
https://academic.microsoft.com/#/detail/2089605910
http://dx.doi.org/10.1109/memcod.2010.5558626
Back to Top

Document information

Published on 01/01/2010

Volume 2010, 2010
DOI: 10.1109/memcod.2010.5558626
Licence: CC BY-NC-SA license

Document Score

0

Views 1
Recommendations 0

Share this document

Keywords

claim authorship

Are you one of the authors of this document?