05-18-2018 02:54 AM
Hi,
I need to run the whole process: synthesis / implementation / Generate Programming File from a tcl script.
I have created it with ISE Project Navigator generate tcl scripts.
All works fine except that the following parameters are not taken into account:
project set "UserID Code (8 Digit Hexadecimal)" "0x00030000" -process "Generate Programming File"
project set "Unused IOB Pins" "Float" -process "Generate Programming File"
For the 2nd parameter, I can see that when the FPGA is being programmed, some part of my circuit does not behave as if the pins were float: they are set as PullDown !!!
After that all works fine.
Which is the problem with my tcl scripts?
Moreover, if I load the generated project (toplevel.xise) in ISE Project Navigator, I can check that all other parameters are set correctly, but not those.
Of course I could process all from ISE Project Navigator, but this is annoying for my development process ...
ISE: 14.7 / nt64 / Version P.20131013
The main tcl is create_compile_project.tcl, and it calls compilation_properties.tcl
06-01-2018 12:52 PM
It does not appear to be anything you are doing wrong. I can reproduce what I believe you are seeing if just running the xtclsh command you have from a command shell.
As long as the project, is open, I can retrieve the project properties and the values are correct. However, once the project is closed, the values are not written to the .xise file. Therefore, if I then open the project in the GUI or again by script, the default property values are shown.
This is true of any project and any property that is non-default from what I can tell. So far the only way I've found to avoid this problem is to source the Tcl file from the Tcl console in the GUI.
05-21-2018 03:45 PM
Was there any warning indicating that they would not be set?
The two commands look fine and worked in a simple test that I ran?
What do you get if you run the following commands?
project get "UserID Code (8 Digit Hexadecimal)" -process "Generate Programming File"
project get "Unused IOB Pins" -process "Generate Programming File"
When you've opened the project in the GUI, if you run those two failing commands from the Tcl console do they set correctly there?
Select View ->Panel -> Tcl console if you do not have it showing by default.
05-22-2018 06:20 AM
Hi,
- I can not see any Warnings related to those parameters
- I can run both command from the GUI /Tcl console and they set the parameters correctly.
05-25-2018 03:42 PM
I sourced your compilation_properties script for another spartan3An project and saw that the float was set as expected. The script does not appear to have: project set "UserID Code (8 Digit Hexadecimal)" "0x00030000" -process "Generate Programming File"
05-27-2018 11:55 PM
Hi,
The property project set "UserID Code (8 Digit Hexadecimal)" "0x00030000" -process "Generate Programming File" is set in create_compile_project.tcl.
This is the "main" file I call, then it calls compilation_properties.tcl where the general properties are defined.
05-30-2018 03:39 PM
I do not have you project sources so I modified the create project script and removed the xfile add commands and added one random vhd file I had. When I sourced the create project script, and then looked in the project process properties, both of the properties you mention are set as intended.
Did you run the get commands I asked about to verify that the processes were not actually set?
What is your complete process? Where are you sourcing the Tcl file from and what command do you use?
05-30-2018 11:52 PM
Hi,
- From inside ISEProject Navigator / Tcl console: I typed commands, they are correctly executed.
- The command I execute normally is: xtclsh create_compile_project.tcl rebuild_project > log.log
06-01-2018 12:52 PM
It does not appear to be anything you are doing wrong. I can reproduce what I believe you are seeing if just running the xtclsh command you have from a command shell.
As long as the project, is open, I can retrieve the project properties and the values are correct. However, once the project is closed, the values are not written to the .xise file. Therefore, if I then open the project in the GUI or again by script, the default property values are shown.
This is true of any project and any property that is non-default from what I can tell. So far the only way I've found to avoid this problem is to source the Tcl file from the Tcl console in the GUI.
06-03-2018 11:08 PM
Hi,
Thanks a lot for your explanation.!!!
10-21-2020 01:24 AM
Is there a real solution for this? I need to create a .xise project with specific project settings and opening it in the GUI must apply this properties. Otherwise, it's of no use at all and even counterproductive, as it can create bitfiles that are not what I intended, because the rational thought would be to expect this properties to be kept as I defined them.
10-21-2020 01:34 AM
Hi,
My problem was exclusively when running the full compilation in batch mode, with the tcl command xtclsh create_compile_project.tcl rebuild_project > log.log.
When running as normal from the GUI with the Menus, all is fine.
10-21-2020 01:37 AM
Thanks @jgomezco
My problem is that I create the project using the TCL script and the .xise doesn't reflect property changes, so when opening it with ISE gui, Map or Place&Route properties are not set to those I chose, making the .xise file useless!
10-21-2020 01:43 AM
Hi,
It is the same case as mine.
But on my case, all the options are taken into acount OK, except the one I mentioned.
Have you tried to make a Cleanup ?
In any case, for ISE14.7 they will not make any update
10-21-2020 01:46 AM
Yes, nothing changes after a cleanup. It simply doesn't store anywhere the modified parameters. It's pathetic.
I think I'm going to write a sed script or use a .diff file that modifies the resulting .xise file
Thanks!