A design flow based on modular refinement

Nirav Dave, Man Cheuk Ng, Michael Pellauer, Arvind
2010 Eighth ACM/IEEE International Conference on Formal Methods and Models for Codesign (MEMOCODE 2010)  
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
more » ... havior 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. 978-1-4244-7886-6/10/$26.00 ©2010 IEEE
doi:10.1109/memcod.2010.5558626 dblp:conf/memocode/DaveNPA10 fatcat:gnzirgefgjad5dnv5r7beobale