rvvm 0.9.3 → 0.9.5
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 -0
- data/README.md +1 -1
- data/lib/rvvm/version.rb +1 -1
- data/lib/rvvm.rb +35 -16
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8fd6e9e8729d0de5aeabb5a88f183096de1acc98ae8d5e2d70c7be57edf883a0
|
4
|
+
data.tar.gz: aa70e5dd5f06d668c8e83a38043d02f0b86aa047bd7a85c5b4db5ce04567a894
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: accdd51566d38973f742e264d35bfecdc1b5ede51d3d0f9062114a4dd8c2d95bc64437026123de630ed2a1ce7b9702cb06d1e4570820cbadf89f946aa9641f22
|
7
|
+
data.tar.gz: a330ed820c00511ced53ffe42ec13d2eec98d9783c3aa581a144a029e46b4a92ed84fd86a27b5c25dc46b83c1f88d9cf8ab2ac0e37e688215713a16ce7bf9e17
|
data/CHANGELOG.md
CHANGED
@@ -90,3 +90,42 @@
|
|
90
90
|
2. Project config load failure handling/error message when parsing invalid json
|
91
91
|
3. Template file generation in pwd
|
92
92
|
4. Elaboration and simulation custom waveform trace dump file
|
93
|
+
5. Project template files regeneration/restoration to default
|
94
|
+
6. Rescue on script crash due to creating a project dir that already exists
|
95
|
+
|
96
|
+
## [0.9.4] - 2024-09-17
|
97
|
+
|
98
|
+
### Added:
|
99
|
+
|
100
|
+
1. More tests
|
101
|
+
2. Cleaned up code documentation
|
102
|
+
3. JSON::ParserError handling when loading an invalid config json
|
103
|
+
4. Promt to overwrite an existing directory while creating project
|
104
|
+
5. Project creation error handling
|
105
|
+
|
106
|
+
### Fixed:
|
107
|
+
|
108
|
+
1. Script crash due to loading invalid json config
|
109
|
+
2. Script crash due to creating a project dir that already exists
|
110
|
+
|
111
|
+
### TBI:
|
112
|
+
|
113
|
+
1. CLI log graphic
|
114
|
+
2. Template file generation in pwd
|
115
|
+
3. Elaboration and simulation custom waveform trace dump file
|
116
|
+
4. Project template files regeneration/restoration to default
|
117
|
+
|
118
|
+
## [0.9.5] - 2024-09-17
|
119
|
+
|
120
|
+
### Fixed:
|
121
|
+
|
122
|
+
1. Conversion of parsed json config hash keys to symbols
|
123
|
+
2. Tests randomly failing due to the bug above
|
124
|
+
|
125
|
+
### TBI:
|
126
|
+
|
127
|
+
1. CLI log graphic
|
128
|
+
2. Template file generation in pwd
|
129
|
+
3. Elaboration and simulation custom waveform trace dump file
|
130
|
+
4. Project template files regeneration/restoration to default
|
131
|
+
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# RVvM - Ruby Vivado Manager
|
1
|
+
# RVvM - Ruby Vivado Manager [](https://badge.fury.io/rb/rvvm)
|
2
2
|
|
3
3
|
RVvM is a Ruby based meta tool to manage, compile, elaborate and simulate SystemVerilog and UVM based projects using Xilinx Vivado xvlog, xelab, xrun and xsc tools.
|
4
4
|
|
data/lib/rvvm/version.rb
CHANGED
data/lib/rvvm.rb
CHANGED
@@ -149,7 +149,7 @@ module Rvvm
|
|
149
149
|
|
150
150
|
# Shell command with debug printout.
|
151
151
|
#
|
152
|
-
# If --debug arg provided instead of calling `system`
|
152
|
+
# If --debug arg provided instead of calling `system`
|
153
153
|
# prints the input command.
|
154
154
|
#
|
155
155
|
# @param command [String] command to be called/printed
|
@@ -175,6 +175,18 @@ module Rvvm
|
|
175
175
|
def self.create_new_project(name)
|
176
176
|
puts "\nRVvM: Generating new project: #{name} ...\n"
|
177
177
|
|
178
|
+
if File.exist?(name)
|
179
|
+
print " Directory #{name} already exists. Do you want to overwrite it? [y/n] "
|
180
|
+
input = gets.chomp
|
181
|
+
puts " "
|
182
|
+
|
183
|
+
if input == "y"
|
184
|
+
FileUtils.rm_rf(name)
|
185
|
+
else
|
186
|
+
exit(0)
|
187
|
+
end
|
188
|
+
end
|
189
|
+
|
178
190
|
FileUtils.mkdir(name)
|
179
191
|
Dir.chdir(name)
|
180
192
|
|
@@ -232,6 +244,9 @@ module Rvvm
|
|
232
244
|
puts "\nRVvM: New project generated. ^^\n\n"
|
233
245
|
|
234
246
|
exit(0)
|
247
|
+
rescue StandardError => e
|
248
|
+
puts "RVvM: Failed to create project...\n #{e.message}\n"
|
249
|
+
exit(1)
|
235
250
|
end
|
236
251
|
|
237
252
|
# Loads and parses rvvmconf.json config file from
|
@@ -253,13 +268,17 @@ module Rvvm
|
|
253
268
|
end
|
254
269
|
|
255
270
|
@config = JSON.parse(json_file) if json_file
|
256
|
-
@config = @config.transform_values do |v|
|
257
|
-
v.is_a?(Hash) ? v.transform_keys(&:to_sym) : v
|
258
|
-
end.transform_keys(&:to_sym)
|
259
271
|
|
260
|
-
|
272
|
+
if @config.instance_of?(Hash)
|
273
|
+
@config = @config.transform_values do |v|
|
274
|
+
v.transform_keys(&:to_sym) if v.instance_of?(Hash)
|
275
|
+
end.transform_keys(&:to_sym)
|
276
|
+
end
|
277
|
+
rescue JSON::ParserError => e
|
278
|
+
puts " Invalid config json!\n\n#{e.message}"
|
279
|
+
exit(1)
|
261
280
|
end
|
262
|
-
|
281
|
+
|
263
282
|
# Navigates to project top (rvvm directory of the RVvM project).
|
264
283
|
#
|
265
284
|
# @return [void]
|
@@ -268,7 +287,7 @@ module Rvvm
|
|
268
287
|
def self.prj_top
|
269
288
|
Dir.chdir(@config_path)
|
270
289
|
end
|
271
|
-
|
290
|
+
|
272
291
|
# Compiles project SystemVerilog sources using xvlog.
|
273
292
|
#
|
274
293
|
# @return [void]
|
@@ -284,7 +303,7 @@ module Rvvm
|
|
284
303
|
cmd = "xvlog -sv -f #{complist} -log #{logname} #{cmd_args}"
|
285
304
|
execute(cmd)
|
286
305
|
end
|
287
|
-
|
306
|
+
|
288
307
|
# Compiles C/C++ sources into a shared library to use during
|
289
308
|
# elaboration and simulation using DPI-C.
|
290
309
|
#
|
@@ -300,7 +319,7 @@ module Rvvm
|
|
300
319
|
cmd = "sxc -f #{dpilist} #{cmd_args}"
|
301
320
|
execute(cmd)
|
302
321
|
end
|
303
|
-
|
322
|
+
|
304
323
|
# Elaborates project into a testbench snapshot using xelab.
|
305
324
|
#
|
306
325
|
# @return [void]
|
@@ -322,7 +341,7 @@ module Rvvm
|
|
322
341
|
cmd = "xelab #{tb_top} -relax -s #{tb} -timescale #{timescale} -log #{logname} #{cmd_args}"
|
323
342
|
execute(cmd)
|
324
343
|
end
|
325
|
-
|
344
|
+
|
326
345
|
# Runs UVM test simulation on an elaborated testbench snapshot using xrun.
|
327
346
|
#
|
328
347
|
# @return [void]
|
@@ -386,7 +405,7 @@ module Rvvm
|
|
386
405
|
cmd = "xsim --gui #{dump}"
|
387
406
|
execute(cmd)
|
388
407
|
end
|
389
|
-
|
408
|
+
|
390
409
|
# Generates UVM test functional coverage report using xcrg.
|
391
410
|
#
|
392
411
|
# @return [void]
|
@@ -396,7 +415,7 @@ module Rvvm
|
|
396
415
|
cmd = "xcrg -report_format html -dir xsim.covdb"
|
397
416
|
execute(cmd)
|
398
417
|
end
|
399
|
-
|
418
|
+
|
400
419
|
# Opens last generated functional coverage report in a HTML dashboard.
|
401
420
|
#
|
402
421
|
# @return [void]
|
@@ -406,7 +425,7 @@ module Rvvm
|
|
406
425
|
Dir.chdir("xcrg_func_cov_report")
|
407
426
|
execute("./dashboard.html")
|
408
427
|
end
|
409
|
-
|
428
|
+
|
410
429
|
# Generates a SystemVerilog module/interface template.
|
411
430
|
#
|
412
431
|
# @param type [String] specifies modudle/itf
|
@@ -431,7 +450,7 @@ module Rvvm
|
|
431
450
|
|
432
451
|
exit(0)
|
433
452
|
end
|
434
|
-
|
453
|
+
|
435
454
|
# Generates a SystemVerilog package template.
|
436
455
|
#
|
437
456
|
# @param name [String] specifies package name
|
@@ -454,7 +473,7 @@ module Rvvm
|
|
454
473
|
|
455
474
|
exit(0)
|
456
475
|
end
|
457
|
-
|
476
|
+
|
458
477
|
# Generates a generic SystemVerilog template file.
|
459
478
|
#
|
460
479
|
# @param name [String] specifies template name
|
@@ -476,7 +495,7 @@ module Rvvm
|
|
476
495
|
|
477
496
|
exit(0)
|
478
497
|
end
|
479
|
-
|
498
|
+
|
480
499
|
# Runs rvvm calling its methods based on provided script args.
|
481
500
|
#
|
482
501
|
# @return [void]
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rvvm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- mrbya
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-09-
|
11
|
+
date: 2024-09-17 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: RVvM is a Ruby based meta tool to manage/compile/elaborate and run simulations
|
14
14
|
on SystemVerilog and UVM based projects using Xilinx Vivado xvlog, xelab, xrun,
|