System level design

Two of the greatest challenges facing system designers today are productivity and quality. The continuing advance of silicon technology has enabled the vision of systems that stress and break traditional design methodologies. Raising the level of abstraction in design has long been called the “solution,” and important progress has been made for ASIC system-on-a-chip designs, where implementations can be built by assembling high-level components around a standard interconnect fabric and components can be modeled in languages like SystemC.

But for high-performance servers, the need to carefully consider many critical physical constraints at higher operating frequencies has limited the use of high-level design. The System-Level Design Group in IBM Research is exploring several ideas to improve design productivity and quality through the use of abstraction.

    • SLATE. Links the many different forms of analysis (performance, power, area, interconnect latency and thermal) together through an extension of Open Access to enable more rapid design trade-offs during the very early stages of system design.
    • Hardware Murphi. Uses high-level guarded commands to model complex systems, such as multiprocessor memory systems, and prove critical properties about them including coherency.
    • BEAM. Uses a combination of compiler techniques, symbolic execution, limited theorem proving and constraint solving to identify bugs in system firmware and software, without distracting false error messages.

Previous Projects
Last updated August 15, 2007