icetime.cc: In member function ‘double TimingAnalysis::report(std::__cxx11::string)’:
icetime.cc:1095:15: warning: ‘last_time’ may be used uninitialized in this function [-Wmaybe-uninitialized]
fprintf(frpt, "%10.3f ns ..%7.3f ns %s\n", first_time, last_time, last_net.c_str());
~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
icetime.cc:1095:15: warning: ‘first_time’ may be used uninitialized in this function [-Wmaybe-uninitialized]
In my setup, in OSX I have problems reading from libftdi but not writing. In case of a failure iceprog exits and leaves the FPGA in an useless state. I think it would be a good option to have the possibility to skip the verification process.
This should reduce the memory requirement during build of icetime, not
trying to compile one huge file all at once
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
icetime.cc: In function ‘std::__cxx11::string ecnetname_to_vlog(std::__cxx11::string)’:
icetime.cc:1323:32: warning: catching polymorphic type ‘class std::invalid_argument’ by value [-Wcatch-value=]
} catch(std::invalid_argument e) { // Not numeric and stoi throws exception
Like yosys and arachne-pnr, allow for searching for the desired chipdb
file relative to the executing binaries directory. This allows for
portable builds of icetime without needing to specify the exact path to
the needed chipdb file with the -C arg.
In order to support this icetime must be able to get the
"proc_self_dirname" path just like yosys and arachne-pnr. As such copy
the equivalent code to get this path information. To avoid cluttering
the icetime.cc file with this code, place it in a separate iceutil.cc
file.
Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
In cases when the FLASH chip is bit flaky and the status register
"bounces" this flash_wait should be able to perform a bit better.
Also added more verbose output around block erase.
Just calling a gpio function with two numbers was not very self
explanatory. The functions now refer to the actual indended action, chip
(de)select for flash, reset and chip (de)select for sram. Reading the
code and understanding what steps are taken should be easier now.
Main point was to group the code into three logical segments:
* MPSSE/FTDI defines and functions
* FLASH defines and functions
* iceprog implementation core
While I was at it I also added a few comments for stuff that was not
immediately obvious what it does.