> For the complete documentation index, see [llms.txt](https://docs.quilter.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.quilter.ai/using-quilter/prepare-your-input-board-file.md).

# Prepare your input board file

The input board file is the most crucial input to Quilter, defining the degrees of freedom that it can explore when completing your layout job.

Quilter comprehends the existing layout objects in your PCB files, including stack-ups, design rules, keepouts, pours, component footprints, and more. All design elements within the user-defined board outline (pre-placed components, routed traces, copper pours, rooms, etc.) can be designated as fixed constraints and will not be modified by Quilter during layout.

You can find more information on each of the design parameters described below in the  [Design Parameters](/design-parameters/overview.md) section of our documentation.<br>

### Required design parameters

Here are the required design parameters for all layout jobs. Make sure to include them in the board file you upload to Quilter:<br>

* **Board Outline**\
  You need to define a single valid board outline for Quilter to work with. Currently, Quilter can't define or resize the board outline for you, so you must do it yourself. To ensure Quilter recognizes the outline, define it on a specific layer:<br>
  * In **Altium,** use **Mechanical Layer 1 (Mechanical 1)**
  * In **KiCAD**, use the **Edge.cuts** layer

{% hint style="info" %}
Quilter only supports one closed board outline. Components with keepouts or other polygon zones defined on the same layer as the board outline can confuse Quilter's parser.
{% endhint %}

* **Component Footprints**\
  Quilter doesn't manage your component footprints, so you need to pre-load them into your board file before submitting. Quilter can't automatically try or choose from multiple footprints or packages for the same component.
* **Netlist**\
  Lastly, Quilter requires a valid netlist that matches the uploaded schematic. For the best results, please ensure your netlist is up to date with the latest version of your schematic. <br>

### Recommended design parameters

Here are some design parameters that aren't strictly required, but are recommended for most layout jobs:<br>

* **Ground and power layer names**\
  Quilter requires that ground layers be named "ground" or "gnd", and power be named "power" or "pwr" if you want those to be detected and used
* **Pre-placing components (like connectors)**\
  Quilter won't move any components you pre-place within the board outline, and will automatically route the rest.&#x20;

{% hint style="warning" %}
Quilter can't automatically distinguish connectors from other unplaced components, we strongly recommend pre-placing them to prevent your USB connector from ending up in the center of your board.
{% endhint %}

* **Not-yet-supported physics constraints**\
  Quilter can't handle all physics constraints in all designs yet. If your physics constraint isn't listed in Circuit Comprehension, Quilter won't give it special attention and will route it like a generic low-voltage, low-speed signal. \
  \
  For this reason, we recommend pre-placing and pre-routing any sensitive design elements that Quilter doesn't support yet (like trace antennas or high-speed signals over 6GHz).<br>

### Optional design parameters

* **Keepouts**\
  You can define placement or routing keepouts that Quilter will respect during the design generation process. Read more in [Keepouts](/design-parameters/keepouts.md).
* **Copper pours**\
  Quilter can preserve and utilize pre-defined pours for external (currently supported) and internal (coming soon) copper layers. Read more in [Preserved pours](/design-parameters/preserved-pours.md).
* **Placement regions**\
  Quilter supports the use of placement regions ("Rooms" in Altium) to constrain component placement. Read more in [Placement regions](/design-parameters/placement-regions.md).

### Stackups from input files

* **Custom stackups**\
  You can specify custom stackups in your ECAD files that Quilter will use when generating candidates. Read more in [Stackups](/design-parameters/stackups.md).
* **Design rules**\
  You can also specify custom fabrication rules in your input file that Quilter will use when generating candidates. Read more in [Fabricator constraints](/using-quilter/fabricator-constraints.md).<br>

{% hint style="info" %}
The fewer design parameters you lock down within your input file, the more flexibility you allow Quilter to explore. If Quilter fails to generate a fully complete candidate for your layout job, try relaxing design parameters in your input board file.
{% endhint %}

### Exporting files from Cadence Allegro

Download the script from the Upload files page, unzip, and follow instructions in the README.md file. These instructions are constantly updated as the script is updated.

<figure><img src="/files/tfWwZHLBDz9xvrIsPZpU" alt="" width="563"><figcaption></figcaption></figure>

### Exporting files from Siemens Xpedition

Download the script from the Upload files page, unzip, and follow instructions in the README.md file. These instructions are constantly updated as the script is updated.

<figure><img src="/files/tNmnaymRLANgrwjqQGmN" alt="" width="563"><figcaption></figcaption></figure>

Video walkthrough of using the script:

{% embed url="<https://vimeo.com/1161571386/d388f843eb>" %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.quilter.ai/using-quilter/prepare-your-input-board-file.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
