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

Export and reuse change from Quartus Change Manager?

Altera_Forum
Honored Contributor II
1,168 Views

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!
0 Kudos
0 Replies
Reply