Working with the Internal Netlist for a PCB in CircuitMaker

 

The Tools | Netlist region of the PCB editor includes a drop-down menu of commands that can help manage the internal netlist and how it is mapped to the routed board.

Every PCB design includes an internal netlist that defines the connectivity in the design. As the design evolves and changes are made, it is possible for the internal netlist to no longer match the placed components and routing. The commands in the drop-down are described in the table below.

Netlist Commands

Command Behavior
Edit Nets Use to open the Netlist Manager dialog (described below), which provides controls to manage the netlist for the board. 
Clean All Nets Use to clean all routed nets by removing duplicate (stacked) track segments, and breaking track segments at T-junctions and vias, if required. Note that excess stacked segments are only removed if they are the same width and length and are on the same layer.
Clean Single Net Use to clean the chosen routed net by removing duplicate (stacked) track segments and breaking track segments at T-junctions and vias, if required. Note that excess stacked segments are only removed if they are the same width and length and are on the same layer.
Configure Physical Nets This command is used to open the Configure Physical Nets dialog (described below). When the command is run, the entire design is analyzed resulting in a detailed list of every net and with every primitive in that net. The dialog is interactive; click on a net or primitive to cross probe to that object. Right-click or click the Menu button to access the available commands. Note that the dialog can also be configured to Only Show Errors; it may be in this mode if the dialog appears empty. Every pad in the design and its connected copper will be listed as a net. Pads that do not have a net assigned will be assigned a system-generated net name. Use this to resolve errors in footprints that have copper touching pads, but those pads are not used in the current design. 
Update Free Primitives From Component Pads Use to re-synchronize the net name of the routing primitives to the net name on the pads to which those primitives connect. After launching the command, a confirmation dialog appears asking whether you want to update free primitive nets from the component-pad nets. After clicking Yes, starting from each pad, the connected copper is selected and the net name of each routing primitive is set to match that of the pad to which it connects. This command is useful after renaming a net in the schematic and updating the change to the PCB since the update process will only update the net names for the pads in the net. It can also be used to assign net names to extra copper added into a footprint. Note that this command does not update copper connected to pads that have no net name (are set to No Net). To resolve this, use the Configure Physical Nets command.
Export Netlist From PCB Use to export the internal PCB netlist to a file that is written into the same folder as the PCB file. The netlist is written out in the Protel format and is automatically opened. The upper section of the netlist details each component; the lower section details the nets and the nodes in each net.
Create Netlist From Connected Copper Use to create a netlist file based on the connectivity created by the routing in the current design. The netlist is written out in the Protel format and is automatically opened. The upper section of the netlist details each component; the lower section details the nets and the nodes in each net.
Clear All Nets Use to clear all nets from the current design document, essentially flushing the internal PCB netlist. Use this command when you have changed net information in the source schematic documents and you want to fully re-synchronize your PCB with the source schematic. After launching the command, a confirmation dialog will appear alerting you to the fact that this operation will clear all net information from the PCB. After clicking Yes, all net information is removed from the PCB. Routed tracks will remain routed but will have a net assignment of No Net. Any unrouted logical connections will be removed. Once the PCB has been re-synchronized with the schematic, you will need to run the Update Free Primitives From Component Pads command or the Configure Physical Nets command to re-apply net names to the routing.
When right-clicking selected primitive(s) in the PCB editor's design space, the Net Actions  » Assign Net command is also available in the right-click menu. Use this command to assign a net to objects. After launching the command, a crosshair appears. Drag the cross-hair to the net to which you want to assign the object(s), then click to select that net.

Netlist Manager Dialog

This command opens the Netlist Manager dialog, which effectively manages the netlist for the board. Nets can be added, edited or deleted as required, and the pins (or pads) of the components in those nets also can be edited with respect to their properties. Access to other netlist management tools is also provided through this dialog, including the ability to create the netlist based on connected copper on the PCB and the ability to export the netlist from the PCB.

  • Nets In Board - this region presents all of the nets defined for the board by name. Use the mask field above the list to quickly filter the content.
