2.3.1. DNI Netlist Five-Box Data Model
module top (input PI_1, input PI_2, input PI_3, output PO_4); wire net_2; wire net_3; AND_OR inst_1(PI_1, PI_2, PI_3, net_2); AND_OR inst_2(PI_3, PI_2, PI_1, net_3); assign PO_4 = net_2 | net_3; endmodule module AND_OR (input in_1, input in_2, input in_3, output out_1); wire net_1; assign net_1 = in_1 & in_2; assign out_1 = net_1 | in_3; endmodule
A DNI netlist consists of modules, instances, ports, instance ports, and nets, as shown in the following color-coded diagram:
The following table describes the core elements of this netlist data model:
|Data Model Elements
|A collection of connected netlist objects, such as instances, ports, nets, and instance ports. It is similar to the Verilog module or VHDL entity.
Each design has only a single top module containing a group of instances of other modules or library cells.
Note: A library cell instance is also referred to as a leaf instance.
|An I/O interface of a module. A design can have input ports, output ports, or bidirectional ports.
In the DNI Data Model, PI_1, PI_2, PI_3, and PO_4 are ports.
An instantiation of a module or primitive. A module instance is also referred to as a hierarchical instance, submodule, or a child of the top-level module.
A module instance (submodule) may also contain a group of instances of other modules or library cells. These nested module-children instances are referred to as design hierarchies. You can build a hierarchy tree for the entire design with the root as the top module.
In the DNI Data Model, inst_1, inst_2, AND_1, OR_2, and OR_3 are instances.
Note: Multiple unique objects can reference an instance if it exists in a netlist instantiated more than once.
|Instance port (inst_port)
|A terminal of an instance. The hierarchical I/O interfaces or leaf instances are referred to as instance ports. Their directions can be input or output.
Note: FPGA hardware does not support bidirectional signals. Hence, your design must not include any bidirectional instance ports.
In the DNI Data Model, inst_1|in_1, inst_2|AND_1|in_1 are few examples of instance ports.
|A wire that connects terminals of instantiations or a netlist.
A local net or a hierarchical net is an object within a submodule or top module to hold the connection between instance ports of child instances, instance ports of the submodule boundary, or primary ports of the top module. Hierarchical nets in the submodule and outside the top module of a hierarchical instance port have the same corresponding global or flat net.
A global net or a flat net represents the connection of leaf instances or primary ports.
In the DNI Data Model, Net_1, Net_2, Net_3, Net_4 and so on are nets.