CN111353264A - Xdl电路网表的前向电路图构建方法 - Google Patents

Xdl电路网表的前向电路图构建方法 Download PDF

Info

Publication number
CN111353264A
CN111353264A CN202010308978.XA CN202010308978A CN111353264A CN 111353264 A CN111353264 A CN 111353264A CN 202010308978 A CN202010308978 A CN 202010308978A CN 111353264 A CN111353264 A CN 111353264A
Authority
CN
China
Prior art keywords
node
directed
hypergraph
hyper
circuit
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.)
Pending
Application number
CN202010308978.XA
Other languages
English (en)
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to CN202010308978.XA priority Critical patent/CN111353264A/zh
Publication of CN111353264A publication Critical patent/CN111353264A/zh
Pending legal-status Critical Current

Links

Images

Abstract

一种XDL电路网表的前向电路图构建方法,采用有向超图对XDL电路网表进行数学建模,将XDL电路线网转换到有向超图并保存为有向超图文件;进而,读取有向超图文件,采用改进的压缩存储格式存储有向超图,构建每个超图结点的前向电路图。采用本发明构建的每个超图结点的前向电路图,可以用于准确分析SRAM型FPGA中LUT结点的单粒子软错误敏感性,提升SRAM型FPGA器件的容错可靠性计算精确度,从而更好地反映出单粒子软错误在SRAM型FPGA器件中的传播特性。

Description

