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
