49 | | At this point your PlanAhead project has one source, the XPS project. You must now add a constraints file to the PlanAhead Project. |
| 49 | At this point your PlanAhead project has one source, the XPS project. Unfortunately PlanAhead does not support XPS projects as top-level modules for implementation. |
| 50 | |
| 51 | 1. In the PlanAhead Sources tab right-click on your XPS source and select '''Create Top HDL''' |
| 52 | 1. The sources tab will update to show a new hierarchy: |
| 53 | [[Image(pa_src_top_hdl.png)]] |
| 54 | 1. Notice that the XPS project instance has been renamed {{{xps_top_i}}} - this is important for the next step |
| 55 | |
| 56 | You must now add a constraints file to the PlanAhead Project. Your constraints will be based on the top-level constraints from your source XPS project. |
| 60 | 1. Click Create File and choose a filename. We'll use {{{xps_constraints}}} here. |
| 61 | 1. Click Ok, then Finish |
| 62 | 1. In the Sources tab expand the {{{Constraints/constrs_1}}} folder and double click your UCF file |
| 63 | 1. In another text editor open your source XPS project constraints file {{{<src_xps_proj>/data/system.ucf}}} |
| 64 | 1. Copy and paste the old file contents into the new UCF file in PlanAhead, then save the new file |
| 65 | |
| 66 | At this point your PlanAhead project constraints match the source XPS project constraints exactly. |
| 67 | |
| 68 | The PlanAhead-wrapped XPS project uses the same net names when connecting XPS ports to top-level pins. For constraints which refer to top-level nets, like {{{NET clk_in LOC = SOME_PIN}}}, no changes are required. |
| 69 | |
| 70 | For constraints which refer to nets or instances by hierarchical name, the new UCF must be udpated to reflect the XPS project instance name. |