rvvm 1.1.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 +39 -1
- 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 +14 -4
- data/lib/rvvm/templates.rb +1 -0
- data/lib/rvvm/utils.rb +2 -2
- data/lib/rvvm/version.rb +1 -1
- data/lib/rvvm.rb +37 -28
- data/sig/rvvm/crayons.rbs +12 -6
- data/sig/rvvm/utils.rbs +5 -5
- data/sig/rvvm.rbs +31 -5
- metadata +21 -2
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
@@ -156,7 +156,6 @@
|
|
156
156
|
## TBI:
|
157
157
|
|
158
158
|
1. Elaboration and simulation custom waveform trace dump file
|
159
|
-
2. Project template files regeneration/restoration to default
|
160
159
|
3. Crayon module tests
|
161
160
|
4. RBS definitions
|
162
161
|
|
@@ -171,3 +170,42 @@
|
|
171
170
|
### Fixed:
|
172
171
|
|
173
172
|
1. More Crayons rendering bugs
|
173
|
+
|
174
|
+
## [1.2.0] - 2024-09-19
|
175
|
+
|
176
|
+
### Added:
|
177
|
+
|
178
|
+
1. Cyayons.command exception handling
|
179
|
+
2. Flags for itf, pkg and svfile template generation
|
180
|
+
3. Custom DPI-C library for elaboration
|
181
|
+
|
182
|
+
### Fixed
|
183
|
+
|
184
|
+
1. More rendering bugs
|
185
|
+
2. Package template not being generated under <prj root>/design/pkg by default
|
186
|
+
3. DPI-C compilation using invalid command
|
187
|
+
4. Script crash on trying to execute a missing shell command
|
188
|
+
5. Script crashing on trying to open non existent coverage report
|
189
|
+
|
190
|
+
### TBI
|
191
|
+
|
192
|
+
1. Custom waveform dump file name for elaboration and simulation
|
193
|
+
2. RVvM config file versions and regeneration
|
194
|
+
3. Exit on failing compilation/elaboration/simulation
|
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
|
|