Mistakes detection

Safety and support in finding mistakes were among the core goals of the implementation. The idea of the program is to report mistakes as soon as possible and exit with verbose mistake description. It does not gather mistakes to report them all at the end, but reports them immediately at a given check point. The application is capable of detecting and reporting the following mistakes:

  1. Unassigned terminal pins - terminal pins not assigned to any ports.

  2. Dangling terminal pins - terminal pins not mapped to any FPGA pins.

  3. Assigning to non-terminal pins.

  4. Conflicting mappings in each tree node. It detects such conflicts even if a given tree node is defined in multiple files.

  5. Conflicting assignments - the same port assigned twice.

  6. Assigning to missing pins.

  7. Mapping to terminal pins.

  8. Duplicated node names - at least 2 nodes with the same name.