Solder-resistance-free bonding pad searching method and device and terminal equipment
By analyzing and analyzing the PCB file, identifying the solder-resist pads without solder-resist pads in the PCB board optical drawing files in the existing technology, and a more efficient and accurate inspection is achieved.
Patent Information
- Application Number
- CN202411651865.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-11-19
- Publication Date
- 2025-02-25
AI Technical Summary
In the prior art, the efficiency and accuracy of checking whether the solder shield of the pads in the PCB board optical drawing files is missing is low, which leads to the factory covering the pads that need to be soldered when printing green oil, affecting the subsequent welding process.
By analyzing the PCB file, all pad groups are obtained and the surface layer corresponding to each pad object is a solder resist layer. If yes, the shape parameters of the pad object are obtained; if the shape parameters are None, the pad group corresponding to the pad object is stored in the non-solder pad sequence, and finally the non-solder pad in the PCB file is determined based on this sequence.
It realizes the rapid and accurate identification of solderless pads from PCB files, and improves the efficiency and accuracy of checking whether the solder resist is missing in the PCB board optical drawing file.
Smart Images

Figure CN119513374A_ABST
Abstract
Description
Technical Field
[0001] The present application belongs to the field of PCB processing technology, and in particular, relates to a method, device and terminal equipment for searching a solderless pad. Background Art
[0002] In the production process of printed circuit boards (PCBs), the solder mask process is an indispensable step. The solder mask process can be completed by transferring ink to the circuit board through screen printing to form a pattern consistent with the film; the solder mask is a protective film that can prevent bridging during welding and provide a long-term insulation environment and chemical resistance.
[0003] During the design process of PCB boards, engineers usually send the photolithography file containing the solder mask information of the PCB board to the corresponding factory for solder mask production. However, during the design, due to the engineer's misoperation or the omission of the solder mask when creating a new component pad, the solder mask of a certain SMD component pad may be missing, which may cause the factory to make mistakes when printing green ink, covering the pad that needs to be soldered, affecting the subsequent soldering process.
[0004] In order not to affect the subsequent production and processing of PCB boards, it is necessary to check whether the solder mask of the pads in the photolithography file is missing. However, in the related technology, whether the solder mask of the pads is missing is often checked manually. Since the photolithography file of a large PCB board contains hundreds or thousands of components, and the number of pads is several times the number of components, it takes engineers a lot of time to check the file content, which affects the efficiency of checking the solder mask of the pads in the file, and the accuracy of the check is also low.
[0005] Currently, no effective solution has been proposed for the problem of low efficiency and accuracy in checking whether the solder mask of the pads in the photo-drawing file of the PCB board is missed in the related technology. Summary of the invention
[0006] The embodiments of the present application provide a method, apparatus and terminal device for searching for pads without solder mask, so as to at least solve the problem of low efficiency and accuracy in checking whether the solder mask of the pads in the photo-drawing file of the PCB board is missed in the related art.
[0007] In the first aspect, an embodiment of the present application provides a method for searching for non-solder mask pads, comprising: obtaining all pad groups from an input PCB file; determining whether the surface layer corresponding to each pad object in each pad group is a solder mask layer; if the surface layer corresponding to the pad object is a solder mask layer, obtaining the shape parameters of the pad object from the PCB file; if the shape parameters of the pad object are none, storing the pad group corresponding to the pad object into a preset non-solder mask pad sequence; and determining the non-solder mask pads in the PCB file based on the non-solder mask pad sequence.
[0008] In some embodiments, determining whether the surface layer corresponding to each pad object in each pad group is a solder mask layer includes: obtaining the pad type of each pad group from the PCB file; selecting a verification rule corresponding to the pad type of the pad group from preset verification rules, and determining whether the surface layer corresponding to each pad object in the pad group is a solder mask layer based on the verification rule corresponding to the pad type of the pad group.
[0009] In some embodiments, the preset verification rules include: if the pad type of the pad group is a through-hole pad, obtaining the surface layer corresponding to each pad object in the pad group from the PCB file; judging whether the surface layer corresponding to the pad object matches a preset first character, if the surface layer matches the first character, determining that the surface layer corresponding to the pad object is a solder mask layer; or if the pad type of the pad group is a surface mount pad, obtaining the surface layer name of the pad group and the surface layer corresponding to each pad object in the pad group from the PCB file; judging whether the surface layer corresponding to the pad object matches the first character and the surface layer name of the pad group, if the surface layer matches the first character and the surface layer name, determining that the surface layer corresponding to the pad object is a solder mask layer.
[0010] In some embodiments, obtaining the pad type of each pad group from the PCB file includes: obtaining the through-hole parameter of each pad group from the PCB file; if the through-hole parameter of the pad group is 1, determining that the pad group is a through-hole pad; or if the through-hole parameter of the pad group is 0, determining that the pad group is a patch pad.
[0011] In some embodiments, based on the non-solder mask pad sequence, determining the non-solder mask pads in the PCB file includes: if the number of pad groups in the non-solder mask pad sequence is not zero, obtaining a database object that meets a preset screening condition from the PCB file; determining whether the database object exists in the non-solder mask pad sequence; if the database object exists in the non-solder mask pad sequence, determining that the pad corresponding to the database object is a non-solder mask pad.
[0012] In some embodiments, obtaining a database object that meets preset filtering conditions from a PCB file includes: obtaining a valid layer corresponding to a filtering layer type in the preset filtering conditions from the PCB file; and using an object in the valid layer corresponding to a filtering object type in the preset filtering conditions as a database object.
[0013] In some embodiments, after determining that the pad corresponding to the database object is a non-solder mask pad, the method also includes: obtaining the coding number, coordinate position and bit number of each non-solder mask pad as the corresponding basic information; and displaying the basic information of each non-solder mask pad in the output port of a preset display window.
[0014] In the second aspect, an embodiment of the present application provides a device for searching for pads without solder resist, including: a pad group acquisition module, used to obtain all pad groups from an input PCB file; a solder resist layer judgment module, used to judge whether the surface layer corresponding to each pad object in each pad group is a solder resist layer; a parameter acquisition module, used to obtain the shape parameters of the pad object from the PCB file when the surface layer corresponding to the pad object is a solder resist layer; a data storage module, used to store the pad group corresponding to the pad object into a preset pad sequence without solder resist when the shape parameter of the pad object is none; and a pad group determination module, used to determine the pads without solder resist in the PCB file based on the pad sequence without solder resist.
[0015] In a third aspect, an embodiment of the present application provides a terminal device, including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein when the processor executes the computer program, the method for searching for a solderless pad as described in any one of the first aspects above is implemented.
[0016] In a fourth aspect, an embodiment of the present application provides a computer program product, including a computer program. When the computer program is executed, the method for searching for a solder mask-free pad described in any one of the first aspects above is executed.
[0017] Compared with the related art, the method, device and terminal device for searching for solder-free pads provided in the embodiments of the present application parse the PCB file to obtain all pad groups, and determine whether the surface layer corresponding to each pad object in each pad group is a solder-free layer. If the surface layer corresponding to the pad object is a solder-free layer, the PCB file is parsed to obtain the shape parameters of the pad object; if the shape parameters of the pad object are none, the pad group corresponding to the pad object is stored in a preset solder-free pad sequence; finally, based on the solder-free pad sequence, the solder-free pads in the PCB file are determined. In this way, by parsing the pad groups contained in the PCB file, the surface layer information corresponding to each pad object in each pad group, and the shape parameters of the pad objects, and screening the shape parameters of the pad objects, the solder-free pads can be quickly and accurately identified from the PCB file. Through the present application, the problem of low efficiency and accuracy in checking whether the solder mask of the pad in the photo-drawing file of the PCB board is missed in the related technology is solved, and the technical effect of improving the efficiency and accuracy of checking whether the solder mask of the pad in the photo-drawing file of the PCB board is missed is achieved.
[0018] Details of one or more embodiments of the present application are set forth in the following drawings and description to make other features, objects, and advantages of the present application more readily apparent. BRIEF DESCRIPTION OF THE DRAWINGS
[0019] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative work.
[0020] Figure 1 is a flow chart of a method for searching a solder pad without solder resist according to an embodiment of the present application;
[0021] Figure 2 It is a flow chart of a method for determining whether a surface layer corresponding to a pad object is a solder resist layer according to an embodiment of the present application;
[0022] Figure 3 This is a schematic diagram of a PCB board photolithography file according to an embodiment of the present application;
[0023] Figure 4 is a structural schematic diagram of a device for searching for solder-free pads according to an embodiment of the present application;
[0024] Figure 5 It is a structural diagram of a terminal device according to an embodiment of the present application. DETAILED DESCRIPTION
[0025] In the following description, specific details such as specific system structures, technologies, etc. are provided for the purpose of illustration rather than limitation, so as to provide a thorough understanding of the embodiments of the present application. However, it should be clear to those skilled in the art that the present application may also be implemented in other embodiments without these specific details. In other cases, detailed descriptions of well-known systems, devices, circuits, and methods are omitted to prevent unnecessary details from obstructing the description of the present application.
[0026] It should be understood that when used in the present specification and the appended claims, the term "comprising" indicates the presence of described features, wholes, steps, operations, elements and / or components, but does not exclude the presence or addition of one or more other features, wholes, steps, operations, elements, components and / or combinations thereof.
[0027] It should also be understood that the term “and / or” used in the specification and appended claims refers to any and all possible combinations of one or more of the associated listed items, and includes these combinations.
[0028] As used in the specification and appended claims of this application, the term "if" can be interpreted as "when" or "uponce" or "in response to determining" or "in response to detecting", depending on the context. Similarly, the phrase "if it is determined" or "if [described condition or event] is detected" can be interpreted as meaning "uponce it is determined" or "in response to determining" or "uponce [described condition or event] is detected" or "in response to detecting [described condition or event]", depending on the context.
[0029] In addition, in the description of the present application specification and the appended claims, the terms "first", "second", "third", etc. are only used to distinguish the descriptions and cannot be understood as indicating or implying relative importance.
[0030] References to "one embodiment" or "some embodiments" etc. described in the specification of this application mean that one or more embodiments of the present application include specific features, structures or characteristics described in conjunction with the embodiment. Therefore, the statements "in one embodiment", "in some embodiments", "in some other embodiments", "in some other embodiments", etc. that appear in different places in this specification do not necessarily refer to the same embodiment, but mean "one or more but not all embodiments", unless otherwise specifically emphasized in other ways. The terms "including", "comprising", "having" and their variations all mean "including but not limited to", unless otherwise specifically emphasized in other ways.
[0031] This application involves some professional terms, please refer to the following term explanations.
[0032] Cadence Allegro: A PCB design and routing tool developed by Cadence Design Systems. It integrates schematic design, circuit simulation, PCB drawing and editing, topology logic automatic routing, signal integrity analysis, design output and other functions, and is often used in high-speed PCB design scenarios.
[0033] Skill: A custom program based on Cadence Allegro that can automate operations.
[0034] Skill language library: a callable database that comes with Cadence Allegro.
[0035] CAM350: PCB design and manufacturing verification tool, which can convert PCB board design drawings into specific manufacturing process software, and can analyze and check manufacturing, signal layers, drilling, solder mask, etc.
[0036] In the production process of printed circuit boards (PCBs), the solder mask process is an indispensable step. The solder mask process can be completed by transferring ink to the circuit board through screen printing to form a pattern consistent with the film; the solder mask is a protective film that can prevent bridging during welding and provide a long-term insulation environment and chemical resistance.
[0037] During the design process of PCB boards, engineers usually send the photolithography file containing the solder mask information of the PCB board to the corresponding factory for solder mask production. However, during the design, due to the engineer's misoperation or the omission of the solder mask when creating a new component pad, the solder mask of a certain SMD component pad may be missing, which may cause the factory to make mistakes when printing green ink, covering the pad that needs to be soldered, affecting the subsequent soldering process.
[0038] In order not to affect the subsequent production and processing of PCB boards, it is necessary to check whether the solder mask of the pads in the photolithography file is missing. However, in the related technology, whether the solder mask of the pads is missing is often checked manually. Since the photolithography file of a large PCB board contains hundreds or thousands of components, and the number of pads is several times the number of components, it takes engineers a lot of time to check the file content, which affects the efficiency of checking the solder mask of the pads in the file, and the accuracy of the check is also low.
[0039] For example, in the related technology, the layer display manager of Cadence Allegro is used to open the corresponding layer and use the human eye to check the solder mask condition of the pads in the file, including: step 1, turning off all layer displays of the PCB board; step 2, opening the Pin / Soldermask_Top layer and the Pin / Top layer; step 3, checking the solder mask condition of each pad in the Pin / Soldermask_Top layer and the Pin / Top layer by human eyes; step 4, checking the solder mask condition of each pad in the Pin / Soldermask_Bottom layer and the Pin / Bottom layer by the above method.
[0040] However, in this type of method, engineers need to open the layer display manager, close all layers of the PCB board, then find the corresponding layers one by one and open them, check the Top layer (including Pin / Soldermask_Top layer and Pin / Top layer) once, and then repeat similar operations when checking the Bottom layer (including Pin / Soldermask_Bottom layer and Pin / Bottom layer). At the same time, when the PCB board to be designed is a complex large board, the components used on it may be as many as hundreds or thousands, and the number of pads is several times the number of components. At this time, only checking the solder mask of the pads by the engineer's eyes cannot guarantee a high accuracy, and the efficiency is also extremely low.
[0041] For another example, CAM350 is also used in the related technology, and the solder mask condition of the pads in the file is checked by human eyes, including: step 1, exporting the photolithography file of the PCB board from Cadence Allegro; step 2, importing the photolithography file into CAM350; step 3, opening the TOP solder mask layer and the TOP routing layer in CAM350, setting two contrasting colors respectively, and overlapping the two layers; step 4, comparing and analyzing the TOP solder mask layer and the TOP routing layer by human eyes to check the solder mask condition of each pad; step 5, checking the solder mask condition of each pad in the TOP solder mask layer and the TOP routing layer by the above method.
[0042] However, in this method, engineers need to first export the PCB board's photolithography file from Cadence Allegro to CAM350, then open the corresponding layer and set the color respectively, and finally check it by comparing the stack by human eyes, which will take a lot of time; at the same time, engineers check the solder mask of the pad by comparing the stack color. When engineers find a pad without solder mask, they also need to locate which component the pad without solder mask belongs to, and then return to Cadence Allegro to make changes. When the PCB board is large and the component density is high, it is often difficult to place the position number silk screen of the smaller device nearby. Since CAM350 can only display layer information and cannot perform other operations on the pad, it makes it difficult for engineers to locate the pad without solder mask to the component to which it belongs.
[0043] Therefore, currently, there is no effective solution to the problem of low efficiency and accuracy in checking whether the solder mask of the pad in the PCB board photo-drawing file is missed in the related technology.
[0044] In view of this, the embodiment of the present application provides a method for searching for solder-free pads, by parsing the PCB file to obtain all pad groups, and judging whether the surface layer corresponding to each pad object in each pad group is a solder mask layer, if the surface layer corresponding to the pad object is a solder mask layer, the PCB file is parsed to obtain the shape parameters of the pad object; if the shape parameters of the pad object are none, the pad group corresponding to the pad object is stored in a preset solder-free pad sequence; finally, based on the solder-free pad sequence, the solder-free pad in the PCB file is determined. In this way, by parsing the pad groups contained in the PCB file, the surface layer information corresponding to each pad object in each pad group, and the shape parameters of the pad object, and screening the shape parameters of the pad object, the solder-free pad can be quickly and accurately identified from the PCB file. Through this application, the problem of low efficiency and accuracy in checking whether the solder mask of the pad in the PCB board photo-drawing file is missing in the related art is solved, and the technical effect of improving the efficiency and accuracy of checking whether the solder mask of the pad in the PCB board photo-drawing file is missing is achieved.
[0045] The following will be combined Figure 1 For an explanation of a method for finding a solderless pad provided by an embodiment of the present application, see Figure 1 , Figure 1 is a flow chart of a method for searching a solder-free pad according to an embodiment of the present application. Figure 1 As shown, the method includes:
[0046] Step S101, obtaining all pad groups from the input PCB file.
[0047] In this embodiment, the PCB file may be a PCB board photolithography file. The terminal device installed with Cadence Allegro can receive the PCB file to be parsed input by the user, and the PCB file contains multiple layers. Cadence Allegro can be used to parse the multiple layers contained in the PCB file one by one to obtain all pad groups.
[0048] Specifically, Cadence Allegro can be used to parse multiple layers contained in the PCB file one by one, read all objects with the attribute of padstacks in each layer of the PCB file, store the objects with the attribute of padstacks as pad groups in the preset serial list se1, and set each object in the serial list sel to Pad1, Pad2, Pad3, ..., Padn, where n is the total number of pad groups contained in the serial list se1.
[0049] Step S102 , determining whether the surface layer corresponding to each pad object in each pad group is a solder resist layer.
[0050] In this embodiment, since the solder resist of the pad is only reflected in the solder resist layer, and there is no solder resist information in other layers, it is necessary to determine whether the surface layer corresponding to each pad object in each pad group is a solder resist layer.
[0051] In one embodiment, determining whether the surface layer corresponding to each pad object in each pad group is a solder mask layer may include: obtaining the pad type of each pad group from a PCB file; selecting a verification rule corresponding to the pad type of the pad group from preset verification rules, and determining whether the surface layer corresponding to each pad object in the pad group is a solder mask layer based on the verification rule corresponding to the pad type of the pad group.
[0052] The following will describe the specific process of determining whether the surface layer corresponding to each pad object in each pad group is a solder mask layer in conjunction with the attached figure. Figure 2 , Figure 2 1 is a flow chart of a method for determining whether a surface layer corresponding to a pad object is a solder resist layer according to an embodiment of the present application. Figure 2 As shown, in one embodiment, a method for determining whether the surface layer corresponding to the pad object is a solder resist layer may include:
[0053] Step S201, obtaining the pad type of each pad group from the PCB file; if the pad type of the pad group is a through-hole pad, proceeding to step S202; if the pad type of the pad group is a surface mount pad, proceeding to step S204.
[0054] In this embodiment, the pads in the PCB design are usually patch pads or through-hole pads, wherein the solder mask of the through-hole pads exists in the Top layer and the Bottom layer, while the solder mask of the patch pads only exists in the Top layer or the Bottom layer. Therefore, when determining the solder mask of different types of pads, the biggest difference is that there are two layers of solder mask (Soldermask_Top layer and Soldermask_Bottom layer) for the through-hole pads, and the solder mask conditions of the pads in these two layers of solder mask need to be checked; while there is only one layer of solder mask (Soldermask_Top layer or Soldermask_Bottom layer) for the patch pads, and it is necessary to first locate the correct solder mask, and then check the solder mask conditions of the pads in the solder mask.
[0055] Specifically, obtaining the pad type of each pad group from the PCB file may include: obtaining the through-hole parameter of each pad group from the PCB file; if the through-hole parameter of the pad group is 1, determining that the pad group is a through-hole pad; or if the through-hole parameter of the pad group is 0, determining that the pad group is a patch pad.
[0056] In this embodiment, each pad group has a data type - through-hole parameter (isThrough), and the value of this data type is only 0 and 1; the through-hole parameter of each pad group can be obtained through the function in the Skill program to determine the pad type of the pad group. If the obtained through-hole parameter is 1, the pad group is determined to be a through-hole pad; if the obtained through-hole parameter is 0, the pad group is determined to be a patch pad. The function in the Skill program can be set to loop through to determine the pad type of all pad groups in the sel column.
[0057] Step S202: If the pad type of the pad group is a through-hole pad, a surface layer corresponding to each pad object in the pad group is obtained from the PCB file.
[0058] Step S203, determining whether the surface layer corresponding to the pad object matches the preset first character, if the surface layer matches the first character, determining that the surface layer corresponding to the pad object is a solder resist layer.
[0059] Step S204: if the pad type of the pad group is a surface mount pad, the surface layer name of the pad group and the surface layer corresponding to each pad object in the pad group are obtained from the PCB file.
[0060] Step S205 , determining whether the surface layer corresponding to the pad object matches the first character and the surface layer name of the pad group; if the surface layer matches the first character and the surface layer name, determining that the surface layer corresponding to the pad object is a solder resist layer.
[0061] In this embodiment, the preset verification rules may include: if the pad type of the pad group is a through-hole pad, obtaining the surface layer corresponding to each pad object in the pad group from the PCB file; judging whether the surface layer corresponding to the pad object matches a preset first character, if the surface layer matches the first character, determining that the surface layer corresponding to the pad object is a solder mask layer; or if the pad type of the pad group is a surface mount pad, obtaining the surface layer name of the pad group and the surface layer corresponding to each pad object in the pad group from the PCB file; judging whether the surface layer corresponding to the pad object matches the first character and the surface layer name of the pad group, if the surface layer matches the first character and the surface layer name, determining that the surface layer corresponding to the pad object is a solder mask layer.
[0062] Specifically, when the pad type of the pad group Pad1 is a through-hole pad, the object with the attribute pads in Pad1 can be used as a pad object, and the pad object can be assigned to the list s, and each object in the list s is set to s1, s2, s3, ..., sx; then, the object (Class / Subclass) with the attribute layer in the pad object s1 can be used as the surface layer corresponding to the pad object s1, and the corresponding surface layer can be stored in the list solderLayer; finally, it can be determined whether the surface layer corresponding to the pad object s1 matches the preset first character. If the surface layer matches the first character, it is determined that the surface layer corresponding to the pad object s1 is a solder mask layer. The specific steps are as follows: By judging whether solderLayer matches the preset first character - "PIN / SOLDERMASK", if it matches, it is determined that the surface layer corresponding to the pad object s1 is a solder mask layer; if it does not match, the surface layer corresponding to the pad object s2 is judged.
[0063] When the pad type of pad group Pad1 is a surface mount pad, since there is only one solder mask layer (Soldermask_Top layer or Soldermask_Bottom layer) for the surface mount pad, it is necessary to first locate the correct solder mask layer, and then check the solder mask situation of the pad in the solder mask layer; therefore, it is necessary to first determine whether the layer of the surface mount pad is a solder mask layer, and whether the solder mask layer is located in the Top layer or the Bottom layer. The object with the attribute of pads in the pad group Pad1 can be used as the pad object, and the pad object can be assigned to the list s, and each object in the list s can be set to s1, s2, s3, ..., sx; then, the surface layer name ("Top" or "Bottom") of the pad group Pad1 can be read from the PCB file, and the surface layer name of the pad group Pad1 can be stored in the list padLayer; then, the object with the attribute of layer in the pad object s1 (Class / Subclass) can be used as the surface layer corresponding to the pad object s1, and the corresponding surface layer can be stored in the list solderL ayer; finally, it can be determined whether the surface layer corresponding to the pad object s1 matches the first character and the surface layer name of the pad group Pad1. If the surface layer matches the first character and the surface layer name, it is determined that the surface layer corresponding to the pad object s1 is the solder mask layer. The specific steps are as follows: By judging whether solderLayer matches the preset first character - "PIN / SOLDERMASK" and padLayer (("Top" or "Bottom")), if it matches, it is determined that the surface layer corresponding to the pad object s1 is the solder mask layer; if it does not match, the surface layer corresponding to the pad object s2 is judged.
[0064] Step S103: if the surface layer corresponding to the pad object is a solder resist layer, the shape parameters of the pad object are obtained from the PCB file.
[0065] Since the solder mask layer is output using a negative film, after the shape of the solder mask layer is mapped to the PCB board, instead of being coated with green oil solder mask, the copper skin will be exposed, and the exposed copper skin is the shape of the pad. By checking the shape of the pad, you can determine whether the pad lacks solder mask.
[0066] Specifically, the figureName function in the Skill program can be used to obtain the shape parameters of the pad object. The figureName function can obtain the shape parameters of the pad object. The shape parameters of the pad object can be obtained by the figureName function, and the return value is a string; for example, the return value can be "CIRCLE" (circle), "RECTANGLE" (rectangle), "NIL" (none). If the return value is "NIL", it means that the pad object lacks solder mask. Returning other values means that the pad object does not lack solder mask.
[0067] Step S104: if the shape parameter of the pad object is none, then the pad group corresponding to the pad object is stored in a preset non-solder resist pad sequence.
[0068] Specifically, a command may be registered and a custom function may be created for the command, and then an empty string column NoSolderMaskPad may be created to store the found non-solder mask pads.
[0069] Step S105, determining the non-solder-resistance pads in the PCB file based on the non-solder-resistance pad sequence.
[0070] In this embodiment, based on the non-solder mask pad sequence, determining the non-solder mask pads in the PCB file may include: if the number of pad groups in the non-solder mask pad sequence is not zero, obtaining a database object that meets a preset screening condition from the PCB file; determining whether the database object exists in the non-solder mask pad sequence; if the database object exists in the non-solder mask pad sequence, determining that the pad corresponding to the database object is a non-solder mask pad.
[0071] Specifically, it can be determined whether the number of pad groups in the no-solder mask pad sequence is zero, that is, whether the serial NoSolderMaskPad is empty. If it is empty, it means that the number of pad groups in the no-solder mask pad sequence is zero. Among them, the no-solder mask pad sequence is a serial sequence used to store the found no-solder mask pads. If after the above verification process is completed, if no new object is added to this serial sequence, that is, the serial sequence is empty, it means that no no-solder mask pads are found from all layers of the PCB file. If it is determined that the no-solder mask pad sequence is empty, a dialog box can be directly displayed in the preset display window. The content in the dialog box indicates that no no-solder mask pads have been found, and the troubleshooting process is ended.
[0072] If it is determined that the sequence of non-solder mask pads is not empty, it means that non-solder mask pads have been found from all layers of the PCB file, and the database objects that meet the preset screening conditions are obtained from the PCB file.
[0073] The method for searching for solder pads without solder resist provided in an embodiment of the present application is described and illustrated by a specific example below. Figure 3 Schematic diagram of a PCB board photolithography file according to an embodiment of the present application. Figure 3 As shown, the PCB board photolithography file contains a large number of components, including multiple pad objects (for example, Figure 3The first pad object 30, the second pad object 31 and the Nth pad object 32 shown in the figure, and the coordinates of each pad object in the PCB board photolithography file (taking (x, y) as an example) are unique. When using the non-solder resist pad search method provided in the embodiment of the present application, first, the coordinates and other information of all pad objects in the PCB board photolithography file can be read. For example, according to the coordinate information of each pad object, the coordinates of all pad objects in the PCB board photolithography file can be read row by row from the lower left corner of the PCB board photolithography file until the upper right corner of the PCB board photolithography file is reached, thereby reading the coordinates of all pad objects in the PCB board photolithography file and storing them in a set A (also called a serial s).
[0074] By way of example and not limitation, the set A may include a first pad object 30 and its coordinates (x1, y1), a second pad object 31 and its coordinates (x2, y2), ... an Nth pad object 32 and its coordinates (xn, yn).
[0075] Specifically, the shape of the solder mask layer can be read starting from the coordinates (x1, y1) of the first pad object 30 in set A, wherein the shape of the solder mask layer can be stored in the pad object file corresponding to the solder mask layer in the Skill program as a string data type such as "CIRCLE" (circle), "RECTANGLE" (rectangle), "NIL" (none), etc.; the shape parameters of the solder mask layer of the pad object can be obtained through the character matching function - figureName function. If the return value is "NIL", it means that the pad object lacks solder mask. Returning other values indicates that the pad object does lack solder mask.
[0076] like Figure 3 As shown in FIG. 1 , the first pad object 30 is a circular pad, and the figureName function obtains the shape of its solder mask layer as “CIRCLE”, so the first pad object 30 is not a pad without solder mask; subsequently, the figureName function can read the shape of the solder mask layer of the second pad object 31 according to the coordinates (x2, y2) of the second pad object 31, such as Figure 3 As shown, the solder mask layer of the second pad object 31 is missing, so the figureName function will return "NIL". At this time, it can be determined that the second pad object 31 is a pad without solder mask, and the second pad object 31 is stored in set B (also called the serial NoSolderMaskPad); repeat the above process until the last pad object in set A is read - the Nth pad object 32. The shape of the solder mask layer of the Nth pad object 32 is "RECTANGLE", so the Nth pad object 32 is not a pad without solder mask. It should be noted that for the purpose of making the drawings concise and clear, Figure 3 Only three pad objects are shown in the figure, but in fact the PCB board gerber file can include more pad objects.
[0077] After all the pad objects in set A are read, set B records all the pad information that lacks solder mask in the PCB board photo-drawing file. Then, set B can be output through a report to quickly and accurately identify pads without solder mask from the PCB board photo-drawing file.
[0078] In one embodiment, obtaining a database object that meets preset filtering conditions from a PCB file may include: obtaining a valid layer corresponding to a filtering layer type in the preset filtering conditions from the PCB file; and using an object in the valid layer corresponding to a filtering object type in the preset filtering conditions as a database object.
[0079] In this embodiment, a corresponding log file output port can be created in the log file display window. The output port can be used to display basic information such as report name, board name, author, time, etc. The output port can also be used to display three headers: bit number, pin, and coordinates.
[0080] Afterwards, obtain the valid layer corresponding to the filter layer type set in the preset filter condition in the PCB file. For example, the filter layer type can be Pin / Top layer, Pin / Bottom layer, Pin / SolderLayer_Top layer and Pin / SolderLayer_Bottom layer. Then, the Pin / Top layer, Pin / Bottom layer, Pin / SolderLayer_Top layer and Pin / SolderLayer_Bottom layer in the PCB file can be obtained as valid layers according to the filter layer type.
[0081] Subsequently, all objects in the Find panel of Cadence Allegro can be unchecked, and the filter object type can be set to the pin type. By setting the Find panel to only check the pin type objects, all objects corresponding to the pin type can be selected, and the database objects of all selected pin objects can be read and assigned to the list brdPins. The database objects in the list brdPins can be set to brdPin1, brdPin2, brdPin3, ..., brdPiny in sequence.
[0082] In this way, the obtained database object can be compared and verified with the pad group in the non-solder mask pad sequence. Specifically, each object in the serial brdPins is checked, and it is determined in turn whether the pad corresponding to the database object in brdPins exists in the non-solder mask pad sequence. If the pad corresponding to a database object exists in the non-solder mask pad sequence, it is determined that the pad group corresponding to the database object is a non-solder mask pad; if the pad corresponding to a database object does not exist in the non-solder mask pad sequence, the next database object is obtained to continue judging until all database objects in the serial brdPins complete the above judgment process.
[0083] In one embodiment, after determining that the pad corresponding to the database object is a non-solder mask pad, the method also includes: obtaining the coding number, coordinate position and bit number of each non-solder mask pad as the corresponding basic information; and displaying the basic information of each non-solder mask pad in the output port of a preset display window.
[0084] In this embodiment, the basic information of the solderless pad includes the bit number of the device to which it belongs, that is, the bit number of the device to which the database object corresponding to the solderless pad belongs; the basic information also includes the pin number of the database object corresponding to the solderless pad (pin number is the pin number of the component (for example, the pin number of pin 1 of a diode device is 1)); the basic information also includes the coordinate position, that is, the coordinate position of the database object corresponding to the solderless pad. A display window can be created in advance, and the content output by the output port can be displayed in the display window.
[0085] For example, the database object corresponding to the non-solder pad is brdPin1, then the position number of the device to which rdPin1 belongs, the pin number of brdPin1, and the coordinates of brdPin1 are displayed in the output port of the display window.
[0086] In this embodiment, after obtaining the non-solder-resistance pad, the database object corresponding to the non-solder-resistance pad can also be highlighted. For example, if it is determined that the pad corresponding to brdPin1 is a non-solder-resistance pad, brdPin1 can be highlighted in the display interface of the PCB file to facilitate the user to view the corresponding object information.
[0087] The method for searching for solderless pads provided in the above embodiment can be applied to a terminal device. The method is executed by an application software (Cadence Allegro) installed in the terminal device. The terminal device can be a terminal device for executing the method for searching for solderless pads to screen for solderless pads in a PCB file, such as a desktop computer and a laptop computer. The method for searching for solderless pads provided in the embodiment of the present application can be implemented using a Skill program in Cadence Allegro. By simply clicking a command, a window can be directly popped up to display the search results for the solderless pads in the PCB file. Before executing the method steps, you need to write a Skill program, load the Skill program, and call to start the Skill program.
[0088] After completing the program, you need to rewrite the system interface file to call the Skill file before you can use it in Cadence Allegro. The method of rewriting the Skill file required in the process of loading the Skill program is: 1. Encapsulate the program into a .il file; 2. Check the computer's environment variable value and find the folder pointed to by the variable value; 3. Put the .il program file that implements this function into the folder pointed to by the environment variable value; 4. Find the allegro.ilinit file in the folder, which is the interface file; 5. Use UltraEdit (a text editor) to open the allegro.ilinit file; 6. Use the load function to call the .il program file according to the folder path pointed to by the environment variable, thereby completing the loading process of the Skill program.
[0089] The process of calling the Skill program includes the following steps: 1. Find the original allegro.men file in the Cadence Allegro installation directory and copy it to the folder pointed to by the environment variable value; 2. Use UltraEdit to open the allegro.men file and find the last line; 3. Add a line on the last line END: MENUITEM "Menu command", "Command name".
[0090] After completing the above process of calling the Skill program, you can start the Skill program. The specific process of starting the Skill program is: 1. Restart Cadence Allegro; 2. Find the last command in the menu bar and click it to start the Skill program; 3. A dialog box will pop up immediately in Cadence Allegro to display the search results, and the Skill command ends and displays the search results of the non-solder pad.
[0091] Through the above steps S101 to S105, the PCB file is parsed to obtain all pad groups, and it is determined whether the surface layer corresponding to each pad object in each pad group is a solder mask layer. If the surface layer corresponding to the pad object is a solder mask layer, the PCB file is parsed to obtain the shape parameters of the pad object; if the shape parameters of the pad object are none, the pad group corresponding to the pad object is stored in a preset non-solder mask pad sequence; finally, based on the non-solder mask pad sequence, the non-solder mask pads in the PCB file are determined. In this way, the steps of closing all layers - opening the corresponding layers - comparing layers can be successfully simplified to just clicking the command. As long as the Skill program is started, the device position number, pinnumber, and coordinates of the found non-solder mask pad can be directly output and displayed. This can facilitate engineers to directly locate the non-solder mask pad after finding it, thereby improving the efficiency of troubleshooting whether the solder mask of the pad in the PCB board photo-drawing file is missed. At the same time, checking whether the pad lacks solder mask by human eyes may result in omissions, and the non-solder mask pad search method provided in the embodiment of the present application can greatly improve the accuracy of whether the solder mask of the pad in the PCB board photo-drawing file is missed.
[0092] It should be understood that the size of the serial numbers of the steps in the above embodiments does not mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present application.
[0093] Corresponding to the method for searching for solder-free pads described in the above embodiment, Figure 3 A schematic structural diagram of a device for searching for solderless pads according to an embodiment of the present application is shown. For ease of explanation, only the parts related to the embodiment of the present application are shown.
[0094] See also Figure 4 The device 4 for searching for non-solder-resistance pads comprises: a pad group acquisition module 40, used for acquiring all pad groups from an input PCB file; a solder-resistance layer judgment module 41, used for judging whether the surface layer corresponding to each pad object in each pad group is a solder-resistance layer; a parameter acquisition module 42, used for acquiring the shape parameters of the pad object from the PCB file when the surface layer corresponding to the pad object is a solder-resistance layer; a data storage module 43, used for storing the pad group corresponding to the pad object into a preset non-solder-resistance pad sequence when the shape parameters of the pad object are none; and a non-solder-resistance determination module 44, used for determining the non-solder-resistance pads in the PCB file based on the non-solder-resistance pad sequence.
[0095] In one embodiment, the solder mask layer judgment module 41 is also used to obtain the pad type of each pad group from the PCB file; select the verification rule corresponding to the pad type of the pad group from the preset verification rules, and judge whether the surface layer corresponding to each pad object in the pad group is a solder mask layer based on the verification rule corresponding to the pad type of the pad group.
[0096] In one embodiment, the preset verification rules include: if the pad type of the pad group is a through-hole pad, obtaining the surface layer corresponding to each pad object in the pad group from the PCB file; judging whether the surface layer corresponding to the pad object matches a preset first character, if the surface layer matches the first character, determining that the surface layer corresponding to the pad object is a solder mask layer; or if the pad type of the pad group is a patch pad, obtaining the surface layer name of the pad group and the surface layer corresponding to each pad object in the pad group from the PCB file; judging whether the surface layer corresponding to the pad object matches the first character and the surface layer name of the pad group, if the surface layer matches the first character and the surface layer name, determining that the surface layer corresponding to the pad object is a solder mask layer.
[0097] In one embodiment, the solder resist layer judgment module 41 is also used to obtain the through-hole parameters of each pad group from the PCB file; if the through-hole parameter of the pad group is 1, the pad group is determined to be a through-hole pad; or if the through-hole parameter of the pad group is 0, the pad group is determined to be a patch pad.
[0098] In one embodiment, the no-solder-resistance determination module 44 is also used to obtain a database object that meets preset screening conditions from the PCB file when the number of pad groups in the no-solder-resistance pad sequence is not zero; determine whether the database object exists in the no-solder-resistance pad sequence; if the database object exists in the no-solder-resistance pad sequence, determine that the pad corresponding to the database object is a no-solder-resistance pad.
[0099] In one embodiment, the no solder mask determination module 44 is also used to obtain a valid layer corresponding to the filter layer type in the preset filter condition from the PCB file; and use the object in the valid layer corresponding to the filter object type in the preset filter condition as a database object.
[0100] In one embodiment, the non-solder resist determining module 44 is further used to obtain the code number, coordinate position and bit number of each non-solder resist pad as corresponding basic information; and display the basic information of each non-solder resist pad in the output port of a preset display window.
[0101] It should be noted that the information interaction, execution process, etc. between the above-mentioned devices / units are based on the same concept as the method embodiment of the present application. Their specific functions and technical effects can be found in the method embodiment part and will not be repeated here.
[0102] The technicians in the relevant field can clearly understand that for the convenience and simplicity of description, only the division of the above-mentioned functional units and modules is used as an example for illustration. In practical applications, the above-mentioned function allocation can be completed by different functional units and modules as needed, that is, the internal structure of the device can be divided into different functional units or modules to complete all or part of the functions described above. The functional units and modules in the embodiment can be integrated in a processing unit, or each unit can exist physically separately, or two or more units can be integrated in one unit. The above-mentioned integrated unit can be implemented in the form of hardware or in the form of software functional units. In addition, the specific names of the functional units and modules are only for the convenience of distinguishing each other, and are not used to limit the scope of protection of this application. The specific working process of the units and modules in the above-mentioned system can refer to the corresponding process in the aforementioned method embodiment, which will not be repeated here.
[0103] Figure 5 is a schematic diagram of the structure of a terminal device according to an embodiment of the present application. Figure 5 As shown, the terminal device 5 includes: at least one processor 50 ( Figure 5 Only one is shown in the figure) a processor, a memory 51, and a computer program 52 stored in the memory 51 and executable on at least one processor 50, and when the processor 50 executes the computer program 52, the steps in any of the above-mentioned embodiments of the method for searching for solder-free pads are implemented.
[0104] The terminal device 5 may be a computing device such as a desktop computer, a notebook, a PDA, or a cloud server. The terminal device 5 may include but is not limited to a processor 50 and a memory 51. It is understood by those skilled in the art that Figure 5 It is only an example of the terminal device 5 and does not constitute a limitation on the terminal device 5. It may include more or fewer components than shown in the figure, or a combination of certain components, or different components. For example, it may also include input and output devices, network access devices, etc.
[0105] The processor 50 may be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASIC), field-programmable gate arrays (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. A general-purpose processor may be a microprocessor or any conventional processor, etc.
[0106] In some embodiments, the memory 51 may be an internal storage unit of the terminal device 5, such as a hard disk or memory of the terminal device 5. In other embodiments, the memory 51 may also be an external storage device of the terminal device 5, such as a plug-in hard disk, a smart media card (SMC), a secure digital (SD) card, a flash card, etc. equipped on the terminal device 5. In other embodiments, the memory 51 may also include both an internal storage unit and an external storage device of the terminal device 5. The memory 51 is used to store an operating system, an application program, a boot loader (BootLoader), data, and other programs, such as program codes of a computer program 52. The memory 51 may also be used to temporarily store data that has been output or is to be output.
[0107] An embodiment of the present application further provides a computer-readable storage medium storing a computer program. When the computer program is executed by a processor, the steps in each of the above-mentioned non-solder pad search method embodiments can be implemented.
[0108] An embodiment of the present application provides a computer program product. When the computer program product is run on a mobile terminal, the mobile terminal can implement the steps in the above-mentioned embodiments of the method for searching for a solderless pad when the computer program product is executed.
[0109] The present application implements all or part of the processes in the above-mentioned embodiment method, which can be completed by instructing the relevant hardware through a computer program, and the computer program can be stored in a computer-readable storage medium. When the computer program is executed by the processor, the steps of each of the above-mentioned method embodiments can be implemented. Among them, the computer program includes computer program code, and the computer program code can be in source code form, object code form, executable file or some intermediate form. The computer-readable medium may at least include: any entity or device that can carry the computer program code to the camera device / terminal device, recording medium, computer memory, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), electrical carrier signal, telecommunication signal and software distribution medium. For example, a USB flash drive, a mobile hard disk, a disk or an optical disk.
[0110] In the above embodiments, the description of each embodiment has its own emphasis. For parts that are not described or recorded in detail in a certain embodiment, reference can be made to the relevant descriptions of other embodiments.
[0111] Those of ordinary skill in the art will appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.
[0112] In the embodiments provided in the present application, it should be understood that the disclosed devices / network equipment and methods can be implemented in other ways. For example, the device / network equipment embodiments described above are only schematic. For example, the division of modules or units is only a logical function division. There may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.
[0113] The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
[0114] The above embodiments are only used to illustrate the technical solutions of the present application, rather than to limit them. Although the present application has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the aforementioned embodiments, or make equivalent replacements for some of the technical features therein. These modifications or replacements do not deviate the essence of the corresponding technical solutions from the spirit and scope of the technical solutions of the embodiments of the present application, and should all be included in the protection scope of the present application.
Claims
1. A method for searching a non-solder pad, characterized in that: include: Get all pad groups from the input PCB file; Determine whether the surface layer corresponding to each pad object in each pad group is a solder mask layer; If the surface layer corresponding to the pad object is a solder resist layer, obtaining shape parameters of the pad object from the PCB file; If the shape parameter of the pad object is None, the pad group corresponding to the pad object is stored in a preset non-solder resist pad sequence; Based on the non-solder-resistance pad sequence, the non-solder-resistance pads in the PCB file are determined.
2. The method according to claim 1, characterized in that: The step of judging whether the surface layer corresponding to each pad object in each pad group is a solder resist layer comprises: Obtain the pad type of each pad group from the PCB file; A verification rule corresponding to the pad type of the pad group is selected from preset verification rules, and based on the verification rule corresponding to the pad type of the pad group, it is determined whether the surface layer corresponding to each pad object in the pad group is a solder resist layer.
3. The method according to claim 2, characterized in that The preset verification rules include: If the pad type of the pad group is a through-hole pad, obtaining the surface layer corresponding to each pad object in the pad group from the PCB file; determining whether the surface layer corresponding to the pad object matches a preset first character, and if the surface layer matches the first character, determining that the surface layer corresponding to the pad object is a solder resist layer; or If the pad type of the pad group is a surface mount pad, obtain the surface layer name of the pad group and the surface layer corresponding to each pad object in the pad group from the PCB file; determine whether the surface layer corresponding to the pad object matches the first character and the surface layer name of the pad group; if the surface layer matches the first character and the surface layer name, determine that the surface layer corresponding to the pad object is a solder mask layer.
4. The method according to claim 2 or 3, characterized in that: The obtaining the pad type of each pad group from the PCB file comprises: Obtain through-hole parameters of each pad group from the PCB file; If the through-hole parameter of the pad group is 1, the pad group is determined to be a through-hole pad; or If the through hole parameter of the pad group is 0, it is determined that the pad group is a patch pad.
5. The method according to any one of claims 1 to 3, characterized in that The determining the non-solder-resistance pads in the PCB file based on the non-solder-resistance pad sequence comprises: If the number of pad groups in the non-solder resist pad sequence is not zero, obtaining a database object that meets a preset screening condition from the PCB file; Determine whether the database object exists in the non-solder-resistance pad sequence; If the database object exists in the non-solder-resistance pad sequence, it is determined that the pad corresponding to the database object is a non-solder-resistance pad.
6. The method according to claim 5, characterized in that The step of obtaining a database object satisfying a preset screening condition from the PCB file includes: Acquire a valid layer corresponding to the screening layer type in the preset screening condition from the PCB file; The object in the effective layer corresponding to the screening object type in the preset screening condition is used as the database object.
7. The method according to claim 5, characterized in that After determining that the pad corresponding to the database object is a pad without solder mask, the method further includes: Obtaining the code number, coordinate position and bit number of the component to which each of the non-solder pads belongs as corresponding basic information; The basic information of each of the non-solder pads is displayed in an output port of a preset display window.
8. A device for searching solder pads without solder resistance, characterized in that: include: The pad group acquisition module is used to obtain all pad groups from the input PCB file; A solder resist layer judgment module is used to judge whether the surface layer corresponding to each pad object in each pad group is a solder resist layer; A parameter acquisition module, used for acquiring shape parameters of the pad object from the PCB file when the surface layer corresponding to the pad object is a solder resist layer; A data storage module, used for storing the pad group corresponding to the pad object into a preset non-solder resist pad sequence when the shape parameter of the pad object is none; The non-solder resist determining module is used to determine the non-solder resist pads in the PCB file based on the non-solder resist pad sequence.
9. A terminal device, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that: When the processor executes the computer program, the method according to any one of claims 1 to 7 is implemented.
10. A computer program product, characterized in that The invention comprises a computer program, which, when executed, enables the method according to any one of claims 1 to 7 to be performed.