One project I am working on, has apparently been designed with different compilation units written to different VHDL language standards, and I guess this is inevitable on large projects developed over time, reusing old code.
GHDL allows compilation of each source file to its appropriate standard, and these compilations are recorded in the appropriate "obj- std.cf" files. However at elaboration, what are the rules for elaborating a unit compiled with one standard, but whose components are compiled to another? Is this illegal as per the LRM? Some commercial simulators seem to allow it. If I compile a unit with the default (93) and recompile it with (08) it is in both .cf files. The older object file has presumably been replaced, so an attempt to elaborate the unit with -93 should fail timestamp/hash checks) ghdl -e --std=xx allows me to select either for elaboration, but any required units that are only compiled to another standard, are simply reported as missing, instead of instantiated after searching other libraries. Are there incompatibilities in the object files that would prevent an elaboration mixing versions? Are there any use cases for mixing versions to allow reuse of older code? I'm not asking for an "enhancement" to ghdl to allow this, just exploring the space. (And for the current project, building everything for VHDL-2008 simply works). -- Brian _______________________________________________ Ghdl-discuss mailing list Ghdl-discuss@gna.org https://mail.gna.org/listinfo/ghdl-discuss