XDL电路网表的前向电路图构建方法
技术领域
本发明涉及一种XDL电路网表的信号前向拓扑关系的数学建模方法,具体涉及一种XDL电路网表的前向电路图构建方法。
背景技术
随着超大规模集成电路(VLSI)的制造工艺从深亚微米工艺时代进入纳米工艺时代,导致现场可编程门阵列(FPGA)的噪声容限日益减少,对高能粒子辐射和噪声干扰愈发敏感,软错误率(SER)呈指数增长。静态随机存取存储器(SRAM)型FPGA逻辑资源和布线资源的配置字约占SRAM单元的95%~99%,极易受到高能粒子辐射和电路内部噪声干扰,不仅FPGA逻辑资源配置字的软错误会改变其电路的逻辑功能,甚至FPGA布线资源配置字的软错误还会改变其电路的结构。
2020年中国专利局公告的由冷明,孙凌宇和冷子阳申报,中国专利号为:202010133353.4号《基于布尔可满足性的SRAM型FPGA软错误容错方法》的发明专利,针对SRAM型FPGA逻辑资源无关配置字、闲置配置字和布线资源互连配置字的特征,利用FPGA电路中存在的隐式冗余,通过对原电路重新进行逻辑综合,确保电路的等价逻辑转换的同时,力图采用最小的面积、功耗和性能的开销,减缓FPGA配置字软错误,降低软错误对FPGA系统功能的影响,进而增强FPGA芯片的容错能力、降低容错成本、提高FPGA器件的可靠性。
《基于布尔可满足性的SRAM型FPGA软错误容错方法》发明专利权利要求书的XDL电路网表部分:①“步骤10.2,读取XDL网表文件,进行词法分析、语法分析、语义分析、中间代码生成和抽取FPGA设计布局布线后电路实现的逻辑配置和配置互联信息”涉及了XDL网表文件的编译和解析。②“步骤10.4,基于FPGA设计布局布线后电路实现的逻辑配置和配置互联信息,以及FPGA芯片的逻辑资源可配置字和布线资源可配置字,结合FPGA布局布线后的仿真波形数据,计算每个LUT结点的软错误敏感度”涉及了XDL网表文件LUT结点的软错误敏感度的计算。进而,该发明专利提出了“解析XDL网表文件”和“构建XDL电路网表LUT结点的前向电路图”功能需求,以完成SRAM型FPGA器件单粒子软错误敏感性的计算。
XDL(Xilinx Design Language)是Xilinx公司提供的一种描述FPGA设计内部结构信息的特征化物理设计语言,使用BNF巴科斯范式描述FPGA实现特定功能硬件设计的网表级电路,其中包含逻辑资源的配置信息和布线资源的互连信息。通过基于Xilinx公司ISE套装的综合工具xst、转译工具ngdbuild、映射工具map、布局工具par(-r)、布线工具par(-p)、配置流工具bitgen和网表转换工具xdl,可以实现硬件设计到FPGA配置流的开发全流程。在开发流程中,FPGA映射后、布局后和布线后的NCD网表文件是面向计算机的二进制格式网表文件,不便于人们理解和分析,需要借助网表转换工具xdl实现与XDL文本格式网表文件的相互转换。每个XDL网表级电路描述文件,对应一个FPGA设计的硬件实现,使用BNF范式详细地描述了整个FPGA设计的基本信息以及布局布线信息,包含design,module,instance和net等语句。
2020年中国专利局公告的由冷明,孙凌宇和冷子阳申报,中国专利号为:202010246217.6号《XDL电路网表文件到有向超图的转换方法》的发明专利,其采用有向超图的数学模型构建XDL电路网表的信号间前向拓扑关系,各电路单元的有效管脚表示为有向超图中的超图结点,电路管脚间的外部连线、电路管脚内的电路逻辑功能,表示为超图中的有向超边。每条有向超边可以连接两个以上的结点,对应于电路单元间的连线可以连接两个以上的有效管脚,或电路逻辑功能可以连接多输入管脚。
《XDL电路网表文件到有向超图的转换方法》发明专利,基于SRAM型FPGA器件的XDL电路网表,构建网表级电路的信号传播模型,分析面向XDL网表级电路的信号间前向拓扑关系并转换为有向超图,实现了XDL电路网表文件到有向超图的转换方法。该发明专利实现的“XDL电路网表文件到有向超图的转换”,仅仅是完成了《基于布尔可满足性的SRAM型FPGA软错误容错方法》发明专利所需的“解析XDL网表文件”和“转换得到信号传播模型有向超图”的功能。然而,《基于布尔可满足性的SRAM型FPGA软错误容错方法》发明专利中“计算每个LUT结点的软错误敏感度”,需要在有向超图的基础上计算出每个超图结点的前向电路图,以用于准确分析SRAM型FPGA中LUT结点的单粒子软错误敏感性。
本发明在分析XDL电路网表信号之间的前向拓扑关系、转换得到信号传播模型有向超图的基础上,构建每个超图结点的前向电路图。因此,本发明构建的每个超图结点的前向电路图,可以用于准确分析SRAM型FPGA中LUT结点的单粒子软错误敏感性,提升SRAM型FPGA器件的容错可靠性计算精确度,从而更好地反映出单粒子软错误在SRAM型FPGA器件中的传播特性。
发明内容
本发明区别于在先技术[1]“刘俊峰. SRAM型FPGA软错误率计算方法研究[D]. 西安:西安电子科技大学, 2017.”第三章“前向电路图自动生成算法”,本发明采用有向超图的数学模型来构建XDL电路网表信号之间的前向拓扑关系。本发明在建模过程中,各电路单元的有效管脚表示为有向超图中的超图结点,电路管脚间的外部连线、电路管脚内的电路逻辑功能,表示为超图中的有向超边,每条有向超边可以连接两个以上的结点,对应于电路单元间的连线可以连接两个以上的有效管脚,或电路逻辑功能可以连接多输入管脚。在每条有向超边中,唯一的输出管脚对应于有向超边的尾端结点,其余输入管脚对应于有向超边源端子集结点。进而,本发明在分析XDL电路网表信号之间的前向拓扑关系、转换得到信号传播模型有向超图的基础上,构建每个超图结点的前向电路图。
本发明区别于在先技术[1]有三个重要的区别技术特征,进而取得了显著的技术进步和突出的实质性特点。①相比在先技术[1]采用有向图来建模电路网表,本发明采用有向超图为XDL电路网表提供了更为精确的模型:每条有向超边可以连接两个以上的结点,对应于电路管脚间的连线可以连接两个以上的电路管脚,取得了显著的技术进步和突出的实质性特点。②相比在先技术[1]将INST电路单元表示为结点(在先技术[1]的第40页:INST即为V,代表有向图中的节点),本发明将电路单元的各有效管脚表示为有向超图中的超图结点,为XDL电路网表提供了更为精确的模型。特别是,当管脚个数达到二十多个的SLICEL、SLICEM等INST电路单元包含多个LUT结点,在先技术[1]仅在INST电路单元宏观层面,计算出SLICEL、SLICEM等INST电路单元的前向电路图,导致无法分析INST电路单元内部LUT结点的前向电路图。相比在先技术[1],本发明在INST电路单元管脚微观层面,计算出每个超图结点(INST电路单元有效管脚)的前向电路图,精细刻画了XDL电路网表信号之间的前向拓扑关系,取得了显著的技术进步和突出的实质性特点。③相比在先技术[1]仅仅是外部连线表示为边(在先技术[1]的第40页:NET即为E,代表有向图中的边),本发明将针对电路管脚间的外部连线、电路管脚内的电路逻辑功能,都表示为超图中的有向超边,特别是电路管脚内的电路逻辑功能,即每个电路单元输出管脚的电路逻辑功能生成一条有向超边,为XDL电路网表提供了更为精确的模型。本发明采用有向超边精细刻画了XDL电路网表信号之间的前向拓扑关系,取得了显著的技术进步和突出的实质性特点。
本发明的目的在于针对已有技术存在的不足,提供一种XDL电路网表的前向电路图构建方法,为准确分析SRAM型FPGA器件单粒子软错误敏感性提供信号间的前向拓扑关系模型。为达到上述目的,本发明的构思如下:采用有向超图对XDL电路网表进行数学建模,将XDL电路线网转换到有向超图并保存为有向超图文件;进而,读取有向超图文件,采用改进的压缩存储格式存储有向超图,构建每个超图结点的前向电路图。
根据上述的发明构思,本发明的技术方案是这样实现的:一种XDL电路网表的前向电路图构建方法,其特征在于,具体步骤如下。
步骤1,XDL电路网表文件的词法分析,从左到右一个个读入XDL电路网表文件,对构成源代码的字符流进行扫描和分解,从而识别出一个个单词。
步骤2,XDL电路网表文件的语法分析,在词法分析的基础上将单词序列分解成各类语法短语,依据网表文件的语法规则,确定整个字符流是否构成一个语法上正确的结构描述文件。
步骤3,XDL电路网表文件的语义分析,在语法分析的基础上审核源代码有无语义错误,为中间代码生成阶段收集类型信息。
步骤4,XDL电路网表文件的中间代码生成,在语法分析和语义分析的基础上,将源代码生成中间代码,用内部中间格式表示。
步骤5,XDL电路网表文件的Inst和Net模块信息抽取,基于内部中间格式生成XDL电路网表文件的Inst和Net模块信息。
步骤6,有向超图文件生成,从Ins模块信息抽取XDL电路网表的逻辑配置信息,从Net模块信息抽取XDL电路网表的互联配置信息,进而基于逻辑配置信息和互联配置信息构造完整电路线网,将电路线网转换为有向超图并保存为有向超图文件。
步骤7,读取有向超图文件,采用改进的压缩存储格式对有向超图进行存储。
步骤8,遍历压缩存储格式的有向超图的每个超图结点,生成每个超图结点的直接前驱结点列表。
步骤9,遍历压缩存储格式的有向超图的每个超图结点,生成每个超图结点的间接前驱结点列表。
步骤10,遍历压缩存储格式的有向超图的每个超图结点,输出每个超图结点的信息、以及超图结点的直接前驱结点列表信息和间接前驱结点列表信息至前向电路图文件。
上述的步骤6中,所述的有向超图文件生成的步骤如下。
步骤6.1,遍历电路网表的Inst电路单元模块信息,依次处理每个Inst电路单元模块,抽取XDL电路网表的逻辑配置信息,生成超图结点和有向超边。
步骤6.2,遍历电路网表的Net电路信号模块信息,依次处理每个Net电路信号模块,抽取XDL电路网表的互联配置信息,生成有向超边。
步骤6.3 ,遍历有向超图的每个超图结点和有向超边,为每个超图结点单独编号,i为有向超图中超图结点的编号;为每条有向超边单独编号,j为有向超图中有向超边的编号。
步骤6.4, 将编号的每个超图结点和有向超边保存为有向超图文件。
上述的步骤6.1中,所述的处理每个Inst电路单元模块的步骤如下。
步骤6.1.1,读取Inst电路单元模块的SITEDEF类型信息。
步骤6.1.2,读取Inst电路单元模块的CFG配置信息,获取有效管脚信息列表。
步骤6.1.3,为Inst电路单元模块的每个有效管脚生成一个超图结点。
步骤6.1.4,根据Inst电路单元的不同SITEDEF类型,结合CFG配置信息获取的底层电路配置状态,解析每个输出管脚的逻辑功能表达式。
步骤6.1.5,为每个输出管脚生成一条有向超边,该有向超边的尾端结点为该输出管脚对应的超图结点;进而依据该输出管脚的逻辑功能表达式,输入管脚对应的超图结点加入到该有向超边的源端子集中。
上述的步骤6.2中,所述的处理每个Net电路信号模块的步骤如下。
步骤6.2.1,为Net电路信号模块生成一条有向超边。
步骤6.2.2,读取Net电路信号模块的INPUT端点信息,依据INPUT端点信息中给定的Inst电路单元和管脚信息找到相应的超图结点,作为该有向超边的尾端结点。
步骤6.2.3,读取Net电路信号模块的每个OUTPUT端点信息,依据OUTPUT端点信息中给定的Inst电路单元和管脚信息找到相应的超图结点,加入到该有向超边的源端子集中。
上述的步骤6.4中,所述的将转换得到的有向超图保存为有向超图文件的步骤如下。
步骤6.4.1,输出有向超图文件第一行,第一个参数是有向超边的数目,第二个参数是超图结点的数目。
步骤6.4.2,遍历有向超图的每条有向超边,每一条超边输出为有向超图文件的一行,先输出有向超边的尾端结点的编号,再输出有向超边的源端子集中超图结点的编号。
上述的步骤7中,所述的有向超图的改进压缩存储格式如下。
步骤7.1,使用xadj数组存储每个结点所有邻接有向超边列表的起始位置信息,即第i条结点的终止位置为第i+1条结点的起始位置减1,且xadj数组的大小为有向超图中的结点个数加1, xadj数组最后一个元素用于存放最后一条结点的终止位置。
步骤7.2,使用adjncy数组存储每个结点所有邻接有向超边的列表信息,第i条结点的邻接有向超边列表存储在adjncy数组中,从adjncy[xadj[i]]到adjncy[xadj[i+1]-1]。
步骤7.3,使用eptr数组存储每条有向超边所包含的结点列表的起始位置信息,即第j条有向超边的终止位置为第j+1条有向超边的起始位置减1,且eptr数组的大小为有向超图中的有向超边个数加1, eptr数组最后一个元素用于存放最后一条有向超边的终止位置。
步骤7.4,使用eind数组存储每条有向超边所包含结点的列表信息,第j条有向超边的邻接结点列表存储在eind数组中,从eind[eptr[j]]到eind[eptr[j+1]-1],且有向超边的尾端结点存储在数组元素eind[eptr[j]]。
步骤7.5,使用vwgts数组存储结点的权值信息,且vwgts数组的大小为有向超图中的结点个数。
步骤7.6,使用hewgts数组存储有向超边的权值信息,且hewgts数组的大小为有向超图中的有向超边个数。
上述的步骤8中,所述的生成超图结点的直接前驱结点列表如下。
步骤8.1,遍历该超图结点x所在的每条有向超边。
步骤8.2,如果该超图结点x是该有向超边的尾端结点,则遍历该有向超边的源端子集的每个结点y;如果超图结点x的直接前驱结点列表中未包含结点y,则将结点y加入到超图结点x的直接前驱结点列表中。
上述的步骤9中,所述的生成超图结点的间接前驱结点列表如下。
步骤9.1,遍历该超图结点x直接前驱结点列表中的每个前驱结点y,依次处理前驱结点y的直接前驱结点列表中的每个前驱结点z,判断前驱结点z是否要加入到超图结点x的间接前驱结点列表中。
步骤9.2,如果超图结点x的间接前驱结点列表中未包含前驱结点z,则将前驱结点z加入到超图结点x的间接前驱结点列表中,且递归生成前驱结点z的间接前驱结点列表。
步骤9.3,遍历该超图结点z直接前驱结点列表和间接前驱结点列表中的每个前驱结点p,如果超图结点x间接前驱结点列表中未包含前驱结点p,则将前驱结点p加入到超图结点x间接前驱结点列表中。
上述的步骤10中,所述的生成前向电路图文件如下。
步骤10.1,输出当前超图结点x的编号,再输出分隔符“:”。
步骤10.2,遍历该超图结点x直接前驱结点列表中的每个结点y,将结点y作为超图结点x的直接前驱结点输出其编号,再输出分隔符“||”。
步骤10.3,遍历该超图结点x间接前驱结点列表中的每个结点z,将结点z作为超图结点x的间接前驱结点输出其编号。
本发明与现有技术相比较,具有如下显而易见的突出实质性特点和显著优点。
(1)有向超图提高XDL电路网表数学建模的准确性。
(一)、相比现有技术采用图来建模电路网表,本发明采用有向超图为XDL电路网表提供了更为精确的模型:每条有向超边可以连接两个以上的结点,对应于电路管脚间的连线可以连接两个以上的电路管脚,取得了显著的技术进步和突出的实质性特点。本发明采用有向超图的数学模型构建XDL电路网表的信号间前向拓扑关系,建模过程中各电路单元的有效管脚表示为有向超图中的超图结点,电路管脚间的外部连线、电路管脚内的电路逻辑功能,表示为超图中的有向超边,每条有向超边可以连接两个以上的结点,对应于电路单元间的连线可以连接两个以上的有效管脚,或电路逻辑功能可以连接多输入管脚。在每条有向超边中,唯一的输出管脚对应于有向超边的尾端结点,其余输入管脚对应于有向超边源端子集结点。
(二)、相比现有技术将电路单元表示为超图结点,本发明将电路单元的各有效管脚表示为有向超图中的超图结点,为XDL电路网表提供了更为精确的模型,特别是当管脚个数达到二十多个的SLICEL、SLICEM等大型电路单元,本发明精细刻画了XDL电路网表的信号间前向拓扑关系,取得了显著的技术进步和突出的实质性特点。
(三)、相比现有技术仅仅是外部连线表示为边或超边,本发明将针对电路管脚间的外部连线、电路管脚内的电路逻辑功能,都表示为超图中的有向超边,特别是电路单元实现的电路逻辑功能,即电路管脚内的电路逻辑功能,为XDL电路网表提供了更为精确的模型。本发明采用有向超边精细刻画了XDL电路网表的信号间前向拓扑关系,取得了显著的技术进步和突出的实质性特点。
(2)压缩存储格式存储有向超图结构简单且便于维护。
数据的物理存储结构,作为数据逻辑结构的物理存储方式,应根据问题所要求的响应速度、处理时间、修改时间、存储空间和单位时间的处理量等在内存中建立起数据存储映像。有向超图在不同的物理存储结构下会导致相同算法产生不同的时间复杂度和空间复杂度,特别是其有向超边的尾端结点存储在数组元素eind[eptr[j]]。本发明采取的是压缩存储格式最大的特征就是没有使用指针链表,从而避免了邻接关系的检索和繁杂的维护工作,有效地减少了空间浪费,结构简单,便于维护。
(3)超图结点的前向电路图结点分别存储在直接前驱结点列表和间接前驱结点列表中。
如果某超图结点是有向超边的尾端结点,则有向超边的源端子集的每个结点属于该超图结点的直接前驱结点。进而,通过递归遍历直接前驱结点列表中的结点,生成该超图结点的间接前驱列表。只有超图结点x的间接前驱结点列表中未包含前驱结点z,才会调用递归遍历生成前驱结点z的间接前驱结点列表(见步骤9.2),巧妙地避免XDL电路网表的信号前向拓扑关系中存在着有向环导致无限的递归循环。
通过以下对本发明XDL电路网表的前向电路图构建方法的实例结合其附图的描述,可以进一步理解本发明的目的、具体结构特征和优点。
图1是本发明XDL电路网表的前向电路图构建方法的流程图。
图2是本发明的有向超图的改进压缩存储格式。
图3是本发明的有向超图文件生成的流程图。
图4是本发明的测试实例综合前的寄存器传输级电路原理图。
图5是本发明的测试实例综合后的寄存器传输级电路原理图。
图6是本发明的测试实例中器件SLICE_X46Y0的内部信号传播路径图。
图7是本发明的测试实例中器件SLICE_X46Y0的cfg控制配置位信息图。
图8是本发明的测试实例的XDL电路网表经转换后的有向超图文件图。
图9是本发明的测试实例的XDL电路网表的前向电路图。
具体实施方式。
为了能够更清楚地理解本发明XDL电路网表的前向电路图构建方法的技术内容,特举以下实例详细说明。
本实施例的XDL电路网表的前向电路图构建方法的流程图如图1所示,用XDL电路网表语言描述电路产生XDL电路网表文件101,得到电路源代码102;词法分析电路的源代码,得到对应的单词符号103;在词法分析基础上进行语法分析,得到对应的语法短语104;在语法分析基础上进行语义分析,得到对应的类型信息105;在语义分析基础上,构造对应的内部中间代码106;基于内部中间代码抽取文本描述的Inst和Net模块信息107,从Ins模块信息抽取XDL电路网表的逻辑配置信息,从Net模块信息抽取XDL电路网表的互联配置信息,进而基于逻辑配置信息和互联配置信息构造完整电路线网108,转换为有向超图并保存为有向超图文件109,读取有向超图文件109,采用改进的压缩存储格式对有向超图进行存储,得到有向超图的改进压缩存储格式110。遍历压缩存储格式的有向超图的每个超图结点,生成每个超图结点的直接前驱结点列表111。遍历压缩存储格式的有向超图的每个超图结点,生成每个超图结点的间接前驱结点列表112。遍历压缩存储格式的有向超图的每个超图结点,在直接前驱结点列表和间接前驱结点列表的基础上,输出前向电路图文件113。
本实施例的有向超图的改进压缩存储格式如图2所示。存储结构使用adjncy数组204存储每个结点所有邻接有向超边的列表信息。使用xadj数组203存储每个结点所有邻接有向超边列表的起始位置信息,即第i条结点的终止位置为第i+1条结点的起始位置减1,且xadj数组203的大小为有向超图中的结点个数加1, xadj数组203最后一个元素用于存放最后一条结点的终止位置。使用eind数组207存储每条有向超边所包含结点的列表信息。使用eptr数组206存储每条有向超边所包含的结点列表的起始位置信息,即第j条有向超边的终止位置为第j+1条有向超边的起始位置减1,且eptr数组206的大小为有向超图中的超边个数加1, eptr数组206最后一个元素用于存放最后一条有向超边的终止位置。使用vwgts数组202存储结点的权值信息,且vwgts数组202的大小为有向超图中的结点个数。使用hewgts数组205存储有向超边的权值信息,且hewgts数组205的大小为有向超图中的超边个数。假设数组地址从零开始,结点编号从零开始,则第i条结点的邻接有向超边列表存储在adjncy数组204中,从adjncy[xadj[i]]到adjncy[xadj[i+1]-1];第j条有向超边的邻接结点列表存储在eind数组207中,从eind[eptr[j]]到eind[eptr[j+1]-1],且有向超边的尾端结点存储在数组元素eind[eptr[j]]。图例201包含总共7个结点和8条超边,其中第6个结点的权值为7,有2条邻接超边f、h,对应的权值为4、1,且相应的邻接结点分别为结点7、3、6和结点4、6。
本实施例的有向超图文件生成的流程图如图3所示,步骤如下。
A01:遍历电路网表的Inst电路单元模块信息,依次处理每个Inst电路单元模块,抽取XDL电路网表的逻辑配置信息,生成超图结点和有向超边。
A02:遍历电路网表的Net电路信号模块信息,依次处理每个Net电路信号模块,抽取XDL电路网表的互联配置信息,生成有向超边。
A03:遍历有向超图的每个超图结点和有向超边,为每个超图结点单独编号,i为有向超图中超图结点的编号;为每条有向超边单独编号,j为有向超图中有向超边的编号。
A04:将编号的每个超图结点和有向超边保存为有向超图文件。
针对XDL网表级电路描述文件到有向超图的转换实验,本实施例基于Xilinx 公司Virtex-4型号XC4VSX55 FPGA芯片对测试实例进行综合、转译、映射、布局、布线、配置流生成和网表转换,实现硬件设计到FPGA配置流的全步骤,并通过网表转换工具xdl将布局布线后的NCD二进制格式网表文件,转换为XDL文本格式网表文件,进而本实施例将XDL网表文件转换为有向超图,并保存为有向超图文件。
图4是本发明的测试实例综合前的寄存器传输级电路原理图。图5是本发明的测试实例综合后的寄存器传输级电路原理图。其中,图5保留了图4时序逻辑电路的寄存器FD器件和组合逻辑电路的INV求反器件,并为输入输出信号pin增加了IBUF或OBUF器件,为时钟信号pin增加了BUFGP器件,将组合逻辑电路映射到查找表LUT3器件。
Virtex-4型号XC4VSX55 FPGA芯片中每个 CLB资源有两个TITLE,每个TITLE资源中有两个SLICE,每个 SLICE资源有两个 LUT。图5给出的本发明测试实例综合后生成的FPGA电路网表,将gen0/lfsr_data_0_rspot和gen0/lfsr_data_1_rspot两个三位查找表LUT3,gen0/lfsr_data_0和gen0/lfsr_data_1两个一位寄存器器件FD整合后映射至电路结点gen0/lfsr_data,并布局布线在CLB_X33Y0资源的SLICE_X46Y0器件中。图6是本发明的测试实例中器件SLICE_X46Y0的内部信号传播路径图。图7是本发明的测试实例中器件SLICE_X46Y0的cfg控制配置位信息图。
图6是本发明的测试实例中器件SLICE_X46Y0的内部信号传播路径图,映射至图7的器件SLICE_X46Y0的cfg控制配置位信息图,其中:逻辑单元G被配置为gen0/lfsr_data_1_rstpot:#LUT:D=(A3+(A2+A1)),即G功能配置成gen0/lfsr_data_1_rspot的等价查找表LUT且连接输入信号管脚G1~G3;逻辑单元DYMUX 被配置为 Y,即从Y端口将LUT输出信号D输出给后续寄存器FFY器件;逻辑单元FFY被配置为FF,即受时钟信号CLK控制的flip-flop将LUT输出信号D输出给YQ。同时,逻辑单元F被配置为 gen0/lfsr_data_0_rstpot:#LUT:D=(~A3*(A1*A2)),即F功能配置成gen0/lfsr_data_0_rspot的等价查找表LUT且连接输入信号管脚F1~F3;逻辑单元DXMUX 被配置为X,即从X端口将LUT输出信号D输出给后续寄存器FFX器件;逻辑单元FFX被配置为FF,即受时钟信号CLK控制flip-flop将LUT输出信号D输出给XQ。
本发明的测试实例的有向超图文件生成过程中,本实施例读取XDL电路网表的10个Inst电路单元,抽取逻辑配置信息进行分析,获取29个有效管脚生成29个超图结点,并为其中的11个输出管脚生成第1~11条有向超边。读取XDL电路网表的9个Net电路信号,经抽取互联配置信息进行分析,生成第12~20条有向超边。
图8是本发明的测试实例的XDL电路网表经转换后的有向超图文件图。图8的有向超图文件第1行显示超图结点数是29,有向超边数是20。第2~21行输出有向超边的结点信息,其中每行第1个编号为该有向超边的尾端结点,后续编号为其源端子集的结点。其中,SLICE电路结点gen0/lfsr_data生成第1条和第2条有向超边,有向超边{2 4 5 6 3}中第一个尾端结点编号2映射至输出信号管脚YQ,其余源端子集编号{4 5 6 3}映射至输入信号管脚G1~G3和时钟信号管脚CLK;有向超边{1 7 8 9 3}中第一个尾端结点编号1映射至输出信号管脚XQ,其余源端子集编号{7 8 9 3}映射至输入信号管脚F1~F3和时钟信号管脚CLK。两条有向超边共用超图结点3,表明共用时钟信号CLK。
图9是本发明的测试实例的XDL电路网表的前向电路图。超图结点数是29,文件中的每一行包含当前超图结点x的编号,“:”分隔符,超图结点x直接前驱结点列表中的每个结点的编号,“||”分隔符,超图结点x间接前驱结点列表中的每个结点的编号。以第一行为例,01表示当前结点,“07 08 09 03”是01结点的直接前驱结点的编号,07结点的直接和间接前驱结点“19 || 20”,08结点的直接和间接前驱结点“15 || 16”,09结点的直接和间接前驱结点“28 || 29”,03结点的前驱结点“13 || 12 14 22 21 23 27 26 17 18”,都是01结点的间接前驱结点的编号。

