xCheck Version 2.3 Table of Contents INTRODUCTION .................................................................................................................................................................. 3 PRICE ..................................................................................................................................................................................... 3 COMPATIBILITY ................................................................................................................................................................. 5 INSTALLATION ................................................................................................................................................................... 5 PROGRAM INSTALLATION ........................................................................................................................................................................ 5 INSTALLING .NET ..................................................................................................................................................................................... 5 APPLICATION OVERVIEW ............................................................................................................................................... 6 TUTORIAL ............................................................................................................................................................................ 7 PERFORM ANALYSIS ................................................................................................................................................................................. 7 ANALYSIS REPORTS -­‐ DRC ...................................................................................................................................................................... 8 ANALYSIS REPORTS – VERIFY .............................................................................................................................................................. 10 ANALYSIS REPORTS – NETLISTS ......................................................................................................................................................... 11 ANALYSIS REPORTS – SCHEMATIC CHECK ........................................................................................................................................ 12 ANALYSIS REPORTS – BOM ................................................................................................................................................................. 13 ANALYSIS REPORTS – STATS ................................................................................................................................................................ 14 FIXING REPORTED PROBLEMS ............................................................................................................................................................. 15 DESIGN RULES CHECK .................................................................................................................................................... 17 INTRODUCTION ....................................................................................................................................................................................... 17 PERFORMING A DRC .............................................................................................................................................................................. 17 UNDERSTANDING THE DRC REPORT ................................................................................................................................................. 18 PRINTING OR COPYING DRC REPORTS .............................................................................................................................................. 19 DRC FILTERING ...................................................................................................................................................................................... 19 THINGS NOT CHECKED BY DRC .......................................................................................................................................................... 20 DRC RULES ............................................................................................................................................................................................. 20 PCB VERIFICATION .......................................................................................................................................................... 23 PERFORMING VERIFICATION ................................................................................................................................................................ 23 UNDERSTANDING A VERIFICATION REPORT ..................................................................................................................................... 24 PRINTING OR COPYING VERIFICATION REPORTS ............................................................................................................................. 25 HOW SMART IS XCHECK? ...................................................................................................................................................................... 25 DISCLAIMER ............................................................................................................................................................................................. 25 NETLIST REPORTS ........................................................................................................................................................... 26 INTRODUCTION ....................................................................................................................................................................................... 26 PRINTING OR COPYING NETLISTS ....................................................................................................................................................... 27 SCHEMATIC CHECK ......................................................................................................................................................... 28 PERFORMING A SCHEMATIC CHECK .................................................................................................................................................... 28 UNDERSTANDING A SCHEMATIC REPORT .......................................................................................................................................... 28 XCHECK DOCUMENTATION 1 “NO CONNECT” PINS ............................................................................................................................................................................. 30 BILL OF MATERIALS REPORT ...................................................................................................................................... 31 INTRODUCTION ....................................................................................................................................................................................... 31 PRINTING OR COPYING A BILL OF MATERIALS ................................................................................................................................. 31 PRINTING REPORTS ........................................................................................................................................................ 32 COPYING REPORTS TO THE CLIPBOARD ................................................................................................................. 32 CONNECTING NETS .......................................................................................................................................................... 33 MOUNTING PADS ............................................................................................................................................................. 35 SPECIAL EXCEPTIONS FOR SOME LIBRARY COMPONENTS ............................................................................................................. 35 EXAMPLE FILES ................................................................................................................................................................ 36 PROCESSING TIME ........................................................................................................................................................... 37 DONATIONS ....................................................................................................................................................................... 38 BUGS ..................................................................................................................................................................................... 39 REVISION HISTORY ......................................................................................................................................................... 39 DISCLAIMER ...................................................................................................................................................................... 42 2 XCHECK DOCUMENTATION Introduction xCheck is a Windows application that can analyze a printed circuit board (PCB) design (created with the ExpressPCB program) and the associated schematic (drawn using ExpressSch), looking for problems that should be fixed before manufacturing the board. The schematic is checked for mistakes or design errors, and the PCB layout is checked against this schematic to look for shorts, opens, or a number of other differences. The PCB layout is also checked against a list of 16 design tolerances (for example, pad-­‐to-­‐trace spacing) to make sure that the board can be manufactured reliably. ExpressPCB and ExpressSch are great tools that are easy to use, but they lack the ability to perform most of these checks. xCheck provides these missing features to help you finish your layout with confidence. xCheck can also be used to generate other useful reports from your design, including a netlist and a Bill of Materials. Price I have invested hundreds of hours of research, development, and testing into producing xCheck, and have released it as freeware as a gift to the ExpressPCB community. This is not a crippled or time-­‐limited version, but is fully functional. If you find this tool useful or if it saves you money by helping you to avoid manufacturing boards with mistakes, why not say “thank you” with a small donation? Doing so will help support the ongoing effort to improve this program and fix any bugs that might be found. Within the program there’s a handy PayPal donate button as well as information for sending a check by mail. See XCHECK DOCUMENTATION 3 Donations on page 38 for more information. xCheck is licensed to be used free of charge, for personal use only. I retain all rights to the program. It may not be distributed for profit, nor may it be included in products or otherwise distributed by commercial entities to their clients or customers without the prior written permission of the author. 4 XCHECK DOCUMENTATION Compatibility xCheck is designed to run on Windows systems. It has been tested on Windows XP, Vista, and 7, and requires .NET 2.0 or higher to be installed (this comes standard with Vista and Windows 7). Installation Note: If you have previously installed the XGpcb program, you should uninstall that program yourself, as this program replaces it but the xCheck installer will not automatically remove XGpcb. Do this on XP using Start/Control Panel/Add or Remove Programs, on Vista using Start/Settings/Control Panel/Programs, and Windows 7 using Start/Control Panel/Programs. Program Installation xCheck, documentation, and examples are distributed as a typical Windows installer. Simply double-­‐click on the xCheck_setup.msi file and follow the instructions. If the installer detects that the .NET (v2.0) framework is not present on your system, it will notify you of this and refuse to install. If that occurs, install .NET first (see instructions below) then run the xCheck installer again. When installation is complete, you have the option to launch xCheck immediately. In the future, launch xCheck from Start/All Programs/xCheck. Installing .NET xCheck requires .NET 2.0 or higher to be installed on your system. This comes standard with Windows 7 and Vista, but may or may not already be installed on your XP system. If the xCheck installer detects that .NET is missing, you can download it at no cost from Microsoft at the following link: https://www.microsoft.com/en-­‐us/download/details.aspx?id=6523 Once the file is downloaded, run it to install .NET to your system. It might ask you to reboot your computer when done. Then run the xCheck_setup.msi installer to install xCheck. XCHECK DOCUMENTATION 5 Application Overview Once installed, launch the xCheck program from Start, then All Programs, then xCheck group. Figure 1 shows an overview of key elements of the application, as follows. 1 Used for specifying the schematic file to be analyzed, or the schematic to use as a reference for verifying the PCB file to be analyzed. Click the folder icon or type directly in the box 2 Used for specifying the PCB file to be analyzed. Click the folder icon or type directly in the box 3 Buttons used to begin analysis of the schematic or PCB design 4 Open the schematic or PCB file for editing using the appropriate ExpressPCB tool (which must already be installed – download from expresspcb.com) 5 After analysis is complete, click on these tabs to view various reports that were generated 6 This area displays the report selected by the tabs above The menu, where you can copy or print reports, modify DRC rules, get support, or make a donation Figure 1 -­‐ Program Overview 6 XCHECK DOCUMENTATION Tutorial xCheck is easy to use. The best way to learn it is by doing an analysis of the included sample design -­‐-­‐ a simple flasher circuit and PCB layout. Perform Analysis • • • • Launch the xCheck program (Start, then All Programs, then xCheck in the xCheck group) Select the schematic for this design: Click on the folder icon next to the Schematic File box (marked 1 in Figure 1 above). Click on My Documents, then open the xCheck folder, and finally choose the test1_flasher.sch file. Then click the Open button. Select the PCB design to analyze: Click on the folder icon next to the PCB File box (marked 2 in Figure 1 above). It will start at the location where you found the schematic, which is also where the PCB layout file is for this example. Just choose the test1_flasher.pcb file. Then click the Open button. Now click the PCB button to start the analysis (in section 3 above) PCB analysis will now begin. A progress window such as the following will appear: Progress is displayed graphically and some statistics from the PCB are shown. For this tutorial the numbers will be different than the example shown here. For small boards (such as this) the analysis will complete very quickly. But for more complex designs, this can take seconds (or even minutes). Analysis can be cancelled, if desired, by pressing the Cancel button. Once the analysis is finished, the following will pop up to indicate that problems were detected: XCHECK DOCUMENTATION 7 A number of problems were obviously detected. Violations and errors are usually serious problems that could impair the functionality of the PCB, and should therefore be fixed before being manufactured. Warnings are less serious infractions that you should review to decide if fixing them is important. Click OK to close this summary window. In order to find out more details about the detected problems, the following sections will look at the various detailed reports that the analysis generated. Analysis Reports -­‐ DRC Now that analysis is complete, click on the DRC tab in the Reports section to view the results of the Design Rules Check (drag the window larger, if needed, to make the report easier to read): Figure 2 -­‐ DRC Report 8 XCHECK DOCUMENTATION First, notice that the symbol has appeared at the top of the controls area. This is another visual reminder that possible problems exist with this PCB or schematic. Since the DRC tab is selected, the results of the Design Rules Check analysis are shown below. Drag the scroll bar at the right edge up or down to view the entire report. At the bottom of this report (and many of the other reports) is a summary section that gives a colorful indication of whether there are problems in this area of the analysis: Red or yellow indicates problems. All green means no problems in this report only. For more information about understanding the DRC report or customizing the DRC rules, see the Design Rules Check section on page 17. XCHECK DOCUMENTATION 9 Analysis Reports – Verify Next, click on the Verify tab to view the verification report: Figure 3 -­‐ Verification Report Descriptions of several problems are listed, along with a summary at the bottom. Again, use the scroll bar (or size the window larger) to view the entire report. The problems are reported, and a section at the bottom summarizes the report. Red and yellow colors here give a quick visual indication of errors and warnings (respectively) in this report. For more information about how to interpret the verification report, see PCB Verification on page 23. 10 XCHECK DOCUMENTATION Analysis Reports – Netlists Sometimes it can be difficult to understand what’s wrong with a PCB from the text description in the Verification Errors section. To get a clearer understanding, click on the Netlists tab, where the netlist from the schematic is shown, as well as the effective netlist of the PCB as currently laid out. Differences are highlighted yellow so that you can easily see any discrepancies: Figure 4 -­‐ Netlists Report The highlights show that the quantity of pads connected on the +V, Gnd, and ~N00001 nets are different between the schematic and PCB, and the exact pad differences are also highlighted. For example, U1-­‐4 is attached to +V in the schematic, but not in the PCB. Also, PCB net ~N00006 doesn’t even exist in the schematic, so the entire net is highlighted. For more information about netlists, see the NetList Reports section on page 26. XCHECK DOCUMENTATION 11 Analysis Reports – Schematic Check Click on the Schematic tab to view the schematic check report: xCheck knows how to check for various types of schematic problems, some of which ExpressSCH can detect, but others that are unique to xCheck. In this example, it didn’t find any serious problems with the schematic, except that pin 5 of U1 is open, and xCheck doesn’t know if this is intentional or a mistake. In the Schematic Check section below (see page 28), you’ll learn how to enhance your schematics with “no connect” symbols to get rid of warnings like this, and therefore make unintentional opens stand out in the schematic check report. 12 XCHECK DOCUMENTATION Analysis Reports – BOM Click on the BOM tab to display a Bill of Materials for this project: Figure 5 -­‐ Bill of Materials Report The bill of materials lists the quantity of each individual part called out on the schematic, including the Name and Order value (that were entered in ExpressSCH) as well as the Part ID’s for each occurrence of the part. Note that when multiple identical parts are present in the design, they are listed together on the same line. This is handy for pricing and for ordering parts required for a design. For more information about Bills of Materials, see the Bill of Materials Report section on page 31. XCHECK DOCUMENTATION 13 Analysis Reports – Stats The same board statistics shown during analysis can be viewed after complete by clicking on the Stats tab: Figure 6 -­‐ Board Statistics 14 XCHECK DOCUMENTATION Fixing Reported Problems After viewing these reports, you should fix any problems found in the schematic by making the changes using ExpressSCH (click the icon to the left of the schematic file to easily open it), and fix DRC or PCB verification problems by making the proper changes using ExpressPCB (click the icon to the left of the PCB file to easily open it). Once these changed are saved (to the same schematic and PCB files), you can just click the PCB button (in xCheck) again to run a new analysis. There’s no need to close xCheck while editing the schematic or PCB. Leaving it open prevents having to select the PCB and schematic files again. Of course you can save new schematic or PCB updates as new files. But if you do, don’t forget to select the new file versions from xCheck before running analysis again. To make this tutorial simpler, corrected versions of the schematic and PCB have already been prepared for you. For normal work, you would usually save the fixed versions using the same file names. But for this tutorial, use the folder icons to select the fixed versions: schematic test1_flasher_fixed.sch and PCB file test1_flasher_fixed.pcb. Now press the PCB button to run a full PCB analysis again. When complete, you should see a to indicate no problems were found (see Figure 7). You can click the various tabs to prove to yourself that no schematic or DRC problems were detected, and that no differences were found between the schematic and the PCB layout (Figure 8). Figure 7 – No DRC Violations XCHECK DOCUMENTATION 15 Figure 8 -­‐ No Verification Errors At this point, your board design has passed all of xCheck’s tests with no problems found. Always be sure to visually inspect your board layout before sending off for manufacturing, just in case xCheck missed something. Just like a spell-­‐checker won’t alert you to the use of the wrong words as long as they are spelled correctly, xCheck could report no problems for a board that still has functional problems (poor circuit design, noise issues due to poor layout, part physical clearance problems, incorrect pad spacing for packages, etc.) 16 XCHECK DOCUMENTATION Design Rules Check Introduction A Design Rules Check (or DRC) examines every object on all layers of your PCB design, making sure that they meet certain minimum guidelines for size and distance to other objects. Any violations of these rules is reported to make it easy for you to find and fix them. xCheck’s DRC checks the following in your design. • • • • • • • • • • • • • • • • Pad/trace/place to board edge distance Hole to board edge distance Silkscreen line width Minimum trace width Pad to pad clearance Pad to trace clearance Trace to trace clearance Hole to hole clearance Pad to plane clearance Trace to plane clearance Plane to plane clearance Minimum hole size Minimum pad size Minimum annular ring (pad) Minimum annular ring (via) Poor connections (minimum overlap) This last item is unique to xCheck and might need some explanation. When two objects intersect by only a small amount, an over-­‐etched board could result in a high resistance connection, or even a disconnect. For that reason, a warning will be generated when two touching copper objects overlap by less than the minimum distance (which you can adjust to your liking). By setting this value to 0, this DRC check can be disabled. Performing a DRC The first step is to specify the PCB to analyze. Click the folder icon next the PCB File box, then find and select the PCB file, and press the Open button. Before starting analysis, check that the DRC rules are set appropriately for the type of manufacturing service intended to be used for this board. To do this, open the DRC Rules window by pressing Ctrl-­‐R or by the menu using Edit/DRC Rules. XCHECK DOCUMENTATION 17 Figure 9 -­‐ Manufacturing Service Preset Control In the window that opens, use the preset control (see Figure 9) to select the board service desired (4-­‐layer ProtoPro service was selected in this example). Changing this preset adjusts some of the DRC rules (seen in the section below the preset) as needed for the board service selected. Press OK to keep these settings. See DRC Rules below for more information. To begin the DRC analysis, press the PCB button, as DRC analysis is done as part of the PCB analysis. (Note that no schematic needs to be specified if you just want a DRC report.) The PCB will be analyzed and, when finished, the DRC report will be available to view by clicking on the DRC tab in the reports section. Understanding the DRC Report Here is an example DRC report: 1: (4.696,0.417) -­‐ Clearance -­‐ Trace to board edge Trace on Bottom layer (0.453,6.135) to (0.695,6.117) 2: (0.593,1.081) -­‐ Clearance -­‐ pad R27-­‐2 to pad U5-­‐1 (4.2 mils) Round Pad (R27-­‐2) on All layers (0.599,1.052) Rectangular SMT Pad (U5-­‐1) on Top layer (0.587,1.111) 3: (3.485,2.367) -­‐ Clearance -­‐ pad D1-­‐1 to trace P00002 (5.9 mils) Rectangular Pad (D1-­‐1) on All layers (3.453,2.335) Trace on Bottom layer (3.451,2.435) to (3.560,2.298) 4: (2.225,0.456) -­‐ Objects connected poorly: Pad,Trace (7.0 mils overlap) Rectangular SMT Pad (R1-­‐1) on Top layer (2.200,0.450) Trace on Top layer (2.233,0.456) to (0.453,0.335) 5: (4.100,1.626) – Warning -­‐ Object on copper layer must be manually checked Text on Top layer (4.100,1.626) “+5V” Figure 10 -­‐ DRC Report Example For each violation, the location of the problem is given, e.g. (4.696,0.417). This is the horizontal and vertical position (in inches) of the problem area. 18 XCHECK DOCUMENTATION Locate this point by opening the design in ExpressPCB, disable snap, then move your cursor while watching the coordinates in the lower-­‐left corner of the program in order to home in on the problem area. Hint: search for the horizontal position (first number) by moving your pointer left and right until it’s close to the number, then move the pointer up and down until you find the indicated vertical position (second number). Unfortunately, ExpressPCB doesn’t give you an easier way to go directly to a particular (X,Y) location. The next information shown for each violation is the particular type of error and some additional details, when available. For example, warning #2 in the example (Figure 10) shows that it’s a pad-­‐ to-­‐pad clearance violation, and lists the two pads as well as the actual distance between them. This information, when available, offers another (possibly quicker) way to locate the violation in your design. In this example, a Find (Ctrl-­‐F) of R27 or U5 should bring the problem area into focus. For some types of violations, additional detailed information is given on subsequent lines for each object involved. For example, warning #2 in the example (Figure 10) lists the type of each pad involved (shape, layer, etc.) and gives the precise X,Y location of their centers. Printing or Copying DRC Reports The DRC report can be printed by first making it visible (clicking the DRC tab), and then telling it to print. You can do this either by pressing Ctrl-­‐P or by selecting Print from the File menu). This brings up the print control window, where you can choose your printer, set the number of copies, and print it. To copy the unformatted text of the DRC report to the clipboard (to be pasted into another application, for example), simply click the DRC tab to make the report visible, and then either press Ctrl-­‐C or select Copy All from the Edit menu. You do not need to highlight any of the text first, as it automatically copies all the text in the report. DRC Filtering Irrelevant DRC violations will not be reported. For example, a pad and a trace that are closer than DRC limits will not be reported as a violation if they are already electrically connected by other means. This avoids many “nuisance” warnings. XCHECK DOCUMENTATION 19 Things Not Checked by DRC Text written on a copper layer is not fully analyzed by xCheck. Any such text that is in close proximity to other copper objects may cause a DRC warning (such as #5 in the example above). This doesn’t mean that this text necessarily creates a short, but that xCheck would not detect it if it did. You are therefore advised to inspect any such text manually. Using text to create intentional electrical connections is not advised. Also, the following are not verified by xCheck. These may be checked by ExpressPCB during upload of your design, or should be checked manually. • Mininum/maximum board dimensions for a particular manufacturing service • Minimum width of routed slots • Maximum number of holes (for ProtoPro service) Note that although the holes count is not checked to see if it exceeds the limit for a board service, the holes are counted for you and shown in the Stats tab. DRC Rules The default rules for the DRC checking engine are listed in Table 1 below. DRC Rule Minimum Pad/trace/plane to board edge distance 0.020” Hole to board edge 0.025” Silkscreen minimum line width 0.006” Trace minimum width 0.006” Pad to pad clearance 0.006” Pad to trace clearance 0.006” Trace to trace clearance 0.006” Hole to hole clearance 0.021” Pad to plane (copper fill) clearance 0.006” Trace to plane (copper fill) clearance 0.006” Plane to plane (copper fill) clearance 0.006” Minimum hole size 0.014” Minimum pad size 0.031” Pad minimum annular ring 0.007” Via minimum annular ring 0.005” Poor connection (minimum overlap) 0.006” Table 1 – Default DRC Rule Thresholds 20 XCHECK DOCUMENTATION These rules are a general starting point, and match ExpressPCB’s specifications for 2-­‐layer boards. Note that some of the values must be adjusted if producing 4-­‐layer boards or using the MiniBoard service. To modify any of these thresholds, open the DRC Rules window by pressing Ctrl-­‐R or by selecting DRC Rules from the Edit menu. Figure 11 -­‐ DRC Rules Window Selecting one of the board services from the Preset control will make the necessary adjustments to the rules listed below it. XCHECK DOCUMENTATION 21 You can also manually adjust any of the rules to your liking. This is especially useful if you’d like to make your design pass more stringent specifications than ExpressPCB permits. For example, for a high voltage design you might want to change all the clearances between copper objects to meet your own minimum distance. Or if your board will be mounted with a metal mounting flange, you might want to increase the minimum distance to the board edge to enforce this in your design. If you press OK, any changes made to these rules will be saved and used for all subsequent DRC checks (unless you change them again). The next time you run xCheck, your custom values will still be in effect. To set these rules back to the original defaults, consult Table 1 above. The following table shows which rules govern clearance between any two copper objects. Pad Trace Arc Rectangle Plane Text Pad pad to pad pad to trace pad to trace pad to copper pad to copper § -­‐-­‐ Trace pad to trace trace to trace trace to trace trace to copper trace to copper* -­‐-­‐ Arc pad to trace trace to trace trace to trace trace to copper NC -­‐-­‐ Rectangle pad to copper trace to copper trace to copper copper to copper NC -­‐-­‐ Table 2 -­‐ Copper Object Clearance Rules -­‐-­‐ Not checked NC -­‐ Can never intersect due to ExpressPCB behavior * Affected by trace’s filled-­‐plane clearance setting § Affected by pad standard clearance and pad connection options 22 XCHECK DOCUMENTATION Plane pad to copper § trace to copper * NC NC copper to copper NC Text -­‐-­‐ -­‐-­‐ -­‐-­‐ -­‐-­‐ n/a -­‐-­‐ PCB Verification Verification is the process of checking that a PCB layout matches the design in a schematic. This is performed by analyzing the pads, traces, and copper planes of the PCB to determine the actual electrical connections, and then comparing that against the intended connections documented in the schematic. Any differences could be mistakes and need investigated and possibly corrected. Performing Verification The first step is to specify the PCB to analyze. Click the folder icon to the right of the PCB File box, then find and select the PCB file, and press the Open button. The next step is to specify the schematic to check the PCB against. Click the folder icon to the right of the Schematic File box, then find and select the schematic file, and press Open. If your PCB design was linked to a schematic (using the ExpressPCB program), then you can leave the Schematic File box blank, as it will be found from the link. You can use a different schematic than the one linked if you specify it in the Schematic File box. To begin verification analysis, press the PCB button (or press Ctrl-­‐B). The PCB and schematic will be analyzed and then the verification report will be available to view by clicking on the Verify tab in the reports section. If any problems are reported, they should be fixed using the following process: • Locate and fix each problem using ExpressPCB (or ExpressSCH if the problem is in the schematic) • Save the updated PCB or schematic to disk again • Click the PCB button again in xCheck to repeat analysis on the newly saved file(s) • Repeat until no problems are reported XCHECK DOCUMENTATION 23 Understanding a Verification Report Figure 12 is an example verification report showing a number of problems: Missing Pads Pad R2-­‐1 missing on PCB Pad R2-­‐2 missing on PCB Verification Errors 2 pads disconnected from net Gnd: R3-­‐1, C1-­‐2 Pad connected to wrong net (~N00001 instead of ~N00005): U1-­‐5 Extraneous Nets R7-­‐1, R8-­‐1, U1-­‐4 Extra Component Pads R7-­‐1, R7-­‐2, R8-­‐1, R8-­‐2 Total Errors: 6 Total Warnings: 4 Shorts: Opens: Wrong connections: Missing pads: Extraneous nets: 0 2 1 2 1 Extra pads: 4 Figure 12 -­‐ Verification Report Example Missing Pads – These are component pads that are connected in the schematic, but which do not exist on the PCB. This could mean the component is missing, or that its Part ID (RefDes) is incorrect. These are counted as errors. Verification Errors – Differences between the schematic and PCB are described here. These could include pads disconnected from the intended net, connected to the wrong nets, or two nets shorted together. Net names listed here refer to the names found in the PCB and schematic netlists (see the Netlists tab). Items listed in this section are counted as errors. Extraneous Nets – Connections found on the PCB that are not described in the schematic. These are counted as errors. Extra Component Pads – Component pads found on the PCB that are not present in the schematic. These are counted as warnings. 24 XCHECK DOCUMENTATION The findings are summarized at the bottom of the report. Yellow or red headings give a quick visual indication of problem detected. If no warnings or errors are found in this report, the summary will be shown in green. Printing or Copying Verification Reports The verification report can be printed by first making it visible (clicking the Verify tab), and then telling it to print. You can do this either by pressing Ctrl-­‐P or by selecting Print from the File menu). This brings up the print control window, where you can choose your printer, set the number of copies, and print it. To copy the unformatted text of the verification report to the clipboard (to be pasted into another application, for example), simply click the Verify tab to make the report visible, and then either press Ctrl-­‐C or select Copy All from the Edit menu. You do not need to highlight any of the text first, as it automatically copies all the text in the report. How Smart Is xCheck? xCheck understands the connection implications of all copper elements supported by the ExpressPCB program, including complex interactions between pads, vias, traces, arcs, circles, rectangles, filled planes, and keep-­‐outs. This includes use of copper fills as well as power planes and complex split planes on 4 layer boards. Text on copper layers is only minimally processed by xCheck’s analysis engine. Therefore using text to provide an intentional copper connection will not be recognized as such. Also, an accidental short created by text on a copper layer will not be detected. A DRC warning may be generated for instances of text on a copper layer if near enough to other nets, as a reminder for you to manually check it. Disclaimer Keep in mind that even though xCheck contains very sophisticated analysis algorithms and has been thoroughly tested, there is always a chance it could contain an unknown bug that might cause it to fail to detect a connection or clearance problem in your PCB design. Therefore, manual checking of a PCB is wise even if it passes an xCheck verification with no errors or warnings. XCHECK DOCUMENTATION 25 NetList Reports Introduction After performing analysis of a board design, the effective netlist of the PCB can be viewed in the Netlists tab. For each net, the following information is listed • • • The net name (generic, except for named nets) The number of connections on the net All the connected points on the net Each connection point is specified by the Part ID (RefDes) of the component, followed by a dash and then the pin number of that part. For example, U7-­‐8 means component U7, pin 8. This PCB netlist is created by analyzing the actual pads and traces in the PCB layout. So if there are parts of your layout that are disconnected, shorted, or otherwise incorrectly connected, the PCB netlist will accurately reflect those connections. The schematic netlist, which is generated from the schematic, is also displayed in this tab if the schematic was specified or is linked to the PCB file. Any differences between the PCB and schematic netlists are highlighted yellow, making it easy to spot and understand any problems that were reported in the verification report (in the Verify tab). Figure 13 shows a set of netlists with highlighted differences. If you place your pointer just between the boxes labeled “Schematic Netlist” and “PCB Netlist,” it will turn into the following image. While the pointer looks like this, you can click and drag up or down to change the relative sizes of the two netlist boxes. 26 XCHECK DOCUMENTATION Figure 13 -­‐ Highlighted Netlist Difference Printing or Copying Netlists Either netlist can be printed by first making them visible (clicking the Netlist tab), and then telling it to print. You can do this either by pressing Ctrl-­‐P or by selecting Print from the File menu). Only one netlist can be printed at a time, so a window will pop up asking you which netlist. After this, the print control window appears, where you can choose your printer, set the number of copies, and print it. To copy the unformatted text of a netlist to the clipboard (to be pasted into another application, for example), simply click the Netlist tab to make them visible, and then either press Ctrl-­‐C or select Copy All from the Edit menu. You do not need to highlight any of the text first, as it automatically copies all the text in the report. You will be asked which netlist to copy. XCHECK DOCUMENTATION 27 Schematic Check Checking the schematic is important, because if it contains errors then this often translates to errors in the PCB. xCheck can detect the schematic problems that ExpressSCH can find, and a couple of additional tests. Therefore, it’s possible for a schematic to pass the check built into ExpressSCH, and still generate warnings in xCheck. Performing a Schematic Check The first step is to specify the schematic to check. Click the folder icon to the right of the Schematic File box, then find and select the schematic file, and press Open. To begin schematic checking, press the Schematic button (or press Ctrl-­‐S). The schematic will be analyzed and then the report will be available to view by clicking on the Schematic tab in the reports section. Note that the schematic is also checked if a full PCB verification is performed, assuming the schematic is also specified or linked to it. Understanding a Schematic Report Here’s an example schematic report (from the included example test2_errors.sch): Figure 14 -­‐ Example Schematic Report 28 XCHECK DOCUMENTATION The following types of schematic problems can be detected: Multiple components using Part ID ‘xxxx’ with common pin numbers – If multiple components in the schematic share the same Part ID, they must each be a portion of the same device (for example, each gate in a “quad” 74LS00 device). If the same pin number is found in any of these components, this is an error as it means two separate physical devices have the same Part ID. Component has a blank Part ID (RefDes) – The component whose location is specified needs to be assigned a Part ID. Symbol has a blank NetName – The symbol at the location specified needs a NetName entered. Pin not part of a component or symbol – At the location specified is a pin that was never grouped into a symbol or component. This use of a pin is invalid. Corner only connected to one wire – At the location specified is a corner that is attached to a wire and nothing else. This creates a “dangling wire” which was probably intended to connect to another wire, symbol, or component, but was not connected properly. Wire not connected to a net – The wire at the specified location is not connected to any components, either directly or indirectly. This probably indicates a wire was used when you meant to use a line to draw on the schematic. Symbol xxxx is connected to the same net as symbol yyyy – All symbols that connect to the same net must have the same NetName (this is an ExpressSCH requirement). See Connecting Nets on p. 33 for information on how to overcome this problem. Pin on component xxxx does not have a valid pin number – The pin whose location is specified is part of a component or symbol, but was not given a pin number. Symbol only used once: xxxx – Symbols are usually used as a shorthand way of connecting components together, even across different sheets in the schematic. If a symbol only appears once in the entire schematic, then it provides no additional connections and so is listed as a warning (in case you meant to connect to this same symbol but didn’t). If, however, you use a symbol as a way to label a net with a descriptive name, then you will need to ignore this “single use” warning that will be generated for this net. Pin xxx-­‐x not connected – The component pin specified is not connected to any other device or pin. Since ExpressSCH doesn’t have a way to mark a pin as a no-­‐connect, this warning can be quite common since pins are frequently left unconnected. See the following section on using “No connects” to get rid of these warnings. XCHECK DOCUMENTATION 29 “No Connect” Pins Most schematic capture programs have a way to mark pins as intentionally not connected. Unfortunately, ExpressSCH does not offer such a feature. Therefore, it’s not possible for xCheck to determine if a pin is left unconnected intentionally or if it’s a mistake. To help make up for this deficiency, a special custom symbol has been included with xCheck, titled No Connect – xCheck and should be in your custom symbols list after installing xCheck. If not, exit and restart ExpressSCH to make it appear in the list of available symbols. Note: the xCheck installer assumes the default location for custom symbols: My Documents\ExpressPCB. If you changed this location (using view-­‐>Options-­‐>Misc tab) then you will have to manually copy this symbol from My Documents\ExpressPCB\SchSymbols_Custom to the location you have chosen. Or you can download it from the Yahoo ExpressPCB group (in the xCheck Custom Components folder). To use the new symbol, simply place this on any component pin that is to be intentionally left blank, as shown in the right image below. Figure 15 -­‐ Adding the Special "No Connect" Symbol How does this work? This symbol has a special NetName that xCheck understands to mean “not to be connected” and so it won’t warn about unconnected pins. Using this symbol should allow you to get your schematic and PCB to produce zero warnings or errors on a full analysis. The only side-­‐effect to using this special No Connect symbol is that ExpressSCH and ExpressPCB don’t understand its special meaning, and will therefore (wrongly) assume that all of these no-­‐ connect pins should be tied together (since they are all tied to a symbol having the same special name). Using the Highlight Net Connections feature in ExpressPCB will turn all of these NC points blue. So if you choose to use this symbol, you must remember not to wire those points together. This net will be called no_connect__, so if you see that name at the bottom of the ExpressPCB screen when you highlight a net to route, you’ll know to skip it. Of course, if you should forget and wire these together, xCheck will catch the mistake during PCB verification. 30 XCHECK DOCUMENTATION Bill of Materials Report Introduction Here’s an example Bill of Materials report: Figure 16 -­‐ Bill of Materials Report The bill of materials lists the quantity of each individual part called out on the schematic, including the Name and Order value (that were entered in ExpressSCH) as well as the Part ID’s for each occurrence of the part. Note that when multiple identical parts are present in the design, they are listed together on the same line. This is handy for pricing and ordering parts required for a design. Printing or Copying a Bill of Materials The Bill of Materials can be printed by first making it visible (clicking the BOM tab), and then telling it to print by pressing Ctrl-­‐P or by selecting Print from the File menu. The print control window will appear, where you can choose your printer, set the number of copies, and print it. To copy the unformatted text of a BOM to the clipboard (to be pasted into another application, for example), simply click the BOM tab to make it visible, and then either press Ctrl-­‐C or select Copy All from the Edit menu. You do not need to highlight any of the text first, as it automatically copies all the text in the report. XCHECK DOCUMENTATION 31 Printing Reports As mentioned in the above sections, printing any of the reports is as simple as clicking the tab to make that report visible, and then pressing Ctrl-­‐P or selecting Print from the File menu. The print control window will then appear, where you can choose your printer, set the number of copies, and print it. When printing a netlist, you will be asked which one to print (since there are schematic and PCB netlists on the same tab page). Copying Reports to the Clipboard To copy the unformatted text of any of the reports to the clipboard (to be pasted into another application, for example), simply make the report visible by clicking on the appropriate tab, and then either press Ctrl-­‐C or select Copy All from the Edit menu. You do not need to highlight any of the text first, as it automatically copies all the text in the report. When copying a netlist, you will be asked which one to copy (since there are schematic and PCB netlists on the same tab page). 32 XCHECK DOCUMENTATION Connecting Nets ExpressSCH does not permit tying multiple nets together directly (or having different symbol names attached to the same net), as this causes an error when the schematic is verified. There are times, however, where this is desirable. A good example is having separate grounds (an analog ground and digital ground), which are tied together at a single point on the PCB. xCheck solves this by providing custom schematic and PCB components that can be used to express how these nets should be tied together so that the PCB can be designed correctly, and properly verified against the schematic. Note: If any of the following components do no appear in your custom library after installing xCheck, exit and restart ExpressSCH or ExpressPCB and they should then appear. The xCheck installer assumes the default location for custom components: My Documents\ExpressPCB. If you changed this location (using view-­‐>Options-­‐>Misc tab) then you will have to manually copy the custom xCheck components from My Documents\ExpressPCB to the location you have chosen, then restart the programs. . Or you can download these components from the Yahoo ExpressPCB group (in the xCheck Custom Components folder). In the schematic, use the custom component called Tie Nets to couple two nets, as follows: Figure 17 -­‐ Tie Nets Schematic Component This works similar to the UnlinkNets custom component, but has the advantage that xCheck recognizes Tie Nets components and gives them special treatment during analysis. This is not true for UnlinkNets. If more than one Tie Nets is used in a schematic, make sure each has its own unique Part ID, for associating each properly with the PCB. By default, they use a Part ID of TN1, TN2, etc. Notice that each Tie Nets component has a component name of _tie_nets_. Do not modify this name, as this instructs xCheck to treat this component in a special way when doing schematic checking and PCB verification. XCHECK DOCUMENTATION 33 When designing the PCB, use one of the included Tie Nets components to electrically connect the two nets together, as follows: Figure 18 -­‐ Tie Nets PCB Component Use normal pads, wires, or filled planes to attach a net to each end of this copper net connector. Do not let the two nets touch directly; they must be coupled only by the Tie Nets component, or a verification error will result. The Part ID of this Tie Nets component needs to match the Part ID of the Tie Nets component in the schematic (e.g. TN1) in order to verify the PCB successfully. Tie Nets PCB components of several shapes and sizes are included, using the following names: Figure 19 -­‐ Tie Nets PCB Components Included If a net connector of a different shape or size is required, you can create your own very simply. 1) Create the copper shape using two pads (pin 1 and pin 2) 2) Overlap the pads to connect them, or connect the pads with one or more rectangles 3) Select all the pieces and create a component from them (Component -­‐> Group to make PCB component) 4) Double-­‐click on the component and assign it a name that begins with “Tie Nets”. For example, “Tie Nets – My special connect”. Components whose name begins with “Tie Nets” are treated specially by xCheck during analysis If you follow all of the above (and design your schematic and PCB properly), xCheck will successfully check your schematic and verify your PCB, and each net will be listed separately on the Netlists tab, even ones that are electrically connected with Tie Nets components. 34 XCHECK DOCUMENTATION Mounting Pads When designing components with mounting holes or pads, the choice of pin number for the mounting hole has an important impact on xCheck’s PCB analysis. If the pin number is left blank, then xCheck assumes that the component does not electrically attach to the pad, so it will ignore any electrical connections to it. If the mounting pad is assigned the same pin number as another pad on the component, xCheck will assume that the two pins are electrically connected inside the component. This is handy, for example, for TO-­‐220 components where the mounting tab is usually electrically connected to the ground pin, but is not usually called out as a separate pin on the schematic symbol. This allows xCheck to detect an unintentional short to ground if something is touching the mounting pad that should not connect to ground. Finally, if the mounting pad is given a unique pin number, then this pin must be also shown in the schematic symbol. Otherwise the PCB pad (and any connection to it) will be flagged as extraneous. Special Exceptions for Some Library Components Some of the PCB components included in the ExpressPCB library have unique pin numbers assigned to their mounting pads, but the schematic symbols commonly used with these components do not list these as separate pins. This causes PCB verification errors for common components such as voltage regulators. Rather than requiring you to modify the pin number in these components each time they are used in a design, xCheck automatically detects these specific components and treats them as if they had been created correctly. The components affected and their handling by xCheck are as follows: Component Name Handling Semiconductor -­‐ TO-­‐220, with mounting hole (i.e. 7805 vreg) Semiconductor -­‐ TO-­‐220-­‐5, with mounting hole Mounting pad (pin #4) treated as pin #2 Mounting pad (pin #6) treated as pin #3 This correctly models these parts as having an electrical connection between the middle pin and the mounting tab. If a component in your design uses a TO-­‐220 (or TO-­‐220-­‐5) package, and the mounting tab does not connect to the middle pin, then you should make a copy of the standard component, and rename it slightly (e.g. “Semiconductor – TO-­‐220, isolated mounting hole”) so that xCheck will not make this exception during analysis. XCHECK DOCUMENTATION 35 Example Files The sample schematic and PCB files listed below are included with xCheck to help you evaluate its usefulness and features. These are fairly simple examples. xCheck was tested and debugged using much more complex designs, but they cannot be distributed with the program because they are real products that I don’t have the right to distribute. If someone would kindly donate their (more complicated) PCB layout and schematic for inclusion in this package, I would gladly give you credit. test1_flasher.sch Schematic of a simple LED flasher using a 555 timer. test1_flasher_fixed.sch Same as above, but with the warning fixed.. test1_flasher.pcb A PCB layout of the flasher circuit. The layout is a little silly, as it’s a 4-­‐layer board with a split power plane to form an inner-­‐layer trace, and also has a curved trace. But these help demonstrate how xCheck understands various forms of electrical connections. It has some intentional mistakes that will trigger a number of DRC and verification errors to demonstrate those capabilities. test1_flasher_fixed.pcb Another PCB layout of the flasher circuit. This version has all DRC problems fixed, and it correctly matches the schematic. test2_errors.sch A simple schematic with a number of intentional mistakes to demonstrate xCheck’s ability to detect and report them. test3_tie_nets.sch A schematic that demonstrates connecting multiple nets using the “tie nets” schematic component. test3_tie_nets.pcb A PCB that demonstrates connecting multiple nets using one of the “tie nets” PCB components. 36 XCHECK DOCUMENTATION Processing Time The time required for xCheck to do a full analysis of a board depends greatly on the complexity of the PCB layout. For small boards, it’s nearly instantaneous. But for larger boards with many pads and traces, processing can take longer. Planes with many cutouts (due to pads, traces, and keep-­‐ outs) can take extra time, so large copper fills and 4-­‐layer boards slow down analysis. Of course, the speed of the PC running xCheck will have some bearing on the processing time required. As an example, on a typical PC, verifying the test1_flasher_errors.pcb example takes about 0.1 seconds, whereas a complex board with 4 layers, 330 components, 1300 pads, 1700 traces, and 14 filled areas (some of them complex split planes) takes about 21 seconds to analyze. XCHECK DOCUMENTATION 37 Donations I have invested hundreds of hours of research, development, and testing into producing xCheck, and have released it as freeware as a gift to the ExpressPCB community. This is not a crippled or time-­‐limited version, but is fully functional. If you find this tool useful or if it saves you money by helping you to avoid manufacturing boards with mistakes, why not say “thank you” with a small donation? Doing so will help support the ongoing effort to improve this program and fix any bugs that might be found. To make a donation, run xCheck and select Donate from the Help menu. This window appears. Figure 20 -­‐ Donation Window Any size donation is appreciated. For donations of $20 or more, however, you will be sent a registration key that you can enter in this window to prevent this screen from appearing each time you run any board or schematic analysis. To pay electronically from your PayPal account, credit card, or bank account, simply click on the PayPal button. Your browser will take you to PayPal, where you can enter your donation amount and complete the transaction. Your personal registration key will be emailed to you, usually within 24 hours, at the email address associated with your PayPal account (unless you specify another). Note that the registration code listed in your receipt emailed from PayPal is NOT the key, but is used by us to generate your personalized key. To pay by a paper check, click the image of the check. Instructions will be given how to make out the check and where to send it. Be sure to include a return address so that your registration key can be sent back to you. Or better yet, include an email address and it can be sent even faster. Once you receive your registration key, open this windows again (select Donate from the Help menu), enter the key into the Registration Key box, and press the OK button. 38 XCHECK DOCUMENTATION Bugs None known at this time. You can report bugs to support@softwaregizmos.com. Revision History Version 2.3 (Nov 29, 2015) Enhancements • Reports zero-­‐length traces as DRC warnings Bug Fixes • Fixes crash due to zero-­‐length traces • Fixes problem saving and restoring empty PCB and schematic file names Version 2.2 (Nov 7, 2015) Enhancements • Added sheet name to more schematic warnings and errors • Remembers last schematic and PCB filename when program is closed and re-­‐run • Begins browsing for schematic or PCB filename at location of currently chosen file (if any) Bug Fixes • Fixes Xengine permission failure bug • Fixes problems running on machines set to 120 DPI Version 2.1 (July 16, 2012) New features • Added stats report tab • Added buttons to easily edit PCB in ExpressPCB or schematic in ExpressSCH Enhancements • Much faster “minimum overlap” processing between planes • “Poorly connected” DRC warnings can be disabled by setting minimum overlap rule to 0 • Special exceptions made for some built-­‐in library PCB components that assign pin numbers to mounting tabs (e.g. TO-­‐220, TO-­‐220-­‐5). Eliminates verification errors since tab pin does not exist in schematic symbol • Added “Tie Nets” schematic component and PCB components (4) to enable tying together multiple nets without causing schematic or verification errors • Added special exceptions for “Tie Nets” components in PCB analysis and in BOM generator • Reports now refer to components by name if the Part ID is blank (rather than a generic name such as UNNAMED123) • Improved descriptions in DRC violations involving arcs and circles • Nuisance DRC warnings suppressed for objects that are not part of a true net XCHECK DOCUMENTATION 39 Suppresses DRC warnings to manually check copper-­‐layer text if there is no possibility of the text intersecting multiple objects – reduces many nuisance warnings • Progress “fuel gauge” is more linear (doesn’t get stuck at 99% for a long period, for example) • Improved program icon at various resolutions Bug Fixes • Fixed problem where a linked schematic located in the same folder as the PCB would fail to be found by xCheck. Therefore no schematic-­‐related reports would be created if the Schematic File box was blank. Would not fail like this if PCB and schematic were in different folders. • Fixed crash that occurred if doing a Ctrl-­‐C (or Edit-­‐>Copy All) when the report that was currently displayed was blank • Fixed rare Xengine crash that was very dependent on the number and location of components and planes in the PCB • Fixed crash caused by a “no connect” symbol attached to nothing in schematic • Fixed schematic netlist errors caused by a comma present in the NetName of a symbol • Fixed bug where abort button could take a long time to respond during plane collision analysis • Version 2.0 (May 29, 2012) Merged Xpcb, XGpcb, and Xsch tools, renamed xCheck (command line no longer supported) New features • Added schematic checking • Displays formatted reports within the program (no longer relies on external viewing tool) • Schematic and PCB netlist differences are highlighted for easier comparison • Reports board statistics (number of holes, pads, components, etc.) during analysis • Added DRC rule presets to match various ExpressPCB board services • Added ability to print reports • Added ability to copy reports to the clipboard • Includes special “No connect” schematic symbol which xCheck understands Enhancements • Overhauled user interface • Added ability to abort analysis, if desired • PCB netlist now inherits named nets from schematic whenever possible • Cleaner netlists: no longer lists single-­‐node nets • Schematic and PCB netlists are sorted by PartID for easier comparison and readability • Improved descriptive wording for DRC violations • Keyboard shortcuts added for “power users” • Added Missing Pads information to verification report Bug Fixes • Fixed PCB analysis bug where solo pads (not part of a component) with non-­‐0 pin numbers could be mistakenly assumed to be connected to each other • Fixed bug where a component’s duplicate pins or mounting pads (unnumbered pins) would be shown as multiples in PCB netlist 40 XCHECK DOCUMENTATION • Fixed bug where, in verification report, extraneous pads could be missing from Extra Component Pads list if they were also part of an extraneous net Version 1.3 (May 1, 2012) • Supports systems with Windows installed on a drive other than C: • Better error handling if linked schematic not found • No longer case-­‐sensitive to RefDes (part ID) in schematic and PCB • Xpcb –n option changed to specify temp netlist pathname (can no longer feed in netlist) • No longer fails if \Windows\Temp folder doesn’t exist Version 1.21 (April 28, 2012) • Fixed XGpcb crashing on launch on Win 7 machines • Fixed tab ordering on Rules tab Version 1.2 (April 26, 2012) • Added support for customizing DRC rule thresholds • Fixed bug related to nets with large number of nodes Version 1.1 (April 21, 2012) • Added XGpcb graphical tool • Package now distributed as a Windows installer Version 1.0 (April 17, 2012) • First release version XCHECK DOCUMENTATION 41 Disclaimer xCheck © Copyright 2012-­‐2015 Software Gizmos. All rights reserved. ALTHOUGH xCheck IS INTENDED TO FIND DRC AND NETLIST VIOLATIONS, IT FINDING NONE DOES NOT GUARANTEE THAT YOUR DESIGN IS CORRECT OR THAT IT CAN BE MANUFACTURED BY EXPRESSPCB. xCheck IS NOT AFFILIATED WITH EXPRESSPCB. TO THE EXTENT ALLOWED BY APPLICABLE LAW, xCheck IS PROVIDED "AS IS", WITH NO EXPRESS OR IMPLIED WARRANTY, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW WILL THE AUTHOR BE LIABLE FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE xCheck EVEN IF THE AUTHOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. These copyright, license, and disclaimer notices must be included with all copies of xCheck. 42 XCHECK DOCUMENTATION