Difference between revisions of "LineFile data from input files"
Line 1: | Line 1: | ||
− | 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 | + | 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): | + | We have the following compile flags (see util/LineFile.h and util/VerificSystem.h) : |
# VERIFIC_LINEFILE_INCLUDES_COLUMNS | # VERIFIC_LINEFILE_INCLUDES_COLUMNS | ||
#: We define a class ColLineFile to have both the starting and ending locations including column info. | #: 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. | #: 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 | + | #: 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. | #: You can use 31 as NUM_FILE_BITS without any extra memory overhead. | ||
# VERIFIC_LARGE_LINEFILE | # VERIFIC_LARGE_LINEFILE | ||
#: We still define the class ColLineFile, but it has only a single starting or ending location and does not include column info. | #: 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. | #: 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 | + | #: 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 | + | # 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 | + | #: Same as (2) above but without the class and only for 64-bit Windows systems. |
These compile flags are mutually exclusive. | These compile flags are mutually exclusive. | ||
You should have only one of them defined according to your requirements. | You should have only one of them defined according to your requirements. | ||
− | If you do not define any of the above compile flags, | + | If you do not define any of the above compile flags, Verific uses the following by default : |
− | * On a 64 bit (non- | + | * 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 | + | * 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 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 | + | 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. |
Revision as of 15:31, 7 October 2020
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) :
- VERIFIC_LINEFILE_INCLUDES_COLUMNS
- 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.
- VERIFIC_LARGE_LINEFILE
- 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.