Bird
Raised Fist0
PCB Designbi_tool~8 mins

Route planning for two-layer board in PCB Design - Dashboard Guide

Choose your learning style10 modes available
Dashboard Mode - Route planning for two-layer board
Goal

Understand how to plan and visualize routing paths on a two-layer printed circuit board (PCB) to optimize signal flow and minimize interference.

Sample Data: PCB Net Connections
Net IDStart PointEnd PointLayerLength (mm)Via Count
Net1U1 Pin1R1 Pin2Top150
Net2U2 Pin3C1 Pin1Bottom201
Net3U3 Pin5J1 Pin1Top100
Net4R2 Pin1U4 Pin2Bottom252
Net5C2 Pin2U5 Pin4Top181
Dashboard Components
  • KPI Card: Total Nets Routed - Counts all nets in the data.
    Formula: Total Nets = COUNTROWS('PCB_Nets')
    Result: 5
  • KPI Card: Total Vias Used - Sum of all vias across nets.
    Formula: Total Vias = SUM('PCB_Nets'[Via Count])
    Result: 4
  • Bar Chart: Length of Nets by Layer - Shows total length of nets on Top and Bottom layers.
    Formula: Length by Layer = SUMMARIZE('PCB_Nets', 'PCB_Nets'[Layer], "Total Length", SUM('PCB_Nets'[Length (mm)]))
    Data: Top = 43 mm, Bottom = 45 mm
  • Table: Detailed Net Routes - Lists each net with start, end, layer, length, and vias.
    Shows all rows from sample data.
Dashboard Layout
+----------------------+----------------------+
| Total Nets Routed    | Total Vias Used      |
|       [ 5 ]          |       [ 4 ]          |
+----------------------+----------------------+
|                                              |
|          Length of Nets by Layer (Bar Chart) |
|                                              |
+----------------------------------------------+
|                                              |
|             Detailed Net Routes (Table)      |
|                                              |
+----------------------------------------------+
Interactivity

A layer filter allows selecting either 'Top', 'Bottom', or 'All' layers.

  • When a layer is selected, the bar chart updates to show lengths only for that layer.
  • The detailed net routes table filters to show only nets on the selected layer.
  • KPI cards update: Total Nets Routed and Total Vias Used reflect counts and sums for the filtered layer.
Self Check

If you add a filter for Layer = 'Top', which components update and what are their new values?

  • Total Nets Routed: 3 (Nets 1, 3, 5)
  • Total Vias Used: 1 (Via counts 0 + 0 + 1)
  • Length of Nets by Layer: Bar chart shows only Top layer total length = 43 mm
  • Detailed Net Routes: Table shows only nets on Top layer (Net1, Net3, Net5)
Key Result
Dashboard shows routing details and via usage for nets on a two-layer PCB with layer-based filtering.

Practice

(1/5)
1. What is the main advantage of using two layers in PCB route planning?
easy
A. Separating signals and power to reduce interference
B. Making the board heavier
C. Increasing the number of components
D. Reducing the cost of materials

Solution

  1. Step 1: Understand layer usage in PCB design

    Two layers allow separating signal traces and power/ground planes, which reduces electrical noise and interference.
  2. Step 2: Identify the benefit of separation

    Separating signals and power improves signal integrity and reduces crosstalk between traces.
  3. Final Answer:

    Separating signals and power to reduce interference -> Option A
  4. Quick Check:

    Two layers separate signals and power [OK]
Hint: Two layers separate signals and power for less noise [OK]
Common Mistakes:
  • Thinking two layers just add weight
  • Assuming more components fit automatically
  • Believing cost always decreases with two layers
2. Which of the following is the correct way to represent a via connecting top and bottom layers in a PCB design file?
easy
A. via(top-bottom)
B. via(top, bottom)
C. via(top_layer, bottom_layer)
D. via(top;bottom)

