Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
10 years ago

Export and reuse change from Quartus Change Manager?

Hi,

as an ardous workaround for my problem posted here http://www.alteraforum.com/forum/showthread.php?t=48731,

I can change all LUTs by hand in the Quartus Resource Property Editor:

1) The original routing as done by the compiler:

http://www.alteraforum.com/forum/attachment.php?attachmentid=10680&stc=1

2) I manually change the routing and the SUM Equation:

http://www.alteraforum.com/forum/attachment.php?attachmentid=10681&stc=1

3) I see the changes in the "Change Manager".

http://www.alteraforum.com/forum/attachment.php?attachmentid=10682&stc=1

But I don't really want to do this for all of my ROs.

So, I thought I could export these changes in a TCL file and then write a skript to create equivalent TCL-commands for all my other ROs.

But I was not even able to reuse the obove changes after export. I am probably missing something...

The export gave me the following:

#  Quartus II 32-bit Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Full Version#  File: C:/Users/user/Desktop/test/output_files/changes.tcl#  Generated on: Fri Jun 05 18:50:49 2015
#  Note: This file contains a Tcl script generated from the Change Manager.#        You can use this script to reapply the changes to the design after#        a compilation; use "quartus_cdb -t changes.tcl".
package require ::quartus::chip_planner
package require ::quartus::project
load_chip_planner_utility_commands
project_open test -revision test
read_netlist
set had_failure 0
# ############  Index: 1# # ###########
set node_properties  
         
    ] 
]
set result 
if { $result == 0 } {
    set had_failure 1
    puts "Use the following information to evaluate how to apply this change."
    dump_node $node_properties
    puts "Original command:"
    puts "\tIndex\tNode Name\tChange Type\tOld Value\tTarget Value\tCurrent Value\tDisk Value\tComment"
    puts "\t1\t|test|lut_function:inst|lut_o~0:DATAA:0\tModify Source\tDisconnected\t|test|button1~input\t|test|button1~input\tDisconnected\tTRUE\tFALSE"
    puts "\t1.1\t|test|lut_function:inst|lut_o~0:DATAA:0\tInput Port Modification\tNone\tExists\tExists\tNone\tTRUE\tFALSE"
    puts "\t1.2\t|test|lut_function:inst|lut_o~0:DATAA:0\tSource\tDisconnected\t|test|button1~input\t|test|button1~input\tDisconnected\tTRUE\tFALSE"
}
remove_all_record_instances
# ############  Index: 2# # ###########
set node_properties  
         
         
    ] 
]
set result 
if { $result == 0 } {
    set had_failure 1
    puts "Use the following information to evaluate how to apply this change."
    dump_node $node_properties
    puts "Original command:"
    puts "\tIndex\tNode Name\tChange Type\tOld Value\tTarget Value\tCurrent Value\tDisk Value\tComment"
    puts "\t2\t|test|lut_function:inst|lut_o~0:DATAC:0\tModify Source\t|test|button1~input\tDisconnected\tData Not Available\t|test|button1~input\tTRUE\tFALSE"
    puts "\t2.1\t|test|lut_function:inst|lut_o~0:DATAC:0\tSource\t|test|button1~input\tDisconnected\tData Not Available\t|test|button1~input\tTRUE\tFALSE"
    puts "\t2.2\t|test|lut_function:inst|lut_o~0:DATAC:0\tInput Port Modification\tExists\tNone\tNone\tExists\tTRUE\tFALSE"
    puts "\t2.2.1\t|test|lut_function:inst|lut_o~0\tSum LUT Mask\t0FFF\t0FFF\t55FF\t0FFF\tTRUE\tFALSE"
    puts "\t2.2.2\t|test|lut_function:inst|lut_o~0:DATAC:0\tInput Port Modification\tExists\tNone\tNone\tExists\tTRUE\tFALSE"
}
remove_all_record_instances
# ############  Index: 3# # ###########
set node_properties  
         
    ] 
]
set result 
if { $result == 0 } {
    set had_failure 1
    puts "Use the following information to evaluate how to apply this change."
    dump_node $node_properties
    puts "Original command:"
    puts "\tIndex\tNode Name\tChange Type\tOld Value\tTarget Value\tCurrent Value\tDisk Value\tComment"
    puts "\t3\t|test|lut_function:inst|lut_o~0\tSum LUT Mask\t0FFF\t55FF\t55FF\t0FFF\tTRUE\tFALSE"
}
remove_all_record_instances
puts ""
set drc_result 
if { $drc_result == 1 } {
    puts "check_netlist_and_save: SUCCESS"
} else {
    puts "check_netlist_and_save: FAIL"
}
if { $had_failure == 1 } {
    puts "Not all set operations were successful"
}
project_close

It works when running
quartus_cdb -t changes.tcl
in the ordinary windows console.

But to see the effects, I have to close and reopen my Quartus project.

Isn't there a way to import the changes from within Quartus?

When I try
source changes.tcl
in the Quartus TCL console, I get:

Error:ERROR: Unable to find Chip Planner netlist. Read the netlist by using the "read_netlist" command.

Error: while executing

Error:"get_port_by_type -node 8 -type oport -port_type OUT -literal_index 0 -as_gen_id"

Error: ("eval" body line 1)

Error: invoked from within

Error:"eval $fixed_cmd "

Error: (procedure "execute_tcl_command" line 3)

Error: invoked from within

Error:"execute_tcl_command $cmd "

Error: (procedure "make_ape_connection_wrapper" line 34)

Error: invoked from within

Error:"make_ape_connection_wrapper $node_properties |test|lut_function:inst|lut_o~0 DATAA 0 |test|button1~input OUT 0 -1 "

Error: invoked from within

Error:"set result [ make_ape_connection_wrapper $node_properties |test|lut_function:inst|lut_o~0 DATAA 0 |test|button1~input OUT 0 -1 ]"

Error: (file "changes.tcl" line 46)

Error: invoked from within

Error:"_source changes.tcl"

Error: ("uplevel" body line 1)

Error: invoked from within

Error:"uplevel 1 $cmd "

Error: (procedure "source" line 5)

Error: invoked from within

Error:"source changes.tcl"

Thanks and best regards!
No RepliesBe the first to reply