Skip to content

linmingchih/via-wizard

Repository files navigation

English | 繁體中文

Via Wizard

Via Wizard is a powerful, GUI-based tool designed to streamline the creation and simulation of PCB vias. It leverages Ansys AEDT (via pyedb) to generate high-fidelity simulation models directly from a user-friendly interface.

Via Wizard Demo

Features

1. Stackup Management

  • Visual Editor: View and edit layer properties (Thickness, Dk, Df, Conductivity).

  • Import/Export: Load and save stackups using XML format.

  • Excel Integration: Paste stackup data directly from Excel into the application.

  • 2D Visualization: Real-time visual representation of the layer stackup.

  • DogBone Void Customization: Customize the void shape for differential pairs on reference layers.

    • -1: Default antipad size.
    • 0: No void created.
    • >0: Rectangular void with specified width.

    DogBone Void Diagram

2. Padstack Design

  • Customizable Geometries: Define hole diameter, pad size, and antipad size.
  • Material Selection: Choose from standard materials like Copper, Gold, or Aluminum.
  • Backdrill Settings: Configure backdrill parameters (Depth, Stub, To Layer) for signal integrity optimization.
  • Fill Via Support: Enable "Fill" for backdrilled vias with custom dielectric properties (Dk, Df). The fill via is automatically created and placed with the specified backdrill diameter and material.

3. Interactive Placement

  • Canvas Editor: Interactively place vias on a virtual PCB canvas.
  • Placement Modes:
    • Single Via: Place individual signal vias.
    • Differential Pair: Place differential pairs with configurable pitch and orientation.
    • Diff Pair w/ GND: Place differential pairs with surrounding ground vias.
    • GND Via: Place grounding vias.
  • Grid System: Snap-to-grid functionality for precise alignment.
  • Property Table: View and edit instance properties in a structured table with collapsible sections for better organization.
  • Advanced Fan-out Control: Configure fan-out geometry for differential pairs, including turn angles (e.g., 45 degrees), straight lengths, and radii.
  • Dynamic Sorting: Placed instances are automatically sorted alphabetically for easy management.
  • Optimized UI: The "Placed Instances" panel is optimized for better visibility of properties.
  • Smart Copy/Paste: Copy and paste instances with automatic name incrementing (e.g., Via_1 -> Via_2) to ensure unique naming.
  • Ruler Tool: Measure distances on the canvas using the Right Mouse Button. Displays Length, dx, and dy with non-overlapping labels.
  • Copper Pour Visualization: Visualize the clearance/void around traces (Feed In/Out Pour) directly on the canvas.
  • Differential Pair Feed Spacing: Explicit control over feed line spacing for differential pairs, ensuring accurate visualization and export.

4. Simulation Export

  • AEDB Generation: Export your entire design (stackup, padstacks, placed instances) to an Ansys AEDB project (.aedb).
  • Version Control: Specify the target AEDB version (default: 2024.1).
  • Automated Modeling: The tool automatically handles the creation of materials, layers, padstacks, and vias in the AEDB file.
  • Component Creation: Automatically groups vias into components based on naming convention (component.pin) for easier integration in Ansys.

Prerequisites

  • Python: Version 3.10 or higher.
  • Ansys AEDT: Installed and licensed (Version 2024.1 or newer recommended).
  • Dependencies:
    • pywebview: For the GUI window.
    • pyedb: For interacting with Ansys EDB.

Installation

  1. Run the installation script: Double-click install.bat or run it from the command line:
    install.bat
    This script will set up the virtual environment and install all necessary dependencies.

Usage

  1. Start the Application: Run the main.py script to launch the GUI.

    python main.py
  2. Workflow:

    • Stackup Tab: Define your board layers. You can load stack.xml as a starting point.
    • Padstack Tab: Create padstack definitions referencing the layers from your stackup.
    • Placement Tab: Select a padstack and place instances on the canvas.
    • Simulation Tab: Enter the desired AEDB version and click Export to AEDB.
  3. Output: The tool will generate a .json file of your project and a corresponding .aedb folder in the same directory.

Project Structure

  • main.py: Application entry point. Initializes the pywebview window.
  • api.py: Contains the ViaWizardAPI class, bridging the JavaScript frontend and Python backend.
  • modeling.py: Core logic for generating the Ansys EDB model from the project data.
  • gui/: Contains the frontend assets (index.html, app.js, style.css).
  • stack.xml: Default stackup configuration file.

License

MIT License

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published