Solution

  1. Step 1: Review correct syntax for via definition

    In PCB design files, vias are typically defined with two layers separated by a comma inside parentheses.
  2. Step 2: Identify the correct syntax among options

    via(top_layer, bottom_layer) uses via(top_layer, bottom_layer) which is the standard and syntactically correct format.
  3. Final Answer:

    <code>via(top_layer, bottom_layer)</code> -> Option C
  4. Quick Check:

    Via syntax uses comma between layers [OK]
Hint: Use comma to separate layers in via syntax [OK]
Common Mistakes:
  • Using hyphens or semicolons instead of commas
  • Missing parentheses around layers
  • Incorrect layer names or casing
3. Given the following route plan code snippet, what is the total number of vias used?
routes = [
  {"start": "A", "end": "B", "layer": "top"},
  {"start": "B", "end": "C", "layer": "bottom"},
  {"start": "C", "end": "D", "layer": "top"}
]
vias = [route for route in routes if route["layer"] != routes[routes.index(route)-1]["layer"]]
print(len(vias))
medium
A. 0
B. 2
C. 1
D. 3

Solution

  1. Step 1: Analyze the route layers sequence

    The layers are: top (A-B), bottom (B-C), top (C-D). Changes occur from top to bottom and bottom to top.
  2. Step 2: Count layer changes indicating vias

    There are two layer changes: top to bottom and bottom to top, so two vias are needed.
  3. Final Answer:

    2 -> Option B
  4. Quick Check:

    Layer changes = number of vias = 2 [OK]
Hint: Count layer switches to find vias needed [OK]
Common Mistakes:
  • Counting all routes as vias
  • Ignoring first route layer
  • Misreading layer sequence
4. You have this route planning code snippet that throws an error:
routes = [
  {"start": "X", "end": "Y", "layer": "top"},
  {"start": "Y", "end": "Z", "layer": "bottom"}
]
vias = [route for i, route in enumerate(routes) if route["layer"] != routes[i-1]["layer"]]
print(len(vias))
What is the cause of the error?
medium
A. Index -1 is invalid for the first element
B. Missing parentheses in list comprehension
C. Incorrect key name in route dictionary
D. Using enumerate without unpacking

Solution

  1. Step 1: Identify the error cause in list comprehension

    The code accesses routes[i-1] even when i=0, causing routes[-1] which is valid in Python but may cause logic error if unintended.
  2. Step 2: Understand Python negative index behavior

    Python allows negative indices, so routes[-1] accesses last element, causing incorrect comparison and logic error, not runtime error.
  3. Step 3: Check if error is runtime or logic

    Since no runtime error occurs, the problem is logic error due to comparing first element with last element incorrectly.
  4. Final Answer:

    Index -1 is invalid for the first element -> Option A
  5. Quick Check:

    Negative index causes wrong comparison [OK]
Hint: Watch out for negative indices in loops [OK]
Common Mistakes:
  • Assuming negative index causes runtime error
  • Ignoring logic error from wrong comparison
  • Confusing enumerate unpacking syntax
5. You need to plan routes on a two-layer PCB to connect points A, B, C, and D with minimal vias. The connections are A-B, B-C, and C-D. Which routing strategy best reduces vias?
hard
A. Route A-B and B-C on top, C-D on bottom layer
B. Alternate layers for each connection to balance load
C. Route A-B on bottom, B-C and C-D on top
D. Route all connections on the top layer only

Solution

  1. Step 1: Understand via usage in layer changes

    Each time a route switches layers, a via is needed, increasing complexity and cost.
  2. Step 2: Analyze options for minimal vias

    Routing all connections on the same layer (top) avoids layer switching and thus uses zero vias.
  3. Step 3: Compare other options

    Alternating or mixing layers causes at least one via for each layer change, increasing vias count.
  4. Final Answer:

    Route all connections on the top layer only -> Option D
  5. Quick Check:

    Same layer routing means zero vias [OK]
Hint: Keep routes on one layer to avoid vias [OK]
Common Mistakes:
  • Thinking alternating layers reduce vias
  • Ignoring that each layer change needs a via
  • Assuming balancing load is more important than vias
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard