LineFile data from input files
Verific uses the 'LineFile' manager to preserve line/file origination information from HDL source files. This info is annotated on all objects in parse trees and netlist databases, as well as used in the message handler, so that from any object that Verific creates from an RTL design, information is available as to where it came from in the user's original RTL design.
We have the following compile flags (see util/LineFile.h and util/VerificSystem.h) :
- We define a class ColLineFile to have both the starting and ending locations including column info.
- Valid values of NUM_LINE_BITS, NUM_COL_BITS and NUM_FILE_BITS are 1 to 31 bits.
- Use as per your requirements. Making (NUM_LINE_BITS + NUM_COL_BITS) <= 32 will consume less memory.
- You can use 31 as NUM_FILE_BITS without any extra memory overhead.
- We still define the class ColLineFile, but it has only a single starting or ending location and does not include column info.
- Valid values of NUM_LINE_BITS and NUM_FILE_BITS are 1 to 31 bits.
- Use as per your requirements. Making (NUM_LINE_BITS + NUM_FILE_BITS) <= 32 will consume less memory.
- VERIFIC_LARGE_LINEFILE_FOR_64 (only for 64-bit Windows since long is 4 bytes there)
- Same as (2) above but without the class and only for 64-bit Windows systems.
These compile flags are mutually exclusive. You should have only one of them defined according to your requirements.
If you do not define any of the above compile flags, Verific uses the following by default :
- On a 64-bit (non-Windows) system, line number and file-id are encoded into a 64-bit unsigned long. You need to set (NUM_LINE_BITS + NUM_FILE_BITS) <= 64
- On a 32-bit (and 64-bit Windows) system, line number and file-id are encoded into a 32-bit unsigned long. You need to set (NUM_LINE_BITS + NUM_FILE_BITS) <= 32
If you do not need column numbers or both starting and ending locations, you can turn off column info.
If the number of files overflows NUM_FILE_BITS, we issue "WARNING: number of file names exceeded maximum of %d" when there are too many files. However, producing the same warning for lines/columns would result in too many messages.