5

I want to automate the entire process of creating ngs,bit and mcs files in xilinx and have these files be automatically be associated with certain folders in the svn repository. What I need to know is that is there a log file that gets created in the back end of the Xilinx gui which records all the commands I run e.g open project,load file,synthesize etc.

Also the other part that I have not been able to find is a log file that records the entire process of synthesis, map,place and route and generate programming file. Specially record any errors that the tool encountered during these processes.

If any of you can point me to such files if they exist it would be great. I haven't gotten much out of my search but maybe I didn't look enough.

Thanks!

serendipity
  • 852
  • 13
  • 32
  • I need to do something similar and this came up in the search results. I found [this thread in the Xilinx forum](http://forums.xilinx.com/t5/Design-Entry/Xilinx-Command-Line-Flow/td-p/35402) helpful. It mentions that there is a .cmd_log file that lists all the command lines the Xilinx GUI used for synthesis, implementation, etc... That same thread also has links to some scripts some people have already written such as [here](http://www.da.isy.liu.se/~ehliar/stuff/). – Jared May 30 '13 at 15:31
  • Hi, I'm interested in your project. Have you achieved any good results or is this project somehow open? I'm currently on the way to publish a HDL library which supports multiple vendors, tools, design flows and FPGAs. I'm also using python as a cross platform scripting language (windows + linux) and some bash/powershell scripts to encapsulate the whole xst, vivado, coregen, iSim/vSim/xSim/ghdl flows. Maybe we can share some resources. – Paebbels Sep 02 '14 at 20:52
  • Using a script gives you different folders like synthesis, Implementation, ... Check those folders you will find that – Anjaneyulu Mar 10 '17 at 05:37

2 Answers2

2

Well, it is definitely a nice project idea but a good amount of work. There's always a reason why an IDE was built – a simple search yields the "Command Line Tools User Guide" for various versions of Xilinx ISE, like for 14.3, 380 pages about

  • Overview and list of features
  • Input and output files
  • Command line syntax and options
  • Report and message information

ISE is a GUI for various command line executables, most of them are located in the subfolder 14.5/ISE_DS/ISE/bin/lin/ (in this case: Linux executables for version 14.5) of your ISE installation root. You can review your current parameters for each action by right clicking the item in the process tree and selecting "Process properties".

On the Python side, consider using the subprocess module:

The subprocess module allows you to spawn new processes, connect to their input/output/error pipes, and obtain their return codes.

Is this the entry point you were looking for?

f4lco
  • 3,728
  • 5
  • 28
  • 53
  • Thank you so much for a great response! I think this is really useful and good enough to get me started on things. I will keep you posted on the progress. Thanks again! – serendipity May 26 '13 at 02:20
  • I looked in folder you mentioned for version 14.2 and the path looks like this `14.2/ISE_DS/ISE/lib/lin` and the lin folder contains only .so files which are just shared libraries and need a special program for opening. Should I be looking for tcl files? – serendipity May 28 '13 at 15:07
1

As phineas said, what you are trying to do is quite an undertaking.

I've been there done that, and there are countless challenges along the way. For example, if you want to move generated files to specific folders, how do you classify these files in order to figure out which files are which? I've created a project called X-MimeTypes that attempts to classify the files, but you then need a tool to parse the EDA mime type database and use that to determine which files are which.

However there is hope, so to answer the two main questions you've pointed out:

  1. To be able to automatically move generated files to predetermined paths. From what you are saying it seems like you want to do this to make the versioning process easier? There is already a tool that does this for you based on "design structures" that you create and that can be shared within a team. The tool is called Scineric Workspace so check it out. It also have built in Git and SVN support which ignores things according to the design structure and in most cases it filters all generated things by vendor tools without you having to worry about it.

  2. You are looking for a log file that shows all commands that were run. As phineas said, you can check out the Command Line Tools User guides for ISE, but be aware that the commands to run have changed again in Vivado. The log file of each process also usually states the exact command with its parameters that have been called. This should be close to the top of the report. If you look for one log file that contains everything, that does not exist. Again, Scineric Workspace supports evoking flows from major vendors (ISE, Vivado, Quartus) and it produces one log file for all processes together while still allowing each process to also create its own log file. Errors, warning etc. are also marked properly in this big report. Scineric has a tcl shell mode as well, so your python tool can run it in the background and parse the complete log file it creates.

If you have more questions on the above, I will be happy to help.

Hope this helps,

Jaco

Jaco Naude
  • 95
  • 1
  • 7