Aug 16, 2013

Serving local web pages

I've been trying to improve some SystemVerilog constraints, in Synopsys VCS. One useful approach is to use the profiling features of the constraint solver to explore particular constraints that might be burning lots of cycles or proving hard to solve. There's a VCS runtime switch to turn on constraint profiling:


This creates a profile report in the simv.cst directory, in html/profile.xml The documentation mentions that this file is viewable in Chrome and Firefox but doesn't work in IE. However, it now seems like it also isn't viewable in Chrome. Instead, it hits a security issue:

Unsafe attempt to load URL file:///projects/simv.cst/html/cstrProf.xsl 
from frame with URL file:///projects/simv.cst/html/profile.xml. 
Domains, protocols and ports must match.

Now, the file does load in Firefox, but I've been trying to avoid running multiple browsers. There is however a simple fix. You can run a web server and serve up the profile over html. That maybe sounds like a lot of work, but python ships with one in the standard library and it will run as a command-line loaded module. So, simply change directory to your build directory (or close to it - the server lets you navigate the file hierarchy too) and run

python -m SimpleHTTPServer

Then in a browser on the same machine, open http://localhost:8000 E.g., if you run the server in the directory with the profile, you can go directly to http://localhost:8000/profile.xml

There are comments.

Comments !