SoC
  • Home
  • Arm
  • Arm Cortex M0/M0+
  • Arm Cortex M4
  • Arm Cortex M3
  • Contact
Reading: Steps Required to do Synthesis and FE Sign-off of ARM Cortex M0
SUBSCRIBE
SoCSoC
Font ResizerAa
  • Home
  • Arm
  • Arm Cortex M0/M0+
  • Arm Cortex M4
Search
  • Home
  • Arm
  • Arm Cortex M0/M0+
  • Arm Cortex M4
Have an existing account? Sign In
Follow US
  • Looking for Something?
  • Privacy Policy
  • About Us
  • Sitemap
  • Contact Us
© S-O-C.ORG, All Rights Reserved.
Arm

Steps Required to do Synthesis and FE Sign-off of ARM Cortex M0

Neil Salmon
Last updated: October 5, 2023 9:58 am
Neil Salmon 6 Min Read
Share
SHARE

The synthesis and front-end (FE) sign-off process for an ARM Cortex-M0 design involves several key steps. At a high level, these include:

Contents
1. Setting Up the Design2. Synthesizing the RTL to Gates3. Analyzing Timing, Area, Power4. Making Optimizations and Constraints5. Generating Testbench, Testing Functionality6. Preparing and Reviewing Documentation7. Closing Timing, Area, Power Sign-off Checklists
  1. Setting up the design in the synthesis tool (Synopsys Design Compiler, Cadence RTL Compiler, etc.)
  2. Synthesizing the RTL to gates
  3. Analyzing timing, area, power
  4. Making optimizations and constraints to meet timing, area, power targets
  5. Generating testbench, testing functionality
  6. Preparing and reviewing documentation
  7. Closing timing, area, power sign-off checklists

Let’s look at each of these steps in more detail:

1. Setting Up the Design

The first step is to setup the RTL design files, constraints, scripts, and libraries in the synthesis tool. Some key items here:

  • Obtain the RTL code for the Cortex-M0 design from ARM or your internal teams. This will include the register transfer logic (RTL) code for the core logic, interfaces, peripherals, etc.
  • Setup a synthesis project and include all the RTL source files.
  • Setup the target technology library (standard cell, I/O cells, memories, etc.) provided by the foundry or IP vendor.
  • Import any ARM-provided scripts for setting up the design and the ARM Artisan standard cell libraries.
  • Setup timing and design constraints. The SDC file will constrain clock frequencies, input/output delays, false paths, multi-cycle paths, etc.
  • Set compiler directives and scripts for optimizing the design.

2. Synthesizing the RTL to Gates

Once the setup is complete, we can now synthesize the RTL code down to actual logic gates and cells from the target library. Some key steps here:

  • Run logic synthesis to convert RTL to gates. The compiler will infer logic based on the RTL code.
  • Optimize for timing, area. This maps logic to optimal standard cell types from the library to meet design goals.
  • Iterate synthesis runs with different constraints to try to close timing and area.
  • Resolve any issues with unmapped logic or timing QoRs.

3. Analyzing Timing, Area, Power

After synthesis, we need to analyze the results to ensure we have met the Cortex-M0 design goals for timing, area/gate count, and power. This involves:

  • Review timing reports – setup slack, hold slack, critical paths, fmax, etc.
  • Review area reports – cell area, cell count, instances, macros, etc.
  • Review power reports – total power, dynamic, static, by clock domain, etc.
  • Compare results vs. ARM-provided goals and iterate as needed.
  • Analyze which paths are limiting timing closure.

4. Making Optimizations and Constraints

Based on the analysis in step 3, we need to make optimizations and constraints to meet the Cortex-M0 QoRs.

  • Tweak compiler directives to optimize for timing, area, or power as needed.
  • Add timing exceptions for false paths to exclude from timing analysis.
  • Modify clock constraints to balance skew and uncertainty.
  • Restructure the RTL manually if needed for better results.
  • Change the target cell library or use different cell drive strengths if timing closure is difficult.

With successive iterations of optimizations and analysis, we aim to meets the ARM-provided constraints for timing, area, and power.

5. Generating Testbench, Testing Functionality

While meeting timing, area, power goals, we also must ensure functional correctness:

  • Generate a testbench to stimulate synthesized gate-level netlist.
  • Compare outputs versus original RTL testbench to check correctness.
  • Debug and fix any functional failures observed.
  • Add functional coverage points.
  • Achieve test requirements specified by ARM.

Any functional bugs or coverage issues observed need to be debugged, fixed, and re-verified before sign-off.

6. Preparing and Reviewing Documentation

Thorough documentation is critical throughout the project. This includes:

  • Timing reports, area reports, power reports for pre-signoff review.
  • Scripts, logs, synthesis strategy documentation.
  • Tracking sheets for timing exceptions, IO delays, constraints.
  • Datasheets, architecture documents from ARM.
  • Project schedule, risk assessments, open issues.

Reviews of the documentation ensure nothing is missed for a smooth sign-off process.

7. Closing Timing, Area, Power Sign-off Checklists

The final FE sign-off requires closure of all checklists, including:

  • Static timing analysis sign-off – fmax margins, timing exceptions validated, etc.
  • Area sign-off – gate count within budget, density acceptable, etc.
  • Power sign-off – power within limits, RTL vs. gate correlation done, etc.
  • Test and verification sign-off – test plans completed, coverage closure, etc.
  • Documentation review sign-off – datasheets, reports, tracking sheets reviewed.

All open items must be closed out, waivers obtained as needed, and management sign-off completed on each checklist. This comprehensive sign-off ensures the Cortex-M0 front-end design is ready to handoff to the back-end implementation teams for layout, physical implementation, timing closure, and tapeout.

In summary, successful synthesis and FE sign-off of an ARM Cortex-M0 requires meticulous setup, constraint development, QoR optimization, functional verification, and documentation closure. When executed well across this 7 step process, it ensures a high quality RTL to GDSII implementation of the Cortex-M0 CPU.

Newsletter Form (#3)

More ARM insights right in your inbox

 


Share This Article
Facebook Twitter Email Copy Link Print
Previous Article Force get access to Cortex-M0 if SWDIO is disabled on startup Cortex M0
Next Article Does Normal memory, and Device memory really affect the system behavior? Cortex M0/M0+
Leave a comment Leave a comment

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

2k Followers Like
3k Followers Follow
10.1k Followers Pin
- Sponsored-
Ad image

You Might Also Like

What is Instruction TCM (ITCM) Memory in Arm Cortex-M series?

Instruction TCM (ITCM) is a small, fast memory region that…

7 Min Read

Benefits of NVIC for Industrial Motion Controllers

Industrial motion control applications require precision, reliability, and flexibility. Nonvolatile-memory-based…

16 Min Read

What is ARM Cortex-M0+?

The ARM Cortex-M0+ is a 32-bit reduced instruction set computing…

8 Min Read

How to Implement a Loop Position Independent in ARM Cortex-M0+?

Implementing a loop position independent in ARM Cortex-M0+ requires utilizing…

7 Min Read
SoCSoC
  • Looking for Something?
  • Privacy Policy
  • About Us
  • Sitemap
  • Contact Us
Welcome Back!

Sign in to your account