Shifting Left with Hardware Model Abstractions · Bits, Bytes, and Gates

Shifting Left with Hardware Model Abstractions

“Shift-Left” is a strategy to reorganize processes to enable more parallelism by adjusting dependencies. Hardware model abstractions provide a key tool to shifting tasks left in the silicon design process.

A simplified silicon design process

The gantt chart above illustrates a simplified silicon design process. It deliberately makes no attempt to assign accurate relative times to any step in the process. The key challenge is that starting most steps is gated by the previous step either completing, or reaching some fairly advanced state of readiness. For example, the DV team can’t really start verifying the design until RTL is available. They can study the spec and, perhaps even, write some tests speculatively while the RTL is under development. But, validating assumptions must wait until RTL exists.

Note that these tasks are grouped by the design-model abstraction level, with most activity centering around a register-transfer-level (RTL) model of the design. This poses several challenges, but one of the biggest is that the abstraction difference between Spec and RTL is enormous.

A closer look

While the diagram above is straightforward, it hides some useful details about what is actually happening during each of the steps above.

gantt
    title Elaborated Silicon Design Process
    dateFormat YYYY-MM-DD
    axisFormat x
    Start            :start, 2000-01-12, 1d
    section Spec
        Spec Development :spec_devel, after start, 24d
        Arch Choices      :arch, after start, 12d
    section Algorithmic
        Statistical Model :static_validate, after arch, 12d
        Dynamic Model     :dynamic_validate, after arch, 12d
        Spec Ready        :spec_ready, after dynamic_validate, 2d
    section Cycle Accurate
        Reference Model      :ref_model, after bring_up, 16d
    section RTL
        Impl Structure       :rtl_structure, after spec_ready, 8d
        Impl Sub-IP          :rtl_subip, after rtl_structure, 8d
        Sub-IP Integ         :rtl_integ, after rtl_subip, 8d
        RTL Ready            :rtl_ready, after rtl_integ, 2d
        Bring-up             :bring_up, after rtl_ready, 8d
        Spec Cov             :spec_coverage, after bring_up, 8d
        Impl Cov             :impl_coverage, after spec_coverage, 8d
        RTL Verified         :rtl_verified, after impl_coverage, 2d
        Develop Firmware     :dev_firmware, after rtl_verified, 24dj

Let’s walk through to look at the changes. First, you’ll notice that there are now four abstraction levels:

  • Spec - Typically a natural-language description
  • Algorithmic - A behavioral model with limited timing fidelity
  • Cycle Accurate - A behavioral (non-synthesizable) model that reflects the intended micro-architecture of the design
  • RTL - Synthesizable model

Spec Development

During spec development, it’s natural to use some high-level models to validate assumptions. These models are captured at a high level of abstraction, and support one of two methods of evaluation. A model intended for dynamic evaluation will be behavioral, and supports activities such as running existing software workloads. A statistical model (e.g. an Excel sheet) enables what-if analysis by adjusting control parameters. These are typically two distinct models because of the two different evaluation approaches.

RTL Implementation

The RTL development process is also not a monolith. Generally, you could think of a process by which the design is partitioned into independent sub-IP that can be implemented by different engineers. Once the design is partitioned, engineers can work in parallel to implement and test their assigned sub-IP. Finally, sub-IPs are integrated back into the overall structure of the design.

Design Verification

The design verification process is also step-wise, typically starting with basic bring-up tests to ensure that simple operations, such as register accesses, make it past the interfaces and properly interact with the design. Verification then proceeds to exercise key device usescases and, finally, exercise key implementation details.

The DV team will often create some type of reference model or predictor to use in checking results from the design. Sometimes this will be cycle accurate, but it might also be at an algorithmic level of abstraction.

Looking in more detail, it becomes clear that modeling at different abstarction levels is being done. But, too often, these models are only used within a specific silo. There are many reasons for this, including the language(s) used to implement models and integration challenges.

Shifting Left with Model Reuse

The Zuspec ‘bet’ is that we can reorganize the silicon development process by making models easier to create, easier to reuse and transform, and easier to integrate. Future posts will go into more depth on how Zuspec enables this. For now, let’s look at how different modeling abstractions are used across the silicon development process.

gantt
    title Ideal Design Implementation Process
    dateFormat YYYY-MM-DD
    axisFormat x
    Start            :start, 2000-01-12, 1d
    section Spec
        Spec Development :spec_devel, after start, 24d
        Arch Choices      :arch, after start, 12d
    section Algorithmic
        Alg Model            :alg_model, after arch, 12d
        Spec Ready           :spec_ready, after alg_model, 2d
    section Cycle Accurate
        CA Model (Structure) :ca_model, after spec_ready, 16d
    section RTL
        Impl Sub-IP          :rtl_subip, after ca_model, 8d
        Sub-IP Integ         :rtl_integ, after rtl_subip, 8d
        RTL Ready            :rtl_ready, after rtl_integ, 2d
        Spec Cov             :spec_coverage, after spec_ready, 8d
        Impl Cov             :impl_coverage, after ca_model, 8d
        Bring-up             :bring_up, after rtl_ready, 8d
        RTL Verified         :rtl_verified, after bring_up, 2d
        Develop Firmware     :dev_firmware, after spec_ready, 24d

Let’s look at some of the key points:

  • A single algorithmic model is used to serve both dynamic (simulation) and static/formal evaluation during the spec development process.
    • The DV team can use this algorithmic model, with a few modifications, as a substitute for RTL while they setup the testbench environment and write tests that exercise the specified design behavior.
    • The Firmware team can also get started writing firmware using the algorithmic model.
  • The RTL implementation team develops a cycle-accurate model of the design as part of the process of partitioning the design.
    • The RTL implementation team selectively replaces sub-IPs within the cycle-accurate model to test a particular sub-IP’s implementation together with the more-abstract remainder of the design model.
    • The DV team can move to running their tests against the more-accurate model. This helps to highlight different interpretations of the spec much earlier.
    • The DV team can also run their tests against various configurations of the hybrid cycle accurate / RTL model of the device to begin exercising sub-IPs prior to availability of the fully-integrated RTL. Doing this can also enable tests that target implementation coverage to be developed incrementally as the relevant sub-IPs are ready.
  • Once the RTL is ready, the DV team proceeds to run bring-up activities. Final issues are much easier to track down because the tests are known to run against the cycle-accurate model and various combinations of RTL sub-IPs.

So, how much time will we save? That, of course, heavily depends on the relative size of the tasks shown above, as well as on the cost of creating the set of models used above. But, the savings should be significant.

Next Stes

We’ve looked at several implementation abstraction levels for device models. In the next post, we’ll dig into interface abstraction levels and see how these enable incremental refinement of models.

Copyright 2014-2026 Matthew Ballance. All Rights Reserved
The views and opinions expressed above are solely those of the author and do not represent those of my employer or any other party.

Bits, Bytes, and Gates Direct to your Inbox