The mask field is used to filter the list to only show strings that match the mask string. You can use the * (any characters) wildcard in the mask string, for example, "*" to display all nets or "D*" to display all nets that start with the letter D.
  • Edit - click to open the Edit Net dialog (described below) in which you can view and modify the properties of the currently selected net (or focused net when multiple nets are currently selected in the list; the focused net is presented with a dotted border).
  • Add - click to add a new net for the board. The Edit Net dialog opens in which you can define the properties of the net. The initial, default name for the new net is NewNet; change as required.
  • Pins In Focused Net - this region presents all of the pins (component pads) associated/belonging to the currently selected/focused net. For each entry in the list, the identifier for the pin is shown in the format <ComponentDesignator>-<PinDesignator>.
The mask field is used to filter the list to only show strings that match the mask string. You can use the * (any characters) wildcard in the mask string, for example, "*" to display all pins in the selected/focused net, or "U*" to display only those pins associated with components whose designator start with the letter U.
  • Edit - click to open the Pad dialog in which you can view and modify the properties of the currently selected pin (pad).
  • Menu - click to access a menu offering the following commands:
    • Add Net - use to add a new net for the board. The Edit Net dialog opens in which you can define the properties of the net
    • Delete Net - use to delete the currently selected net(s) from the board. A confirmation dialog will appear; click Yes to continue with the removal.
    • Update Free Primitives From Component Pads - use to resynchronize the net name of the routing primitives to the net name to which the pads they connect. After launching the command, a confirmation dialog appears asking whether you wish to update free primitive nets with the component-pad nets. After clicking Yes, starting from each pad, the connected copper is selected and the net name of each primitive set to match that of the pad.
This operation does not affect the internal PCB netlist.
  • Clear All Nets - use to clear all nets from the current design document, essentially flushing the internal PCB netlist. This may be desirable if you have changed net information in the source schematic documents and you want to fully resynchronize your PCB with the source schematic netlist information. After launching the command, a confirmation dialog will appear alerting you to the fact that this operation will clear all net information from the PCB. After clicking Yes, all net information will be removed. Any routed track will remain routed, but will have a No Net assignment. Any unrouted logical connections will be removed.
  • Export Netlist From PCB - use to export to file the internal PCB netlist for the current document. After launching the command, a confirmation dialog will appear asking if you wish to export the netlist from the PCB. After clicking Yes, a netlist (Exported <PCBDocumentName>.Net) is created in the same folder as the PCB design document.
  • Create Netlist From Connected Copper - use to create a netlist file based on the connectivity created by the routing in the current design. After launching the command, a confirmation dialog will appear asking if you wish to generate a netlist from the copper on the PCB. After clicking Yes, a netlist (Generated <PCBDocumentName>.Net) is created in the same folder as the PCB design document which automatically opens as the active document in the main design window.
Each net in the netlist gets its name from one of the pads to which the routed copper connects.
All commands available on the Menu button are also available from the right-click menu of the dialog.

Edit Net Dialog

The Edit Net dialog provides controls to edit nets (including changing the net name), adding or removing physical pins for the specified net and specifying the track length for the net.

The key options are described below.

Pins in Other Nets

This is a list of all the pins on the PCB. Pins that are currently assigned to a net include their net name in brackets. Select the pins you want to add to the net being edited. Use the Shift and Ctrl keys to select multiple pins. Use the control buttons to move selected pins into the current netlist or right-click to remove selected pins from the list using the context menu.

Pins in This Net

This is a list of all pins in this net. Select the pins you want to remove from this net. Use the Shift and Ctrl keys to select multiple pins. Use the control buttons to move selected pins out of the current netlist or right-click and use the context menu to remove selected pins.

Current Interactive Routing Settings

