top of page

9.2 Module Instantiation

What is Module Instantiation?

Module instantiation is the process of creating an instance of a module within another module. This allows you to build hierarchical designs by connecting smaller modules together to create more complex systems.

9.2.1. Types of Module Instantiation

9.2.1.1. Named Port Connection (Recommended)

This method explicitly connects ports by name, making the code more readable and maintainable:

Verilog

Advantages:

- Easy to read and understand

- Order of ports doesn't matter

- Less prone to errors during maintenance

- Self-documenting code

9.2.1.2. Positional Port Connection

Ports are connected based on their position in the module declaration:

Verilog

Disadvantages:

- Error-prone if port order changes

- Difficult to maintain

- Not recommended for modules with many ports

9.2.1.3. Mixed Connection Style

SystemVerilog allows mixing both styles (but not recommended):

Verilog

9.2.2. Multiple Instantiation

Creating multiple instances of the same module:

Verilog

9.2.3. Array of Instances (Generate Blocks)

For regular structures, use generate blocks:

Verilog

Module structure & elements

Module port mapping

  • Instagram
  • Facebook
  • Twitter
  • LinkedIn
  • YouTube

Connect with us

bottom of page