Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)
17256 Discussions

Recompile design after changing pin assignment

Altera_Forum
Honored Contributor II
1,439 Views

Hi, 

 

Can I avoid fully compilation of the design if only pin assignment is changed? 

 

I need to deliver a pre-compiled design(without hdl source code) to a 3rd-party but still allow them to change pin assignment and redo fit/asm etc. What kind of files I should saved from my compilation and send to the end user? 

 

Thanks!
0 Kudos
3 Replies
Altera_Forum
Honored Contributor II
636 Views

You can avoid a full compilation of your design by using Quartus II Incremental Compilation (http://www.altera.com/support/software/incremental/sof-qts-increment-comp.html), and your 3rd-party partner can make fast minor modifications to their design using Engineering Change Orders (ECOs) (http://www.altera.com/literature/hb/qts/qts_qii52017.pdf?gsa_pos=4&wt.oss_r=1&wt.oss=engineering%20change%20order).  

 

Here are the steps you can follow to hand off your project with compilation results, but no HDL using Quartus II 8.1+: 

  • Create an HDL ‘wrapper’ for your entire project and set this at the top-level entity in your project.
  • This wrapper is simply a set of input and output pins that connect directly to your project’s input and output ports.
  • Perform Analysis and Elaboration
  • At this point, if you look at the Project Navigator, your design hierarchy should have the ‘wrapper’ at the top, and its one and only child should be your main project.
  • Set your main project as a design partition.
  • To do this, right-click on your main project in the Project Navigator, then select ‘Design Partition’ --> ‘Set as Design Partition’.
  • At this point you can open the Design Partition Window (‘Assignments’ --> ‘Design Partitions Window’) and you should see 2 partitions: Top (the entire project) and one partition which is your main project.
  • Compile your project
  • Export your placement and routing results.
  • In the Design Partitions Window, right-click on the partition you set in step 3 (i.e. the one and only child partition of Top), and select ‘Export’.
  • Once the dialog opens, the ‘Post-fit netlist’ and ‘Export routing’ options should be set. Choose a file name of your choice and click the ‘Export’ button. This will generate a ‘QXP’ file that contains the compiled results for your project.
  • Archive your project without the source HDL.
  • You can now create a Quartus II Archive (QAR) file that can be handed off to a 3rd-party.
  • Select ‘Project’ --> ‘Archive Project’ to bring up the archive dialog.
  • Now click on the ‘Add / Remove Files’ button and ensure that the only HDL files for your project that are included are those for the project wrapper. Also ensure that the QXP file you generated in Step 5 is included.
  • Click ‘Ok’ to create your archive.
 

Now hand off your QAR file to the 3rd-party.  

 

When the open it, they can run Analysis and Elaboration, and they will get an error telling them that the instantiation of your main project is undefined (because we’ve removed the HDL for the project). At this point, they can do the following to get your compiled results: 

  • Open the Design Partitions Window  

  • Right-click on the partition corresponding to your main project. 

  • Select ‘Import’. 

  • In the file selection window, choose the QXP file distributed with the archive and click ‘Ok’. 

  • Compile the project 

 

They will have now re-created your results without the use of your HDL and without a full compilation.  

 

If they would like to fully re-place and re-route the design, they can open the Design Partitions Window and change the ‘Fitter Preservation Level’ to ‘Netlist Only’. This allows Quartus II to re-place and re-route the design from scratch, which can include user assignments to pin locations. This will require a full run of the fitter. 

 

If they would like to perform only minor modifications (i.e. only change placement of a few pins), they can leave the Fitter Preservation Level at “Placement and Routing” and use Quartus II’s Engineering Change Orders feature (ECOs) to do so. This will be much faster than a full run of the fitter. Please note that if you’re using this fitter preservation level, user assignments to pin locations will not take effect, the preserved placement and routing will be honored unless you make ECOs. 

 

I know that's a lot of information, but if you are ok with distributing the HDL it can definitely be made easier! 

 

Hope that helps! 

 

Shawn
0 Kudos
Altera_Forum
Honored Contributor II
636 Views

Thanks, Shawn.  

 

I will try and see how it works. Anyway it is an option to do the job.  

 

Appreciated!
0 Kudos
Altera_Forum
Honored Contributor II
636 Views

You could also use the Rapid Recompile feature available in 9.1 and later releases. In this particular case you would have to send databases in order for the other party to pick up where you left off.

0 Kudos
Reply