CN114861581A - 基于图像识别的可编程逻辑器件的辅助编程设计方法 - Google Patents
基于图像识别的可编程逻辑器件的辅助编程设计方法 Download PDFInfo
- Publication number
- CN114861581A CN114861581A CN202210448735.5A CN202210448735A CN114861581A CN 114861581 A CN114861581 A CN 114861581A CN 202210448735 A CN202210448735 A CN 202210448735A CN 114861581 A CN114861581 A CN 114861581A
- Authority
- CN
- China
- Prior art keywords
- chip
- image
- pin
- programmable logic
- logic device
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000013461 design Methods 0.000 title claims abstract description 48
- 238000010586 diagram Methods 0.000 claims abstract description 26
- 230000002093 peripheral effect Effects 0.000 claims abstract description 19
- 238000004806 packaging method and process Methods 0.000 claims description 28
- 238000004088 simulation Methods 0.000 claims description 24
- 238000004891 communication Methods 0.000 claims description 20
- 238000012549 training Methods 0.000 claims description 18
- 238000006243 chemical reaction Methods 0.000 claims description 13
- 238000005457 optimization Methods 0.000 claims description 10
- 238000012795 verification Methods 0.000 claims description 10
- 238000003860 storage Methods 0.000 claims description 4
- 238000013468 resource allocation Methods 0.000 claims description 3
- 238000011161 development Methods 0.000 abstract description 16
- 230000006870 function Effects 0.000 description 38
- 238000001514 detection method Methods 0.000 description 17
- 238000013135 deep learning Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 7
- 238000012360 testing method Methods 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000012942 design verification Methods 0.000 description 4
- 230000009191 jumping Effects 0.000 description 4
- 230000000630 rising effect Effects 0.000 description 4
- 238000007650 screen-printing Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 239000002184 metal Substances 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000007639 printing Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000003466 welding Methods 0.000 description 1
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/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
- G06F30/343—Logical level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
- G06F30/347—Physical level, e.g. placement or routing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/0002—Inspection of images, e.g. flaw detection
- G06T7/0004—Industrial image inspection
- G06T7/0006—Industrial image inspection using a design-rule based approach
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2115/00—Details relating to the type of the circuit
- G06F2115/08—Intellectual property [IP] blocks or IP cores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30108—Industrial image inspection
- G06T2207/30148—Semiconductor; IC; Wafer
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Geometry (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Logic Circuits (AREA)
Abstract
本发明属于集成电路设计技术领域,具体涉及一种基于图像识别的可编程逻辑器件的辅助编程设计方法,包括:利用图像识别方法,提取电路原理图或者电路板图像中的芯片图像;将该芯片图像输入至芯片字符识别模型中,以确定各个芯片的型号;根据芯片型号,确定选择相应的IP核模块并配置,建立IP核模块间的链路关系,以实现可编程逻辑器件的功能逻辑设计;依据芯片的型号,确定各芯片的引脚编号排布,并结合通过连接识别图像中的走线线段得到的走线,确定外设芯片与可编程逻辑器件间各引脚的互连关系,根据互连关系绑定引脚;依据可编程逻辑器件的功能逻辑设计结果和绑定结果,生成编译文件。由此,提升了可编程逻辑器件设计开发的效率。
Description
技术领域
本发明属于集成电路设计技术领域,具体涉及一种基于图像识别的可编程逻辑器件的辅助编程设计方法。
背景技术
FPGA等可编程逻辑器件,能够根据用户需要,编辑各类功能逻辑以及时序逻辑代码,实现电路处理中各类信号的存储、处理、传输通信、输入输出交互、边沿识别等功能,极大提升了数字电路中功能设计的便捷性和扩展性。但目前大多可编程逻辑器件的编程都是采用verilog或者VHDL等语言,由人工进行代码编辑设计的,即使一些厂家提供了部分IP模块,但仍然需人工进行选择、配置及编译测试,影响可编程逻辑器件的功能设计的效率。
现有可编程逻辑器件的功能或时序逻辑的编辑过程如图1所示,在电路设计初期,由人工进行逻辑程序的设计。具体地,1)根据功能需求,设计输入、输出端口;2)编辑逻辑代码;3)通过调试和校验进行测试;4)根据测试结果多次修正设计,直至满足设计需求;4)配置引脚后,将逻辑代码烧写至存储芯片进行应用。这种人工方式效率低,因此,迫切需要一种方法能够实现程序的自动化开发,以提高可编程逻辑器件的自动化开发水平。
发明内容
本发明的目的在于提供一种基于图像识别的可编程逻辑器件的辅助编程设计方法,用以解决现有技术中可编程逻辑器件自动化开发水平低的问题。
为解决上述技术问题,本发明所提供的技术方案以及技术方案对应的有益效果如下:
本发明提供的一种基于图像识别的可编程逻辑器件的辅助编程设计方法,包括如下步骤:
S1.获取电路原理图或者电路板图像,利用图像识别方法,提取电路原理图或者电路板图像中的芯片图像;
S2.将提取的芯片图像输入至芯片字符识别模型中,识别出芯片图像中的芯片型号字符,以确定各个芯片的型号,所述芯片包括可编程逻辑器件和外设芯片;所述芯片字符识别模型利用已知字符的芯片图像集训练得到;
S3.根据各个识别出的外设芯片型号,确定选择相应的IP核模块并对IP核模块进行配置,并建立IP核模块间的链路关系,以实现可编程逻辑器件的功能逻辑设计;
S4.依据芯片的型号,确定各芯片的引脚编号排布;
S5.识别电路原理图或者电路板图像中的走线线段,连接相交的走线线段得到多条走线,结合确定的各芯片的引脚编号排布,确定外设芯片与可编程逻辑器件间各引脚的互连关系,并根据所述互连关系绑定引脚;
S6.依据可编程逻辑器件的功能逻辑设计结果和绑定结果,生成编译文件。
上述技术方案的有益效果为:
本发明采用了基于深度学习的目标检测方法,第一,基于视觉图像的处理,使用字符识别模型识别芯片上的型号字符,实现对可编程逻辑器件、外设芯片的器件类型的检测识别。第二,根据在电路图或电路板上识别的各个芯片,使用功能需求推理模型对可编程逻辑器件功能模块的需求进行推理预测,进而再依据上述推理的需求调用IP核模块并建立IP核间的链路以及配置参数,不需要设计人员再去关心内部电路设计逻辑,降低人工前期编程、参数配置的工作量,实现了辅助人工进行功能逻辑编程的功能;第三,通过走线识别模型识别电路图或者电路板走线线段,连接相交的走线线段得到走线,然后结合各个芯片编号排布、走线端点像素坐标、芯片编号像素坐标进而确定芯片间的互连关系;有助于根据该互连关系绑定引脚。由此,进一步提升了可编程逻辑器件设计开发的自动化程度,极大地提高了可编程逻辑器件程序开发的效率。
进一步地,所述外设芯片包括存储芯片、通信芯片、A/D转换芯片、D/A转换芯片、电源供电及电压转换芯片中的至少一种。
进一步地,步骤S6之后,还包括步骤S7;
S7.对编译完成后的可编程逻辑器件进行仿真以验证可编程逻辑器件的功能逻辑和时序逻辑:
S71.获得仿真波形图像,所述仿真波形图像包括波形信号名称和波形曲线,将仿真波形图像输入至仿真图像字符识别模型中,识别出仿真波形图像中的波形信号名称,并依据波形信号名称和波形曲线在仿真波形图像中的位置关系确定各波形曲线的波形信号类别,所述波形信号类别包括时钟信号和其他信号;所述仿真图像字符识别模型利用已知字符的仿真波形图像集训练得到;
S72.识别所述时钟信号的跳变沿,并对所述时钟信号进行二值化表示,对其他信号二值化为全1;将识别出的时钟信号的二值化序列作为时间轴标度,在所述时钟信号为1时,判断其他信号是否跳变:若跳变,更新其他信号的二值化结果为0,若不跳变,保持其他信号的二值化结果;从而获得其他信号的二进制表示;
S73.利用其他信号的二进制表示,对所有其他信号的正确性进行验证,从而完成可编程逻辑器件的功能逻辑和时序逻辑验证。
上述技术方案的有益效果为:
本发明采用了基于机器视觉的方法,采用波形识别模型识别波形字符和波形线段,实现对仿真信号类别以及信号跳变沿的识别,对仿真结果进行波形跳变分析,辅助人工进行逻辑编程的开发验证,能够缩短仿真验证、结果分析的时间,减少了人工验证的工作量,提高测试效率,提高了电路功能开发和设计验证的自动化水平与效率。
进一步地,步骤S4中确定芯片的引脚编号排布前,需先确定芯片的封装类型,所述封装类型包括BGA封装和非BGA封装;若为非BGA封装,采用如下方法确定芯片的引脚编号排布:
将非BGA封装芯片图像输入至非BGA封装引脚识别模型中,识别该非BGA封装芯片的1号引脚所处的位置,依据1号引脚的位置,按照逆时针顺序逐一增大的原则来确定芯片中其他引脚的排布;所述非BGA封装引脚识别模型利用标注有1号引脚位置的非BGA封装芯片图像集训练得到。
上述技术方案的有益效果为:
本发明采用了基于机器视觉的方法,能够识别各芯片1号引脚的位置,又根据已知芯片类型可以确定芯片引脚数量,推断识别出其他引脚的排布顺序,进而确定各位置处的引脚的功能。识别1号引脚位置的引脚识别模型是根据具有以下特征的芯片图像集训练获得的:第一种,芯片的一角有圆点,识别芯片图像中芯片的一角是否有圆点;若有,则与圆点距离最近的引脚是1号引脚,依据引脚序号按逆时针顺序逐一增大的原则确定其他引脚;第二种,芯片的一角有缺口,识别芯片图像中芯片的一角是否有半圆形缺口;若有,正视芯片型号标记,缺口朝左的一侧左下方第一个引脚为1号引脚,依据引脚序号按逆时针顺序逐一增大的原则确定其他引脚;第三种,芯片的一角没有圆点也没有缺口,根据芯片的型号字符进行区分,识别芯片图像中芯片的一角没有出小圆点和小缺口,则旋转芯片图像以使芯片上的数字和型号处于正向阅读状态,那么芯片左下边第1个引脚是1号引脚,依据引脚序号按逆时针顺序逐一增大的原则确定其他引脚。确定了芯片中其他引脚编号排布的顺序,确定了各个位置处的引脚的功能,有助于结合引脚走线确定互连关系;实现了自动识别引脚编号排布的功能,再一次提升了可编程逻辑器件设计开发的自动化程度。
进一步地,所述BGA封装芯片,采用如下方法确定芯片的引脚编号排布:
将BGA封装芯片图像输入至BGA封装引脚识别模型中,识别出引脚丝印位置;依据引脚丝印位置确定该BGA封装芯片的1号引脚位置,进而确定该BGA封装芯片中其他引脚的排布;所述BGA封装引脚识别模型利用标注有丝印的BGA封装芯片图像集进行训练得到。
上述技术方案的有益效果为:
本发明采用了基于机器视觉的方法,所述BGA封装类型芯片引脚编号排布识别方法,将未焊接器件的PCB电路图片输入引脚识别模型,依据1号引脚标号和丝印确定引脚编号排布顺序,1号引脚处一般标有标记,通过该标记确定1号引脚,丝印为字符,通过识别字符确定其他引脚,从而确定引脚编号排布,进而确定各个位置处的引脚的功能。针对识别芯片引脚编号排布涵盖BGA封装类型芯片和非BGA封装类型芯片,识别范围广,再次提升可编程逻辑器件设计开发的自动化程度。
进一步地,所述芯片互连关系为数据链表,所述数据链表的数据内容包括芯片间引脚的连接关系、输入输出配置信息和引脚功能信息。
进一步地,步骤S6中还包括使用优化算法对可编程逻辑器件的功能逻辑设计进行优化,以生成编译文件;所述优化算法的优化方式包括合并优化、资源分配、以及布局布线中的至少一种方式。
进一步地,步骤S3中对IP核模块进行配置时,若默认参数无法满足需求,则需要对默认参数进行调整,所述参数包括波特率、奇偶校验、通讯位数长度中的至少一个参数。
进一步地,所述芯片字符识别模型、BGA封装引脚识别模型和非BGA封装引脚识别模型均为yolo或SSD。
进一步地,所述仿真图像字符识别模型为yolo。
附图说明
图1是本发明的背景技术中可编程逻辑器件设计开发的流程图;
图2是本发明的实施例中系统结构框图;
图3是本发明的实施例中可编程逻辑器件常用外围器件连接示意图;
图4-1是本发明的实施例中使用圆点标志芯片1号引脚的芯片示意图;
图4-2是本发明的实施例中使用缺口标志芯片1号引脚的芯片示意图;
图4-3是本发明的实施例中未标志芯片1号引脚的芯片示意图;
图5是本发明的实施例中MAX232的芯片引脚连接示意图;
图6是本发明的实施例中芯片MAX232与CPLD的互连引脚的序号关系示意图;
图7-1是本发明的标有上升沿、下降沿的波形示意图;
图7-2是本发明的实施例中波形仿真过程中发送信号以及对应时钟信号的波形示意图;
图8是本发明的实施例中波形仿真流程图;
图9是本发明基于图像识别的可编程逻辑器件的辅助编程设计方法的流程图;
图10-1是本发明实施例中BGA封装类型的芯片带有字符一面的示意图;
图10-2本发明实施例中BGA封装类型的芯片另一面的示意图;
图10-3是本发明实施例中非BGA封装类型的芯片示意图。
具体实施方式
方法实施例:
本发明的一种基于图像识别的可编程逻辑器件的辅助编程设计方法,应用于可编程芯片的逻辑功能自动化开发及测试,通过采集芯片图像或者电路图,进行基于机器视觉的目标检测和处理,能够实现电路板上芯片类型、引脚编号排布顺序的自动识别,再通过自动调用相关IP核模块参与编程设计,达到辅助编程的效果,提高可编程逻辑器件的功能的初步设计的质量和效率,减少人工工作量,实现高效率的电路功能开发和设计验证。
具体使用基于深度学习算法实现可编程逻辑器件的辅助编辑设计的方法,如图9所示,下面进行详细说明该方法:
1.采集图像数据。
如图2所示,通过高清工业相机对焊接器件后的电路板分别进行正反面的图像采集,然后将采集的电路板图像和电路原理图一起传输至计算机,通过计算机使用现行的各种深度学习目标检测模型进行识别、推理、分析,最后辅助可编程逻辑器件的设计和开发。其中深度学习目标检测模型是通过芯片数据集进行构建训练的,包括识别芯片型号的芯片字符识别模型、识别芯片引脚排布序号顺序的引脚识别模型和可编程逻辑器件的功能模块需求推理模型;另外,深度学习目标检测模型还有基于已知字符的仿真波形图像集进行构建训练得到的用于识别波形类别的仿真图像字符识别模型。上述算法模型均属于现有技术中的模型,如yolo、SSD、RCNN、LSTM、ViT、Transformer等,均可通过构建数据集进行训练获得。基于上述模型,在保证识别准确率的前提下,即可应用于可编程逻辑器件的辅助编辑设计。
2.识别芯片型号。
首先根据高清工业相机采集到的焊接器件的电路板图像,由基于深度学习的目标检测算法,如yolo、SSD等,对电路中各个芯片类型以及芯片型号进行目标检测和识别,包括芯片类型识别模型和芯片型号识别。该芯片类型识别模型是通过已标注的芯片数据集进行训练构建的。将电路板图像输入芯片类型识别模型,以确定芯片的类型,使用该芯片类型识别模型能够识别出电路中多种芯片的类型,如存储芯片、通信芯片、A/D转换芯片、D/A转换芯片和电源供电及电压转换芯片等。
芯片字符识别模型利用已知字符的芯片图像集训练得到。将识别出的芯片图像输入至芯片字符识别模型中,识别出芯片图像中的芯片型号字符,以确定各个芯片的型号。根据芯片型号则可以明确引脚数量以及各引脚的功能。下面对芯片类别识别模型、芯片字符识别模型识别的芯片类型与型号进行举例说明:如,常用的存储芯片如FLASH:S25FL128、W25Q64、MX29GL512、SST39VF020等型号,DRAM:HY57V653220B、K4S560832J等型号,EEPROM:AT24C512等型号;通信芯片如RS232/485/422等通讯芯片、CAN通讯芯片、USB通讯芯片、网络通讯的MAC/PHY芯片;A/D转换芯片如ADS8568、ADC0809、TLC548\549等型号;D/A转换芯片如DAC0832、DAC8552、DAC8563等型号;电源供电及电压转换芯片如LM1117、7805\7905等型号等。
此步骤针对的是与可编程逻辑器件某一个或某几个接口连接关系唯一且可确定的芯片。若同一接口可以连接不同功能的引脚,则即使本步骤识别出该芯片型号,也不参与后续步骤的处理。
3.识别芯片的1号引脚,确定芯片中各位置处的引脚序号。
可编程逻辑器件的引脚,初始状态下是默认为IO口,根据需求编程后,必须将可编程逻辑器件对应的引脚编号与可编程逻辑器件里的功能模块的输入输出端口进行绑定,并明确引脚的输入或者输出或者双向输入输出的功能属性,因此在电路设计上,芯片和CPLD的引脚连接没有固定设计,可以根据布线方便等需求,进行芯片引脚和可编程逻辑器件引脚的互联设计。但是在实际编程处理时,是需要知道电路板上的功能芯片和可编程逻辑器件的对应引脚连接关系的,编程后,必须绑定IP核模块的输入输出端口与可编程逻辑器件的引脚编号的。所以本发明里需要识别出各引脚编号排布,进而识别出各个编号的引脚与功能芯片的引脚间的连接关系,以方便后续编程进行引脚的绑定。比如,通过图像识别引脚的位置以方便后续识别功能芯片的引脚与CPLD引脚的连接关系。
确定芯片的引脚编号排布前,需先确定芯片的封装类型,所述封装类型包括BGA封装和非BGA封装;芯片封装类型:如图10-1、10-2所示为BGA封装,如图10-3所示为非BGA封装。若为非BGA封装,采用如下方法确定芯片的引脚编号排布:
将非BGA封装芯片图像输入至非BGA封装引脚识别模型中,识别该非BGA封装芯片的1号引脚所处的位置,依据1号引脚的位置,按照逆时针顺序逐一增大的原则来确定芯片中其他引脚的排布;所述非BGA封装引脚识别模型利用标注有1号引脚位置的非BGA封装芯片图像集训练得到。识别1号引脚位置的非BGA封装引脚识别模型是根据具有以下特征的非BGA封装芯片图像集训练获得的:如图4-1所示,第一种,芯片的一角有圆点,识别芯片图像中芯片的一角是否有圆点;若有,则与圆点距离最近的引脚是1号引脚,依据引脚序号按逆时针顺序逐一增大的原则确定其他引脚;如图4-2所示,第二种,芯片的一角有缺口,识别非BGA封装芯片图像中芯片的一角是否有半圆形缺口;若有,正视芯片型号标记,缺口朝左的一侧左下方第一个引脚为1号引脚,依据引脚序号按逆时针顺序逐一增大的原则确定其他引脚;如图4-3所示,第三种,芯片的一角没有圆点也没有缺口,根据非BGA封装芯片的型号字符进行区分,识别芯片图像中芯片的一角没有出小圆点和小缺口,则旋转芯片图像以使芯片上的数字和型号处于正向阅读状态,那么芯片左下边第1个引脚是1号引脚,依据引脚序号按逆时针顺序逐一增大的原则确定其他引脚;进而确定了芯片中其他引脚的排布顺序。
具体目标识别检测时,非BGA封装引脚识别模型为基于深度学习的目标检测算法,如yolo、SSD等中的一种,对已确定芯片类型的芯片进行图像检测,结合上述三种识别特征识别出芯片引脚中的1号引脚,并按照逆时针顺序,获取芯片的引脚位置排布顺序。此方法适用于常用的DIP\QFP\SOP等芯片引脚引出封装的芯片。
对于BGA封装的芯片,采用如下方法确定芯片的引脚编号排布:将BGA封装芯片图像输入至BGA封装引脚识别模型中,识别出引脚丝印位置;依据引脚丝印位置确定该BGA封装芯片的1号引脚位置,进而确定该BGA封装芯片中其他引脚的排布;所述BGA封装引脚识别模型利用标注有丝印的BGA封装芯片图像集进行训练得到。具体地,因为引脚在BGA封装芯片的背部,可以根据识别出的BGA封装芯片的位置,查看未焊接器件的PCB电路图片中对应的区域,并利用前述BGA封装引脚识别模型中目标检测算法,识别出BGA封装的引脚丝印,确定1号引脚标记,并根据引脚印丝的字母和数字的组合来获取引脚顺序。BGA封装的芯片正面是看不到有引出金属引脚的,在芯片背后才有针型引脚,而非BGA封装芯片正面能看到四周有伸出的金属引脚。这可以通过对芯片识别时,四周是否有金属引脚进行判别以确定芯片封装类型。具体地,BGA封装类型的芯片引脚识别的方法为:引脚丝印是PCB电路板上的文字符号,用于帮助人工标记器件编号,封装类型等。因此可以用目标检测算法进行识别,通过BGA封装引脚识别模型识别引脚印丝的字符,通过识别到的字符信息和PCB封装丝印上设置的第一引脚标记确认芯片引脚编号排布顺序。一般BGA封装类型的芯片在PCB的封装丝印上会设有第一引脚的标记,且芯片第一引脚的标记一般为三角符号。
4.查询数据库,确定各引脚功能。
获取芯片的引脚序号后,根据芯片的类型和引脚序号,查询数据库中该芯片的数据链表,确定该芯片各个位置处引脚的功能。数据库中存有各类常用芯片的功能信息以及对应引脚功能信息。
5.确定引脚间连接关系,建立芯片间互连关系。
识别电路原理图或者电路板图像中的走线线段,连接相交的走线线段得到多条走线,结合确定的各芯片的引脚编号排布,确定外设芯片与可编程逻辑器件间各引脚的互连关系,以供后续绑定引脚。此处相交的走线线段为:某一直线段中某段与相邻另一段相交,或者某一带有折角的连续线段中,通过折角点连接的两条边的线段;以下有两种方式确定引脚间的连接关系:
第一,针对只在顶层或底层走线的两层板电路板,确定芯片各个引脚的功能后,再通过LSTM、Transformer等目标检测算法,构建走线识别模型,然后结合电路板上走线的位置坐标,可以建立各个外设芯片与可编程逻辑器件引脚间的走线连接关系。具体地,通过建立电路板上走线的数据集,对走线识别模型进行训练,从而可以识别芯片引脚间走线的线段,定位每段线路的起点、终点在图片中坐标,根据导线连续的原则,将同一坐标点的起始和终止线段进行连通,建立多个线段间的连通关系,从而建立起可编程逻辑器件的某一引脚与外设芯片的某一引脚的间的走线连接关系。第二,以可编程逻辑器件为核心的电路系统中各类型芯片的互连关系,如图3所示,以上述常用互连关系,确定引脚间的连接关系。例如,存储芯片、通信协议芯片、A/D转换芯片、电源供电芯片等;根据芯片型号及引脚标记,借助深度学习算法识别出芯片的第1引脚以及引脚的排布顺序,由于芯片中数据线、地址线、电源线等连接关系是确定的,因此很容易确定各个芯片间的常用连接关系。
第三.如果遇到多层电路板,存在顶层、底层、中间层线路切换的情况,需要借助电路原理图,通过对原理图中器件、网络标号的识别,来建立各芯片引脚互连关系的列表。即对于布线复杂的多层电路板,通过字符识别模型识别电路图中电路线的标号来确定引脚间的连接关系;电路图中,连接在相同网络标号的电路线的两个引脚相连接,从而可以建立可编程逻辑器件的某一引脚与功能芯片的某一引脚的间的走线连接关系,进而确定互连关系。
根据上述确定的引脚间连接关系,如图5所示,又明确芯片的型号、引脚编号排布,然后结合各个芯片编号排布、走线端点像素坐标和芯片编号像素坐标进而确定芯片间的互连关系,即记录芯片间连接关系以及芯片引脚功能的列表,如下文中表1所示。
6.根据可编程逻辑器件与外设芯片的连接关系,确定可编程逻辑器件的输入输出功能配置信息。
分析可编程逻辑器件与外设器件间的引脚互连关系,形成可编程逻辑器件引脚功能的分布列表,进而明确引脚的输入输出功能,完成设计输入,各芯片间的引脚互连关系列表中关于输入输出功能配置信息,如表1中“输入/输出功能配置”条目中所示。例如:识别出CPLD型号为EPM7128,识别出通讯芯片为MAX232,根据识别出的两个芯片的引脚顺序,建立两个芯片间的引脚间连接关系;如图6所示,CPLD中是28-31的引脚与MAX232的9、10、11、12引脚互连;然后可以查询得到MAX232芯片的各引脚功能,根据CPLD和MAX232的互连关系,又明确CPLD引脚输入、输出功能配置情况,从而建立了完善的互连关系列表以供自动化编程配置使用。其中,上述芯片功能、引脚功能、引脚间连接关系均可以通过数据链表的方式进行构建和查询。
表1互连关系列表
7.根据芯片的型号,推理选择IP核模块,并配置参数。
根据各个识别出的外设芯片型号,确定选择相应的IP核模块并对IP核模块进行配置,并建立IP核模块间的链路关系,以实现可编程逻辑器件的功能逻辑设计;根据外设芯片型号确定外设芯片类型,进而确定其功能,通过功能模块需求推理模型,对可编程逻辑器件的内置功能逻辑需求进行推理,进而从库中选择相应的IP核模块,并根据IP核模块默认的参数列表进行参数配置。该功能模块需求推理模型利用功能芯片类型与对应IP核模块间对应关系的数据集训练得到,如LSTM、Transformer等经典模型算法,这种推理属于典型的分类问题,是神经网络处理的基本问题,只需要建立功能芯片类型与对应IP核模块间对应关系的数据集进行训练,就可以根据识别的芯片类型及引脚关系,确定应该选择哪种类型的IP核模块。
如根据上述MAX232的串口通讯互连关系,选择串口通讯的IP核模块,一般默认参数能满足基本功能需求,也可以根据实际的需求,通过人工配置的方式,对通讯的波特率、奇偶校验、通讯位数长度等参数进行修改。如没有对应的IP核模块,则需要人工开发IP核模块后导入,以供后续自动化编程使用。
8.建立IP核模块间的数据链路和控制交互链路,实现整体功能逻辑的设计。
根据可编程逻辑器件内部的各个逻辑模块间数据总线、地址总线、读写控制线的关联关系,建立IP核模块间的数据链路和控制交互链路,完成各个模块间的互联,实现整体功能逻辑的设计。例如:FPGA中的串口通讯IP核模块需要的地址线、数据线、读写控制端口连到其他IP核模块对应的地址线、数据线和读写控制端口,辅助人工建立内部IP核模块间的互联关系,如果自动互联存在错误,可由人工进行修改调整。
编程完成后,根据识别的各芯片的引脚编号位置排布和芯片间的互连关系,绑定IP核模块的输入输出端口与可编程逻辑器件的引脚编号。
9.优化算法,产生编译文件。
人工审核后,根据EDA软件的优化算法,对整体功能逻辑设计等进行合并优化、资源分配、引脚绑定、布局布线,产生编译文件。
10.设计校验。
如图8所示,根据优化设计结果,进行功能逻辑和时序的仿真,获得仿真波形图像,仿真波形图像包括波形信号名称和波形曲线。将仿真波形图像输入至仿真图像字符识别模型中,识别出仿真波形图像中的波形信号名称,并依据波形信号名称和波形曲线在仿真波形图像中的位置关系确定各波形曲线的波形信号类别,波形信号类别包括时钟信号和其他信号;仿真图像字符识别模型利用已知字符的仿真波形图像集训练得到。具体识别时,仿真图像字符识别模型,为yolo等深度学习目标检测算法,进行波形信号名称的识别,如图7-2所示,仿真波形图的左边是波形名称,右边是波形信号变化,因此使用仿真图像字符识别模型识别出波形名称,进而确定其对应的仿真的端口或引脚,然后对应的识别图中右边的波形变化,即识别跳变沿。
例如识别时钟线、数据线、地址线、读写控制线的名称以进行确认波形名称,以及波形的上升沿、下降沿,并根据跳变沿将波形信号进行0/1二值化表示,规定上升沿为1,下降沿为0,如图7-1所示;首先将数据线、地址线、读写控制线等除时钟信号之外的其他信号的信号二值化为全1,然后利用时钟信号的二值化序列作为时间轴标度,判定各个信号的跳变关系和前后顺序,对各个信号波形进行功能逻辑和时序逻辑的验证,具体地,判断时钟信号为1时,其他信号是否有跳变;若有跳变,则更新其他信号的二值化结果;若无跳变,则保持其他信号的二值化结果;最后,获得其他信号数据的二进制表示,进而判断其他信号数据的正确性。例如:对串口通信发送数据进行仿真,获得发送接口上的仿真波形图,先通过字符识别模型识别出时钟线和发送数据线,然后识别时钟线的跳变沿,建立时钟信号的二值化序列,发送数据线的信号为全1,在时钟信号二值化为1时,去对发送数据信号线的波形跳变沿进行判定,如果没有发生跳变,则维持发送数据线信号的原二值化结果不变;如果发生跳变,则根据上升沿还是下降沿,更新发送数据线信号的二值化结果。由此可以获得发送数据的二进制表示结果,如图7-2所示,为10001111,可以判断发送数据是否正确,并根据时钟频率判断发送波特率是否正确。根据跳变沿进行信号的二值化表示,根据时钟信号来分析其他信号的工作逻辑。
经过上述校验,若满足功能设计需求,则下载至可编程逻辑器件,进行测试和应用,至此完成可编程逻辑器件的逻辑设计。
因此,本发明通过采用深度学习的目标检测方法,第一,基于视觉图像的处理,实现了对可编程逻辑器件、外设芯片的器件类型、引脚编号排布的检测识别;设计人员无需再关心内部电路设计,从此提高了对可编程逻辑器件程序开发的效率。第二,本发明可以根据电路板的芯片连接关系,对可编程逻辑器件功能模块需求进行推理预测,进而再调用IP核模块基础上,辅助人工进行功能逻辑编程,降低人工前期编程、参数配置的工作量,提升可编程逻辑器件设计开发的自动化程度。第三,基于机器视觉的方法,对仿真结果进行波形跳变分析,辅助人工进行逻辑编程的开发验证,能够缩短仿真验证结果分析的时间,减少人工验证的工作量,提高电路功能开发和设计验证的自动化程度与效率。
Claims (10)
1.一种基于图像识别的可编程逻辑器件的辅助编程设计方法,其特征在于:包括如下步骤:
S1.获取电路原理图或者电路板图像,利用图像识别方法,提取电路原理图或者电路板图像中的芯片图像;
S2.将提取的芯片图像输入至芯片字符识别模型中,识别出芯片图像中的芯片型号字符,以确定各个芯片的型号,所述芯片包括可编程逻辑器件和外设芯片;所述芯片字符识别模型利用已知字符的芯片图像集训练得到;
S3.根据各个识别出的外设芯片型号,确定选择相应的IP核模块并对IP核模块进行配置,并建立IP核模块间的链路关系,以实现可编程逻辑器件的功能逻辑设计;
S4.依据芯片的型号,确定各芯片的引脚编号排布;
S5.识别电路原理图或者电路板图像中的走线线段,连接相交的走线线段得到多条走线,结合确定的各芯片的引脚编号排布,确定外设芯片与可编程逻辑器件间各引脚的互连关系,并根据所述互连关系绑定引脚;
S6.依据可编程逻辑器件的功能逻辑设计结果和绑定结果,生成编译文件。
2.根据权利要求1所述的基于图像识别的可编程逻辑器件的辅助编程设计方法,其特征在于:所述外设芯片包括存储芯片、通信芯片、A/D转换芯片、D/A转换芯片、电源供电及电压转换芯片中的至少一种。
3.根据权利要求1所述的基于图像识别的可编程逻辑器件的辅助编程设计方法,其特征在于:步骤S6之后,还包括步骤S7;
S7.对编译完成后的可编程逻辑器件进行仿真以验证可编程逻辑器件的功能逻辑和时序逻辑:
S71.获得仿真波形图像,所述仿真波形图像包括波形信号名称和波形曲线,将仿真波形图像输入至仿真图像字符识别模型中,识别出仿真波形图像中的波形信号名称,并依据波形信号名称和波形曲线在仿真波形图像中的位置关系确定各波形曲线的波形信号类别,所述波形信号类别包括时钟信号和其他信号;所述仿真图像字符识别模型利用已知字符的仿真波形图像集训练得到;
S72.识别所述时钟信号的跳变沿,并对所述时钟信号进行二值化表示,对其他信号二值化为全1;将识别出的时钟信号的二值化序列作为时间轴标度,在所述时钟信号为1时,判断其他信号是否跳变:若跳变,更新其他信号的二值化结果为0,若不跳变,保持其他信号的二值化结果;从而获得其他信号的二进制表示;
S73.利用其他信号的二进制表示,对所有其他信号的正确性进行验证,从而完成可编程逻辑器件的功能逻辑和时序逻辑验证。
4.根据权利要求1所述的基于图像识别的可编程逻辑器件的辅助编程设计方法,其特征在于:步骤S4中确定芯片的引脚编号排布前,需先确定芯片的封装类型,所述封装类型包括BGA封装和非BGA封装;若为非BGA封装,采用如下方法确定芯片的引脚编号排布:
将非BGA封装芯片图像输入至非BGA封装引脚识别模型中,识别该非BGA封装芯片的1号引脚所处的位置,依据1号引脚的位置,按照逆时针顺序逐一增大的原则来确定芯片中其他引脚的排布;所述非BGA封装引脚识别模型利用标注有1号引脚位置的非BGA封装芯片图像集训练得到。
5.根据权利要求4所述的基于图像识别的可编程逻辑器件的辅助编程设计方法,其特征在于:所述BGA封装芯片,采用如下方法确定芯片的引脚编号排布:
将BGA封装芯片图像输入至BGA封装引脚识别模型中,识别出引脚丝印位置;依据引脚丝印位置确定该BGA封装芯片的1号引脚位置,进而确定该BGA封装芯片中其他引脚的排布;所述BGA封装引脚识别模型利用标注有丝印的BGA封装芯片图像集进行训练得到。
6.根据权利要求1所述的基于图像识别的可编程逻辑器件的辅助编程设计方法,其特征在于:所述芯片互连关系为数据链表,所述数据链表的数据内容包括芯片间引脚的连接关系、输入输出配置信息和引脚功能信息。
7.根据权利要求1所述的基于图像识别的可编程逻辑器件的辅助编程设计方法,其特征在于:步骤S6中还包括使用优化算法对可编程逻辑器件的功能逻辑设计进行优化,以生成编译文件;
所述优化算法的优化方式包括合并优化、资源分配、以及布局布线中的至少一种方式。
8.根据权利要求1所述的基于图像识别的可编程逻辑器件的辅助编程设计方法,其特征在于:步骤S3中对IP核模块进行配置时,若默认参数无法满足需求,则需要对默认参数进行调整,所述参数包括波特率、奇偶校验、通讯位数长度中的至少一个参数。
9.根据权利要求4所述的基于图像识别的可编程逻辑器件的辅助编程设计方法,其特征在于:所述芯片字符识别模型、BGA封装引脚识别模型和非BGA封装引脚识别模型均为yolo或SSD。
10.根据权利要求3所述的基于图像识别的可编程逻辑器件的辅助编程设计方法,其特征在于:所述仿真图像字符识别模型为yolo。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210448735.5A CN114861581B (zh) | 2022-04-26 | 2022-04-26 | 基于图像识别的可编程逻辑器件的辅助编程设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210448735.5A CN114861581B (zh) | 2022-04-26 | 2022-04-26 | 基于图像识别的可编程逻辑器件的辅助编程设计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114861581A true CN114861581A (zh) | 2022-08-05 |
CN114861581B CN114861581B (zh) | 2024-03-08 |
Family
ID=82634075
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210448735.5A Active CN114861581B (zh) | 2022-04-26 | 2022-04-26 | 基于图像识别的可编程逻辑器件的辅助编程设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114861581B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115600539A (zh) * | 2022-11-10 | 2023-01-13 | 上海威固信息技术股份有限公司(Cn) | 一种芯片封装模块化设计方法及系统 |
CN117558019A (zh) * | 2024-01-11 | 2024-02-13 | 武汉理工大学 | 从pdf格式元器件手册中自动提取符号图参数的方法 |
CN117573153A (zh) * | 2024-01-12 | 2024-02-20 | 深圳市迈腾电子有限公司 | 路由器芯片烧录方法、装置、电子设备和计算机可读介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1235152A2 (en) * | 2001-02-27 | 2002-08-28 | Korea Advanced Institute of Science and Technology | Apparatus and method for in-circuit emulation using a high-level programming language |
CN103123658A (zh) * | 2011-11-21 | 2013-05-29 | 中国科学院电子学研究所 | 一种可编程逻辑阵列ip核及其系统集成方法 |
CN112115948A (zh) * | 2020-09-15 | 2020-12-22 | 电子科技大学 | 一种基于深度学习的芯片表面字符识别方法 |
-
2022
- 2022-04-26 CN CN202210448735.5A patent/CN114861581B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1235152A2 (en) * | 2001-02-27 | 2002-08-28 | Korea Advanced Institute of Science and Technology | Apparatus and method for in-circuit emulation using a high-level programming language |
CN103123658A (zh) * | 2011-11-21 | 2013-05-29 | 中国科学院电子学研究所 | 一种可编程逻辑阵列ip核及其系统集成方法 |
CN112115948A (zh) * | 2020-09-15 | 2020-12-22 | 电子科技大学 | 一种基于深度学习的芯片表面字符识别方法 |
Non-Patent Citations (1)
Title |
---|
张洪波;李清宝;肖达;曾光裕;: "在线式不明逻辑芯片引脚属性判别算法研究", 信息工程大学学报, no. 03, 15 June 2010 (2010-06-15), pages 331 - 335 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115600539A (zh) * | 2022-11-10 | 2023-01-13 | 上海威固信息技术股份有限公司(Cn) | 一种芯片封装模块化设计方法及系统 |
CN115600539B (zh) * | 2022-11-10 | 2024-01-26 | 上海威固信息技术股份有限公司 | 一种芯片封装模块化设计方法及系统 |
CN117558019A (zh) * | 2024-01-11 | 2024-02-13 | 武汉理工大学 | 从pdf格式元器件手册中自动提取符号图参数的方法 |
CN117558019B (zh) * | 2024-01-11 | 2024-05-28 | 武汉理工大学 | 从pdf格式元器件手册中自动提取符号图参数的方法 |
CN117573153A (zh) * | 2024-01-12 | 2024-02-20 | 深圳市迈腾电子有限公司 | 路由器芯片烧录方法、装置、电子设备和计算机可读介质 |
CN117573153B (zh) * | 2024-01-12 | 2024-04-30 | 深圳市迈腾电子有限公司 | 路由器芯片烧录方法、装置、电子设备和计算机可读介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114861581B (zh) | 2024-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114861581B (zh) | 基于图像识别的可编程逻辑器件的辅助编程设计方法 | |
CN1848122B (zh) | 芯片与封装基板的布局数据集合的整合式检错方法及系统 | |
CN102682166B (zh) | Smt设备快速制程系统及方法 | |
US6851100B1 (en) | Management system for automated wire bonding process | |
US7559045B2 (en) | Database-aided circuit design system and method therefor | |
CN109241681B (zh) | 回流焊的仿真优化方法、系统、计算机存储介质及设备 | |
CN112507649A (zh) | 一种模拟版图的数模引脚映射到数字版图的方法 | |
CN104573242A (zh) | 一种pcb设计版图审核系统 | |
US7657853B2 (en) | Verification apparatus, design verification method, and computer aided design apparatus | |
US6584606B1 (en) | Fast method of I/O circuit placement and electrical rule checking | |
CN112800716B (zh) | 一种集成电路版图布线中线网开路检测方法 | |
US7519937B2 (en) | Circuit diagram processing system and method | |
US6609230B1 (en) | Method for design verification using modular templates of test benches | |
CN114970441A (zh) | Ic芯片封装自动布线方法 | |
CN107895064B (zh) | 元器件极性检测方法、系统、计算机可读存储介质及设备 | |
CN103678746A (zh) | 印刷电路板的电路设计模拟系统及其电路设计方法 | |
CN112560388A (zh) | 一种版图设计中的对称布局布线方法 | |
CN100547750C (zh) | 半导体装置的封装设计方法及制造方法和布局设计工具 | |
CN109815635B (zh) | 一种锅炉mft自动设计系统及方法 | |
JPH11175577A (ja) | 仮想製造支援設計方法及び仮想製造支援設計システム | |
CN113935271A (zh) | 自动布局布线方法 | |
CN114417779A (zh) | 芯片连线方法及装置、计算机设备、计算机可读存储介质 | |
CN101604342B (zh) | 一种在集成电路仿真平台上标注mos管的方法及其装置 | |
CN102789509A (zh) | 一种标记不焊接器件的方法及系统 | |
JP7278981B2 (ja) | クロストークチェック装置 |
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 |