Community
cancel
Showing results for 
Search instead for 
Did you mean: 

ECO changes using Quartus Resource Property Editor

Description

This page is dedicated to users that would like to better understand how to make ECO changes in Quartus’ Chip Planner and Resource Property Editor software. Many times after performing a long compilation, a user may want to make a small change without having to do a complete re-compile or without changing the RTL code. The intention of this example is to show a user how to make minor changes to I/O pad parameters like inverting the output signal, changing termination, or changing drive strength. This example will also show how to make a more complicated logic change within an ALM in the Stratix V fabric.

Hardware Used

The design used for this example is a simple Stratix V design. The design was targeted towards the Stratix V GX or GS FPGA Development kit to verify the changes in hardware. However, this example does not require that you target the design to hardware. A user can simply go through the software flow.

StratixV_FPGA_devkit_pic.JPG

5/56/StratixV_FPGA_devkit_pic.JPG

Here is a link to the kit.

Stratix V GX/GS FPGA Development Kit

Design Example

The following qar file contains the design example.

File:StratixV ECO.qar

Design Description

Many times after performing a long compilation, a user may want to make a small change without having to do a complete re-compile or without changing the RTL code. The intention of this example is to show a user how to make minor changes to I/O pad parameters like inverting the output signal, changing termination, or changing drive strength. This example will also show how to make a more complicated logic change within an ALM in the Stratix V fabric.

This example uses Quartus 15.1.

After downloading the design example and opening in Quartus, review the top level of the design.

The snippet of code that we will focus on is on line #93:

 

logic_out <= eco_reg2(1) AND eco_reg2(0);

Input ports eco_in(1:0) go to a debounce circuit which debounces the user pushbuttons on the Stratix V GX/GS FPGA development kit. Once debounced, the signals are registered in three stages, eco_reg0, eco_reg1, and eco_reg2. eco_reg2 then feeds eco_out which feeds an output port on the design that goes to LEDs on the development kit. The logic_out signal performs a basic logic function on the two bits of eco_reg2.

We will be first changing the polarity of the logic_out register, then we’ll make a logic change to change the “AND” function for logic_out to “OR”.

Output Port Logic Inversion

Here are the steps to go through the example and change the output polarity of the output signal logic_out.

  • Download the qar file and unarchive the design using Quartus 15.1.
  • Compile the design
  • Open up Chip Planner
  • Open up the find menu via “Edit -> Find”
  • Find “logic_out*”
  • “logic_reg~” should show up at the top of the list.
  • Click on the logic_reg~ row in the find pane.

CP_Find_Pane.JPG

8/84/CP_Find_Pane.JPG 

  • Go to the left side pane and click on the fanout button

CP_Fanout.JPG

 a/ac/CP_Fanout.JPG

  • The fanout shows where logic_out connects to the I/O ring.
  • Go to the I/O ring cell on the bottom of the page and zoom in on it.

CP_IO_Cell.JPG

6/66/CP_IO_Cell.JPG

  • Right-click  on the I/O cell and locate in Resource Property Editor
  • Notice all the parameters you can change for the I/O pad in the resource property editor.
  • Invert the output data.

RPE_Invert.JPG

 7/73/RPE_Invert.JPG

  • Open up the change manager window via "View -> Change Manager"

RPE_Change_INV.JPG

6/61/RPE_Change_INV.JPG 

  • Accept the change shown which kicks off the fitter in ECO mode. The design will be checked to make sure no rules were violated and then fit for the ECO change.

 

Logic Change from AND to OR

For the logic change example, you will want to understand the equations that will be shown for each LUT

  • The following link helps to define the &, #, !, and $ symbols in the equations

LUT Equations

  • & = AND
  • # = OR
  •  ! = NOT
  • $ = XOR

Here are the steps to go through the example and change the logic_out from an AND of the eco_reg2 bit 1 and eco_reg2 bit 0 to an OR.

  • Download the qar file and unarchive the design using Quartus 15.1.
  • Compile the design
  • Open up Chip Planner
  • Open up the find menu via “Edit -> find”
  • Find “logic_out*”
  • “logic_reg~” should show up at the top of the list.
  • Right-click on the logic_reg and then locate in Resource Property Editor
  • Look at the circuit, the input port assignments, and the LUT equations to understand how the logic_out logic is created.
  • After reviewing everything, it can be determined that the COMBOUT equation is indeed an AND of eco_reg2 bit 1 and eco_reg2 bit 0.
  • Change the LUT equations from:

RPE_LUT_BEFORE.JPG

b/b0/RPE_LUT_BEFORE.JPG

  • To:

RPE_LUT_AFTER.JPG

4/47/RPE_ LUT_AFTER.JPG

  • The logic should now be an OR of eco_reg2 bit 1 and eco_reg2 bit 0.
  • Open up the change manager window

RPE_Change_AND_to_OR.JPG

f/f9/RPE_Change_AND_to_OR.JPG

Accept the changes shown which kick off the fitter in ECO mode. The design will be checked to make sure no rules were violated and then fit for the ECO change.

On-Board Verification

The example design contains Signal Tap which was used to verify the logic change. The design was also targeted towards a Stratix V GX/GS PCIe development kit. The output logic_out as well as the last stage of the eco_reg pipeline register were brought out to LEDs on the board to verify the ECO changes were made as expected.

The following sof files were downloaded to the Stratix V GX/GS PCIe development kit to verify the changes.

  1. Original design sof file
  2. Invert logic_out I/O pad sof file
  3. Change logic_out from AND to OR sof file

Zips of the sof files can be found here:

File:StratixV Top sof files.zip

Timing Analysis

It is highly advised that you re-run all timing analysis after you have made an ECO change. Pay special attention to the specific things that were changed in the design to make sure the new routing or placement has not resulted in negative slack in all timing corners.

Attachments
Version history
Revision #:
6 of 6
Last update:
‎06-26-2020 11:20 AM
Updated by:
 
Contributors