The grid region lists the current settings for interactive routing.

Via Hole Size

This represents the current via hole size's value that is stored in the net. This dialog provides a way to modify the current values for the current interactive routing settings. If the values are zero, the user choice values are not being sourced from this dialog and the last used value for this board will be used.

Via Diameter 

This represents the current via size's user that is stored in this net. This dialog provides a way to modify the current values for the current interactive routing settings. If the values are zero, the user choice values are not being sourced from this dialog and the last used value for this board will be used.

All Widths-

This is the current routing and layer reference values that represent the current user choice values that are stored in the net. It provides a way to modify the current values for the current interactive routing settings. If the values are zero, the user choice values are not being sourced from this dialog and the last used value for this board will be used.

Layers in Layer-Stack only 

Enable to apply the via parameters for layers in the layer-stack only.

Configure Physical Nets Dialog

The Configure Physical Nets dialog allows you to examine and confirm that the objects that are physically connected have the correct net assigned in that physical net. It does this by checking that all pads and the objects that physically connect them together (tracks, arcs, fills, etc.,) have the same net name assigned. When all net objects are correct, the net is shown in green.

If any objects are detected as touching and have a different net assigned are flagged in red. A common example of when this occurs is when a component footprint has extra copper objects within the footprint. When this footprint is loaded during synchronization, the pads have the assigned net name applied to each pad but not the extra copper.

The default state for this dialog is to Only Show Errors, which means that objects that are correctly assigned are not listed. Disable this option by disabling the Only Show Errors option in the Menu button drop-down to display all objects.

The key options are described below.

  • Electrically Connected Copper - this region lists distinct groupings of copper primitives that are electrically connected as detected in the wiring of the design. For each grouping, the following information is presented:
    • Primitive - at the top-level, this entry reflects how many primitives are in the connected copper. Primitives can be displayed in a flat listing or grouped by type of primitive. The latter is configured by enabling the Show Primitive Groups option in the Menu button options. If this is done, the primitives will be split into the following groupings:
      • Connected Component Primitives - lists all component pad primitives as its children. These can be further grouped by parent component by enabling the Menu button option Show Components.
      • Connected Free Primitives - lists all non-component copper primitives as its children, further grouped by primitive type (Fills, Polygons, Tracks, Vias).
Connected Component Primitives are only presented when the Show Component Pads option is enabled on the Menu button options. Similarly, Connected Free Primitives are only presented when the Show Non Component Pads option is enabled. If one of these options is disabled, the top-level entry will reflect how many primitives are currently hidden. If both of these options are disabled, the dialog will be empty. The Show All Primitives button will become available, which quickly reveals all primitives (essentially enabling one or both of these disabled options).
Clicking on a primitive entry will highlight that primitive in the design space. Selecting multiple primitive entries will select all primitives in that selection. Selecting a higher-level entry in the list will cause all descendent child primitives to be highlighted in the  design space.
  • Original Net Names - this field reflects the net name currently assigned to the primitive, i.e. the net to which the primitive currently connects. The entry will be one of the defined nets for the board. However, if a primitive is not connected to a net, it will have the entry <Unassigned>.
  • Status - this field provides a top-level status entry for the grouping, which can be one of four states:
    • Blank - net assignment for the connected copper grouping is all correct and no update is required. The top-level entry for the grouping is colored green.
    • 1. Update Required - Unassigned Nets - in this state, none of the primitives in the grouping have been assigned to a net. The top-level entry for the grouping is colored yellow.
    • 2. Update Required - Some Unassigned Nets - in this state, some of the primitives have been assigned to the same net, but others have not been assigned at all. The top-level entry for the grouping is colored orange.
    • 3. Ambiguous - Multiple Net Names - in this state, there are primitives in the grouping that have been assigned to different nets. There may also be primitives not yet assigned. The top-level entry for the grouping is colored red.
  • Action - this region provides controls for specifying the action needed to be taken to resolve issues with the connected copper along with the result of executing the configured changes. For each grouping, the following is presented:
    • Proposed Action - this field is used to determine what action, if any, is to be taken. At the highest level for a grouping, this entry can be set to Update Net To, or Don't Update Net To. When updating, choose the new target net in the New Net Name field. Based on these two settings, the software calculates the actions that are to be performed at the child primitive level, arriving at one of the following proposals:
      • No Action Required - the primitive is already assigned/connected to the target net.
      • Update - include the primitive in the update so that it is assigned/connected to the new target net.
      • Don't Update - do not include the primitive in the update. It will remain connected to its current net.
    • New Net Name - use to set a new target net to which the primitives should be connected. The field's drop-down lists all nets detected among the primitives in the connected copper grouping. If you need to use a different net, right-click on the field and use the Change Copper Net To Board Net command from the context menu. This opens the Choose Net dialog which lists all nets currently defined for the board. Choose the net you require then click OK. The net will be entered into the field.
    • Done - this field reflects the success or failure of the update action once the Execute button is pressed and the changes are applied.