Claims (1)

1.一种XDL电路网表的前向电路图构建方法,其特征在于,具体步骤如下:
步骤1,XDL电路网表文件的词法分析,从左到右一个个读入XDL电路网表文件,对构成源代码的字符流进行扫描和分解,从而识别出一个个单词;
步骤2,XDL电路网表文件的语法分析,在词法分析的基础上将单词序列分解成各类语法短语,依据网表文件的语法规则,确定整个字符流是否构成一个语法上正确的结构描述文件;
步骤3,XDL电路网表文件的语义分析,在语法分析的基础上审核源代码有无语义错误,为中间代码生成阶段收集类型信息;
步骤4,XDL电路网表文件的中间代码生成,在语法分析和语义分析的基础上,将源代码生成中间代码,用内部中间格式表示;
步骤5,XDL电路网表文件的Inst和Net模块信息抽取,基于内部中间格式生成XDL电路网表文件的Inst和Net模块信息;
步骤6,有向超图文件生成,从Ins模块信息抽取XDL电路网表的逻辑配置信息,从Net模块信息抽取XDL电路网表的互联配置信息,进而基于逻辑配置信息和互联配置信息构造完整电路线网,将电路线网转换为有向超图并保存为有向超图文件;
步骤7,读取有向超图文件,采用改进的压缩存储格式对有向超图进行存储;
步骤8,遍历压缩存储格式的有向超图的每个超图结点,生成每个超图结点的直接前驱结点列表;
步骤9,遍历压缩存储格式的有向超图的每个超图结点,生成每个超图结点的间接前驱结点列表;
步骤10,遍历压缩存储格式的有向超图的每个超图结点,输出每个超图结点的信息、以及超图结点的直接前驱结点列表信息和间接前驱结点列表信息至前向电路图文件;
上述的步骤6中,所述的有向超图文件生成的步骤如下;
步骤6.1,遍历电路网表的Inst电路单元模块信息,依次处理每个Inst电路单元模块,抽取XDL电路网表的逻辑配置信息,生成超图结点和有向超边;
步骤6.2,遍历电路网表的Net电路信号模块信息,依次处理每个Net电路信号模块,抽取XDL电路网表的互联配置信息,生成有向超边;
步骤6.3 ,遍历有向超图的每个超图结点和有向超边,为每个超图结点单独编号,i为有向超图中超图结点的编号;为每条有向超边单独编号,j为有向超图中有向超边的编号;
步骤6.4, 将编号的每个超图结点和有向超边保存为有向超图文件;
上述的步骤6.1中,所述的处理每个Inst电路单元模块的步骤如下;
步骤6.1.1,读取Inst电路单元模块的SITEDEF类型信息;
步骤6.1.2,读取Inst电路单元模块的CFG配置信息,获取有效管脚信息列表;
步骤6.1.3,为Inst电路单元模块的每个有效管脚生成一个超图结点;
步骤6.1.4,根据Inst电路单元的不同SITEDEF类型,结合CFG配置信息获取的底层电路配置状态,解析每个输出管脚的逻辑功能表达式;
步骤6.1.5,为每个输出管脚生成一条有向超边,该有向超边的尾端结点为该输出管脚对应的超图结点;进而依据该输出管脚的逻辑功能表达式,输入管脚对应的超图结点加入到该有向超边的源端子集中;
上述的步骤6.2中,所述的处理每个Net电路信号模块的步骤如下;
步骤6.2.1,为Net电路信号模块生成一条有向超边;
步骤6.2.2,读取Net电路信号模块的INPUT端点信息,依据INPUT端点信息中给定的Inst电路单元和管脚信息找到相应的超图结点,作为该有向超边的尾端结点;
步骤6.2.3,读取Net电路信号模块的每个OUTPUT端点信息,依据OUTPUT端点信息中给定的Inst电路单元和管脚信息找到相应的超图结点,加入到该有向超边的源端子集中;
上述的步骤6.4中,所述的将转换得到的有向超图保存为有向超图文件的步骤如下;
步骤6.4.1,输出有向超图文件第一行,第一个参数是有向超边的数目,第二个参数是超图结点的数目;
步骤6.4.2,遍历有向超图的每条有向超边,每一条超边输出为有向超图文件的一行,先输出有向超边的尾端结点的编号,再输出有向超边的源端子集中超图结点的编号;
上述的步骤7中,所述的有向超图的改进压缩存储格式如下;
步骤7.1,使用xadj数组存储每个结点所有邻接有向超边列表的起始位置信息,即第i条结点的终止位置为第i+1条结点的起始位置减1,且xadj数组的大小为有向超图中的结点个数加1, xadj数组最后一个元素用于存放最后一条结点的终止位置;
步骤7.2,使用adjncy数组存储每个结点所有邻接有向超边的列表信息,第i条结点的邻接有向超边列表存储在adjncy数组中,从adjncy[xadj[i]]到adjncy[xadj[i+1]-1];
步骤7.3,使用eptr数组存储每条有向超边所包含的结点列表的起始位置信息,即第j条有向超边的终止位置为第j+1条有向超边的起始位置减1,且eptr数组的大小为有向超图中的有向超边个数加1, eptr数组最后一个元素用于存放最后一条有向超边的终止位置;
步骤7.4,使用eind数组存储每条有向超边所包含结点的列表信息,第j条有向超边的邻接结点列表存储在eind数组中,从eind[eptr[j]]到eind[eptr[j+1]-1],且有向超边的尾端结点存储在数组元素eind[eptr[j]];
步骤7.5,使用vwgts数组存储结点的权值信息,且vwgts数组的大小为有向超图中的结点个数;
步骤7.6,使用hewgts数组存储有向超边的权值信息,且hewgts数组的大小为有向超图中的有向超边个数;
上述的步骤8中,所述的生成超图结点的直接前驱结点列表如下;
步骤8.1,遍历该超图结点x所在的每条有向超边;
步骤8.2,如果该超图结点x是该有向超边的尾端结点,则遍历该有向超边的源端子集的每个结点y;如果超图结点x的直接前驱结点列表中未包含结点y,则将结点y加入到超图结点x的直接前驱结点列表中;
上述的步骤9中,所述的生成超图结点的间接前驱结点列表如下;
步骤9.1,遍历该超图结点x直接前驱结点列表中的每个前驱结点y,依次处理前驱结点y的直接前驱结点列表中的每个前驱结点z,判断前驱结点z是否要加入到超图结点x的间接前驱结点列表中;
步骤9.2,如果超图结点x的间接前驱结点列表中未包含前驱结点z,则将前驱结点z加入到超图结点x的间接前驱结点列表中,且递归生成前驱结点z的间接前驱结点列表;
步骤9.3,遍历该超图结点z直接前驱结点列表和间接前驱结点列表中的每个前驱结点p,如果超图结点x间接前驱结点列表中未包含前驱结点p,则将前驱结点p加入到超图结点x间接前驱结点列表中;
上述的步骤10中,所述的生成前向电路图文件如下;
步骤10.1,输出当前超图结点x的编号,再输出分隔符“:”;
步骤10.2,遍历该超图结点x直接前驱结点列表中的每个结点y,将结点y作为超图结点x的直接前驱结点输出其编号,再输出分隔符“||”;
步骤10.3,遍历该超图结点x间接前驱结点列表中的每个结点z,将结点z作为超图结点x的间接前驱结点输出其编号。
CN202010308978.XA 2020-04-19 2020-04-19 Xdl电路网表的前向电路图构建方法 Pending CN111353264A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010308978.XA CN111353264A (zh) 2020-04-19 2020-04-19 Xdl电路网表的前向电路图构建方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010308978.XA CN111353264A (zh) 2020-04-19 2020-04-19 Xdl电路网表的前向电路图构建方法

