A network name adaptive switching method based on intelligent PCB design
Through the intelligent PCB-designed network name adaptive exchange method, automated network name exchange from board data to schematic diagrams is realized, solving the problems of complex manual operations and error-prone problems in the prior art, and improving design efficiency and accuracy.
Patent Information
- Application Number
- CN202510668221.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-05-23
- Publication Date
- 2025-08-15
- Estimated Expiration
- 2045-05-23
AI Technical Summary
In chip testing, as the number of chip pins and channel allocation increases, the prior art requires a lot of manual operation for network name exchange, resulting in complex design and error-prone.
Adaptive network name switching method based on intelligent PCB design is adopted, and through the automated network name switching process, programming software and adaptive algorithms, the automation of network name switching from board data to schematic diagram is achieved, reducing manual operations.
It improves the efficiency and accuracy of PCB design, reduces the work intensity of engineers, avoids errors caused by manual operations, and provides a more efficient and intelligent design solution.
Smart Images

Figure CN120197573B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of PCB design, and in particular to a network name adaptive exchange method based on intelligent PCB design. Background Art
[0002] In the chip testing industry, as the number of chip pins and the number of chips being tested simultaneously increase, the number of channels allocated when customizing test interface boards for chips has increased exponentially. If thousands of channels on the same board with many chips under test are directly connected point-to-point, a large number of signal layers will be consumed, and the routing will be complex, making it difficult to achieve equal length matching. Currently, the common practice is to pull the signal lines coming out of the DUT (chip under test) end and the connector end to similar positions, manually enter the signal network names of the routing on different sides in a table, and then change them one by one in the schematic diagram. During the change process, it is necessary to constantly check for errors, then import the updated schematic diagram into the board, and finally check on the board whether the routing can be directly connected. Although some engineers will write scripts to simplify some steps, a lot of manual work is still required. Summary of the Invention
[0003] The purpose of the present invention is to provide a network name adaptive exchange method based on intelligent PCB design, so as to realize the adaptive exchange of network names in the PCB design process and improve the intelligence level of the design.
[0004] The purpose of the present invention can be achieved through the following technical solutions:
[0005] A network name adaptive switching method based on intelligent PCB design includes the following steps:
[0006] Open the top and bottom layers of the board according to the path where the board is located, find the device whose network name needs to be exchanged and the device with the corresponding fixed network name, and save the names of the device into the newly created name file;
[0007] Get the PCB schematic, and traverse the Conductor layer in the PCB and traverse the Cline in the Conductor layer;
[0008] Filter out eligible Clines based on their endpoints;
[0009] Search for the corresponding symbol based on the via connected to one end of the filtered Cline, determine its ownership in the name file, and extract the basic information of the corresponding Cline and save it in the corresponding temporary file;
[0010] Classify the data in the temporary file according to the clinesegment direction with the same layer and null endpoints;
[0011] Use the point grouping algorithm to process the classified data to determine whether the grouped data volume is consistent. If it is inconsistent, perform adaptive optimization calculations. If it is consistent, generate the swap.txt file.
[0012] Find the corresponding device in the PCB schematic according to the device name in the temporary file, traverse the netnames of all pin connections of the device, remove the specific type of net and traverse the remaining nets;
[0013] Search for the current net in the swap.txt file. If found, replace the net in the schematic diagram with the corresponding net in the second column of swap.txt.
[0014] As a further solution of the present invention: before creating the name file, it is necessary to determine whether there is a file with the same name in the path where the board is located. If so, delete the file and create a new one; and the file path is consistent with the board path.
[0015] As a further solution of the present invention: before performing the operation of opening the top layer and the bottom layer of the board, the method further includes:
[0016] Pull out the wires from the devices at both ends whose net names need to be swapped, with the wire direction being 0°, 45°, or 90°.
[0017] As a further solution of the present invention: the point grouping algorithm includes:
[0018] Get the coordinate value of the Cline segment angle as any outgoing line direction from the temporary file and project it onto the x-axis to obtain discrete data;
[0019] The kernel density estimation method is used to select Gaussian kernel function to process discrete data and estimate the probability density function of the data;
[0020] The domain diameter is defined by the two adjacent lowest points in the kernel density estimation function approximation graph, and the domain center is defined by the center of the domain diameter to perform domain classification on discrete data;
[0021] Sort the domain classifications into different categories along the x-axis, and then sort the data in each domain classification along the y-axis;
[0022] Determine whether the corresponding group data volumes obtained from different temporary files are consistent. If inconsistent, adjust the field diameter and reclassify until the data volumes are consistent.
[0023] As a further solution of the present invention: the bandwidth in the kernel density estimation is 1 mm.
[0024] As a further solution of the present invention: the formula of the Gaussian kernel function is as follows:
[0025] ;
[0026] ;
[0027] Where K(x) represents the Gaussian kernel function, represents the probability density function, n represents the sample size, h represents the bandwidth, x i Represents the abscissa of the i-th data within the bandwidth h.
[0028] The present invention's beneficial effects: Through an automated adaptive network name exchange method, the present invention significantly reduces the manual effort required to exchange network names during PCB design, improving design efficiency and accuracy. Compared to existing technologies, the present invention utilizes a combination of programming software and adaptive algorithms to automate the entire process from board data extraction and processing to schematic network name exchange. This effectively avoids errors that can easily occur with manual operation, reduces engineers' workload, and provides a more efficient and intelligent solution for PCB design of chip test interface boards. BRIEF DESCRIPTION OF THE DRAWINGS
[0029] The present invention will be further described below with reference to the accompanying drawings.
[0030] Figure 1 This is an example diagram of the output lines of U1 and J1 in an embodiment of the present invention;
[0031] Figure 2 This is an example diagram of the switching network name completion of U1 and J1 in an embodiment of the present invention;
[0032] Figure 3 This is a flowchart of the execution of the program for extracting necessary files from the board in an embodiment of the present invention;
[0033] Figure 4 This is a flow chart of output file processing in an embodiment of the present invention;
[0034] Figure 5 It is a principle diagram and subsequent processing flow chart in an embodiment of the present invention;
[0035] Figure 6 This is a partial schematic diagram of the Temp_swap_cline_i.txt file in an embodiment of the present invention;
[0036] Figure 7 It is an approximate reference graph of the kernel density estimation function in the embodiment of the present invention. DETAILED DESCRIPTION
[0037] The following will clearly and completely describe the technical solutions in the embodiments of the present invention in conjunction with the accompanying drawings. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without making any creative efforts shall fall within the scope of protection of the present invention.
[0038] See also Figure 1 As shown, the present invention is a network name adaptive switching method based on intelligent PCB design, comprising the following steps:
[0039] Before performing board operations, pull out the lines in the devices at both ends that need to exchange network names, such as Figure 1 As shown in the figure, for example, when routing from U1 to J1, all traces from U1 on the left correspond to the traces from J1 on the right, but their net names are not exactly the same. Of course, this is just an example of U1 and J1; all devices on the board that require swapped net names should have their traces routed in the same way as U1 and J1.
[0040] After completing the above wiring, start the board operation. Before executing the board operation, you need to provide the schematic diagram and board path. After opening the board, click the devices whose network names need to be exchanged and the devices with fixed network names corresponding to these devices. Figure 1 As shown, the network name in device U1 needs to be updated to the network name in device J1. Then, click U1 to end the command and then click J1. The adaptive algorithm completes the exchange of network names and redistribution into the board, achieving the following Figure 2 The network names shown have a one-to-one correspondence.
[0041] Preliminary preparation:
[0042] Since the program cannot realize automatic wiring, it is necessary to pull out the wires in the two end devices that need to exchange the network names, such as Figure 1 The example shown is for routing U1 and J1. Other routing options on the board should also be routed in this manner if they meet the required routing rules. According to general board routing rules, it's important to note that routing options can only be in three directions: 0°, 45°, or 90°. For nets requiring curved routing, you can initially use straight routing. Once all routing is complete, use the appropriate tool to convert the routing to a curved route.
[0043] Extraction of necessary files from the board:
[0044] 1. Get input information:
[0045] Get the PCB schematic and board path;
[0046] Open the top and bottom layers of the board according to the board's path and search for the device whose network name needs to be swapped. The software will store the device name in a new "Temp_swap_name.txt" file. The file path should be consistent with the board's path. Before creating a new file, check if there is a file with the same name in the board's path. If so, delete the file and create a new one.
[0047] Get the device with the fixed network name corresponding to the above device. The software will store the device name in the newly created "Temp_fix_name.txt" file. The file path is consistent with the board path. Before creating a new file, it is necessary to determine whether there is a file with the same name in the board path. If it exists, delete the file and create a new one. Figure 1 As shown in the figure, U1 is a device that needs to exchange the network name, and J1 is a device with a fixed network name corresponding to U1.
[0048] 2. Find the Conductor layer:
[0049] There are two different types of layers in a PCB: Plane layer and Conductor layer. Generally, Plane layer is used for large-area copper plating, such as Ground signal, and the copper content in these layers is relatively high; Conductor layer is used for signal routing, such as digital and analog signals, and the copper content in these layers is relatively low.
[0050] Find the types of different layers, record all Conductor layers as n, and traverse these Conductor layers starting from i=1.
[0051] 3. Find the Cline in the Conductor layer (the signal line in the PCB is Cline, and the non-signal line is Line);
[0052] Find all Clines in the i-th Conductor and traverse all Clines in the i-th Conductor layer.
[0053] 4. Determine the endpoint of Cline:
[0054] The signal line connection in the board is to connect from one or more holes to one or more holes at the other end. For digital signals, most of the time, the connection is hole-to-hole on the inner layer. For power signals, most of the time, copper foil is used to cover all the holes that need to be connected. For Clines that need to exchange network names, follow Figure 1 To meet the requirements, you only need to connect it from one hole and leave the other end hanging temporarily.
[0055] Determine the connection status of both ends of all Clines in the current layer:
[0056] If the number of endpoints is greater than 2, they are ignored directly;
[0057] If the number of endpoints is 2 and both ends have via, it is a connected Cline and can be ignored. If both ends are nil (empty values), it is a dangling line and can be deleted. If one end is via and the other end is nil, a Cline is found that is suspected to need to exchange network names.
[0058] 5. Determine the ownership of Cline:
[0059] According to step 4), find the Cline that is suspected to need to swap the network name. Find the symbol that is fanned out by this via in the via connected to one end. Then, based on the input information provided in step 1), determine whether this symbol is in the "Temp_swap_name.txt" or "Temp_fix_name.txt" file.
[0060] If it is in the "Temp_swap_name.txt" file, extract the basic information of this Cline and store it in the temporary file Temp_swap_cline_i.txt. The required information is: net_name; the coordinate point with a null value (X s ,Y s ); The direction of the Cline segment whose endpoint is a null value;
[0061] If it is in the "Temp_fix_name.txt" file, extract the basic information of this Cline and store it in the temporary file Temp_fix_Cline_i.txt. The required information is: net_name (network name); coordinate point (X f ,Y f ); The direction of the Cline segment whose endpoint is a null value;
[0062] If the symbol is not found in either the "Temp_swap_name.txt" or "Temp_fix_name.txt" files, ignore the Cline and do not extract any information.
[0063] 6. Output file check:
[0064] After traversing the Cline and layer, the two output files, Temp_swap_Cline_i.txt and Temp_fix_Cline_i.txt, are compared layer by layer. If the number of rows in the two files for the same layer is the same, the number of outgoing lines at both ends of the swap net in that layer is the same, and the output files are correct. If the data differs, a pop-up window will be displayed for the corresponding incorrect net, prompting the user to check the outgoing lines of the corresponding layer.
[0065] Processing of output files in the board:
[0066] 1. Output data classification:
[0067] Traverse the files Temp_swap_Cline_i.txt and Temp_fix_Cline_i.txt according to the same layer i, and classify the data according to the direction of the Cline segment with a null endpoint.
[0068] If the direction is 45°, then p coordinates are obtained, from A1 to Ap;
[0069] If the direction is 0°, then q coordinates are obtained, from B1 to Bq;
[0070] If the direction is 90°, then r coordinates are obtained, from C1 to Cr.
[0071] Data processing:
[0072] We know that all coordinates are distributed in a two-dimensional rectangular coordinate system. Lines with a 0° or 90° orientation have similar or identical horizontal and vertical coordinates. If we rotate the entire coordinate axis 45°, we can also simplify the processing of coordinates with a 45° orientation. Therefore, the data processing methods used in these three categories are the same, only the corresponding angles differ. Here, we will only explain the data with a 0° orientation as an example. The processing of the 90° and 45° orientations will refer to the 0° data.
[0073] Use the point grouping algorithm to divide the q coordinates in the 0° data into b coordinate groups according to the probability density, and then sort the groups according to the merge sort. The groups obtained from the Temp_swap_Cline_i.txt file are named SB1~SBb, and the groups obtained from the Temp_fix_Cline_i.txt file are named FB1~FBb.
[0074] Determine whether the data volumes in SBj and FBj are consistent (j refers to a group). If not, perform adaptive optimization calculations between the problem groups based on the feedback values. Once the data is consistent, generate a swap.txt file and output the net_names in SX1-SXx and FX1-FXx in order by group to form two columns of data, with the headers being swap net name and fixnet name (X refers to A, B, or C, i.e., the data in the aforementioned 45°, 0°, or 90° groups).
[0075] Schematic diagram and subsequent processing:
[0076] 1. Search for network name in device:
[0077] Find the corresponding device in the schematic file based on the device name in Temp_swap_name.txt and iterate through these devices. Find the net names connected to all the pins of the device, remove the power, ground, and dummy nets, and iterate through these nets.
[0078] 2. Network name exchange:
[0079] Check if the net is found in swap.txt. If not, ignore it. If it is, replace the net in the schematic with the corresponding net in the second column of swap.txt. After iterating through all nets and symbols, all the net names that need to be swapped are swapped, and the schematic processing is complete.
[0080] 3. Subsequent processing:
[0081] After the network name exchange in the schematic diagram is completed, you can use the script recording file that comes with the software to record a script program for importing the board. After executing this script program, you will get the latest board according to the latest schematic diagram data.
[0082] Point grouping algorithm:
[0083] 1. Data distribution characteristics
[0084] The data obtained from the board is described with the Cline segment angle being 0°. Figure 6 This is a diagram of a local Cline segment in the Temp_swap_cline_i.txt file. The box represents the part with a null endpoint, which is the position corresponding to the other end after the line comes out of the symbol.
[0085] Since we know that these lines are oriented at 0°, we can ignore them during modeling and only consider the endpoint coordinates. Furthermore, since we need to cluster and classify them along the x-axis, we can also ignore the influence of the y-axis and simply project each endpoint coordinate onto the x-axis before processing the data. After classification, we can sort the different categories along the x-axis to prevent confusion between the category correspondences in the two files.
[0086] However, after sorting the categories, we cannot sort the data within each category along the x-axis because there may be overlap, or the order may not be correct due to the routing. Therefore, we sort the data within each category along the y-axis so that the data in the same category in Temp_swap_Cline_i.txt and Temp_fix_Cline_i.txt can have the correct correspondence.
[0087] To sum up, it is not difficult to find that in the entire modeling process, both projection and sorting are relatively simple. The difficulty lies in classifying the discrete data projected onto the x-axis according to the probability distribution relationship. Below we will use the following algorithm to solve this difficulty.
[0088] 2. Algorithm implementation:
[0089] 1) Get discrete data:
[0090] Get the coordinate values of the Cline segment with an angle of 0° from the Temp_swap_Cline_i.txt file, and project all coordinates onto the x-axis to obtain a set of discrete data.
[0091] 2. Kernel density estimation (KDE) is a nonparametric method used to estimate the probability density function of data. KDE is based on the kernel function. With a certain bandwidth parameter, it estimates the probability density of each data point by taking a weighted average of the kernel function near each data point. In other words, it makes inferences about the population based on a limited data sample.
[0092] The kernel function usually chooses the Gaussian kernel function, which is one of the most commonly used kernel functions in KDE. The formula of the Gaussian kernel function is as follows:
[0093] ;
[0094] ;
[0095] K(x): Gaussian kernel function;
[0096] : Probability density function, according to the degree of clustering of the data, the y value is large when the clustering is high, the y value is small when the clustering is low, and the y value is 0 when there is no clustering.
[0097] n: sample size;
[0098] h: Bandwidth is an important parameter that affects the smoothness and sensitivity of the estimate. A larger bandwidth results in a smoother estimate but may obscure details. A smaller bandwidth results in a more refined estimate but may introduce noise and overfitting. We choose different bandwidths based on the data, but we empirically define this value as 1 mm.
[0099] x i : Represents the horizontal coordinate of the i-th data within the bandwidth h.
[0100] 3) Field classification:
[0101] like Figure 7 What is shown is a reference graph of the kernel density estimation function approximation. There are high points and low points in the graph. The high points indicate that the data points here are more concentrated, and the low points indicate that the data points here are less concentrated.
[0102] We define the domain diameter based on the two adjacent lowest points and the domain center based on the center of the domain diameter, and classify these discrete data into domains according to different domains.
[0103] 4) Data sorting:
[0104] The different domain classifications are sorted along the x-axis, and the data within the domain classifications are sorted along the y-axis. The groups obtained from the Temp_swap_Cline_i.txt file are named SB1 to SBb, and the groups obtained from the Temp_fix_Cline_i.txt file are named FB1 to FBb.
[0105] 5) Domain Adaptive Adjustment:
[0106] Determine whether the data volume in SBj and FBj is consistent (j refers to a certain group). If it is consistent, generate a swap.txt file and output the net_name in SX1~SXx and FX1~FXx in groups and order into this file to form two columns of data, with the table headers being swapnet name and fix net name.
[0107] If there is any inconsistency, based on the data size on both sides, we return to the domain group with the smaller data volume, expand the domain diameter of this domain group, and reduce the domain diameters of the two adjacent domain groups. We then re-divide the discrete data for domain classification, adjusting until the data volume in SBj and FBj is consistent. Because data analysis has already been performed during the output process, the total data volume in both files is consistent. This adaptive adjustment of domain diameters effectively achieves the correct domain grouping.
[0108] The above is a detailed description of an embodiment of the present invention. However, the content described is only a preferred embodiment of the present invention and should not be considered to limit the scope of the present invention. All equivalent changes and improvements made within the scope of the present invention should still fall within the scope of the patent coverage of the present invention.
Claims
1. A network name adaptive switching method based on intelligent PCB design, characterized in that: The following steps are involved: Open the top and bottom layers of the board according to the path where the board is located, find the device whose network name needs to be exchanged and the device with the corresponding fixed network name, and save the names of the device into the newly created name file; Get the PCB schematic, and traverse the Conductor layer in the PCB and traverse the Cline in the Conductor layer; Filter out eligible Clines based on their endpoints; Search for the corresponding symbol based on the via connected to one end of the filtered Cline, determine its ownership in the name file, and extract the basic information of the corresponding Cline and save it in the corresponding temporary file; Classify the data in the temporary file according to the direction of the Cline segment with the same layer and null endpoint; Use the point grouping algorithm to process the classified data to determine whether the grouped data volume is consistent. If it is inconsistent, perform adaptive optimization calculations. If it is consistent, generate the swap.txt file. Find the corresponding device in the PCB schematic according to the device name in the name file, traverse the net_name of all pin connections of the device, remove the net of a specific type and traverse the remaining nets. The specific types include power, ground and dummynet; Search for the current net in the swap.txt file. If found, replace the net in the schematic diagram with the corresponding net in the second column of swap.txt.
2. The network name adaptive switching method based on intelligent PCB design according to claim 1, characterized in that: Before creating the file, it is necessary to determine whether there is a file with the same name in the path where the board is located. If it exists, delete the file and create a new one; and the file path must be consistent with the board path.
3. The network name adaptive switching method based on intelligent PCB design according to claim 1, characterized in that: Before opening the top and bottom layers of the board, the following steps are also included: Pull out the wires from the devices at both ends whose net names need to be swapped, with the wire direction being 0°, 45°, or 90°.
4. The network name adaptive switching method based on intelligent PCB design according to claim 3 is characterized in that: The point grouping algorithm includes: Get the coordinate value of the Cline segment angle as any outgoing line direction from the temporary file and project it onto the x-axis to obtain discrete data; The kernel density estimation method is used to select Gaussian kernel function to process discrete data and estimate the probability density function of the data; The domain diameter is defined by the two adjacent lowest points in the kernel density estimation function approximation graph, and the domain center is defined by the center of the domain diameter to perform domain classification on discrete data; Sort the domain classifications into different categories along the x-axis, and then sort the data in each domain classification along the y-axis; Determine whether the corresponding group data volumes obtained from different temporary files are consistent. If inconsistent, adjust the field diameter and reclassify until the data volumes are consistent.
5. The network name adaptive switching method based on intelligent PCB design according to claim 4 is characterized in that: The bandwidth in the kernel density estimation is 1 mm.
6. The method for adaptively switching network names based on intelligent PCB design according to claim 4, characterized in that: The formula of the Gaussian kernel function is as follows: ; ; Where K(x) represents the Gaussian kernel function, represents the probability density function, n represents the sample size, h represents the bandwidth, x i Represents the abscissa of the i-th data within the bandwidth h.
Citation Information
Patent Citations
Chip pin exchanging method for circuit diagram design
CN104200011A
Check support apparatus, method, and computer product
US20080141194A1