Toggling the proposed action at a parent level quickly toggles the proposed action at the child level and for all children under that parent. Where individual children differ in their proposed actions - some included for update, some excluded - the parent level above in the hierarchy of grouped primitives will reflect this with the entry Some Updates.
  • Execute - once you are satisfied with the actions assigned to the netlist, click to update the net assignments.
  • Menu - click to access the following menu of commands that relate to the main list in general or to the currently selected primitive(s). The commands are identical to those available on the right-click menu for the main list region.
    • Update/Don't Update/No Action - use to quickly toggle the proposed action for the selected primitive(s). At a higher, parent level in the primitive hierarchy, use it to toggle the proposed action for all descendent children.
    • Select All - use to quickly select all connected copper groupings (the highest level entries in the list).
    • Select All With Same Status - with a top-level connected copper grouping entry selected, use this command to quickly select all other top-level groupings with the same status.
    • Clear All Selected - use to deselect all entries in the list.
    • Expand All In Connected Copper - use to quickly expand all child groupings within the currently focused connected copper grouping.
    • Expand All - use to quickly expand all groupings for all connected copper groupings in the list.
    • Expand Children - use to quickly expand all descendent child groups below the currently selected grouping.
    • Collapse All In Connected Copper - use to quickly collapse all child groupings within the currently focused connected copper grouping.
    • Collapse All - use to quickly collapse all groupings for all connected copper groupings in the list.
    • Collapse Children - use to quickly collapse all descendent child groups below the currently selected grouping.
    • Only Show Errors - enable to only show errors in the dialog. The list will only present connected copper groupings whose Status is level 1, 2, or 3. Disable to also show connected copper that is correctly assigned.
    • Show Components - enable to have component pad primitives grouped by their parent components.
    • Show Primitive Groups - enable to have primitives grouped by their primitive type.
    • Animate Action Execution - enable to have the dialog scroll through the list as the execution proceeds, giving you an animated real-time progress of the execution of net changes. Disabling this option means execution of changes will be performed without such animation.
    • Warn On Netlist Change - enable to be warned when changes will affect the netlist for the board. The Netlist Change dialog will open, alerting you to how many primitives will have their nets changed and that this will affect the netlist.

You can either click to Continue or click Filter Affected to more closely inspect the proposed changes.

  • Show Component Pads - enable to show connected component primitives in the list.
  • Show Non Component Pads - enable to show connected free primitives in the list.
  • Show Changes That Affect Netlist - enable to only present a list of the proposed actions (changes) that will affect the netlist for the board.
  • Show All Primitives - click to quickly reveal all primitives. This button becomes available if the Show Component Pads and/or Show Non Component Pads options are disabled on the Menu button options.

 

If you find an issue, select the text/image and pressCtrl + Enterto send us your feedback.
콘텐츠