Publications (1)

Publication Number Publication Date
CN111353264A true CN111353264A (zh) 2020-06-30

Family

ID=71194981

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010308978.XA Pending CN111353264A (zh) 2020-04-19 2020-04-19 Xdl电路网表的前向电路图构建方法

Country Status (1)

Country Link
CN (1) CN111353264A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114638184A (zh) * 2022-05-23 2022-06-17 南昌大学 门级电路的仿真方法、系统、存储介质及设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114638184A (zh) * 2022-05-23 2022-06-17 南昌大学 门级电路的仿真方法、系统、存储介质及设备

Similar Documents

Publication Publication Date Title
US7162706B2 (en) Method for analyzing and validating clock integration properties in circuit systems
JP3119646B2 (ja) 再コンフュギュレーション可能なハードウェアシステムの評価装置及び演算処理方法
US5752000A (en) System and method for simulating discrete functions using ordered decision arrays
US5416719A (en) Computerized generation of truth tables for sequential and combinatorial cells
US20100251196A1 (en) Method and System for Designing a Structural Level Description of an Electronic Circuit
CN109002601B (zh) 一种基于Petri网的FPGA系统的验证模型建模方法
US6658630B1 (en) Method to translate UDPs using gate primitives
CN113255272B (zh) 语句块封装方法、装置、电子设备及存储介质
TW202139046A (zh) 進行積體電路的自動化設計的方法
CN111553120A (zh) 一种数字电路局部时钟网络spice网表的生成方法
WO1999009497A1 (fr) Procede d'extraction de caracteristiques de synchronisation de circuits a transistors, support de stockage stockant une bibliotheque de caracteristiques de synchronisation, procede de conception de lsi et procede d'extraction par grille
US7441212B1 (en) State machine recognition and optimization
EP3937057A1 (en) Systems and methods for generating synthesizable netlists from register transfer level designs
CN111353264A (zh) Xdl电路网表的前向电路图构建方法
CN111368513A (zh) Xdl电路网表文件到有向超图的转换方法
CN111241765A (zh) 基于布尔可满足性的sram型fpga软错误容错方法
US6792579B2 (en) Spice to verilog netlist translator and design methods using spice to verilog and verilog to spice translation
El Tahawy et al. VHD/sub e/LDO: A new mixed mode simulation
US5682519A (en) Method for reducing power consumption of switching nodes in a circuit
CN113919256A (zh) 一种布尔可满足性验证方法、系统、cnf生成方法及存储装置
US11347920B2 (en) Circuit synthesis optimization for implements on integrated circuit
Kanase et al. Physical implementation of shift register with respect to timing and dynamic drop
US7389489B1 (en) Techniques for editing circuit design files to be compatible with a new programmable IC
CN113515909A (zh) 门级网表的处理方法、计算机存储介质
US8661329B1 (en) Generation of readable hierarchical path identifiers

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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20200630

WD01 Invention patent application deemed withdrawn after publication