/
osvvm.pro
163 lines (145 loc) · 4.86 KB
/
osvvm.pro
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
# File Name: osvvm.pro
# Revision: STANDARD VERSION
#
# Maintainer: Jim Lewis email: jim@synthworks.com
# Contributor(s):
# Jim Lewis jim@synthworks.com
#
#
# Description:
# Script to compile the OSVVM library
#
# Developed for:
# SynthWorks Design Inc.
# VHDL Training Classes
# 11898 SW 128th Ave. Tigard, Or 97223
# http://www.SynthWorks.com
#
# Revision History:
# Date Version Description
# 3/2024 2024.03 Updated to handle Xilinx issues
# 5/2023 2023.05 Added BurstCoveragePkg
# 4/2023 2023.04 Updated handling of OsvvmScriptSettingsPkg since it
# is now two pieces with deferred constants
# 1/2023 2023.01 Added OsvvmScriptSettingsPkg and script to create it.
# 8/2022 2022.08 Added MemorySupportPkg and MemoryGenericPkg
# 10/2021 2021.10 Added ReportPkg
# 6/2021 2021.06 Updated for release
# 1/2020 2020.01 Updated Licenses to Apache
# 11/2016 2016.11 Compile Script for OSVVM
#
#
# This file is part of OSVVM.
#
# Copyright (c) 2016 - 2023 by SynthWorks Design Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
if {$::osvvm::ToolName eq "RivieraPRO"} {
RemoveLibrary osvvm
}
library osvvm
# Analyze package declarations
analyze IfElsePkg.vhd
analyze OsvvmScriptSettingsPkg.vhd ; # package declaration. See end for package body
analyze OsvvmSettingsPkg.vhd
if {!$::osvvm::ToolSupportsDeferredConstants} {
# work around path for tools that do not support deferred constants
set SettingsDirectory [FindOsvvmSettingsDirectory]
if {[FileExists $SettingsDirectory/OsvvmScriptSettingsPkg_local.vhd]} {
analyze $SettingsDirectory/OsvvmScriptSettingsPkg_local.vhd
} else {
# Generate the file if possible
set GeneratedPkg [CreateOsvvmScriptSettingsPkg $SettingsDirectory]
puts "GeneratedPkg = $GeneratedPkg"
if {[FileExists $GeneratedPkg]} {
analyze $GeneratedPkg
} else {
analyze OsvvmScriptSettingsPkg_default.vhd
}
}
if {[FileExists $SettingsDirectory/OsvvmSettingsPkg_local.vhd]} {
analyze $SettingsDirectory/OsvvmSettingsPkg_local.vhd
} else {
analyze OsvvmSettingsPkg_default.vhd
}
}
analyze TextUtilPkg.vhd
analyze ResolutionPkg.vhd
analyze NamePkg.vhd
analyze OsvvmGlobalPkg.vhd
# Compile VendorCovApiPkg_Aldec.vhd for RivieraPro and ActiveHDL, otherwise compile VendorCovApiPkg.vhd
if {$::osvvm::ToolVendor eq "Aldec"} {
analyze VendorCovApiPkg_Aldec.vhd
} else {
analyze VendorCovApiPkg.vhd
}
analyze TranscriptPkg.vhd
analyze AlertLogPkg.vhd
analyze TbUtilPkg.vhd
analyze NameStorePkg.vhd
analyze MessageListPkg.vhd
# PT based MessagePkg replaced by List based MessageListPkg
# analyze MessagePkg.vhd
analyze SortListPkg_int.vhd
analyze RandomBasePkg.vhd
analyze RandomPkg.vhd
# RandomProcedurePkg is a temporary and is used by CoveragePkg
# Likely will be replaced when VHDL-2019 support is good.
analyze RandomProcedurePkg.vhd
analyze CoveragePkg.vhd
analyze DelayCoveragePkg.vhd
analyze ResizePkg.vhd
if {$::osvvm::ToolSupportsGenericPackages} {
analyze ScoreboardGenericPkg.vhd
analyze ScoreboardPkg_slv.vhd
analyze ScoreboardPkg_int.vhd
} else {
analyze ScoreboardPkg_slv_c.vhd
analyze ScoreboardPkg_int_c.vhd
}
analyze MemorySupportPkg.vhd
if {$::osvvm::ToolSupportsGenericPackages} {
if {$::osvvm::ToolNameVersion ne "XSIM-2023.2"} {
analyze MemoryGenericPkg.vhd
} else {
analyze MemoryGenericPkg_xilinx.vhd
}
analyze MemoryPkg.vhd
} else {
analyze MemoryPkg_c.vhd
analyze MemoryPkg_orig_c.vhd
}
analyze ReportPkg.vhd
analyze OsvvmTypesPkg.vhd
if {$::osvvm::ToolSupportsDeferredConstants} {
set SettingsDirectory [FindOsvvmSettingsDirectory]
if {[FileExists $SettingsDirectory/OsvvmScriptSettingsPkg_local.vhd]} {
analyze $SettingsDirectory/OsvvmScriptSettingsPkg_local.vhd
} else {
# Generate the file if possible
set GeneratedPkg [CreateOsvvmScriptSettingsPkg $SettingsDirectory]
puts "GeneratedPkg = $GeneratedPkg"
if {[FileExists $GeneratedPkg]} {
analyze $GeneratedPkg
} else {
analyze OsvvmScriptSettingsPkg_default.vhd
}
}
if {[FileExists $SettingsDirectory/OsvvmSettingsPkg_local.vhd]} {
analyze $SettingsDirectory/OsvvmSettingsPkg_local.vhd
} else {
analyze OsvvmSettingsPkg_default.vhd
}
}
analyze OsvvmContext.vhd