CN112632884A - 门级网表生成方法、装置及电子设备 - Google Patents

门级网表生成方法、装置及电子设备 Download PDF

Info

Publication number
CN112632884A
CN112632884A CN202011541139.9A CN202011541139A CN112632884A CN 112632884 A CN112632884 A CN 112632884A CN 202011541139 A CN202011541139 A CN 202011541139A CN 112632884 A CN112632884 A CN 112632884A
Authority
CN
China
Prior art keywords
module
modules
level
information
port
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202011541139.9A
Other languages
English (en)
Other versions
CN112632884B (zh
Inventor
谭帆
王芳
李冬梅
焦瑞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Haiguang Information Technology Co Ltd
Original Assignee
Haiguang Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Haiguang Information Technology Co Ltd filed Critical Haiguang Information Technology Co Ltd
Priority to CN202011541139.9A priority Critical patent/CN112632884B/zh
Publication of CN112632884A publication Critical patent/CN112632884A/zh
Application granted granted Critical
Publication of CN112632884B publication Critical patent/CN112632884B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/394Routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

本申请涉及芯片设计技术领域,具体而言,涉及一种门级网表生成方法、装置及电子设备。本申请实施例提供的门级网表生成方法,包括:获取目标子系统包括的多个模块中每个模块的端口信息,以及多个模块中每个模块的实例化信息,多个模块中包括功能模块和馈通模块;获取目标子系统的寄存器传输级顶层设计信息;根据多个模块中每个模块的端口信息、多个模块中每个模块的实例化信息,以及寄存器传输级顶层设计信息,将多个模块中包括功能模块和馈通模块封装成顶层设计,以获得目标子系统的顶层门级网表。本申请实施例提供的门级网表生成方法、装置及电子设备能够提高顶层门级网表的生成效率和准确率。

Description

门级网表生成方法、装置及电子设备
技术领域
本申请涉及芯片设计技术领域,具体而言,涉及一种门级网表生成方法、装置及电子设备。
背景技术
随着半导体工艺的不断进步,单位芯片面积能够容纳的晶体管数量越来越多,芯片规模和设计复杂度成几何倍数快速增长。尤其系统级芯片,其通常具有超高的复杂度,从芯片的前期设计角度来讲,对于系统级芯片,在其设计流程上一般会使用层次化设计方法,也即,将设计对象拆分为多个子系统,每个子系统再拆分为功能相对独立的多个模块进行设计。在多个模块设计完成后,再根据模块、子系统与系统级芯片之间的关系,将其整合到一起,并进行整体调整和优化,最终,在各个模块达到设计要求的同时,顶层设计也能够满足设计要求。
再从芯片的后期验证角度来讲,对于系统级芯片,也可以将其划分为多个子系统来验证,如此,不仅可以使得验证更加充分,同时,还能够降低验证环境的复杂程度,缩减系统级芯片的整体验证时间,做到验证质量和验证时间之间的平衡。在子系统验证过程中,会将构成子系统的功能模块封装为一个专供验证使用的顶层设计作为待测设计,再通过子系统验证环境向顶层设计入施加输入激励,同时,在顶层设计的输出端口收集待测设计的信号变化,并与预期结果进行对比。当然,在基于子系统验证环境完成子系统的寄存器传输级验证后,还需要完成子系统的门级仿真,来检验子系统的逻辑正确性和时序正确性。
但是,系统级芯片在完成布局布线后,通常会存在馈通信号,由于馈通信号的存在,子系统内功能模块的输入输出端口发生了变化,功能模块之间原有的连接关系也会被馈通模块打断。这种情况下,原来子系统验证环境中基于寄存器传输级的顶层设计已经不能处理这种变化,因而无法正常进行验证工作了。因此,为了使子系统的门级仿真能够顺利进行,通常还需要生成一个基于门级网表的子系统顶层设计,以获得子系统的顶层门级网表,这也是复用子系统验证环境进行门级仿真的关键问题。
现有技术中,通常是验证人员手动为每个子系统生成用于门级仿真的子系统顶层设计,以获得子系统的顶层门级网表,但是,由于子系统内模块数目较多,同时,每个模块通常又具有庞大的端口数目,因此,验证人员手动为每个子系统生成用于门级仿真的子系统顶层设计,以获得子系统的顶层门级网表耗时巨大,且容易出错。
发明内容
本申请的目的在于,提供一种门级网表生成方法、装置及电子设备,以解决上述问题。
第一方面,本申请提供的门级网表生成方法,包括:
获取目标子系统包括的多个模块中每个模块的端口信息,以及多个模块中每个模块的实例化信息,多个模块中包括功能模块和馈通模块;
获取目标子系统的寄存器传输级顶层设计信息;
根据多个模块中每个模块的端口信息、多个模块中每个模块的实例化信息,以及寄存器传输级顶层设计信息,将多个模块中包括功能模块和馈通模块封装成顶层设计,以获得目标子系统的顶层门级网表。
结合第一方面,本申请实施例还提供了第一方面的第一种可选的实施方式,获取目标子系统包括的多个模块中每个模块的端口信息,以及多个模块中每个模块的实例化信息,包括:
获取多个模块中每个模块的模块名称;
获取目标子系统所在目标芯片的顶层门级网表;
根据多个模块中每个模块的模块名称,从目标芯片的顶层门级网表中分别读取出多个模块中每个模块的端口信息,以及多个模块中每个模块的实例化信息。
结合第一方面的第一种可选的实施方式,本申请实施例还提供了第一方面的第二种可选的实施方式,获取多个模块中每个模块的模块名称,包括:
获取目标子系统的功能模块实例列表,以从功能模块实例列表中读出多个模块中的每个功能模块的模块名称;
获取目标子系统的馈通模块实例列表,以从馈通模块实例列表中读出多个模块中的每个馈通模块的模块名称。
结合第一方面,本申请实施例还提供了第一方面的第三种可选的实施方式,获取目标子系统的寄存器传输级顶层设计信息,包括:
分别获取目标子系统的输入端口信息、输出端口信息、输出端口信号来源,以及多个模块中所有功能模块的输入信号来源;
将目标子系统的输入端口信息、输出端口信息、输出端口信号来源,以及多个模块中所有功能模块的输入信号来源共同作为寄存器传输级顶层设计信息。
结合第一方面的第三种可选的实施方式,本申请实施例还提供了第一方面的第四种可选的实施方式,分别获取目标子系统的输入端口信息、输出端口信息、输出端口信号来源,以及多个模块中所有功能模块的输入信号来源,包括:
获取目标子系统的寄存器传输级顶层设计源文件;
从寄存器传输级顶层设计源文件中分别读取出目标子系统的输入端口信息、输出端口信息、输出端口信号来源,以及多个模块中所有功能模块的输入信号来源。
结合第一方面的第三种可选的实施方式,本申请实施例还提供了第一方面的第五种可选的实施方式,根据多个模块中每个模块的端口信息、多个模块中每个模块的实例化信息,以及寄存器传输级顶层设计信息,将多个模块中包括功能模块和馈通模块封装成顶层设计,包括:
针对多个模块中的每个功能模块,根据功能模块的端口信息、功能模块的输入信号来源,以及功能模块的实例化信息或目标子系统的输入端口信息,设定出功能模块中输入端口的连线名称;
针对多个模块中的每个功能模块,根据功能模块的端口信息、目标子系统的输出端口信号来源,以及功能模块的实例化信息或目标子系统的输出端口信息,设定出功能模块中输出端口的连线名称;
针对多个模块中的每个馈通模块,根据馈通模块的端口信息,以及馈通模块的实例化信息,设定出馈通模块中输入端口的连线名称,以及设定出馈通模块中输出端口的连线名称;
根据多个模块中的每个功能模块输入端口的连线名称、多个模块中的每个功能模块输出端口的连线名称、多个模块中每个馈通模块输入端口的连线名称,以及多个模块中每个馈通模块输出端口的连线名称,将多个模块中包括功能模块和馈通模块封装成顶层设计。
结合第一方面的第五种可选的实施方式,本申请实施例还提供了第一方面的第六种可选的实施方式,根据功能模块的端口信息、功能模块的输入信号来源,以及功能模块的实例化信息或目标子系统的输入端口信息,设定出功能模块中输入端口的连线名称,包括:
若功能模块的输入信号来源为目标子系统中包括的其他模块,则根据功能模块的端口信息确定出功能模块的输入端口,并根据功能模块的实例化信息,设定出功能模块中输入端口的连线名称;
若功能模块的输入信号来源为子系统验证环境,则根据功能模块的端口信息确定出功能模块的输入端口,并根据目标子系统的输入端口信息,设定出功能模块中输入端口的连线名称。
结合第一方面的第五种可选的实施方式,本申请实施例还提供了第一方面的第七种可选的实施方式,根据功能模块的端口信息、目标子系统的输出端口信号来源,以及功能模块的实例化信息或目标子系统的输出端口信息,设定出功能模块中输出端口的连线名称,包括:
根据功能模块的端口信息确定出功能模块的输出端口;
根据目标子系统的输出端口信号来源,判断功能模块的输出端口是否为目标子系统的输出端口;
若功能模块的输出端口非目标子系统的输出端口,则根据功能模块的实例化信息,设定出功能模块中输出端口的连线名称;
若功能模块的输出端口为目标子系统的输出端口,则根据目标子系统的输出端口信息,设定出功能模块中输出端口的连线名称。
结合第一方面,本申请实施例还提供了第一方面的第八种可选的实施方式,根据多个模块中每个模块的端口信息、多个模块中每个模块的实例化信息,以及寄存器传输级顶层设计信息,将多个模块中包括功能模块和馈通模块封装成顶层设计,以获得目标子系统的顶层门级网表之后,门级网表生成方法还包括:
对多个模块中的每个馈通模块进行缺省赋值,以对目标子系统的顶层门级网表进行更新。
结合第一方面的第八种可选的实施方式,本申请实施例还提供了第一方面的第九种可选的实施方式,对多个模块中的每个馈通模块进行缺省赋值,包括:
针对多个模块中的每个馈通模块,根据馈通模块的端口信息,确定出馈通模块的复位端口,以及与馈通信号通路无关的时钟端口和数据端口;
将复位端口的输入信号设定为目标电平,以使馈通模块处于非复位状态;
将时钟端口的输入信号设定为低电平信号;
将数据端口的输入信号设定为低电平信号。
第二方面,本申请实施例还提供了一种门级网表生成装置,包括:
第一信息获取模块,用于获取目标子系统包括的多个模块中每个模块的端口信息,以及所述多个模块中每个模块的实例化信息,所述多个模块中包括功能模块和馈通模块;
第二信息获取模块,用于获取所述目标子系统的寄存器传输级顶层设计信息;
门级网表生成模块,用于根据所述多个模块中每个模块的端口信息、所述多个模块中每个模块的实例化信息,以及所述寄存器传输级顶层设计信息,将所述多个模块中包括功能模块和馈通模块封装成顶层设计,以获得所述目标子系统的顶层门级网表。
第三方面,本申请实施例还提供了一种电子设备,包括处理器和存储器,存储器上存储有计算机程序,处理器用于执行计算机程序,以实现上述第一方面,或第一方面的任意一种可选的实施方式所提供的门级网表生成方法。
第四方面,本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被执行时,实现上述第一方面,或第一方面的任意一种可选的实施方式所提供的门级网表生成方法。
本申请实施例提供的门级网表生成方法能够获取目标子系统包括的多个模块(包括功能模块和馈通模块)中每个模块的端口信息,以及多个模块中每个模块的实例化信息,同时,获取目标子系统的寄存器传输级顶层设计信息,再根据多个模块中每个模块的端口信息、多个模块中每个模块的实例化信息,以及寄存器传输级顶层设计信息,将多个模块中包括功能模块和馈通模块封装成顶层设计,以获得目标子系统的顶层门级网表。显然,通过本申请实施例提供的门级网表生成方法,可以自动生成目标子系统的顶层门级网表,相对于现有技术中,验证人员手动为每个子系统生成用于门级仿真的子系统顶层设计,以获得子系统的顶层门级网表的方法而言,能够保证顶层设计的生成效率和准确性,也即,保证了与顶层设计所对应的顶层门级网表的生成效率和准确性。
此外,本申请实施例提供的门级网表生成装置、电子设备及计算机可读存储介质具有与上述门级网表生成方法相同的有益效果,此处不作赘述。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为关于馈通信号和馈通模块的相关解释说明图。
图2为本申请实施例提供的一种电子设备的示意性结构框图。
图3为本申请实施例提供的一种门级网表生成方法的步骤流程图。
图4为本申请实施例提供的一种目标子系统的寄存器传输级顶层设计电路结构框图。
图5为本申请实施例提供的一种目标芯片在完成布局布线之后,最终形成的电路结构框图(对应目标芯片的顶层门级网表)。
图6为本申请实施例提供的目标子系统的顶层设计电路结构框图。
图7为本申请实施例提供的一种门级网表生成装置的示意性结构框图。
附图标记:100-电子设备;110-处理器;120-存储器;200-门级网表生成装置;210-第一信息获取模块;220-第二信息获取模块;230-门级网表生成模块。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。此外,应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
首先,对背景技术中提出的馈通信号和馈通模块作相关解释说明。
在完成芯片中所有子系统的寄存器传输级(Register Transfer Level,RTL)顶层设计并与前端综合之后,要对芯片进行物理设计,也即,布局布线设计,而布局布线需要在版图上为芯片中的多个模块分配版图位置。分配版图位置时,可能存在一种情况:一个子系统中,功能关系密切的两个功能模块有可能被摆放到版图中物理距离较远的两个位置,因此,这两个功能模块之间用于传输信号的连线就会相对加长,而较长的连线会带来较大的电容电阻负载,使这两个功能模块之间的信号出现时序问题。基于此,为了满足时序要求,通常需要在这两个功能模块之间的连线上插入缓冲器和/或寄存器来增强信号的驱动能力,或对信号进行重定时。
如图1所示,假设,模块1、模块6和模块7是待验证的目标芯片上,一个子系统中的三个功能模块,但对目标芯片进行布局布线时,模块1与模块6和模块7物理距离较远,且模块1和模块6之间的连线会穿过模块2和模块4,模块1和模块7之间的连线会穿过模块3、模块4和模块5。因此,为满足时序要求,可以在模块1和模块6之间的连线上插入缓冲器和/或寄存器,且插入的缓冲器和/或寄存器会放置在模块2和模块4中,同时,可以在模块1和模块7之间的连线上插入缓冲器和/或寄存器,且插入的缓冲器和/或寄存器会放置在模块3、模块4和模块5中,这些缓冲器和/或寄存器,以及相关连接信号都会出现在对应的模块中,这些信号被称为馈通信号。
馈通信号的存在使得被占用位置上,原本模块的端口定义发生了变化,例如,这些模块会增加一些输入接口和输出端口,且内部也会增加一些逻辑单元,这些模块被称为馈通模块,例如,图1所示的模块2、模块3、模块4和模块5。当目标芯片规模和设计复杂度很高,也即,目标芯片中包括的模块很多时,馈通信号会很普遍的存在于各个模块中,甚至目标芯片中的所有模块都可能成为馈通模块,这就使得这些模块在布局布线之后,其门级网表与RTL顶层设计有很大不同。
如背景技术,上述情况下,原来子系统验证环境中基于RTL顶层设计已经不能处理这种变化,而无法正常进行验证工作了。因此,为了使子系统的门级仿真能够顺利进行,通常还需要生成一个基于门级网表的子系统顶层设计,以获得子系统的顶层门级网表,这也是复用子系统验证环境进行门级仿真的关键问题。
现有技术中,通常是验证人员手动为每个子系统生成用于门级仿真的子系统顶层设计,以获得子系统的顶层门级网表,但是,由于子系统内模块数目较多,同时,每个模块通常又具有庞大的端口数目,因此,验证人员手动为每个子系统生成用于门级仿真的子系统顶层设计,以获得子系统的顶层门级网表耗时巨大,且容易出错。
为解决上述问题,本申请实施例提供了一种门级网表生成方法、装置及电子设备。请参阅图2,为本申请实施例提供的一种电子设备100的示意性结构框图。本申请实施例中,电子设备100可以是终端设备,例如,电脑、个人数字助理(Personal Digital Assistant,PAD)、移动上网设备(Mobile Internet Device,MID)等,还可以是服务器,本申请实施例对此不作具体限制。
在结构上,电子设备100可以包括处理器110和存储器120。
处理器110和存储器120直接或间接地电性连接,以实现数据的传输或交互,例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。门级网表生成装置包括至少一个可以软件或固件(Firmware)的形式存储在存储器120中的软件模块。处理器110用于执行存储器120中存储的可执行模块,例如,门级网表生成装置所包括的软件功能模块及计算机程序等,以实现门级网表生成方法。
处理器110可以在接收到执行指令后,执行计算机程序。其中,处理器110可以是一种集成电路芯片,具有信号处理能力。处理器110也可以是通用处理器,例如,可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、分立门或晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图,此外,通用处理器可以是微处理器或者任何常规处理器等。
存储器120可以是,但不限于,随机存取存储器(Random Access Memory,RAM)、只读存储器(Read Only Memory,ROM)、可编程只读存储器(Programmable Read-OnlyMemory,PROM)、可擦可编程序只读存储器(Erasable Programmable Read-Only Memory,EPROM),以及电可擦编程只读存储器(Electric Erasable Programmable Read-OnlyMemory,EEPROM)。存储器120用于存储程序,处理器110在接收到执行指令后,执行该程序。
应当理解,图2所示的结构仅为示意,本申请实施例提供的电子设备100还可以具有比图2更少或更多的组件,或是具有与图2所示不同的配置。此外,图2所示的各组件可以通过软件、硬件或其组合实现。
请参阅图3,为本申请实施例提供的门级网表生成方法的流程示意图,该方法应用于图2所示的电子设备100。需要说明的是,本申请实施例提供的门级网表生成方法不以图3及以下所示的顺序为限制,以下结合图3对门级网表生成方法的具体流程及步骤进行描述。
步骤S100,获取目标子系统包括的多个模块中每个模块的端口信息,以及多个模块中每个模块的实例化信息,多个模块中包括功能模块和馈通模块。
本申请实施例中,目标子系统为将待验证的目标芯片拆分为多个子系统之后,该多个子系统中的任意子系统,而目标芯片具体可以是芯片规模较大,且设计复杂度较高的系统级芯片。
此外,本申请实施例中,模块的端口信息可以包括,但不限于该模块中所有端口的端口名称和端口方向,且对于模块中的某个端口,其端口方向用于表征该端口的功能为输入信号,还是输出信号,而实例化信息则可以包括模块的实例化名称和模块上所有端口的连线名称。
进一步地,对于步骤S100,本申请实施例中,作为一种可选的实施方式,其可以包括步骤S110、步骤S120和步骤S130。
步骤S110,获取多个模块中每个模块的模块名称。
实际实施时,可以获取目标子系统的功能模块实例列表,以从功能模块实例列表中读出多个模块中每个功能模块的模块名称。对于目标子系统的功能模块实例列表,其在创建子系统验证环境时已经获取,而该子系统验证环境中是基于目标子系统的RTL封装的顶层设计。同样,实际实施时,可以获取目标子系统的馈通模块实例列表,以从馈通模块实例列表中读出多个模块中的每个馈通模块的模块名称。对于目标子系统的馈通模块实例列表,由于在对目标芯片完成布局布线之后,所有与馈通信号和馈通模块相关的信息都会被存储于相应文件中,因此,可以从这些文件中获取目标子系统的馈通模块实例列表。
步骤S120,获取目标子系统所在目标芯片的顶层门级网表。
步骤S130,根据多个模块中每个模块的模块名称,从目标芯片的顶层门级网表中分别读取出多个模块中每个模块的端口信息,以及多个模块中每个模块的实例化信息。
在通过步骤S110,以获取到多个模块中每个模块的模块名称,并通过步骤S120,以获取到目标子系统所在目标芯片的顶层门级网表之后,便可以针对多个模块中的每个模块,根据该模块的模块名称,从目标芯片的顶层门级网表中直接读取出该模块的端口信息,以及该模块的实例化信息,而完成步骤S130。
步骤S200,获取目标子系统的寄存器传输级顶层设计信息。
本申请实施例中,目标子系统的RTL顶层设计信息可以包括目标子系统的输入端口信息、输出端口信息、输出端口信号来源,以及多个模块中所有功能模块的输入信号来源。
目标子系统的输入端口信息可以包括该目标子系统输入端口的端口名称,目标子系统的输出端口信息可以包括该目标子系统输出端口的端口名称,而目标子系统的输出端口信号来源用于表征目标子系统的输出端口所输出的信号具体来源于目标子系统中的哪个功能模块上的哪个端口,因此,也可以通过这个功能模块上端口的名称表征目标子系统的输出端口信号来源。此外,对于多个模块中的每个功能模块,其输入信号来源有两种情况:(1)来源于子系统验证环境,也即,其输入信号为子系统验证环境施加的输入激励;(2)来源于目标子系统中包括的其他模块。
基于以上描述,对于步骤S200,本申请实施例中,作为一种可选的实施方式,其可以包括步骤S210和步骤S220。
步骤S210,分别获取目标子系统的输入端口信息、输出端口信息、输出端口信号来源,以及多个模块中所有功能模块的输入信号来源。
由于目标子系统的输入端口信息、输出端口信息、输出端口信号来源,以及多个模块中所有功能模块的输入信号来源都可以从目标子系统的RTL顶层设计源文件中读取出,因此,实际实施时,可以先获取目标子系统的RTL顶层设计源文件,再从目标子系统的RTL顶层设计源文件中直接读取出目标子系统的输入端口信息、输出端口信息、输出端口信号来源,以及多个模块中所有功能模块的输入信号来源。
步骤S220,将目标子系统的输入端口信息、输出端口信息、输出端口信号来源,以及多个模块中所有功能模块的输入信号来源共同作为寄存器传输级顶层设计信息。
步骤S300,根据多个模块中每个模块的端口信息、多个模块中每个模块的实例化信息,以及寄存器传输级顶层设计信息,将多个模块中包括功能模块和馈通模块封装成顶层设计,以获得目标子系统的顶层门级网表。
对于步骤S300,本申请实施例中,作为一种可选的实施方式,其可以包括步骤S310、步骤S320、步骤S330和步骤S340。
步骤S310,针对多个模块中的每个功能模块,根据功能模块的端口信息、功能模块的输入信号来源,以及功能模块的实例化信息或目标子系统的输入端口信息,设定出功能模块中输入端口的连线名称。
针对多个模块中的每个功能模块,若该功能模块的输入信号来源为目标子系统中包括的其他模块,则可以通过以下第一种设定方式,设定出该功能模块中输入端口的连线名称,若该功能模块的输入信号来源为子系统验证环境,则可以通过以下第二种设定方式,设定出该功能模块中输入端口的连线名称。
第一种设定方式:根据该功能模块的端口信息确定出功能模块的输入端口,并根据该功能模块的实例化信息,设定出该功能模块中输入端口的连线名称。实际实施时,可以在根据该功能模块的端口信息确定出该功能模块的输入端口之后,从该功能模块的实例化信息中提取出该输入端口的连线名称,作为第一目标连线名称,再将该功能模块中输入端口的连线名设定为第一目标连线名称。
第二种设定方式:根据该功能模块的端口信息确定出该功能模块的输入端口,并根据目标子系统的输入端口信息,设定出该功能模块中输入端口的连线名称。实际实施时,可以在根据该功能模块的端口信息确定出该功能模块的输入端口之后,获取目标子系统的输入端口信息中包括的端口名称,作为目标端口名称,再将该功能模块中输入端口的连线名称设定为目标端口名称。
步骤S320,针对所述多个模块中的每个功能模块,根据所述功能模块的端口信息、所述目标子系统的输出端口信号来源,以及所述功能模块的实例化信息或所述目标子系统的输出端口信息,设定出所述功能模块中输出端口的连线名称。
实际实施时,针对所述多个模块中的每个功能模块,首先,可以根据该功能模块的端口信息确定出该功能模块的输出端口,同时,根据目标子系统的输出端口信号来源,判断该功能模块的输出端口是否为目标子系统的输出端口,若该功能模块的输出端口非目标子系统的输出端口,则根据该功能模块的实例化信息,设定出该功能模块中输出端口的连线名称,若该功能模块的输出端口为目标子系统的输出端口,则根据目标子系统的输出端口信息,设定出该功能模块中输出端口的连线名称。
若该功能模块的输出端口非目标子系统的输出端口,则根据该功能模块的实例化信息,设定出该功能模块中输出端口的连线名称,具体可以是从该功能模块的实例化信息中提取出该功能模块输出端口的连线名称,作为第二目标连线名称,再将该功能模块中输出端口的连线名设定为第二目标连线名称。
若该功能模块的输出端口为目标子系统的输出端口,则根据目标子系统的输出端口信息,设定出该功能模块中输出端口的连线名称,具体可以是从目标子系统的输出端口信息中提取出该目标子系统输出端口的端口名称,作为第三目标连线名称,再将该功能模块中输出端口的连线名称设定为第三目标连线名称。
步骤S330,针对多个模块中的每个馈通模块,根据馈通模块的端口信息,以及馈通模块的实例化信息,设定出馈通模块中输入端口的连线名称,以及设定出馈通模块中输出端口的连线名称。
实际实施时,针对多个模块中的每个馈通模块,可以根据该馈通模块的端口信息,确定出该馈通模块包括的输入端口和输出端口,此后,从该馈通模块的实例化信息中提取出该馈通模块输入端口的连线名称,即可完成该馈通模块中输入端口连线名称的设定,同时,从该馈通模块的实例化信息中提取出该馈通模块输出端口的连线名称,即可完成该馈通模块中输出端口连线名称的设定。
步骤S340,根据多个模块中的每个功能模块输入端口的连线名称、多个模块中的每个功能模块输出端口的连线名称、多个模块中每个馈通模块输入端口的连线名称,以及多个模块中每个馈通模块输出端口的连线名称,将多个模块中包括功能模块和馈通模块封装成顶层设计。
进一步地,为使目标子系统的门级仿真结果更具有可靠性,本申请实施例中,门级网表生成方法在步骤S300之后,还可以包括步骤S400。
步骤S400,对多个模块中的每个馈通模块进行缺省赋值,以对目标子系统的顶层门级网表进行更新。
本申请实施例中,对多个模块中的每个馈通模块进行缺省赋值的目的在于,避免馈通模块中与馈通信号通路无关的其他信号对目标子模块的门级仿真结果产生影响。基于此,对于步骤S400,本申请实施例中,作为一种可选的实施方式,其可以包括步骤S410、步骤S420、步骤S430和步骤S440。
步骤S410,针对多个模块中的每个馈通模块,根据馈通模块的端口信息,确定出馈通模块的复位端口,以及与馈通信号通路无关的时钟端口和数据端口。
步骤S420,将复位端口的输入信号设定为目标电平,以使馈通模块处于非复位状态。
步骤S430,将时钟端口的输入信号设定为低电平信号,也即,将时钟端口的输入信号设定为逻辑电平“0”。
步骤S440,将数据端口的输入信号设定为低电平信号,也即,将数据端口的输入信号设定为逻辑电平“0”。
通过上述设置,即可避免馈通模块中与馈通信号通路无关的其他信号对目标子模块的门级仿真结果产生影响,以使目标子系统的门级仿真结果更具有可靠性。
以下,将结合图4、图5和图6所示的电路结构框图,对本申请实施例提供的门级网表生成方法中,步骤S100、步骤S200、步骤S300的具体实施过程进行描述。
假设,目标子系统的RTL顶层设计电路结构框图如图4所示,图4中目标子系统中包括功能模块A、功能模块B和功能模块C,则可以通过Verilog HDL程序段对目标子系统的RTL顶层设计进行表征如下:
Figure BDA0002854909680000161
Figure BDA0002854909680000171
那么,执行步骤S200,便可以获得目标子系统的RTL顶层设计信息至少包括:
(1)目标子系统的输入端口信息,包括输入端口的端口名称:a;
(2)目标子系统的输出端口信息,包括输出端口的端口名称:b;
(3)目标子系统的输出端口信号来源:功能模块C的端口f;
(4)目标子系统包括的多个模块中所有功能模块的输入信号来源:功能模块A的第一输入信号来源于子系统验证环境,也即,其第一输入信号为子系统验证环境施加的输入激励,功能模块A的第二输入信号来源于目标子系统中包括的其他功能模块,具体为功能模块B的端口k,功能模块B的输入信号来源于目标子系统中包括的其他功能模块,具体为功能模块A的端口h,功能模块C的输入信号来源于目标子系统中包括的其他功能模块,具体为功能模块A的端口d。
再假设,在完成目标芯片中所有子系统的RTL顶层设计之后,对目标芯片进行布局布线时,将功能模块A和功能模块C摆放到了版图中物理距离较远的两个位置,所以,为了满足时序要求,在功能模块A和功能模块C之间的连线上插入了缓冲器和/或寄存器,而功能模块A和功能模块C之间的连线上插入的缓冲器和/或寄存器放置在了功能模块D上,那么,功能模块D可以作为一个馈通模块,定义为馈通模块D,而馈通模块D所在的子系统为子系统A,且子系统A中除馈通模块D之外还包括功能模块E。若目标芯片在完成布局布线之后,最终形成图5所示的电路结构框图,则可以通过Verilog HDL程序段对目标芯片的顶层门级网表进行表征如下:
Figure BDA0002854909680000181
Figure BDA0002854909680000191
那么,执行步骤S100,便可以获得目标子系统包括的多个模块中每个模块的端口信息,以及多个模块中每个模块的实例化信息,而多个模块中包括功能模块A、功能模块B、功能模块C、馈通模块D和功能模块E,且功能模块A、功能模块B、功能模块C、馈通模块D和功能模块E的端口信息如表1所示,功能模块A、功能模块B、功能模块C、馈通模块D和功能模块E的实例化信息如表2所示。
表1
Figure BDA0002854909680000192
Figure BDA0002854909680000201
表2
Figure BDA0002854909680000202
执行步骤S100,便可以获得目标子系统包括的多个模块中每个模块的端口信息,以及多个模块中每个模块的实例化信息,同时,执行步骤S200,便可以获得目标子系统的RTL顶层设计信息之后,便可以执行步骤S300,根据多个模块中每个模块的端口信息、多个模块中每个模块的实例化信息,以及寄存器传输级顶层设计信息,将多个模块中包括功能模块和馈通模块封装成顶层设计,以获得目标子系统的顶层门级网表。
首先,执行步骤S310,也即,针对多个模块中的每个功能模块,根据功能模块的端口信息、功能模块的输入信号来源,以及功能模块的实例化信息或目标子系统的输入端口信息,设定出功能模块中输入端口的连线名称。
对于功能模块A,其第一输入信号来源于子系统验证环境,也即,其第一输入信号为子系统验证环境施加的输入激励,因此,可以在根据功能模块A的端口信息,确定出功能模块A中与第一输入信号对应的第一输入端口为c之后,获取目标子系统的输入端口信息中输入端口的端口名称a,作为目标端口名称,再将功能模块A中第一输入端口c的连线名称设定为目标端口名称,也即,设定为a。
对于功能模块A,其第二输入信号来源于目标子系统中包括的其他功能模块,具体为功能模块B的端口k,因此,可以在根据功能模块A的端口信息,确定出功能模块A中与第二输入信号对应的第二输入端口为i之后,从功能模块A的实例化信息中提取出第二输入端口i的连线名称w3,作为第一目标连线名称,再将功能模块A中第二输入端口i的连线名设定为第一目标连线名称,也即w3。
对于功能模块B,其输入信号来源于目标子系统中包括的其他功能模块,具体为功能模块A的端口h,因此,可以在根据功能模块B的端口信息,确定出功能模块B的输入端口为j之后,从功能模块B的实例化信息中提取出输入端口j的连线名称w2,作为第一目标连线名称,再将功能模块B中输入端口j的连线名设定为第一目标连线名称,也即w2。
对于功能模块C,其输入信号来源于目标子系统中包括的其他功能模块,具体为功能模块A的端口d,因此,可以在根据功能模块C的端口信息,确定出功能模块C的输入端口为e之后,从功能模块B的实例化信息中提取出输入端口e的连线名称w4,作为第一目标连线名称,再将功能模块C中输入端口e的连线名设定为第一目标连线名称,也即w4。
此后,执行步骤S320,也即,针对所述多个模块中的每个功能模块,根据所述功能模块的端口信息、所述目标子系统的输出端口信号来源,以及所述功能模块的实例化信息或所述目标子系统的输出端口信息,设定出所述功能模块中输出端口的连线名称。
对于功能模块A,根据功能模块A的端口信息确定出功能模块A的第一输出端口为d,同时,目标子系统的输出端口信号来源为功能模块C的端口f,因此,判定功能模块A的第一输出端口非目标子系统的输出端口,则可以是从功能模块A的实例化信息中提取出功能模块A第一输出端口的连线名称w1,作为第二目标连线名称,再将功能模块A中第一输出端口的连线名设定为第二目标连线名称,也即w1。
对于功能模块A,根据功能模块A的端口信息确定出功能模块A的第二输出端口为h,同时,目标子系统的输出端口信号来源为功能模块C的端口f,因此,判定功能模块A的第二输出端口非目标子系统的输出端口,则可以是从功能模块A的实例化信息中提取出功能模块A第二输出端口的连线名称w2,作为第二目标连线名称,再将功能模块A中第二输出端口的连线名设定为第二目标连线名称,也即w2。
对于功能模块B,根据功能模块B的端口信息确定出功能模块B的输出端口为k,同时,目标子系统的输出端口信号来源为功能模块C的端口f,因此,判定功能模块B的输出端口非目标子系统的输出端口,则可以是从功能模块B的实例化信息中提取出功能模块B输出端口的连线名称w3,作为第二目标连线名称,再将功能模块B中输出端口的连线名设定为第二目标连线名称,也即w3。
对于功能模块C,根据功能模块C的端口信息确定出功能模块C的输出端口为f,同时,目标子系统的输出端口信号来源为功能模块C的端口f,因此,判定功能模块C的输出端口为目标子系统的输出端口,则可以是从目标子系统的输出端口信息中提取出目标子系统输出端口的端口名称b,作为第三目标连线名称,再将功能模块B中输出端口的连线名设定为第三目标连线名称,也即b。
接着,执行步骤S330,也即,针对多个模块中的每个馈通模块,根据馈通模块的端口信息,以及馈通模块的实例化信息,设定出馈通模块中输入端口的连线名称,以及设定出馈通模块中输出端口的连线名称。
对于馈通模块D,根据馈通模块D的端口信息,确定出馈通模块D包括的输入端口m、输出端口n和输入端口o,此后,从馈通模块D的实例化信息中提取出馈通模块D输入端口m的连线名称w1,即可完成馈通模块D中输入端口m连线名称的设定,同时,从馈通模块D的实例化信息中提取出馈通模块D输出端口n的连线名称w4,即可完成馈通模块D中输出端口n连线名称的设定,此后,可以从馈通模块D的实例化信息中提取出馈通模块D输入端口o的连线名称w5,即可完成馈通模块D中输入端口o连线名称的设定。
最后,执行步骤S340,根据多个模块中的每个功能模块输入端口的连线名称、多个模块中的每个功能模块输出端口的连线名称、多个模块中每个馈通模块输入端口的连线名称,以及多个模块中每个馈通模块输出端口的连线名称,将多个模块中包括功能模块和馈通模块重新封装成顶层设计,以获得目标子系统的顶层门级网表。
由于在获得目标子系统的顶层门级网表之后,还可以执行步骤S400,对多个模块中的每个馈通模块进行缺省赋值,以对目标子系统的顶层门级网表进行更新,而使得目标子系统的门级仿真结果更具有可靠性,因此,具体到以上示例,实际实施时,由于馈通模块D的输入端口o与馈通信号通路无关,因此,可以将馈通模块D输入端口o的输入信号设定为低电平信号,也即,将馈通模块D输入端口o的输入信号设定为逻辑电平“0”。
最终,功能模块A、功能模块B、功能模块C和馈通模块D封装成如图6所示的顶层设计,且通过Verilog HDL程序段对目标子系统的顶层门级网表进行表征如下:
Figure BDA0002854909680000241
总结来说,通过本申请实施例提供的门级网表生成方法,可以自动生成目标子系统的顶层门级网表,相对于现有技术中,验证人员手动为每个子系统生成用于门级仿真的子系统顶层设计,以获得子系统的顶层门级网表的方法而言,能够保证顶层设计的生成效率和准确性,也即,保证了与顶层设计所对应的顶层门级网表的生成效率和准确性。
基于与上述门级网表生成方法同样的发明构思,本申请实施例还提供了一种门级网表生成装置200。请参阅图7,本申请实施例提供的门级网表生成装置200,包括第一信息获取模块210、第二信息获取模块220和门级网表生成模块230。
第一信息获取模块210,用于获取目标子系统包括的多个模块中每个模块的端口信息,以及所述多个模块中每个模块的实例化信息,所述多个模块中包括功能模块和馈通模块。
第二信息获取模块220,用于获取所述目标子系统的寄存器传输级顶层设计信息。
门级网表生成模块230,用于根据所述多个模块中每个模块的端口信息、所述多个模块中每个模块的实例化信息,以及所述寄存器传输级顶层设计信息,将所述多个模块中包括功能模块和馈通模块封装成顶层设计,以获得所述目标子系统的顶层门级网表。
本申请实施例中,第一信息获取模块210可以包括模块名称获取单元、系统门级网表获取单元和第一信息获取单元。
模块名称获取单元,用于获取多个模块中每个模块的模块名称。
系统门级网表获取单元,用于获取目标子系统所在目标芯片的顶层门级网表。
第一信息获取单元,用于根据多个模块中每个模块的模块名称,从目标芯片的顶层门级网表中分别读取出多个模块中每个模块的端口信息,以及多个模块中每个模块的实例化信息。
本申请实施例中,模块名称获取单元可以包括第一模块名称获取子单元和第二模块名称获取子单元。
第一模块名称获取子单元,用于获取目标子系统的功能模块实例列表,以从功能模块实例列表中读出多个模块中的每个功能模块的模块名称。
第二模块名称获取子单元,用于获取目标子系统的馈通模块实例列表,以从馈通模块实例列表中读出多个模块中的每个馈通模块的模块名称。
本申请实施例中,第二信息获取模块220可以包括第二信息获取单元。
第二信息获取单元,用于分别获取所述目标子系统的输入端口信息、输出端口信息、输出端口信号来源,以及所述多个模块中所有功能模块的输入信号来源,并将所述目标子系统的输入端口信息、输出端口信息、输出端口信号来源,以及所述多个模块中所有功能模块的输入信号来源共同作为所述寄存器传输级顶层设计信息。
本申请实施例中,第二信息获取单元可以包括文件获取单元和信息读取单元。
文件获取单元,用于获取所述目标子系统的寄存器传输级顶层设计源文件。
信息读取单元,用于从所述寄存器传输级顶层设计源文件中分别读取出所述目标子系统的输入端口信息、输出端口信息、输出端口信号来源,以及所述多个模块中所有功能模块的输入信号来源。
本申请实施例中,门级网表生成模块230可以包括第一连线名称设定单元、第二连线名称设定单元、第三连线名称设定单元和门级网表生成单元。
第一连线名称设定单元,用于针对所述多个模块中的每个功能模块,根据所述功能模块的端口信息、所述功能模块的输入信号来源,以及所述功能模块的实例化信息或所述目标子系统的输入端口信息,设定出所述功能模块中输入端口的连线名称。
第二连线名称设定单元,用于针对所述多个模块中的每个功能模块,根据所述功能模块的端口信息、所述目标子系统的输出端口信号来源,以及所述功能模块的实例化信息或所述目标子系统的输出端口信息,设定出所述功能模块中输出端口的连线名称。
第三连线名称设定单元,用于针对所述多个模块中的每个馈通模块,根据所述馈通模块的端口信息,以及所述馈通模块的实例化信息,设定出所述馈通模块中输入端口的连线名称,以及设定出所述馈通模块中输出端口的连线名称。
门级网表生成单元,用于根据所述多个模块中的每个功能模块输入端口的连线名称、所述多个模块中的每个功能模块输出端口的连线名称、所述多个模块中每个馈通模块输入端口的连线名称,以及所述多个模块中每个馈通模块输出端口的连线名称,将所述多个模块中包括功能模块和馈通模块封装成顶层设计。
本申请实施例中,第一连线名称设定单元可以包括第一连线名称设定子单元和第二连线名称设定子单元。
第一连线名称设定子单元,用于在所述功能模块的输入信号来源为所述目标子系统中包括的其他模块时,根据所述功能模块的端口信息确定出所述功能模块的输入端口,并根据所述功能模块的实例化信息,设定出所述功能模块中输入端口的连线名称。
第二连线名称设定子单元,用于在所述功能模块的输入信号来源为子系统验证环境时,根据所述功能模块的端口信息确定出所述功能模块的输入端口,并根据所述目标子系统的输入端口信息,设定出所述功能模块中输入端口的连线名称。
本申请实施例中,第二连线名称设定单元可以包括第一端口确定单元、输出端口判断单元、第三连线名称设定子单元和第四连线名称设定子单元。
第一端口确定单元,用于根据所述功能模块的端口信息确定出所述功能模块的输出端口。
输出端口判断单元,用于根据所述目标子系统的输出端口信号来源,判断所述功能模块的输出端口是否为所述目标子系统的输出端口。
第三连线名称设定子单元,用于在所述功能模块的输出端口非所述目标子系统的输出端口时,根据所述功能模块的实例化信息,设定出所述功能模块中输出端口的连线名称。
第四连线名称设定子单元,用于在所述功能模块的输出端口为所述目标子系统的输出端口时,根据所述目标子系统的输出端口信息,设定出所述功能模块中输出端口的连线名称。
本申请实施例提供的门级网表生成装置200还可以包括网表更新模块。
网表更新模块,用于对多个模块中的每个馈通模块进行缺省赋值,以对目标子系统的顶层门级网表进行更新。
本申请实施例提供的网表更新模块包括第二端口确定单元、第一信号设定单元、第二信号设定单元和第三信号设定单元。
第二端口确定单元,用于针对多个模块中的每个馈通模块,根据馈通模块的端口信息,确定出馈通模块的复位端口、时钟端口和数据端口。
第一信号设定单元,用于将复位端口的输入信号设定为目标电平,以使馈通模块处于非复位状态。
第二信号设定单元,用于将时钟端口的输入信号设定为低电平信号。
第三信号设定单元,用于将数据端口的输入信号设定为低电平信号。
由于本申请实施例提供的门级网表生成装置200是基于与上述门级网表生成方法同样的发明构思实现的,因此,门级网表生成装置200中,每个软件模块的具体描述,均可参见上述门级网表生成方法实施例中对应步骤的相关描述,此处不作赘述。
此外,本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被执行时,实现上述方法实施例所提供的门级网表生成方法,具体可参见上述方法实施例,本申请实施例中对此不作赘述。
综上所述,本申请实施例提供的门级网表生成方法能够获取目标子系统包括的多个模块(包括功能模块和馈通模块)中每个模块的端口信息,以及多个模块中每个模块的实例化信息,同时,获取目标子系统的寄存器传输级顶层设计信息,再根据多个模块中每个模块的端口信息、多个模块中每个模块的实例化信息,以及寄存器传输级顶层设计信息,将多个模块中包括功能模块和馈通模块封装成顶层设计,以获得目标子系统的顶层门级网表。显然,通过本申请实施例提供的门级网表生成方法,可以自动生成目标子系统的顶层门级网表,相对于现有技术中,验证人员手动为每个子系统生成用于门级仿真的子系统顶层设计,以获得子系统的顶层门级网表的方法而言,能够保证顶层设计的生成效率和准确性,也即,保证了与顶层设计所对应的顶层门级网表的生成效率和准确性。
此外,本申请实施例提供的门级网表生成装置、电子设备及计算机可读存储介质具有与上述门级网表生成方法相同的有益效果,此处不作赘述。
在本申请实施例所提供的几个实施方式中,应该理解到,所揭露的方法和装置,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。此外,在本申请每个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是每个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
此外,所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请每个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
还需要说明的是,在本文中,诸如“第一”、“第二”、“第三”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括未明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。

Claims (13)

1.一种门级网表生成方法,其特征在于,包括:
获取目标子系统包括的多个模块中每个模块的端口信息,以及所述多个模块中每个模块的实例化信息,所述多个模块中包括功能模块和馈通模块;
获取所述目标子系统的寄存器传输级顶层设计信息;
根据所述多个模块中每个模块的端口信息、所述多个模块中每个模块的实例化信息,以及所述寄存器传输级顶层设计信息,将所述多个模块中包括功能模块和馈通模块封装成顶层设计,以获得所述目标子系统的顶层门级网表。
2.根据权利要求1所述的门级网表生成方法,其特征在于,所述获取目标子系统包括的多个模块中每个模块的端口信息,以及所述多个模块中每个模块的实例化信息,包括:
获取所述多个模块中每个模块的模块名称;
获取所述目标子系统所在目标芯片的顶层门级网表;
根据所述多个模块中每个模块的模块名称,从所述目标芯片的顶层门级网表中分别读取出多个模块中每个模块的端口信息,以及所述多个模块中每个模块的实例化信息。
3.根据权利要求2所述的门级网表生成方法,其特征在于,所述获取所述多个模块中每个模块的模块名称,包括:
获取所述目标子系统的功能模块实例列表,以从所述功能模块实例列表中读出所述多个模块中的每个功能模块的模块名称;
获取所述目标子系统的馈通模块实例列表,以从所述馈通模块实例列表中读出所述多个模块中的每个馈通模块的模块名称。
4.根据权利要求1所述的门级网表生成方法,其特征在于,所述获取所述目标子系统的寄存器传输级顶层设计信息,包括:
分别获取所述目标子系统的输入端口信息、输出端口信息、输出端口信号来源,以及所述多个模块中所有功能模块的输入信号来源;
将所述目标子系统的输入端口信息、输出端口信息、输出端口信号来源,以及所述多个模块中所有功能模块的输入信号来源共同作为所述寄存器传输级顶层设计信息。
5.根据权利要求4所述的门级网表生成方法,其特征在于,所述分别获取所述目标子系统的输入端口信息、输出端口信息、输出端口信号来源,以及所述多个模块中所有功能模块的输入信号来源,包括:
获取所述目标子系统的寄存器传输级顶层设计源文件;
从所述寄存器传输级顶层设计源文件中分别读取出所述目标子系统的输入端口信息、输出端口信息、输出端口信号来源,以及所述多个模块中所有功能模块的输入信号来源。
6.根据权利要求4所述的门级网表生成方法,其特征在于,所述根据所述多个模块中每个模块的端口信息、所述多个模块中每个模块的实例化信息,以及所述寄存器传输级顶层设计信息,将所述多个模块中包括功能模块和馈通模块封装成顶层设计,包括:
针对所述多个模块中的每个功能模块,根据所述功能模块的端口信息、所述功能模块的输入信号来源,以及所述功能模块的实例化信息或所述目标子系统的输入端口信息,设定出所述功能模块中输入端口的连线名称;
针对所述多个模块中的每个功能模块,根据所述功能模块的端口信息、所述目标子系统的输出端口信号来源,以及所述功能模块的实例化信息或所述目标子系统的输出端口信息,设定出所述功能模块中输出端口的连线名称;
针对所述多个模块中的每个馈通模块,根据所述馈通模块的端口信息,以及所述馈通模块的实例化信息,设定出所述馈通模块中输入端口的连线名称,以及设定出所述馈通模块中输出端口的连线名称;
根据所述多个模块中的每个功能模块输入端口的连线名称、所述多个模块中的每个功能模块输出端口的连线名称、所述多个模块中每个馈通模块输入端口的连线名称,以及所述多个模块中每个馈通模块输出端口的连线名称,将所述多个模块中包括功能模块和馈通模块封装成顶层设计。
7.根据权利要求6所述的门级网表生成方法,其特征在于,所述根据所述功能模块的端口信息、所述功能模块的输入信号来源,以及所述功能模块的实例化信息或所述目标子系统的输入端口信息,设定出所述功能模块中输入端口的连线名称,包括:
若所述功能模块的输入信号来源为所述目标子系统中包括的其他模块,则根据所述功能模块的端口信息确定出所述功能模块的输入端口,并根据所述功能模块的实例化信息,设定出所述功能模块中输入端口的连线名称;
若所述功能模块的输入信号来源为子系统验证环境,则根据所述功能模块的端口信息确定出所述功能模块的输入端口,并根据所述目标子系统的输入端口信息,设定出所述功能模块中输入端口的连线名称。
8.根据权利要求6所述的门级网表生成方法,其特征在于,所述根据所述功能模块的端口信息、所述目标子系统的输出端口信号来源,以及所述功能模块的实例化信息或所述目标子系统的输出端口信息,设定出所述功能模块中输出端口的连线名称,包括:
根据所述功能模块的端口信息确定出所述功能模块的输出端口;
根据所述目标子系统的输出端口信号来源,判断所述功能模块的输出端口是否为所述目标子系统的输出端口;
若所述功能模块的输出端口非所述目标子系统的输出端口,则根据所述功能模块的实例化信息,设定出所述功能模块中输出端口的连线名称;
若所述功能模块的输出端口为所述目标子系统的输出端口,则根据所述目标子系统的输出端口信息,设定出所述功能模块中输出端口的连线名称。
9.根据权利要求1所述的门级网表生成方法,其特征在于,所述根据所述多个模块中每个模块的端口信息、所述多个模块中每个模块的实例化信息,以及所述寄存器传输级顶层设计信息,将所述多个模块中包括功能模块和馈通模块封装成顶层设计,以获得所述目标子系统的顶层门级网表之后,所述门级网表生成方法还包括:
对所述多个模块中的每个馈通模块进行缺省赋值,以对所述目标子系统的顶层门级网表进行更新。
10.根据权利要求9所述的门级网表生成方法,其特征在于,所述对所述多个模块中的每个馈通模块进行缺省赋值,包括:
针对所述多个模块中的每个馈通模块,根据所述馈通模块的端口信息,确定出所述馈通模块的复位端口,以及与馈通信号通路无关的时钟端口和数据端口;
将所述复位端口的输入信号设定为目标电平,以使所述馈通模块处于非复位状态;
将所述时钟端口的输入信号设定为低电平信号;
将所述数据端口的输入信号设定为低电平信号。
11.一种门级网表生成装置,其特征在于,包括:
第一信息获取模块,用于获取目标子系统包括的多个模块中每个模块的端口信息,以及所述多个模块中每个模块的实例化信息,所述多个模块中包括功能模块和馈通模块;
第二信息获取模块,用于获取所述目标子系统的寄存器传输级顶层设计信息;
门级网表生成模块,用于根据所述多个模块中每个模块的端口信息、所述多个模块中每个模块的实例化信息,以及所述寄存器传输级顶层设计信息,将所述多个模块中包括功能模块和馈通模块封装成顶层设计,以获得所述目标子系统的顶层门级网表。
12.一种电子设备,其特征在于,包括存储器和存储器,所述存储器上存储有计算机程序,所述存储器用于执行所述计算机程序,以实现权利要求1~10中任意一项所述的门级网表生成方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被执行时,实现权利要求1~10中任意一项所述的门级网表生成方法。
CN202011541139.9A 2020-12-23 2020-12-23 门级网表生成方法、装置及电子设备 Active CN112632884B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011541139.9A CN112632884B (zh) 2020-12-23 2020-12-23 门级网表生成方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011541139.9A CN112632884B (zh) 2020-12-23 2020-12-23 门级网表生成方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN112632884A true CN112632884A (zh) 2021-04-09
CN112632884B CN112632884B (zh) 2023-03-03

Family

ID=75321720

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011541139.9A Active CN112632884B (zh) 2020-12-23 2020-12-23 门级网表生成方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN112632884B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113688587A (zh) * 2021-08-31 2021-11-23 上海商汤阡誓科技有限公司 一种电路布图的生成方法、装置、计算机设备及存储介质
WO2022252481A1 (zh) * 2021-06-01 2022-12-08 上海国微思尔芯技术股份有限公司 语句块封装方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7010774B1 (en) * 1999-12-29 2006-03-07 Advanced Micro Devices, Inc. Bottom-up approach for synthesis of register transfer level (RTL) based design
CN106202761A (zh) * 2016-07-15 2016-12-07 中国电子科技集团公司第五十八研究所 用于大容量fpga电路功能仿真的最优网表的生成方法
US20170300601A1 (en) * 2016-04-14 2017-10-19 Oracle International Corporation Designing circuits using pseudohierarchy
CN110889257A (zh) * 2019-09-30 2020-03-17 深圳市紫光同创电子有限公司 Fpga电路验证生成网表的方法及电路逻辑验证平台

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7010774B1 (en) * 1999-12-29 2006-03-07 Advanced Micro Devices, Inc. Bottom-up approach for synthesis of register transfer level (RTL) based design
US20170300601A1 (en) * 2016-04-14 2017-10-19 Oracle International Corporation Designing circuits using pseudohierarchy
CN106202761A (zh) * 2016-07-15 2016-12-07 中国电子科技集团公司第五十八研究所 用于大容量fpga电路功能仿真的最优网表的生成方法
CN110889257A (zh) * 2019-09-30 2020-03-17 深圳市紫光同创电子有限公司 Fpga电路验证生成网表的方法及电路逻辑验证平台

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022252481A1 (zh) * 2021-06-01 2022-12-08 上海国微思尔芯技术股份有限公司 语句块封装方法、装置、电子设备及存储介质
CN113688587A (zh) * 2021-08-31 2021-11-23 上海商汤阡誓科技有限公司 一种电路布图的生成方法、装置、计算机设备及存储介质
CN113688587B (zh) * 2021-08-31 2024-03-22 上海商汤阡誓科技有限公司 一种电路布图的生成方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
CN112632884B (zh) 2023-03-03

Similar Documents

Publication Publication Date Title
US8117576B2 (en) Method for using an equivalence checker to reduce verification effort in a system having analog blocks
US7231627B2 (en) Merging a hardware design language source file with a separate assertion file
CN112632884B (zh) 门级网表生成方法、装置及电子设备
US11675613B2 (en) Flexible physical function and virtual function mapping
US8869091B2 (en) Incremental clock tree synthesis
CN112613259B (zh) 片上系统后仿真方法、装置及电子设备
US20160078154A1 (en) Digital circuit design method and associated computer program product
Farooq et al. Pre-silicon verification using multi-FPGA platforms: A review
CN105701294A (zh) 实现芯片复杂工程修改的方法及系统
US7673288B1 (en) Bypassing execution of a software test using a file cache
US8671374B2 (en) Information processing apparatus
JP2000277617A (ja) Asic設計方法およびasic設計装置
Kawato et al. Design and verification of large-scale computers by using DDL
US20050251776A1 (en) Integrated circuit design system
US7260803B2 (en) Incremental dummy metal insertions
US20220327269A1 (en) Computing device and method for detecting clock domain crossing violation in design of memory device
US8056037B2 (en) Method for validating logical function and timing behavior of a digital circuit decision
CN116050309A (zh) 数字电路的设计方法、装置、电子设备、存储介质
JP3171182B2 (ja) 機能合成方法,機能合成装置およびその記録媒体
CN112257360B (zh) 用于数据波形的调试方法、装置、调试系统以及存储介质
CN115906746A (zh) 芯片布局方法、装置、电子设备及存储介质
JP2785708B2 (ja) 論理シミュレーション方法
JP5791797B2 (ja) Lsi設計装置及びlsi設計方法及びプログラム
CN116976404A (zh) 基于卷积神经网络硬件加速器的fpga多通道设计系统及装置
JP2006244274A (ja) Lsi設計方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant