board/
: a subdir for each board<BOARDNAME>
:info.yml
orinfo.md
: board data<CONSTRAINT_FILE(S)>
device/
: a subdir for each device<DEVICENAME>
info.yml
: device data
Types of constraint files:
- Physical Constraints File (
*.pcf
) for Lattice IceCube2. - Lattice Preference File (
*.lpf
) for Lattice Diamond. - User Constraint Files (
*.ucf
) for Xilinx ISE ≤14.7. - Xilinx Design Constraints (
*.xdc
) for Xilinx Vivado. - Synopsis Design Constraints (
*.sdc
) for Intel Quartus Prime (formerly Altera Quartus-II). - Physical Design Constraints (
*.pdc
) for Microsemi Libero-SoC.
For each board, sets of constraint files are provided according to the following rules:
- Split pin constrains from per IP core timing constrains.
- Group pin constrains per interface/connector (switches, LEDs, Ethernet, UART, etc.). This allows enabling/disabling interfaces by selecting which files to include.
- Use vectors/arrays for unnamed non-bidirectional ports, instead of numbering pins individually.
- Prefix each port with the board name.
- If an interface is fixed, include matching timing constraints. E.g. a button with
set_false_path
,system_clock
with 100 MHz, or GMII with the 2 ns delay. - Postfix low-active signals with
_n
.