rvvm 1.2.0 → 1.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +16 -0
- data/README.md +159 -5
- data/Rakefile +0 -6
- data/doc/Crayons.html +1206 -0
- data/doc/Rvvm/Error.html +148 -0
- data/doc/Rvvm.html +2258 -0
- data/doc/Templates.html +227 -0
- data/doc/Utils.html +991 -0
- data/doc/_index.html +161 -0
- data/doc/class_list.html +54 -0
- data/doc/css/common.css +1 -0
- data/doc/css/full_list.css +58 -0
- data/doc/css/style.css +503 -0
- data/doc/file.README.html +444 -0
- data/doc/file_list.html +59 -0
- data/doc/frames.html +22 -0
- data/doc/index.html +444 -0
- data/doc/js/app.js +344 -0
- data/doc/js/full_list.js +242 -0
- data/doc/js/jquery.js +4 -0
- data/doc/method_list.html +334 -0
- data/doc/top-level-namespace.html +110 -0
- data/lib/rvvm/crayons.rb +8 -3
- data/lib/rvvm/utils.rb +2 -2
- data/lib/rvvm/version.rb +1 -1
- data/lib/rvvm.rb +5 -2
- data/sig/rvvm/crayons.rbs +12 -6
- data/sig/rvvm/utils.rbs +5 -5
- data/sig/rvvm.rbs +31 -5
- metadata +20 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9f28c26f52cac0664fe55cdf731ca46c6ac1bd108c26ffb5a57c4d700564ce81
|
4
|
+
data.tar.gz: 202a410476e45a546059a56aff5b2da36b867c7aae43682e098ec0a1b48cae97
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1d8e925f7d59239bb85e1a81e6a4b28cc7cc92205f2ac04f605b20cec2b0c129a822fbe2c626a615eb4201357bb92ad094f7cf8b3b6159ce0b40bb00c9224a2c
|
7
|
+
data.tar.gz: ee81fb9a3d0144c1bfc1f5820d1dfbc73aec4623abfb900bfecdd4cd22db6549f3bcea3d5fc37c711e2f1056a621958e48283cafb16f1a4dfcafcb019db858b4
|
data/CHANGELOG.md
CHANGED
@@ -193,3 +193,19 @@
|
|
193
193
|
2. RVvM config file versions and regeneration
|
194
194
|
3. Exit on failing compilation/elaboration/simulation
|
195
195
|
|
196
|
+
## [1.2.2] - 2024-09-19
|
197
|
+
|
198
|
+
### Added:
|
199
|
+
|
200
|
+
1. Script exit on failing compilation/elaboration/simulation/...
|
201
|
+
2. Option to ignore shell command errors
|
202
|
+
3. Docs
|
203
|
+
|
204
|
+
### Fixed:
|
205
|
+
|
206
|
+
1. Syntax errors in RBS files
|
207
|
+
|
208
|
+
### TBI
|
209
|
+
|
210
|
+
1. Custom waveform dump file name generated by simulation
|
211
|
+
2. RVvM config file version and regeneration
|
data/README.md
CHANGED
@@ -16,24 +16,33 @@ If bundler is not being used to manage dependencies, install the gem by executin
|
|
16
16
|
gem install rvvm
|
17
17
|
```
|
18
18
|
|
19
|
+
## Requirements
|
20
|
+
|
21
|
+
1. [Vivado Design Suite](https://www.xilinx.com/support/download.html)
|
22
|
+
2. **Xilinx Vivado** binaries in your `PATH` and `XILINX_PATH` env variable pointing to your Vivado install dir or sourced `settings64` Vivado script
|
23
|
+
|
19
24
|
## Usage
|
20
25
|
|
21
|
-
|
26
|
+
To get full `rvvm` usage docs use `-h` or `--help` option.
|
27
|
+
|
28
|
+
### Project creation
|
22
29
|
|
23
30
|
Create a new RVvM project using `-n` or `--new`.
|
24
31
|
|
25
32
|
eg.:
|
26
|
-
```
|
33
|
+
```bash
|
27
34
|
rvvm -n best_rtl_project
|
28
35
|
```
|
29
36
|
|
30
37
|
Whitespaces in project name and or generated templates are not allowed.
|
31
38
|
|
32
|
-
|
39
|
+
### Project management
|
40
|
+
|
41
|
+
To manage an **RVvM** project use the `rvvm` script inside the root of an **RVvM** project or its config directory.
|
33
42
|
|
34
43
|
#### Project structure
|
35
44
|
|
36
|
-
```
|
45
|
+
```bash
|
37
46
|
RvvM_project
|
38
47
|
├── design # SV design sources
|
39
48
|
│ ├── itf
|
@@ -61,7 +70,152 @@ RvvM_project
|
|
61
70
|
└── src
|
62
71
|
```
|
63
72
|
|
64
|
-
|
73
|
+
### Project configuration
|
74
|
+
|
75
|
+
RVvM project configuration is stored in its config directory in the `<project root>/rvvm/rvvmconf.json` json file.
|
76
|
+
|
77
|
+
You can configure the project by editing its config file. Individual settings of the configuration can be owerwritten @ runtime using specific arguments (see `-h`/`--help`).
|
78
|
+
|
79
|
+
The `rvvmconf.json` configuration consists of:
|
80
|
+
|
81
|
+
```json
|
82
|
+
# example configuration:
|
83
|
+
# .../best_rtl_project/rvvm/rvvmconf.json:
|
84
|
+
|
85
|
+
{
|
86
|
+
"project": {
|
87
|
+
"name": "best_rtl_project",
|
88
|
+
"path": "/home/mrbya/mycodes/ruby/rvvm/best_rtl_project",
|
89
|
+
"rvvmDir": "rvvm",
|
90
|
+
"logDir": "logs",
|
91
|
+
"company": " "
|
92
|
+
},
|
93
|
+
|
94
|
+
"compilation": {
|
95
|
+
"list": "best_rtl_project_compile_list.f",
|
96
|
+
"logDir": "comp",
|
97
|
+
"log": "comp.log",
|
98
|
+
"args": "-L uvm"
|
99
|
+
},
|
100
|
+
|
101
|
+
"dpi": {
|
102
|
+
"dpilib": 0,
|
103
|
+
"list": "dpi_compile_list.f",
|
104
|
+
"args": " "
|
105
|
+
},
|
106
|
+
|
107
|
+
"elaboration": {
|
108
|
+
"tbTop": "best_rtl_project_tb_top",
|
109
|
+
"tb": "best_rtl_project_tb",
|
110
|
+
"timescale": "1ns/1ps",
|
111
|
+
"customdpilib": "",
|
112
|
+
"logDir": "elab",
|
113
|
+
"log": "elab.log",
|
114
|
+
"args": " "
|
115
|
+
},
|
116
|
+
|
117
|
+
"simulation": {
|
118
|
+
"logDir": "sim",
|
119
|
+
"log": "${testname}.log",
|
120
|
+
"verbosity": "LOW",
|
121
|
+
"defTest": " ",
|
122
|
+
"batch": 0,
|
123
|
+
"testlist": [" "],
|
124
|
+
"args": " "
|
125
|
+
}
|
126
|
+
}
|
127
|
+
|
128
|
+
```
|
129
|
+
|
130
|
+
#### Project
|
131
|
+
|
132
|
+
| Parameter | Default Value | Description |
|
133
|
+
| :-------: | ---------------------------------- | ----------------------------------- |
|
134
|
+
| `name` | Name of the project @ creation | RVvM project name |
|
135
|
+
| `path` | Path to the project @ its creation | Absolute path to the project |
|
136
|
+
| `rvvmDir` | `rvvm` | Project config and output directory |
|
137
|
+
| `logDir` | `log` | Log output directory root |
|
138
|
+
| `company` | empty | Company name |
|
139
|
+
|
140
|
+
#### Compilation
|
141
|
+
|
142
|
+
| Parameter | Default Value | Description |
|
143
|
+
| :-------: | ------------------------------- | ------------------------------------------------------ |
|
144
|
+
| `list` | `<project name>_compile_list.f` | Path to project HDL source files compile list |
|
145
|
+
| `logDir` | `comp` | Subdirectory for `xvlog` logs inside `project: logDir` |
|
146
|
+
| `log` | `comp.log` | `xvlog` log file name |
|
147
|
+
| `args` | `-L uvm` | Additional `xvlog` arguments |
|
148
|
+
|
149
|
+
#### DPI
|
150
|
+
|
151
|
+
| Parameter | Default value | Description |
|
152
|
+
| :-------: | -------------------- | --------------------------------------------------------------------------------------------------- |
|
153
|
+
| `dpilib` | `0` | Switch activating DPI-C compilation when running `--all` and dpi library linkage during elaboration |
|
154
|
+
| `list` | `dpi_compile_list.f` | Path to DPI-C source files compile list |
|
155
|
+
| `args` | empty | Additional `xsc` arguments |
|
156
|
+
|
157
|
+
#### Elaboration
|
158
|
+
|
159
|
+
| Parameter | Default value | Description |
|
160
|
+
| :------------: | ---------------------- | ------------------------------------------------------------------------- |
|
161
|
+
| `tbTop` | `<projec name>_tb_top` | Testbench top module name |
|
162
|
+
| `tb` | `<project name>_tb` | Elaborated testbench snapshot name |
|
163
|
+
| `timescale` | `1ns/1ps` | Elaborated testbench timescale |
|
164
|
+
| `customdpilib` | empty | Path to a custom DPI-C library to link into a snapshot during elaboration |
|
165
|
+
| `logDir` | `elab` | Subdirectory for `xelab` logs inside `project: logDir` |
|
166
|
+
| log | `elab.log` | `xelab` log file name |
|
167
|
+
| `args` | empty | Additional `xelab` arguments |
|
168
|
+
|
169
|
+
#### Simulation
|
170
|
+
|
171
|
+
| Parameter | Default value | Description |
|
172
|
+
| :---------: | ----------------- | ----------------------------------------------------------------------------------------------------------------------------- |
|
173
|
+
| `logDir` | `sim` | Subdirectory for `xsim` logs inside `project: logDir` |
|
174
|
+
| `log` | `${testname}.log` | `xsim` log file name |
|
175
|
+
| `verbosity` | `LOW` | UVM reporting verbosity |
|
176
|
+
| `defTest` | empty | Default UVM test to be run using `--run` |
|
177
|
+
| `batch` | `0` | Switch activating batch UVM test simulation: run multiple UVM tests provided in `simulation: testlist` or using `--testlist`. |
|
178
|
+
| `testlist` | empty array | Provide an array of UVM test names to run during a batch simulation. |
|
179
|
+
| `args` | empty | Additional `xsim` arguments |
|
180
|
+
### Tmplate file generation
|
181
|
+
|
182
|
+
RVvM can generate SystemVerilog module, interface, package and generic template files to ease your SV project development.
|
183
|
+
|
184
|
+
To generate module templates use:
|
185
|
+
|
186
|
+
- `-m --module <NAME>` - to generate a SV module template
|
187
|
+
- `-i --itf <NAME>` - to generate a SV interface template
|
188
|
+
- `-p --pkg <NAME>` - to generate a SV package template
|
189
|
+
- `--svfile <NAME>` - to generate a generic SV file template
|
190
|
+
|
191
|
+
Default paths for template file generations are:
|
192
|
+
|
193
|
+
```bash
|
194
|
+
RVvM project root
|
195
|
+
└── design
|
196
|
+
├── itf # for SV interfaces
|
197
|
+
├── pkg # for SV packages
|
198
|
+
└── src # for SV modules and generic SV files
|
199
|
+
```
|
200
|
+
|
201
|
+
You can modify generated template path using `--path <PATH>` (excluding template file name) or `--here`.
|
202
|
+
|
203
|
+
### Using Xilinx Vivado tools
|
204
|
+
|
205
|
+
To compile/elaborate/simulate,... yout RVvM project use the `rvvm` script from inside an RVvM project root or its config directory.
|
206
|
+
|
207
|
+
- `-c --comp` - to compile HDL sources
|
208
|
+
- `-d --dpi` - to compile C/C++ DPI-C library sources
|
209
|
+
- `-e --elab` - to elaborate project testbench into a snapshot
|
210
|
+
- `-r --run` - to run UVM test simulation (use `-b --batch` to run a batch of simulations)
|
211
|
+
- `-a --all` - to run `--comp`, `--dpi` (when configured), `--elab`, `--run`
|
212
|
+
- `--runsv` - to run pure SV/V simulation
|
213
|
+
|
214
|
+
Use `-w --wave` to dump signal waveforms
|
215
|
+
|
216
|
+
- `-u --gui` - to open dumped waveforms in Vivado GUI
|
217
|
+
- `-g --gencov` - to generate UVM test functional coverage report
|
218
|
+
- `--covreport` - to open coverage report dashboard
|
65
219
|
|
66
220
|
## Development
|
67
221
|
|