ISE 10.1 - Initial experience

It is a new tool, so it uses different algorithms. Pretty much all problems solved in the tool chain (exept for retiming and mapping) are NP-complete, so approximation algorithms are used.

There is no formal specification of the result returned by the tool, it just promises to search for a solution that is good relative to some cost function. I would expect the tool manufacturer to keep the cost function stable for unchanged settings, but not the algorithms.

Beside changes in the search strategy the difference might as well be very early in the tool chain. For example at some point (Version 8.1?) ISE synthesis started to honor inital values in VHDL and use them as register reset values. Changed initial values can have a major impact on which retiming steps are legal. In extreme cases a single bit with changed reset value can have an arbitrarily large impact on the clock frequency achieved by retiming. And retiming is a problem where the optimum result is returned. No random search or similar.

Therefore you should always expect different results from new version of the tools. You should expect better results on average, but not better results for every single design. That is impossible in EDA.

Kolja Sulimma

Reply to
Kolja Sulimma
Loading thread data ...

OK - I'm with you part of the way on that. New behavior in XST has altered the balance of FFs to LUTs and should improve the overall area of the design. Further on though, MAP has spread this smaller area out over a larger portion of the available logic. Is this a problem? Maybe, maybe not. You have to admit however that the new PAR has intractable place and route issues. Whether those originated in XST or MAP or even PAR is difficult to determine.

Eric

Reply to
emeb

I am curious about the ISE fuse FATAL_ERROR that was encountered. What platform/OS is ISE running on?

S> >>

Reply to
Sonal Santan

I've been getting a lot of GUI errors in XPS. It pops up an error message and then it hangs.

I really wanna know: when are they going to shitcan the binary ISE project file and go back to a text file? You know, some of us actually LIKE things we can put into our source-code control systems.

-a

Reply to
Andy Peters

I'd like to think we are making progress on this. I've been preaching "Source Control Friendly" for a while, and some seem to be listening.

With 10.1, you don't need to rely on the binary .ise file. You can use Tcl for a project file. Check out the Project => generate Tcl script... feature.

To use this script as the project file you need just a bit of other Tcl to handle setup of a project directory and saving the script, if you export it.

As an example: save what follows to a Tcl script (project.tcl in a "src" directory at the same level as your current ise directory. Open Project Navigator and export a Tcl script to the default name and location. I suggest having the top radio button checked: (All properties with complete script). Then exit Project Navigator. Copy this script to the src directory. Edit the script to make the names match. Save the bld directory if there is anything in it. This script does assume that none of your source files are in the ise directory. There are other ways to use the exported Tcl script, this is an example.

Assuming Windows, create a shortcut (Linux "Launcher") with a command of:

xtclsh path_to_your_project\src\project.tcl

Set the directory to start in to:

path_to_your_project\src\

Double click the shortcut. Script takes about 30 seconds to run. YMMV

Assuming you don't want a shortcut or launcher (Also easier to debug if the shortcut doesn't work):

Open a terminal window. cd path_to_your_project/src/ xtclsh project.tcl

Every time you run the project.tcl script, it creates a temporary .ise file. You can save settings by just "project => generate Tcl script..." again, and the saved settings will be copied back to the src directory. If you don't save settings, the script in src doesn't change. Check the project.tcl and the somename.tcl files into source control, and remove the .ise file.

If you don't like it, please let me know why.

Phil Hays

--- Save as project.tcl ----

####################################################### # # Set these to match your project name # set myProject "somename.ise" set myScript "somename.tcl" # puts "loading project settings from $myScript" # # Now get the procedures loaded from the script file # source "$myScript" # puts "Done with $myScript. Making fresh build directory" cd .. file delete -force bld file mkdir bld cd bld puts "Start of rebuild_project procedure" # # This is a call to a procedure defined by myScript. This project builds # an ise project from the settings saved. # We know that there isn't an existing project file as we just created the # directory, otherwise this was copied from "rebuild_project" global myScript global myProject project new $myProject set_project_props add_source_files create_libraries create_partitions set_process_props puts "$myScript: project rebuild completed." # Note: catch is needed as ise throws off bogus return messages if {[catch {exec ise $myProject} isemessage] } { puts "ISE returned: $isemessage" } else { puts "ISE returned no message (normal exit)" } if {[file exists $myScript] } { puts "Saving updated Tcl Export file" file rename -force [file join "../src/" $myScript] \ [file join "../src/" $myScript.old] file copy $myScript [file join "../src/" $myScript] } # puts "Done" #

Reply to
Phil Hays

Yes, talking to myself.

At least in my newreader, the script is kinda munged. Sorry.

Try this:

formatting link

--
Phil Hays
Reply to
Phil Hays

I like it!

-a

Reply to
Andy Peters

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.