Bird
Raised Fist0
PCB Designbi_tool~10 mins

Route planning for two-layer board in PCB Design - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to select the correct layer for routing on a two-layer PCB.

PCB Design
route_layer = '[1]'
Drag options to blanks, or click blank then click option'
AInner1
BTop
CBottom
DInner2
Attempts:
3 left
💡 Hint
Common Mistakes
Choosing inner layers which do not exist on a two-layer board.
Selecting only the Bottom layer without considering the Top.
2fill in blank
medium

Complete the code to define the via type used to connect Top and Bottom layers.

PCB Design
via_type = '[1]'
Drag options to blanks, or click blank then click option'
AMicrovia
BBlind via
CBuried via
DThrough-hole via
Attempts:
3 left
💡 Hint
Common Mistakes
Choosing blind or buried vias which are used in multi-layer boards.
Selecting microvias which are typically for HDI boards.
3fill in blank
hard

Fix the error in the routing direction assignment for the Bottom layer.

PCB Design
if layer == 'Bottom':
    routing_direction = '[1]'
Drag options to blanks, or click blank then click option'
AVertical
BHorizontal
CDiagonal
DRandom
Attempts:
3 left
💡 Hint
Common Mistakes
Assigning horizontal routing on both layers causing crossing.
Using diagonal or random routing which is not standard practice.
4fill in blank
hard

Fill both blanks to define the routing directions for Top and Bottom layers.

PCB Design
routing_directions = {
    'Top': '[1]',
    'Bottom': '[2]'
}
Drag options to blanks, or click blank then click option'
AHorizontal
BVertical
CDiagonal
DRandom
Attempts:
3 left
💡 Hint
Common Mistakes
Assigning the same direction to both layers.
Using diagonal or random directions which complicate routing.
5fill in blank
hard

Fill all three blanks to create a dictionary mapping layers to their routing directions and via type.

PCB Design
routing_plan = {
    'Top': '[1]',
    'Bottom': '[2]',
    'Via': '[3]'
}
Drag options to blanks, or click blank then click option'
AHorizontal
BVertical
CThrough-hole via
DBlind via
Attempts:
3 left
💡 Hint
Common Mistakes
Mixing up via types or routing directions.
Using blind vias which are not applicable here.

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