Quartus® Prime专业版用户指南: 设计编译

ID 683236
日期 4/01/2024
Public
文档目录

1.3.1. DNI网表Five-Box数据模型

DNI引入了大多数Electronic Design Automation(EDA)工具中使用的传统网表five-box数据模型,并使用Tcl命令遍历网表。请考虑以下两个实例示范:
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

DNI网表由模块、实例、端口、实例端口和网络组成,如以下彩色框图所示:

图 3. DNI网表Five-box数据模型

以下表格描述了该网表数据模型的核心元素:

表 3.  网表数据模型的核心元素
数据模型元素 描述 Tcl命令
模块(Module) 连接网表目标的集合,例如实例、端口、网络和实例端口。它类似于Verilog模块或VHDL实体。
每个设计只有一个顶级模块,其中包含一组其他模块或库单元的实例。
注: 库单元实例也称为叶实例。
端口(Port) 模块的I/O接口。设计可以有输入端口、输出端口或双向端口。

DNI Data Model中,PI_1PI_2PI_3PO_4都是端口。

dni::get_ports
实例(Instance)

模块或原语的实例。模块实例也称为层次实例、子模块或顶级模块的子项。

模块实例(子模块)也可能包含一组其他模块或库单元的实例。这些嵌套的模块子实例称为设计层次结构。您可以为整个设计构建一个层次树,以根作为顶层模块。

DNI Data Model中,inst_1inst_2, AND_1OR_2OR_3都是实例。

注: 如果一个实例多次出现在实例化的网表中,则多个唯一对象可以引用该实例。
dni::get_cells
Instance port (inst_port)(实例端口) 实例的终端。分层I/O接口或叶实例称为实例端口。它们的方向可以是输入或输出。
注: FPGA硬件不支持双向信号。因此,您的设计必须不得包含任何双向实例端口。

DNI Data Model中, inst_1|in_1inst_2|AND_1|in_1是实例端口的几个示例。

dni::get_pins
Net(网络) 连接实例或网络表终端的线缆。

本地网络或层次网络是子模块或顶层模块内的对象,用于保存子实例的实例端口、子模块边界的实例端口或顶层模块的主端口之间的连接。子模块中的分层网络和分层实例端口的顶层模块外部的分层网络具有相同的对应全局网络或平面网络。

全局网络或平面网络表示叶实例或主端口的连接。

DNI Data Model中,Net_1Net_2Net_3Net_4等都是网络。

dni::get_nets