Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8535739
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 11, 20262026-06-11T10:30:11+00:00 2026-06-11T10:30:11+00:00

Say you are implementing a simple SoC with a cpu, ram, rom, and a

  • 0

Say you are implementing a simple SoC with a cpu, ram, rom, and a mmu to map the ram and rom into the cpu’s address space. When instantiating the different components would it make more sense to do:

ram and rom are instantiated inside the mmu

top
    cpu
    mmu
        ram
        rom

or

all components are instantiated at the top level and wired together there

top
    cpu
    mmu
    ram
    rom
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-11T10:30:12+00:00Added an answer on June 11, 2026 at 10:30 am

    It’s really a design question, to which the answer depends on your requirements. A few things to consider are:

    Reuse

    As is the case in many SoC projects, you may want to reuse blocks or subsystems from one project to the next. It is a good idea to group modules together depending on how they might be reused in a different context. This way, collateral other than the design RTL (e.g. testbenches, synthesis constraints, assertions, etc) can be reused as well.

    Dependencies

    This goes along with the considerations for reuse, but think about what the dependencies are between modules. In your example, would the mmu always require the RAM and ROM? If yes, this is an argument for instantiating them within the mmu. Would the mmu work with a different number of types of memories? If yes, this is an argument for instantiating the memories outside the mmu.

    Verification Scope

    In modern SoC designs verification takes more time and resources than the design itself. So structure the hierarchy in a way that helps and doesn’t hinder the verification effort. For example, if the cpu in your example is to be verified by itself, the cpu should instantiate all the sub-components, wire them up internally, and only present the relevant cpu ports. That way, the verification environment (aka the testbench) does not have to duplicate all the connections between the cpu, mmu, and memories.

    In general I think a hierarchical structure (the first of your two examples) makes the most sense and is the most common.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm working on implementing different APIs in C and C++ and wondered what techniques
I want to have a simple app that display the current date. Say for
I'm implementing a simple priority queue in C for a kernel and so I
Let's say I got a collection (simple grid) of invaders: In this image, only
I'm implementing a very simple FTP server program that is able to retrieve and
I'm implementing a simple chat and I came across a simple problem: I wanted
Let's say you're implementing your own version of stackoverflow (once again, yes) You have
This might be a simple one but here goes: I'm implementing an excel downloadable
Okay, simple template question. Say I define my template class something like this: template<typename
I was implementing some simple Producer/Consumer program that had some semaphores and shared memory.

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.