CN114638184B - 门级电路的仿真方法、系统、存储介质及设备 - Google Patents
门级电路的仿真方法、系统、存储介质及设备 Download PDFInfo
- Publication number
- CN114638184B CN114638184B CN202210559324.3A CN202210559324A CN114638184B CN 114638184 B CN114638184 B CN 114638184B CN 202210559324 A CN202210559324 A CN 202210559324A CN 114638184 B CN114638184 B CN 114638184B
- Authority
- CN
- China
- Prior art keywords
- node
- simulation
- directed graph
- gate
- target node
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/18—Network design, e.g. design based on topological or interconnect aspects of utility systems, piping, heating ventilation air conditioning [HVAC] or cabling
Abstract
本发明提供一种门级电路的仿真方法、系统、存储介质及设备,方法包括:读取转译后的有向图文件;输入初始节点的ID及对所述初始节点进行赋值,根据所述初始节点的ID在所述有向图文件中进行查询以找到初始节点并将值赋给所述初始节点的输入端口以仿真给所述初始节点输入激励信号;以所述初始节点为仿真起点依序对有向图的各节点进行仿真求解及递归传播,若有向图的任一节点的仿真求解结果发生变化且所述节点为多输入节点则将所述节点调入全局仿真队列以依序等待仿真求解并在仿真求解后将仿真求解结果传递给下一个节点,直至得到最终仿真结果,本发明采用了递归传播与事件队列配合调度相结合的方式能够降低仿真时间及仿真复杂度。
Description
技术领域
本发明涉及电路仿真领域,特别是涉及一种门级电路的仿真方法、系统、存储介质及设备。
背景技术
在高端数字IC产业中,大规模门级电路仿真是一项关键技术。而现有的仿真器在仿真信号传播过程中,只能逐个对逻辑门的跳变事件进行传播。这意味着仿真过程如果经历若干瞬态,便需要经历若干次仿真传播,且由于门级电路中存在的基本逻辑门类型有十几个,每次仿真传播都需要执行大量的判断工作,尤其对大规模门级电路仿真而言,将会大大增加仿真的时间及复杂度,降低仿真效率。
发明内容
本发明的目的在于提出一种门级电路的仿真方法、系统、存储介质及设备,以解决上述背景技术中提到的问题。
本发明提出一种门级电路的仿真方法,所述方法包括:
读取转译后的有向图文件以获得有向图中各节点的仿真逻辑及门级电路的拓扑结构;
输入初始节点的ID及对所述初始节点进行赋值,根据所述初始节点的ID在所述有向图文件中进行查询以找到初始节点并将值赋给所述初始节点的输入端口以仿真给所述初始节点输入激励信号;
以所述初始节点为仿真起点并根据有向图中各节点的仿真逻辑及门级电路的拓扑结构依序对有向图的各节点进行仿真求解及递归传播,在递归传播过程中,若有向图的任一节点的仿真求解结果发生变化且所述节点为多输入节点则将所述节点调入全局仿真队列以依序等待仿真求解并在仿真求解后将仿真求解结果传递给下一个节点,直至得到最终仿真结果。
根据本发明提出的门级电路的仿真方法,具有以下有益效果:
本发明先读取转译后的有向图文件以获得有向图中各节点的仿真逻辑及门级电路的拓扑结构;再输入初始节点的ID及对所述初始节点进行赋值,根据所述初始节点的ID在所述有向图文件中进行查询以找到初始节点并将值赋给所述初始节点的输入端口以仿真给所述初始节点输入激励信号;在输入激励信号后便执行仿真传播,以所述初始节点为仿真起点并根据有向图中各节点的仿真逻辑及门级电路的拓扑结构依序对有向图的各节点进行仿真求解及递归传播,在递归传播过程中,若有向图的任一节点的仿真求解结果发生变化且所述节点为多输入节点则将所述节点调入全局仿真队列以依序等待仿真求解并在仿真求解后将仿真求解结果传递给下一个节点,直至得到最终仿真结果。
本发明采用了递归传播与事件队列配合调度相结合的方式能够降低仿真时间及仿真复杂度,由于多输入节点不只一个输入端口,各个输入端口可能在不同的时间点会接收到输入值,不即刻将该类节点执行掉而是调入全局仿真队列,能够使得该类节点在全局仿真队列排序等待的过程中,若其它输入端口也接收到输入值,在可以进行求解时,便可以将收到的多个输入值代入进行一次性求解,多次传入只对应一次传出,这样便大大降低了传播规模,减轻了传播算法的负担及复杂度,并加快了仿真效率,也减少了仿真求解出错的概率。
另外,根据本发明提供的门级电路的仿真方法,还可以具有如下附加的技术特征:
进一步地,所述以所述初始节点为仿真起点并根据有向图中各节点的仿真逻辑及门级电路的拓扑结构依序对有向图的各节点进行仿真求解及递归传播,在递归传播过程中,若有向图的任一节点的仿真求解结果发生变化且所述节点为多输入节点则将所述节点调入全局仿真队列以依序等待仿真求解并在仿真求解后将仿真求解结果传递给下一个节点的步骤后还包括:
若有向图的任一节点的仿真求解结果没有发生变化则进行传播阻断以使仿真结束并将有向图的上一个仿真结果作为有向图的输出结果。
进一步地,所述输入初始节点的ID及对所述初始节点进行赋值,根据所述初始节点的ID在所述有向图文件中进行查询以找到初始节点并将值赋给所述初始节点的输入端口以仿真给所述初始节点输入激励信号的步骤后还包括:
将所述初始节点调入全局仿真队列;
所述以所述初始节点为仿真起点并根据有向图中各节点的仿真逻辑及门级电路的拓扑结构依序对有向图的各节点进行仿真求解及递归传播,在递归传播过程中,若有向图的任一节点的仿真求解结果发生变化且所述节点为多输入节点则将所述节点调入全局仿真队列以依序等待仿真求解并在仿真求解后将仿真求解结果传递给下一个节点,直至得到最终仿真结果的步骤具体包括:
对所述全局仿真队列进行遍历,依序获取所述全局仿真队列中的一目标节点并对所述目标节点进行仿真求解以得到所述目标节点的输出值;
将所述目标节点调出所述全局仿真队列;
将所述目标节点的输出值与所述目标节点的上一次输出值进行对比分析;
在所述目标节点的输出值与所述目标节点的上一次输出值不相同的情况下将包含多输入端口的所述目标节点的子节点调入所述全局仿真队列以依序等待仿真求解并在仿真求解后将仿真求解结果传递给下一个节点,直至得到最终仿真结果,所述目标节点的输出值为所述目标节点的子节点的一输入值。
进一步地,所述将所述目标节点的输出值与所述目标节点的上一次输出值进行对比分析的步骤后还包括:
在所述目标节点的输出值与所述目标节点的上一次输出值不相同的情况下将包含单输入端口的所述目标节点的子节点进行仿真求解并将仿真求解结果向下一个节点传播,直至得到最终仿真结果。
进一步地,所述在所述目标节点的输出值与所述目标节点的上一次输出值不相同的情况下将包含多输入端口的所述目标节点的子节点调入所述全局仿真队列以依序等待仿真求解并在仿真求解后将仿真求解结果传递给下一个节点的步骤具体包括:
若所述目标节点的输出值与所述目标节点的上一次输出值不相同,则判断所述目标节点的子节点的输入端口是否不止一个;
若所述目标节点的子节点的输入端口不止一个,则将所述目标节点的子节点调入所述全局仿真队列并在所述全局仿真队列中按调入时间顺序进行排序以依序等待仿真求解并在仿真求解后将仿真求解结果传递给下一个节点。
进一步地,所述在所述目标节点的输出值与所述目标节点的上一次输出值不相同的情况下将包含单输入端口的所述目标节点的子节点进行仿真求解并将仿真求解结果向下一个节点传播的步骤具体包括:
若所述目标节点的输出值与所述目标节点的上一次输出值不相同,则判断所述目标节点的子节点的输入端口是否不止一个;
若所述目标节点的子节点的输入端口为一个,则对所述目标节点的子节点进行仿真求解以得到所述目标节点的子节点的输出值并传递给下一个节点。
进一步地,所述读取转译后的有向图文件以获得有向图中各节点的仿真逻辑及门级电路的拓扑结构的步骤具体包括:
读取转译后的有向图文件,所述有向图文件包括第一有向图文件和第二有向图文件,所述第一有向图文件用于存储组合逻辑udp节点及时序逻辑udp节点的仿真真值表与门级关键信息,所述第二有向图文件用于存储有向图中各节点的门级关键信息;
构建第一预设全局字典,对所述第一有向图文件进行遍历以提取组合逻辑udp节点及时序逻辑udp节点的仿真逻辑并存储至第一预设全局字典中;
创建第二预设全局字典,对所述第二有向图文件进行遍历以分析获取门级电路的拓扑结构并存储至第二预设全局字典中。
本发明还提出一种门级电路的转译系统,包括:
读取模块:用于读取转译后的有向图文件以获得有向图中各节点的仿真逻辑及门级电路的拓扑结构;
输入模块:用于输入初始节点的ID及对所述初始节点进行赋值,根据所述初始节点的ID在所述有向图文件中进行查询以找到初始节点并将值赋给所述初始节点的输入端口以仿真给所述初始节点输入激励信号;
传播模块:用于以所述初始节点为仿真起点并根据有向图中各节点的仿真逻辑及门级电路的拓扑结构依序对有向图的各节点进行仿真求解及递归传播,在递归传播过程中,若有向图的任一节点的仿真求解结果发生变化且所述节点为多输入节点则将所述节点调入全局仿真队列以依序等待仿真求解并在仿真求解后将仿真求解结果传递给下一个节点,直至得到最终仿真结果。
本发明还提出一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的门级电路的仿真方法。
本发明还提出一种门级电路的仿真设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述的门级电路的仿真方法。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明第一实施例门级电路的仿真方法的流程图;
图2为本发明第二实施例门级电路的转译方法的流程图;
图3为本发明第三实施例门级电路的仿真系统的系统框图;
图4为本发明第四实施例门级电路的仿真设备的结构示意图。
具体实施方式
为使本发明的目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。附图中给出了本发明的若干实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容更加透彻全面。
实施例1
请参阅图1,本发明的第一实施例提出一种门级电路的仿真方法,包括步骤S101~S103。
S101,读取转译后的有向图文件以获得有向图中各节点的仿真逻辑及门级电路的拓扑结构。
需要说明的是,对于门级电路拓扑结构而言:转译后的有向图文件中已经能够将电路表征为有向图,每一个图节点代表着一个门,每一个门有唯一的ID属性用于查找其在有向图当中位置,所以获取门级电路的拓扑结构只需要将转译文件表征的有向图读取即可。
具体的,所述读取转译后的有向图文件以获得有向图中各节点的仿真逻辑及门级电路的拓扑结构的步骤具体包括:
读取转译后的有向图文件,所述有向图文件包括第一有向图文件和第二有向图文件,所述第一有向图文件用于存储组合逻辑udp节点及时序逻辑udp节点的仿真真值表与门级关键信息,所述第二有向图文件用于存储有向图中各节点的门级关键信息;
构建第一预设全局字典,对所述第一有向图文件进行遍历以提取组合逻辑udp节点及时序逻辑udp节点的仿真逻辑并存储至第一预设全局字典中,其中,第一预设全局字典可以为全局字典GUDPDefMap;
创建第二预设全局字典,对所述第二有向图文件进行遍历以分析获取门级电路的拓扑结构并存储至第二预设全局字典中。
进一步的,所述对所述第一有向图文件进行遍历以提取组合逻辑udp节点及时序逻辑udp节点的仿真逻辑并存储至第一预设全局字典中的步骤具体包括:
对所述第一有向图文件进行遍历并依序获取所述第一有向图文件中的各udp节点的仿真真值表与门级关键信息,若获取的udp节点为第一udp节点;
从所述第一udp节点的仿真真值表与门级关键信息提取包括但不限于初始值、真值表的列数table_rows和输入值input_amount以存储至所述第一预设全局字典值为目标udp节点ID的属性字典中;
在所述第一udp节点的属性字典中新增COMBFLAG组合标志位属性并判断所述目标udp节点的初始值是否为空;
若所述第一udp节点的初始值为空,则判定所述第一udp节点为时序逻辑udp节点,并将所述第一udp节点的组合标志位置为FALSE;
若所述第一udp节点不为空,则判定所述第一udp节点为组合逻辑udp节点,并将所述第一udp节点的组合标志位置为True。
需要说明的是,上述步骤能够组合逻辑udp节点和时序逻辑udp节点进行识判断并将其信息在第一预设全局字典进行存储设置以备仿真调用,且通过设置标志位来进行组合逻辑udp节点和时序逻辑udp节点的标记区分。
进一步的,所述对所述第二有向图文件进行遍历以分析获取门级电路的拓扑结构并存储至第二预设全局字典中的步骤具体包括:
对所述第二有向图文件进行遍历以依序获取所述第二有向图文件中的各节点的门级关键信息,若获取的节点为第一节点;
从所述第一节点的门级关键信息中提取包括但不限于节点的类型、节点的输出位宽和节点的输入列表以存储至第二预设全局字典,其中,所述节点的输入列表中存储有节点的输入ID;
在所述第二预设全局字典中创建所述第一节点的输出列表outputlist;
对所述第二有向图文件进行遍历查询以获取输入列表中包含第一节点ID的节点,并将输入列表中包含第一节点ID的节点的ID加入第一节点的输出列表outputlist中。
需要说明的是,上述步骤能够将各节点的信息及各节点之间的关联关系进行提取并在第二预设全局字典进行存储设置以备仿真调用。
S102,输入初始节点的ID及对所述初始节点进行赋值,根据所述初始节点的ID在所述有向图文件中进行查询以找到初始节点并将值赋给所述初始节点的输入端口以仿真给所述初始节点输入激励信号。
其中,所述输入初始节点的ID及对所述初始节点进行赋值,根据所述初始节点的ID在所述有向图文件中进行查询以找到初始节点并将值赋给所述初始节点的输入端口以仿真给所述初始节点输入激励信号的步骤后还包括:
将所述初始节点调入全局仿真队列。
需要说明的是,对于实际门级仿真而言电路输入信号激励来自于外部给定,而对应到本发明当中,将给定激励转化为对有向图当中的初始节点以指定的格式进行赋值,初始节点是单输入节点,指定的赋值格式为:初始节点的ID = 信号值(信号值注意位宽)。
将输入信号激励以指定格式输入,如:ID_A = VALUE;在Gate_Dict信息中查询节点ID为ID_A的节点,如果查询到则将其输入端口设置为值:VALUE,如果未查询到则退出并向用户报错;再将Gate_Dict信息中ID值为ID_A的节点加入全局仿真队列。
S103,以所述初始节点为仿真起点并根据有向图中各节点的仿真逻辑及门级电路的拓扑结构依序对有向图的各节点进行仿真求解及递归传播,在递归传播过程中,若有向图的任一节点的仿真求解结果发生变化且所述节点为多输入节点则将所述节点调入全局仿真队列以依序等待仿真求解并在仿真求解后将仿真求解结果传递给下一个节点,直至得到最终仿真结果。
在递归传播过程中,若有向图的任一节点的仿真求解结果没有发生变化则进行传播阻断以使仿真结束并将有向图的上一个仿真结果作为有向图的输出结果。
需要说明的是,同一时刻内的传播一定是有限的,否则会陷入死循环。对于任意一个门的任意输入端口的输入值,如果得到的输出值和旧值相同,则不继续进行传播,以避免重复访问节点,避免陷入无意义的循环传播。
进一步的,所述以所述初始节点为仿真起点并根据有向图中各节点的仿真逻辑及门级电路的拓扑结构依序对有向图的各节点进行仿真求解及递归传播,在递归传播过程中,若有向图的任一节点的仿真求解结果发生变化且所述节点为多输入节点则将所述节点调入全局仿真队列以依序等待仿真求解并在仿真求解后将仿真求解结果传递给下一个节点,直至得到最终仿真结果的步骤具体包括:
对所述全局仿真队列进行遍历,依序获取所述全局仿真队列中的一目标节点并对所述目标节点进行仿真求解以得到所述目标节点的输出值;
将所述目标节点调出所述全局仿真队列;
将所述目标节点的输出值与所述目标节点的上一次输出值进行对比分析;
若所述目标节点的子节点为多输入节点,则在所述目标节点的输出值与所述目标节点的上一次输出值不相同的情况下将包含多输入端口的所述目标节点的子节点调入所述全局仿真队列以依序等待仿真求解并在仿真求解后将仿真求解结果传递给下一个节点,直至得到最终仿真结果,所述目标节点的输出值为所述目标节点的子节点的一输入值。
其中,所述在所述目标节点的输出值与所述目标节点的上一次输出值不相同的情况下将包含多输入端口的所述目标节点的子节点调入所述全局仿真队列以依序等待仿真求解并在仿真求解后将仿真求解结果传递给下一个节点的步骤具体包括:
若所述目标节点的输出值与所述目标节点的上一次输出值不相同,则判断所述目标节点的子节点的输入端口是否不止一个;
若所述目标节点的子节点的输入端口不止一个,则将所述目标节点的子节点调入所述全局仿真队列并在所述全局仿真队列中按调入时间顺序进行排序以依序等待仿真求解并在仿真求解后将仿真求解结果传递给下一个节点。
进一步的,若所述目标节点的子节点为单输入节点,则在所述目标节点的输出值与所述目标节点的上一次输出值不相同的情况下将包含单输入端口的所述目标节点的子节点进行仿真求解并将仿真求解结果向下一个节点传播,直至得到最终仿真结果。
其中,所述在所述目标节点的输出值与所述目标节点的上一次输出值不相同的情况下将包含单输入端口的所述目标节点的子节点进行仿真求解并将仿真求解结果向下一个节点传播的步骤具体包括:
若所述目标节点的输出值与所述目标节点的上一次输出值不相同,则判断所述目标节点的子节点的输入端口是否不止一个;
若所述目标节点的子节点的输入端口为一个,则对所述目标节点的子节点进行仿真求解以得到所述目标节点的子节点的输出值并传递给下一个节点。
需要说明的是,本发明采用了递归传播,由父节点向子节点依次传播,且在递归传播的过程中结合了事件队列配合调度的方式来降低仿真时间及仿真复杂度,在递归传播的过程中还使用了传播阻断机制,以避免重复访问节点。
一次仿真传播从一个节点开始,向自己的输出节点传播,并根据输出节点的不同特性,选择递归传播或者调度(schedule)到全局仿真队列中,一次仿真传播过程中,每个节点只能出现在全局仿真队列中一次,被执行掉后方可出现下一次(即下次仿真传播被再次调度进全局仿真队列)。
而输出节点的不同特性有两种:多输入或单输入,多输入节点在求值时需要获取所有输入端口的值,传统的输入值的获取方法需要向父节点进行回溯,这样会使得传播算法更加复杂,而本发明在收到节点的输入值时会将值自行存储以待仿真求解,其中,父节点的输出值为子节点的一个输入值。
且本发明实施例在对多输入节点进行求解时,会先将多输入节点调入全局仿真队列以等待仿真求解,并对该节点的输入值进行自动存储直至在全局仿真队列中轮到对该节点求解时再将其所有输入值代入进行仿真求解,并在求解后将该节点调出全局仿真队列。
综上,本发明的门级电路的仿真方法:先读取转译后的有向图文件以获得有向图中各节点的仿真逻辑及门级电路的拓扑结构;再输入初始节点的ID及对所述初始节点进行赋值,根据所述初始节点的ID在所述有向图文件中进行查询以找到初始节点并将值赋给所述初始节点的输入端口以仿真给所述初始节点输入激励信号;在输入激励信号后便执行仿真传播,以所述初始节点为仿真起点并根据有向图中各节点的仿真逻辑及门级电路的拓扑结构依序对有向图的各节点进行仿真求解及递归传播,在递归传播过程中,若有向图的任一节点的仿真求解结果发生变化且所述节点为多输入节点则将所述节点调入全局仿真队列以依序等待仿真求解并在仿真求解后将仿真求解结果传递给下一个节点,直至得到最终仿真结果。
本发明采用了递归传播与事件队列配合调度相结合的方式能够降低仿真时间及仿真复杂度,由于多输入节点不只一个输入端口,各个输入端口可能在不同的时间点会接收到输入值,不即刻将该类节点执行掉而是调入全局仿真队列,能够使得该类节点在全局仿真队列排序等待的过程中,若其它输入端口也接收到输入值,在可以进行求解时,便可以将收到的多个输入值代入进行一次性求解,多次传入只对应一次传出,这样便减少仿真传播次数,减轻了传播算法的负担及复杂度,并加快了仿真效率,也减少了仿真求解出错的概率。
实施例2
如图2所示,本实施例为门级电路的转译方法,用于将门级网表文件转译得到第一实施例中的有向图文件,包括步骤S201~S205。
S201,根据目标门级网表文件与工艺库文件生成VVP文件,所述目标门级网表为用于描述各电路器件之间连接关系的门级语义的文本文件,所述工艺库文件中包含了组成各电路器件的逻辑元件,所述VVP文件为用于描述各节点的逻辑元件之间连接关系的门级语义的文本文件。
需要说明的是,本发明实施例中的VVP文件可以通过Icarus Verilog仿真器生成,Icarus Verilog仿真器在仿真电路文件时便会产生中间文件VVP文件,VVP文件的格式为test.vvp。
在根据目标门级网表文件与工艺库文件生成VVP文件的步骤前需要先选取的目标门级网表文件及工艺库文件,选取的目标门级网表文件的格式可以为:test.v(.v后缀为Verilog文件),选取的工艺库文件的格式可以为:smic_13.v。在使用Icarus Verilog仿真器生成VVP文件时,输入如下命令“iverilog -o test.vvptest.v smic_13.v”便可以生成VVP文件test.vvp。
S202,从命令行输入VVP文件名及所述目标门级网表文件的顶层模块名并将所述顶层模块名设置为全局变量。
其中,顶层模块名如:top_module。
S203,获取预设逻辑关键字表,根据所述全局变量及所述预设逻辑关键字表中的各逻辑关键字的索引对所述VVP文件进行解析并提取与各所述逻辑关键字对应的节点的门级关键信息。
需要说明的是,工艺库特定的工艺器件无非是由以下几种基本逻辑器件组成:与(AND)或(OR)非(NOT)、用户自定义原语udp、路径延时及器件延时、延时单位等,因此只需要在VVP文件当中依序查找并提取这些逻辑器件的关键门级信息(门级语言)进行提取即可,而逻辑器件在VVP文件中由相应的逻辑关键字进行体现,便可借由这些逻辑关键字来查找提取关键门级信息,本发明实施例根据需要涉及到的逻辑关键字预先制作一个逻辑关键字表,再对应预设逻辑关键字表在VVP文件中进行对应查找提取信息,下表1为预设逻辑关键字表。
表1
进一步的,所述根据所述全局变量及所述预设逻辑关键字表中的各逻辑关键字的索引对所述VVP文件进行解析并提取与各所述逻辑关键字对应的节点的门级关键信息的步骤具体包括:
从所述VVP文件的文件头开始依次读取所述VVP文件中的每一行信息并查询行信息中是否存在顶层模块;
若不存在顶层模块,则判断所述VVP文件中的行信息中是否存在组合逻辑udp关键字或时序逻辑udp关键字;
若存在所述组合逻辑udp关键字或所述时序逻辑udp关键字,则对组合逻辑udp或时序逻辑udp的相关段进行解析,并对与所述组合逻辑udp关键字或所述时序逻辑udp关键字对应的节点的真值表及门级关键信息进行提取及存储至第一全局字典udp_definitions中。
具体的,若出现.udp关键字,则从出现.udp关键字的行(开始行)开始进行解析,并解析至分号结尾行(结束行)。若解析出的节点信息中包含具体的关键字:.udp/comb(即组合逻辑udp关键字)或.udp/sequ(即时序逻辑udp关键字),则将解析出的节点信息对应存储至第一全局字典udp_definitions中,解析出的节点信息还包含udp节点的实例名(即节点ID,如UDP_udp_mux2)、udp节点的类型名(如udp_mux2)、udp节点的初始值(0表示信号0,1表示信号1,2表示信号X,3表示无信号值)。
需要说明的是,由于udp节点定义多种多样,其逻辑真值表较为复杂难以进行处理,用户自定义udp门仿真实现难度大,无法保证逻辑正确,因此,大部分现有仿真器无法支持门级仿真中出现用户自定义原语的情况。而本发明实施例创建的第一全局字典udp_definitions能够存储用户自定义节点的仿真逻辑。
仿真逻辑是保证后续仿真正确性的关键,由于门级网表多为工艺库器件连接而成,而不同的工艺库虽然器件不同但是底层实现逻辑都是基于主要逻辑门(例如与门、或门、异或门)等及一些用户自定义原语(UDP)门。主要逻辑门可以查阅相关数字电路行业标准即可得出,没必要放入转译结果文件中,这样可以节省转译结果文件的存储压力。
进一步的,所述从所述VVP文件的文件头开始依次读取所述VVP文件中的每一行信息并查询行信息中是否存在顶层模块的步骤后还包括:
若存在顶层模块,则对所述VVP文件中顶层模块后面的所有行信息进行解析并根据所述预设逻辑关键字表中的其它逻辑关键字对与所述其它逻辑关键字对应的门级关键信息进行提取及存储至全局列表Gate_Statements中,所述其它逻辑关键字为所述预设逻辑关键字表中除组合逻辑udp关键字及时序逻辑udp关键字以外的逻辑关键字。
S204,根据与各所述逻辑关键字对应的重定义规则对与各所述逻辑关键字对应的节点的门级关键信息进行门级语义的重定义以得到重定义后的各节点的门级关键信息。
进一步的,所述根据与各所述逻辑关键字对应的重定义规则对与各所述逻辑关键字对应的节点的门级关键信息进行门级语义的重定义以得到重定义后的各节点的门级关键信息的步骤具体包括:
创建第二全局字典Gate_Dict;
对所述全局列表Gate_Statements进行遍历并依序获取所述全局列表Gate_Statements中各节点的门级关键信息的字符串;
对各节点的门级关键信息的字符串进行解析并提取各节点的门级关键信息的关键字;
将各节点的门级关键信息的关键字对照所述预设逻辑关键字表进行匹配查询以在所述预设逻辑关键字表中找到对应的逻辑关键字并根据所述逻辑关键字确定各节点的类型及各节点的门级关键信息的重定义规则;
根据各节点的门级关键信息的重定义规则及各节点的门级关键信息设置第二全局字典Gate_Dict的键及值。
进一步的,所述根据各节点的门级关键信息的重定义规则及各节点的门级关键信息设置第二全局字典Gate_Dict的键及值的步骤具体包括:
若所述节点为基本逻辑门节点,则按照四输入一输出的门级定义规则及所述节点的门级关键信息对所述第二全局字典Gate_Dict的键及值进行设定。
进一步的,所述按照四输入一输出的门级定义规则及所述节点的门级关键信息对所述第二全局字典Gate_Dict的键及值进行设定的步骤具体包括:
从所述节点的门级关键信息中提取节点ID、节点的类型名、节点的输入ID、节点的输出ID和节点的输出位宽;
将所述节点ID存入至所述第二全局字典Gate_Dict的键中;
将所述节点的类型名存入至所述第二全局字典Gate_Dict的值的类型列表中;
将所述节点的输入ID和常数值依次存入至所述第二全局字典Gate_Dict的值的四输入列表中;
将所述节点的输出ID存入至所述第二全局字典Gate_Dict的值的输出列表中;
将所述节点的输出位宽存入至所述第二全局字典Gate_Dict的值的位宽列表中。
需要说明的是,所述VVP文件包含的节点类型至少有:信号类型节点、逻辑仿真节点和门级信号连接节点,其中,所述逻辑仿真节点又具体包含基本逻辑门节点与udp节点(用户自定义节点)。
所述基本逻辑门节点是数字电路中的常用逻辑门,所有类型如表2所示,一般基本逻辑门节点多为二输入一输出(如与、或、非门),少部分基本逻辑门节点为三输入一输出(如cmos),而在门级仿真过程中可能需要加入一些其它的功能,如在与门的门级仿真过程中需要加入调试接口和逻辑锁功能,而二输入的与门结构便无法满足仿真要求,因此VVP文件对于一些基本逻辑门节点存在门级电路语义描述不足的问题,需要对基本逻辑门节点的门级关键信息进行定义以满足实际仿真需求。本发明实施例为了保证输入输出的拓扑结构与门结构一致,将基本逻辑门节点统一定义为四输入单输出。而其中没有用到的输入门则引入不同的常量值,使其生成的逻辑表与原有二输入逻辑真值表的含义相同。
N_FUNC_AND | N_FUNC_OR | N_FUNC_NAND |
N_FUNC_NOR | N_FUNC_XNOR | N_FUNC_XOR |
N_FUNC_NOT | N_FUNC_NOTIF0 | N_FUNC_NOTIF1 |
N_FUNC_BUFIF0 | N_FUNC_BUFIF1 | N_FUNC_CMOS |
N_FUNC_NMOS | N_FUNC_PMOS | N_FUNC_RCMOS |
N_FUNC_RNMOS | N_FUNC_RPMOS | …… |
表2
门级网表文件是RTL文件经过综合之后生成的用于表征底层电路连接关系的文件,由于综合软件无法对udp语法进行综合,因此,从RTL文件综合生成的门级网表文件一般不含有用户自定义原语UDP,而在进行门级仿真中工艺库器件内部往往会使用udp节点,udp大致分为两类组合udp与时序udp。由于udp节点的处理较为复杂,大部分现有仿真器无法支持门级仿真中出现udp的情况,主要有两大难点:1、udp节点定义多种多样,逻辑真值表较为复杂难以进行处理;2、仿真用户自定义udp门实现难度大,无法保证组合逻辑及时序逻辑正确。
本发明实施例参考VVP文件中对udp节点的语义描述及实际仿真情况,对udp节点进行了如下定义来解决上述难点:多输入单输出、输入位宽均为1bit、输入端口数量为udp真值表列数-1,真值表最右边一列为输入匹配后的输出结果值。定义方式如下:
若所述节点为udp节点,则按照多输入单输出的门级定义规则及所述节点的门级关键信息对所述第二全局字典Gate_Dict的键及值进行设定,具体步骤包括:
从所述节点的门级关键信息中提取节点ID、节点的类型名、节点的输入值、节点的输出值和节点的真值表列数;
将所述节点ID存入至所述第二全局字典Gate_Dict的键中;
将所述节点的类型名存入至所述第二全局字典Gate_Dict的值的类型列表中;
根据所述节点的真值表列数构建所述第二全局字典Gate_Dict的值的输入列表,并将所述节点的输入值依次存入至所述第二全局字典Gate_Dict的值的输入列表中,其中,所述第二全局字典Gate_Dict的值的输入列表的列数为所述节点的真值表列数减1;
将所述节点的输出值存入至所述第二全局字典Gate_Dict的值的输出列表中;
将1bit存入至对所述第二全局字典Gate_Dict的值的输入位宽列表中。
所述信号类型节点主要起到提供指定信号的作用,可以给予电路初始值。该类型的节点主要有以下三种:N_VAR、N_FUNC_BUFT和N_FUNC_BUFZ。信号类型节点主要为单输入单输出,通常门级电路中需要常值为X的信号则用到N_VAR,其它值的信号则用到N_FUNC_BUFT与N_FUNC_BUFZ,其中,N_FUNC_BUFT可以传递信号的强度信息,N_FUNC_BUFZ 忽略信号的强度信息。
除了上面介绍的具有仿真功能的节点之外,本发明中需要重定义的节点类型还有一种表征门级连接关系的节点。此类型节点能够起到各个节点信号连接及选择的作用,包括信号位选节点(N_VPART_SEL)与信号合并节点(N_CONCAT8、N_CONCAT)。
信号合并节点主要起到多个信号值的合并作用,该节点为四输入单输出节点,可以将四个输入上的多比特信号进行合并,其中,N_CONCAT8信号合并节点会传递信号强度信息,N_CONCAT信号合并节点会忽略强度信息。信号位选节点为单输入单输出节点,根据给定的位选起始下标和输出位宽来确定输出信号。
定义方式为:若所述节点为信号合并节点,则从所述节点的门级关键信息中提取节点ID、节点的每个输入信号的输出位宽和节点的输入信号值;
将所述节点ID存入至所述第二全局字典Gate_Dict的键中;
将所述节点的输入信号值依次存入至所述第二全局字典Gate_Dict的值的输入列表中;
对所述节点的输入信号值依序进行合并以得到节点的输出信号值,并将所述节点的输出信号值存入至所述第二全局字典Gate_Dict的值的输出列表中;
将所述节点的每个输入信号的输出位宽依次存入至对所述第二全局字典Gate_Dict的值的位宽列表中。
需要说明的是,创建的第二全局字典Gate_Dict存储了重定义后的门级电路的拓扑结构,能够保证后续仿真的因果顺序。重定义后的门级电路的拓扑结构与原门级网表门级电路的拓扑结构等价,且有针对性的解决一些原电路语义描述不足的问题,能够更好的满足实际仿真需求。
S205,对重定义后的各节点的门级关键信息以预设通用格式进行转译以得到有向图文件。
其中,所述对重定义后的各节点的门级关键信息以预设通用格式进行转译以得到有向图文件的步骤包括:
对所述第一全局字典udp_definitions进行遍历并将所述第一全局字典udp_definitions中的信息进行JSON格式的转换以得到第一有向图文件;对所述第二全局字典Gate_Dict进行遍历并将所述第二全局字典Gate_Dict中的信息进行JSON格式的转换以得到第二有向图文件。对所述第一全局字典udp_definitions与所述第二全局字典Gate_Dict之间的转译顺序不进行限制。预设通用格式还可以是Protocol Buffers格式。
需要说明的是,通过前期对VVP文件中的每个节点的门级关键信息进行处理使得每个门都具有一个唯一的ID,因此其对应的输入输出端口也都会拥有一个唯一的ID。由于门级网表文件本身就含有连接关系,因此通过每个门的ID及其输入输出ID便可以组成一个有向图。该有向图中的每个节点相当于一个逻辑门,且此门并非单纯的数字电路的门而是前面重定义优化后的门。
转译结果文件(第一有向图文件和第二有向图文件)中已经能够将电路表征为有向图,每一个图节点代表着一个门。每一个门有唯一的ID属性用于查找其在有向图当中的位置。而转译成JSON 文件是由于 JSON 文件的语法非常易于使用,而且轻量,能够以更快的方式执行响应,并且能够清晰地表示结构关系。JSON 作为一种更好的互联网传输结构化文件格式,已经被各类联网或者单机软件使用,具有极强的通用性。
本发明先将门级网表进行结构化表示以得到VVP 文件,再对VVP 文件进行语义分析,并且获取文件内所包含的节点、信号、模块信息、UDP 定义内容、线程信息以及过程块内容等信息,并对一些类型的节点(如信号类型节点、逻辑仿真节点及门级信号连接节点)的信息进行重定义,最终输出重定义后的语义对等且带有电路中各个节点之间关系的 JSON格式文件。
综上,本发明提供的一种门级电路的转译方法,有益效果在于:本发明先根据目标门级网表文件与工艺库文件生成VVP文件,生成的VVP文件不仅包含了目标门级网表的数据结构还开放了第三方接口接入通用逻辑结构,使得VVP文件能够以通用的文件结构形式输出;再从命令行输入VVP文件名及所述目标门级网表文件的顶层模块名并将所述顶层模块名设置为全局变量,以为关键门级信息的提取做准备;进而,根据所述全局变量及预设逻辑关键字表中的各逻辑关键字的索引对所述VVP文件进行解析以便能够快速的提取与各所述逻辑关键字对应的节点的门级关键信息;进一步的,再根据与各所述逻辑关键字对应的重定义规则对与各节点的门级关键信息进行门级语义的重定义,不仅能够有针对性的解决一些电路语义描述不足的问题,以更好的满足实际仿真需求,且根据对应的重定义规则进行重定义,还增强了重定义过程的规则性及通用性,方便重定义过程的程序化执行;最后对重定义后的各节点的门级关键信息以预设通用格式进行转译以得到有向图文件,得到的有向图文件不仅与门级电路在拓扑结构及电路语义上等价,还能便于二次开发,填补了目前EDA行业缺乏通用数字电路前端转译的不足。
实施例3
请参考图3,本实施例提供一种门级电路的仿真系统,包括:
读取模块:用于读取转译后的有向图文件以获得有向图中各节点的仿真逻辑及门级电路的拓扑结构。
所述读取模块还用于:
读取转译后的有向图文件,所述有向图文件包括第一有向图文件和第二有向图文件;
构建第一预设全局字典,对所述第一有向图文件进行遍历以提取组合逻辑udp节点及时序逻辑udp节点的仿真逻辑并存储至第一预设全局字典中,其中,第一预设全局字典可以为全局字典GUDPDefMap;
创建第二预设全局字典,对所述第二有向图文件进行遍历以分析获取门级电路的拓扑结构并存储至第二预设全局字典中。
所述读取模块还用于:
对所述第一有向图文件进行遍历并依序获取所述第一有向图文件中的各udp节点的仿真真值表与门级关键信息,若获取的udp节点为第一udp节点;
从所述第一udp节点的仿真真值表与门级关键信息提取包括但不限于初始值、真值表的列数table_rows和输入值input_amount以存储至所述第一预设全局字典值为目标udp节点ID的属性字典中;
在所述第一udp节点的属性字典中新增COMBFLAG组合标志位属性并判断所述目标udp节点的初始值是否为空;
若所述第一udp节点的初始值为空,则判定所述第一udp节点为时序逻辑udp节点,并将所述第一udp节点的组合标志位置为FALSE;
若所述第一udp节点不为空,则判定所述第一udp节点为组合逻辑udp节点,并将所述第一udp节点的组合标志位置为True。
所述读取模块还用于:
对所述第二有向图文件进行遍历以依序获取所述第二有向图文件中的各节点的门级关键信息,若获取的节点为第一节点;
从所述第一节点的门级关键信息中提取包括但不限于节点的类型、节点的输出位宽和节点的输入列表以存储至第二预设全局字典,其中,所述节点的输入列表中存储有节点的输入ID;
在所述第二预设全局字典中创建所述第一节点的输出列表outputlist;
对所述第二有向图文件进行遍历查询以获取输入列表中包含第一节点ID的节点,并将输入列表中包含第一节点ID的节点的ID加入第一节点的输出列表outputlist中。
输入模块:用于输入初始节点的ID及对所述初始节点进行赋值,根据所述初始节点的ID在所述有向图文件中进行查询以找到初始节点并将值赋给所述初始节点的输入端口以仿真给所述初始节点输入激励信号。
所述输入模块还用于:
将所述初始节点调入全局仿真队列。
传播模块:用于以所述初始节点为仿真起点并根据有向图中各节点的仿真逻辑及门级电路的拓扑结构依序对有向图的各节点进行仿真求解及递归传播,在递归传播过程中,若有向图的任一节点的仿真求解结果发生变化且所述节点为多输入节点则将所述节点调入全局仿真队列以依序等待仿真求解并在仿真求解后将仿真求解结果传递给下一个节点,直至得到最终仿真结果。
所述传播模块还用于:在递归传播过程中,若有向图的任一节点的仿真求解结果没有发生变化则进行传播阻断以使仿真结束并将有向图的上一个仿真结果作为有向图的输出结果。
所述传播模块还用于:
对所述全局仿真队列进行遍历,依序获取所述全局仿真队列中的一目标节点并对所述目标节点进行仿真求解以得到所述目标节点的输出值;
将所述目标节点调出所述全局仿真队列;
将所述目标节点的输出值与所述目标节点的上一次输出值进行对比分析;
若所述目标节点的子节点为多输入节点,则在所述目标节点的输出值与所述目标节点的上一次输出值不相同的情况下将包含多输入端口的所述目标节点的子节点调入所述全局仿真队列以依序等待仿真求解并在仿真求解后将仿真求解结果传递给下一个节点,直至得到最终仿真结果,所述目标节点的输出值为所述目标节点的子节点的一输入值。
所述传播模块还用于:
若所述目标节点的输出值与所述目标节点的上一次输出值不相同,则判断所述目标节点的子节点的输入端口是否不止一个;
若所述目标节点的子节点的输入端口不止一个,则将所述目标节点的子节点调入所述全局仿真队列并在所述全局仿真队列中按调入时间顺序进行排序以依序等待仿真求解并在仿真求解后将仿真求解结果传递给下一个节点。
若所述目标节点的子节点为单输入节点,则在所述目标节点的输出值与所述目标节点的上一次输出值不相同的情况下将包含单输入端口的所述目标节点的子节点进行仿真求解并将仿真求解结果向下一个节点传播,直至得到最终仿真结果。
所述传播模块还用于:
若所述目标节点的输出值与所述目标节点的上一次输出值不相同,则判断所述目标节点的子节点的输入端口是否不止一个;
若所述目标节点的子节点的输入端口为一个,则对所述目标节点的子节点进行仿真求解以得到所述目标节点的子节点的输出值并传递给下一个节点。
实施例4
请参考图4,本发明还提出一种门级电路的仿真设备,所示为本发明第五实施例当中的门级电路的仿真设备,包括存储器20、处理器10以及存储在存储器上并可在处理器上运行的计算机程序30,所述处理器10执行所述计算机程序30时实现如上述的门级电路的仿真方法。
其中,所述门级电路的仿真设备具体可以为计算机、服务器、上位机等,处理器10在一些实施例中可以是中央处理器(Central Processing Unit, CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器20中存储的程序代码或处理数据,例如执行访问限制程序等。
其中,存储器20至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器20在一些实施例中可以是门级电路的仿真设备的内部存储单元,例如该门级电路的仿真设备的硬盘。存储器20在另一些实施例中也可以是门级电路的仿真设备的外部存储装置,例如门级电路的仿真设备上配备的插接式硬盘,智能存储卡(Smart Media Card, SMC),安全数字(Secure Digital, SD)卡,闪存卡(Flash Card)等。进一步地,存储器20还可以既包括门级电路的仿真设备的内部存储单元也包括外部存储装置。存储器20不仅可以用于存储安装于门级电路的仿真设备的应用软件及各类数据,还可以用于暂时地存储已经输出或者将要输出的数据。
需要指出的是,图4示出的结构并不构成对门级电路的仿真设备的限定,在其它实施例当中,该门级电路的仿真设备可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
本发明实施例还提出一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述的门级电路的仿真方法。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明的保护范围应以所附权利要求为准。
Claims (10)
1.一种门级电路的仿真方法,其特征在于,所述方法包括:
读取转译后的有向图文件以获得有向图中各节点的仿真逻辑及门级电路的拓扑结构;
输入初始节点的ID及对所述初始节点进行赋值,根据所述初始节点的ID在所述有向图文件中进行查询以找到初始节点并将值赋给所述初始节点的输入端口以仿真给所述初始节点输入激励信号;
以所述初始节点为仿真起点并根据有向图中各节点的仿真逻辑及门级电路的拓扑结构依序对有向图的各节点进行仿真求解及递归传播,在递归传播过程中,若有向图的任一节点的仿真求解结果发生变化且所述节点为多输入节点则将所述节点调入全局仿真队列以依序等待仿真求解并在仿真求解后将仿真求解结果传递给下一个节点,直至得到最终仿真结果,具体为:
对所述全局仿真队列进行遍历,依序获取所述全局仿真队列中的一目标节点并对所述目标节点进行仿真求解以得到所述目标节点的输出值;
将所述目标节点调出所述全局仿真队列;
将所述目标节点的输出值与所述目标节点的上一次输出值进行对比分析;
若所述目标节点的子节点为多输入节点,则在所述目标节点的输出值与所述目标节点的上一次输出值不相同的情况下将包含多输入端口的所述目标节点的子节点调入所述全局仿真队列以依序等待仿真求解并在仿真求解后将仿真求解结果传递给下一个节点,直至得到最终仿真结果,所述目标节点的输出值为所述目标节点的子节点的一输入值。
2.根据权利要求1所述的门级电路的仿真方法,其特征在于,所述以所述初始节点为仿真起点并根据有向图中各节点的仿真逻辑及门级电路的拓扑结构依序对有向图的各节点进行仿真求解及递归传播,在递归传播过程中,若有向图的任一节点的仿真求解结果发生变化且所述节点为多输入节点则将所述节点调入全局仿真队列以依序等待仿真求解并在仿真求解后将仿真求解结果传递给下一个节点的步骤后还包括:
若有向图的任一节点的仿真求解结果没有发生变化则进行传播阻断以使仿真结束并将有向图的上一个仿真结果作为有向图的输出结果。
3.根据权利要求1所述的门级电路的仿真方法,其特征在于,所述输入初始节点的ID及对所述初始节点进行赋值,根据所述初始节点的ID在所述有向图文件中进行查询以找到初始节点并将值赋给所述初始节点的输入端口以仿真给所述初始节点输入激励信号的步骤后还包括:
将所述初始节点调入全局仿真队列。
4.根据权利要求1所述的门级电路的仿真方法,其特征在于,所述将所述目标节点的输出值与所述目标节点的上一次输出值进行对比分析的步骤后还包括:
在所述目标节点的输出值与所述目标节点的上一次输出值不相同的情况下将包含单输入端口的所述目标节点的子节点进行仿真求解并将仿真求解结果向下一个节点传播,直至得到最终仿真结果。
5.根据权利要求1所述的门级电路的仿真方法,其特征在于,所述在所述目标节点的输出值与所述目标节点的上一次输出值不相同的情况下将包含多输入端口的所述目标节点的子节点调入所述全局仿真队列以依序等待仿真求解并在仿真求解后将仿真求解结果传递给下一个节点的步骤具体包括:
若所述目标节点的输出值与所述目标节点的上一次输出值不相同,则判断所述目标节点的子节点的输入端口是否不止一个;
若所述目标节点的子节点的输入端口不止一个,则将所述目标节点的子节点调入所述全局仿真队列并在所述全局仿真队列中按调入时间顺序进行排序以依序等待仿真求解并在仿真求解后将仿真求解结果传递给下一个节点。
6.根据权利要求1所述的门级电路的仿真方法,其特征在于,所述在所述目标节点的输出值与所述目标节点的上一次输出值不相同的情况下将包含单输入端口的所述目标节点的子节点进行仿真求解并将仿真求解结果向下一个节点传播的步骤具体包括:
若所述目标节点的输出值与所述目标节点的上一次输出值不相同,则判断所述目标节点的子节点的输入端口是否不止一个;
若所述目标节点的子节点的输入端口为一个,则对所述目标节点的子节点进行仿真求解以得到所述目标节点的子节点的输出值并传递给下一个节点。
7.根据权利要求1所述的门级电路的仿真方法,其特征在于,所述读取转译后的有向图文件以获得有向图中各节点的仿真逻辑及门级电路的拓扑结构的步骤具体包括:
读取转译后的有向图文件,所述有向图文件包括第一有向图文件和第二有向图文件,所述第一有向图文件用于存储组合逻辑udp节点及时序逻辑udp节点的仿真真值表与门级关键信息,所述第二有向图文件用于存储有向图中各节点的门级关键信息;
构建第一预设全局字典,对所述第一有向图文件进行遍历以提取组合逻辑udp节点及时序逻辑udp节点的仿真逻辑并存储至第一预设全局字典中;
创建第二预设全局字典,对所述第二有向图文件进行遍历以分析获取门级电路的拓扑结构并存储至第二预设全局字典中。
8.一种门级电路的转译系统,其特征在于,包括:
读取模块:用于读取转译后的有向图文件以获得有向图中各节点的仿真逻辑及门级电路的拓扑结构;
输入模块:用于输入初始节点的ID及对所述初始节点进行赋值,根据所述初始节点的ID在所述有向图文件中进行查询以找到初始节点并将值赋给所述初始节点的输入端口以仿真给所述初始节点输入激励信号;
传播模块:用于以所述初始节点为仿真起点并根据有向图中各节点的仿真逻辑及门级电路的拓扑结构依序对有向图的各节点进行仿真求解及递归传播,在递归传播过程中,若有向图的任一节点的仿真求解结果发生变化且所述节点为多输入节点则将所述节点调入全局仿真队列以依序等待仿真求解并在仿真求解后将仿真求解结果传递给下一个节点,直至得到最终仿真结果;
所述传播模块还用于:对所述全局仿真队列进行遍历,依序获取所述全局仿真队列中的一目标节点并对所述目标节点进行仿真求解以得到所述目标节点的输出值;
将所述目标节点调出所述全局仿真队列;
将所述目标节点的输出值与所述目标节点的上一次输出值进行对比分析;
若所述目标节点的子节点为多输入节点,则在所述目标节点的输出值与所述目标节点的上一次输出值不相同的情况下将包含多输入端口的所述目标节点的子节点调入所述全局仿真队列以依序等待仿真求解并在仿真求解后将仿真求解结果传递给下一个节点,直至得到最终仿真结果,所述目标节点的输出值为所述目标节点的子节点的一输入值。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7任一项所述的门级电路的仿真方法。
10.一种门级电路的仿真设备,其特征在于,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1-7任一项所述的门级电路的仿真方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210559324.3A CN114638184B (zh) | 2022-05-23 | 2022-05-23 | 门级电路的仿真方法、系统、存储介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210559324.3A CN114638184B (zh) | 2022-05-23 | 2022-05-23 | 门级电路的仿真方法、系统、存储介质及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114638184A CN114638184A (zh) | 2022-06-17 |
CN114638184B true CN114638184B (zh) | 2022-08-09 |
Family
ID=81953259
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210559324.3A Active CN114638184B (zh) | 2022-05-23 | 2022-05-23 | 门级电路的仿真方法、系统、存储介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114638184B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114841103B (zh) * | 2022-07-01 | 2022-09-27 | 南昌大学 | 门级电路的并行仿真方法、系统、存储介质及设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113095022A (zh) * | 2021-04-22 | 2021-07-09 | 国微集团(深圳)有限公司 | 门级电路的并行仿真处理方法、计算机可读存储介质 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2812257B2 (ja) * | 1995-07-18 | 1998-10-22 | 日本電気株式会社 | 論理シミュレーションモデル作成方法 |
CN101610275B (zh) * | 2008-06-20 | 2012-04-04 | 华为技术有限公司 | 支持大规模的分布式p2p仿真系统及实现方法和装置 |
US20130290919A1 (en) * | 2012-04-27 | 2013-10-31 | Synopsys, Inc. | Selective execution for partitioned parallel simulations |
CN107256303B (zh) * | 2017-06-06 | 2020-08-11 | 西安电子科技大学 | 快速获取数字门级电路内部节点仿真状态的方法 |
CN107862132B (zh) * | 2017-11-06 | 2020-11-27 | 电子科技大学 | 一种用于电路近似计算的自动化节点删除方法 |
WO2020068988A1 (en) * | 2018-09-25 | 2020-04-02 | Synopsys, Inc. | Hardware simulation systems and methods for identifying state-holding loops and oscillating loops |
US20210049313A1 (en) * | 2019-08-16 | 2021-02-18 | Shanghai Jiao Tong University | Electromagnetic transient simulation method for field programmable logic array |
CN111523116B (zh) * | 2020-03-23 | 2023-05-16 | 南京航空航天大学 | 基于机器学习的混合模式多层级的门级硬件木马检测方法 |
CN111353264A (zh) * | 2020-04-19 | 2020-06-30 | 孙凌宇 | Xdl电路网表的前向电路图构建方法 |
CN114492264B (zh) * | 2022-03-31 | 2022-06-24 | 南昌大学 | 门级电路的转译方法、系统、存储介质及设备 |
-
2022
- 2022-05-23 CN CN202210559324.3A patent/CN114638184B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113095022A (zh) * | 2021-04-22 | 2021-07-09 | 国微集团(深圳)有限公司 | 门级电路的并行仿真处理方法、计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114638184A (zh) | 2022-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10282419B2 (en) | Multi-domain natural language processing architecture | |
US7302417B2 (en) | Method and apparatus for improving efficiency of constraint solving | |
CN114841103B (zh) | 门级电路的并行仿真方法、系统、存储介质及设备 | |
JP2001142937A (ja) | 回路のスケジューリング正当性チェック方法及びスケジュール検証方法 | |
CN114492264B (zh) | 门级电路的转译方法、系统、存储介质及设备 | |
US9244810B2 (en) | Debugger graphical user interface system, method, and computer program product | |
US9015646B2 (en) | System, method, and computer program product for translating a hardware language into a source database | |
JPH09512115A (ja) | ハードウエア記述言語ソースレベル分析のためのアーキテクチャおよび方法ならびにデバッギングシステム | |
US8943448B2 (en) | System, method, and computer program product for providing a debugger using a common hardware database | |
US8838559B1 (en) | Data mining through property checks based upon string pattern determinations | |
US8930861B2 (en) | System, method, and computer program product for constructing a data flow and identifying a construct | |
US6990438B1 (en) | Method and apparatus for observability-based code coverage | |
US10970449B2 (en) | Learning framework for software-hardware model generation and verification | |
US20140310665A1 (en) | System, method, and computer program product for translating a common hardware database into a logic code model | |
CN114742001A (zh) | 一种基于多fpga的系统静态时序分析方法 | |
CN114638184B (zh) | 门级电路的仿真方法、系统、存储介质及设备 | |
US6993740B1 (en) | Methods and arrangements for automatically interconnecting cores in systems-on-chip | |
CN111078276B (zh) | 应用程序的冗余资源处理方法、装置、设备及存储介质 | |
US20070005533A1 (en) | Method and apparatus for improving efficiency of constraint solving | |
Cyre | A requirements sublanguage for automated analysis | |
CN110888876A (zh) | 生成数据库脚本的方法、装置、存储介质及计算机设备 | |
US9021408B2 (en) | System, method, and computer program product for translating a source database into a common hardware database | |
US10380295B1 (en) | Methods, systems, and articles of manufacture for X-behavior verification of an electronic design | |
Han et al. | Simplifying clock gating logic by matching factored forms | |
US8050904B2 (en) | System and method for circuit symbolic timing analysis of circuit designs |
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 |